Default theme, first draft.
svn path=/trunk/kdebase/kwin/; revision=57032
This commit is contained in:
parent
7ca46b1e1c
commit
4c8257e2ad
26 changed files with 548 additions and 768 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -23,7 +23,7 @@
|
|||
#include "Button.h"
|
||||
#include "Static.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
Button::Button(QWidget * parent, SymbolType t)
|
||||
|
@ -33,7 +33,10 @@ Button::Button(QWidget * parent, SymbolType t)
|
|||
down_ (false),
|
||||
active_ (false)
|
||||
{
|
||||
setFixedSize(19, 20);
|
||||
if (type_ == Sticky)
|
||||
setFixedWidth(Static::instance()->buttonWidth2());
|
||||
else
|
||||
setFixedWidth(Static::instance()->buttonWidth1());
|
||||
}
|
||||
|
||||
Button::~Button()
|
||||
|
@ -44,10 +47,7 @@ Button::~Button()
|
|||
void
|
||||
Button::updateDisplay()
|
||||
{
|
||||
setBackgroundPixmap(
|
||||
Static::instance()->button(type_, active_, down_)
|
||||
);
|
||||
|
||||
setBackgroundPixmap(Static::instance()->button(type_, active_, down_));
|
||||
repaint(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,13 +20,13 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_BUTTON_H
|
||||
#define RISC_OS_BUTTON_H
|
||||
#ifndef DEFAULT_BUTTON_H
|
||||
#define DEFAULT_BUTTON_H
|
||||
|
||||
#include "Static.h"
|
||||
#include <qwidget.h>
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class Button : public QWidget
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "CloseButton.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
CloseButton::CloseButton(QWidget * parent)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,12 +20,12 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_CLOSE_BUTTON_H
|
||||
#define RISC_OS_CLOSE_BUTTON_H
|
||||
#ifndef DEFAULT_CLOSE_BUTTON_H
|
||||
#define DEFAULT_CLOSE_BUTTON_H
|
||||
|
||||
#include "Button.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class CloseButton : public Button
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -22,11 +22,12 @@
|
|||
|
||||
#include "DBWidget.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
DBWidget::DBWidget(QWidget * parent, const char * name)
|
||||
: QWidget(parent, name, WResizeNoErase | WRepaintNoErase | WPaintUnclipped)
|
||||
: QWidget(parent, name, WResizeNoErase | WRepaintNoErase | WPaintUnclipped |
|
||||
WNorthWestGravity)
|
||||
{
|
||||
buf_.resize(20, 20);
|
||||
setBackgroundMode(NoBackground);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,13 +20,13 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_DOUBLE_BUFFERED_WIDGET_H
|
||||
#define RISC_OS_DOUBLE_BUFFERED_WIDGET_H
|
||||
#ifndef DEFAULT_DOUBLE_BUFFERED_WIDGET_H
|
||||
#define DEFAULT_DOUBLE_BUFFERED_WIDGET_H
|
||||
|
||||
#include <qwidget.h>
|
||||
#include <qpixmap.h>
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class DBWidget : public QWidget
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "IconifyButton.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
IconifyButton::IconifyButton(QWidget * parent)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,12 +20,12 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_ICONIFY_BUTTON_H
|
||||
#define RISC_OS_ICONIFY_BUTTON_H
|
||||
#ifndef DEFAULT_ICONIFY_BUTTON_H
|
||||
#define DEFAULT_ICONIFY_BUTTON_H
|
||||
|
||||
#include "Button.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class IconifyButton : public Button
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
INCLUDES = $(all_includes)
|
||||
|
||||
lib_LTLIBRARIES = libkwinriscos.la
|
||||
lib_LTLIBRARIES = libkwindefault.la
|
||||
|
||||
libkwinriscos_la_SOURCES = \
|
||||
libkwindefault_la_SOURCES = \
|
||||
Button.cpp \
|
||||
CloseButton.cpp \
|
||||
DBWidget.cpp \
|
||||
IconifyButton.cpp \
|
||||
LowerButton.cpp \
|
||||
StickyButton.cpp \
|
||||
Manager.cpp \
|
||||
MaximiseButton.cpp \
|
||||
ResizeBar.cpp \
|
||||
|
@ -16,8 +16,8 @@ ResizeSide.cpp \
|
|||
TitleBar.cpp \
|
||||
TitleText.cpp \
|
||||
Static.cpp
|
||||
libkwinriscos_la_LIBADD = ../../kwin.la
|
||||
libkwinriscos_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN)
|
||||
libkwindefault_la_LIBADD = ../../kwin.la
|
||||
libkwindefault_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN)
|
||||
|
||||
METASOURCES = AUTO
|
||||
noinst_HEADERS = \
|
||||
|
@ -25,7 +25,7 @@ Button.h \
|
|||
CloseButton.h \
|
||||
DBWidget.h \
|
||||
IconifyButton.h \
|
||||
LowerButton.h \
|
||||
StickyButton.h \
|
||||
Manager.h \
|
||||
MaximiseButton.h \
|
||||
ResizeBar.h \
|
||||
|
@ -36,7 +36,7 @@ TitleText.h \
|
|||
Static.h
|
||||
|
||||
lnkdir = $(kde_datadir)/kwin/
|
||||
lnk_DATA = riscos.desktop
|
||||
lnk_DATA = default.desktop
|
||||
|
||||
EXTRA_DIST = $(lnk_DATA)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -35,11 +35,11 @@ extern "C"
|
|||
{
|
||||
Client * allocate(Workspace * workSpace, WId winId)
|
||||
{
|
||||
return new RiscOS::Manager(workSpace, winId);
|
||||
return new Default::Manager(workSpace, winId);
|
||||
}
|
||||
}
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
Manager::Manager(
|
||||
|
@ -77,6 +77,12 @@ Manager::captionChange(const QString &)
|
|||
titleBar_->updateText();
|
||||
}
|
||||
|
||||
void
|
||||
Manager::stickyChange(bool b)
|
||||
{
|
||||
emit(stickyStatusChanged(b));
|
||||
}
|
||||
|
||||
void
|
||||
Manager::paletteChange(const QPalette &)
|
||||
{
|
||||
|
@ -143,9 +149,9 @@ Manager::mousePosition(const QPoint & p) const
|
|||
}
|
||||
|
||||
void
|
||||
Manager::lower()
|
||||
Manager::toggleSticky()
|
||||
{
|
||||
workspace()->lowerClient(this);
|
||||
setSticky(!isSticky());
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -170,9 +176,26 @@ Manager::resizeEvent(QResizeEvent * e)
|
|||
void
|
||||
Manager::_updateLayout()
|
||||
{
|
||||
titleBar_ -> setGeometry(0, 0, width(), 20);
|
||||
windowWrapper() -> setGeometry(1, 20, width() - 2, height() - 30);
|
||||
resizeBar_ -> setGeometry(0, height() - 10, width(), 10);
|
||||
titleBar_ -> setGeometry(
|
||||
0,
|
||||
0,
|
||||
width(),
|
||||
Static::instance()->titleHeight()
|
||||
);
|
||||
|
||||
windowWrapper() -> setGeometry(
|
||||
1,
|
||||
Static::instance()->titleHeight(),
|
||||
width() - 2,
|
||||
height() - Static::instance()->titleHeight() - RESIZE_BAR_HEIGHT
|
||||
);
|
||||
|
||||
resizeBar_ -> setGeometry(
|
||||
0,
|
||||
height() - RESIZE_BAR_HEIGHT,
|
||||
width(),
|
||||
RESIZE_BAR_HEIGHT
|
||||
);
|
||||
|
||||
_updateDisplay();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,12 +20,12 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_MANAGER_H
|
||||
#define RISC_OS_MANAGER_H
|
||||
#ifndef DEFAULT_MANAGER_H
|
||||
#define DEFAULT_MANAGER_H
|
||||
|
||||
#include "../../client.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class TitleBar;
|
||||
|
@ -47,10 +47,11 @@ class Manager : public Client
|
|||
signals:
|
||||
|
||||
void maximiseChanged(bool);
|
||||
void stickyStatusChanged(bool);
|
||||
|
||||
public slots:
|
||||
|
||||
void lower();
|
||||
void toggleSticky();
|
||||
void raise();
|
||||
void vMax();
|
||||
|
||||
|
@ -67,6 +68,7 @@ class Manager : public Client
|
|||
protected slots:
|
||||
|
||||
void captionChange(const QString &);
|
||||
void stickyChange(bool);
|
||||
void slotReset();
|
||||
|
||||
private:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "MaximiseButton.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
MaximiseButton::MaximiseButton(QWidget * parent)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,12 +20,12 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_MAXIMISE_BUTTON_H
|
||||
#define RISC_OS_MAXIMISE_BUTTON_H
|
||||
#ifndef DEFAULT_MAXIMISE_BUTTON_H
|
||||
#define DEFAULT_MAXIMISE_BUTTON_H
|
||||
|
||||
#include "Button.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class MaximiseButton : public Button
|
||||
|
|
|
@ -1,90 +1 @@
|
|||
This theme emulates the look and feel of the RISC OS 'window manager'.
|
||||
Actually, RISC OS doesn't have a window manager in the same way X
|
||||
does, but if you imagine it does, this is an emulation of that ;)
|
||||
|
||||
The look is obviously quite different, but coming anywhere close to
|
||||
the unique look of RISC OS would be quite blatantly obvious, so to
|
||||
avoid copyright issues, the look of this theme is unique. You may
|
||||
consider it to be RISC OS grown up ;)
|
||||
|
||||
Functions that will be implemented but are currently missing:
|
||||
Transparent resize.
|
||||
Shading.
|
||||
Backward-resize.
|
||||
NOTE: Backward-resize is an interesting feature and quite useful.
|
||||
If you resize a window such that you hit the screen edge
|
||||
in the process, the window resizes 'backwards' (i.e.
|
||||
moves in the opposite direction to your drag and at the
|
||||
same time continues increasing in size). So instead
|
||||
of having to let go of the resize handle, move the window
|
||||
and resize again, it just does what you want it to do.
|
||||
|
||||
Button functions: (Missing functionality is marked with TODO)
|
||||
|
||||
Button One:
|
||||
|
||||
Left button: TODO
|
||||
Lower window and drop focus. This is currently unimplemented
|
||||
in kwin itself.
|
||||
|
||||
Button Two:
|
||||
|
||||
Left button: Close window.
|
||||
|
||||
Right button: TODO, if I can be bothered.
|
||||
Close window.
|
||||
If window is filer window, open another filer window
|
||||
in parent dir.
|
||||
If window is document window, open a filer window in
|
||||
dir containing document.
|
||||
If you hold Shift, the window doesn't close.
|
||||
NOTE:
|
||||
This requires app support.
|
||||
If I were to implement this, I would do it in konqy
|
||||
and probably not bother for other apps.
|
||||
|
||||
Titlebar:
|
||||
|
||||
Left button: Raise, focus and move window
|
||||
|
||||
Middle button: Move window
|
||||
|
||||
Right button: Menu
|
||||
Note: Buttons are this way around for compatibility with
|
||||
other kwin themes.
|
||||
|
||||
Button Three:
|
||||
|
||||
Left button: Iconify window.
|
||||
|
||||
Button Four:
|
||||
|
||||
Left button: Maximise or restore window plus raise and focus.
|
||||
|
||||
Middle button: Maximise vertically or restore window plus raise and focus.
|
||||
|
||||
Right button: Maximise or restore window.
|
||||
|
||||
Resize bar left/right:
|
||||
|
||||
Left button: Move that corner (resizes window) and raise
|
||||
|
||||
Other buttons: Same without raising
|
||||
|
||||
Resize bar centre:
|
||||
|
||||
Left button: Move that edge (resizes window) and raise
|
||||
|
||||
Other buttons: Same without raising
|
||||
|
||||
The lower bar is used for resizing. It works in the NeXT style.
|
||||
This doesn't exist on RISC OS. In RISC OS, there is a 'resize handle'
|
||||
in the lower right corner of the window (actually inside the window).
|
||||
|
||||
To emulate this would mean covering part of the window with the decorations,
|
||||
which is not acceptable. RISC OS gets away with it by making sure that
|
||||
there is a vertical scrollbar visible at all times, which is just stupid.
|
||||
It's also an impossibility with X11, as the window manager does not know
|
||||
anything about scrollbars - they belong to the application, so don't ask
|
||||
me to implement it.
|
||||
|
||||
Default KWin theme
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
ResizeBar::ResizeBar(QWidget * parent, Manager * client)
|
||||
|
@ -53,7 +53,7 @@ ResizeBar::updateDisplay()
|
|||
void
|
||||
ResizeBar::resizeEvent(QResizeEvent *)
|
||||
{
|
||||
mid_->resize(width() - 60, 10);
|
||||
mid_->resize(width() - 60, mid_->height());
|
||||
right_->move(width() - 30, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,12 +20,12 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_RESIZE_BAR_H
|
||||
#define RISC_OS_RESIZE_BAR_H
|
||||
#ifndef DEFAULT_RESIZE_BAR_H
|
||||
#define DEFAULT_RESIZE_BAR_H
|
||||
|
||||
#include <qwidget.h>
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class Manager;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,20 +20,22 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <qpixmap.h>
|
||||
#include <qpainter.h>
|
||||
#include <kstyle.h>
|
||||
#include <kapp.h>
|
||||
|
||||
#include "ResizeMid.h"
|
||||
#include "Manager.h"
|
||||
#include "Static.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
ResizeMid::ResizeMid(QWidget * parent, Manager * client)
|
||||
: DBWidget(parent, "ResizeMid"),
|
||||
client_(client)
|
||||
{
|
||||
setFixedHeight(10);
|
||||
setFixedHeight(RESIZE_BAR_HEIGHT);
|
||||
setCursor(Qt::sizeVerCursor);
|
||||
}
|
||||
|
||||
|
@ -47,9 +49,20 @@ ResizeMid::updatePixmap()
|
|||
{
|
||||
QPainter p(&buf());
|
||||
|
||||
p.drawPixmap(0, 0, Static::instance()->resizeMidLeft(client_->isActive()));
|
||||
p.drawPixmap(width() - 2, 0, Static::instance()->resizeMidRight(client_->isActive()));
|
||||
p.drawTiledPixmap(2, 0, width() - 4, 10, Static::instance()->resizeMidMid(client_->isActive()));
|
||||
QColorGroup g(
|
||||
client_->isActive() ?
|
||||
palette().active() :
|
||||
palette().inactive()
|
||||
);
|
||||
|
||||
QBrush b(g.button());
|
||||
|
||||
QStyle * style = kapp->kstyle();
|
||||
|
||||
if (0 != style)
|
||||
style->drawPanel(&p, 0, 0, width(), height(), g, false, 2, &b);
|
||||
else
|
||||
kapp->style().drawPanel(&p, 0, 0, width(), height(), g, false, 2, &b);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,12 +20,12 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_RESIZE_MID_H
|
||||
#define RISC_OS_RESIZE_MID_H
|
||||
#ifndef DEFAULT_RESIZE_MID_H
|
||||
#define DEFAULT_RESIZE_MID_H
|
||||
|
||||
#include "DBWidget.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class Manager;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -21,12 +21,14 @@
|
|||
*/
|
||||
|
||||
#include <qpixmap.h>
|
||||
#include <kstyle.h>
|
||||
#include <kapp.h>
|
||||
|
||||
#include "ResizeSide.h"
|
||||
#include "Manager.h"
|
||||
#include "Static.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
ResizeSide::ResizeSide(QWidget * parent, Manager * client, Side s)
|
||||
|
@ -35,7 +37,7 @@ ResizeSide::ResizeSide(QWidget * parent, Manager * client, Side s)
|
|||
side_ (s)
|
||||
{
|
||||
setCursor(side_ == Left ? Qt::sizeBDiagCursor : Qt::sizeFDiagCursor);
|
||||
setFixedSize(30, 10);
|
||||
setFixedSize(RESIZE_SIDE_WIDTH, RESIZE_BAR_HEIGHT);
|
||||
updateDisplay();
|
||||
}
|
||||
|
||||
|
@ -67,7 +69,25 @@ ResizeSide::mouseMoveEvent(QMouseEvent * e)
|
|||
void
|
||||
ResizeSide::updateDisplay()
|
||||
{
|
||||
setBackgroundPixmap(Static::instance()->resize(client_->isActive()));
|
||||
QPixmap pix(size());
|
||||
QPainter p(&pix);
|
||||
|
||||
QColorGroup g(
|
||||
client_->isActive() ?
|
||||
palette().active() :
|
||||
palette().inactive()
|
||||
);
|
||||
|
||||
QBrush b(g.button());
|
||||
|
||||
QStyle * style = kapp->kstyle();
|
||||
|
||||
if (0 != style)
|
||||
style->drawPanel(&p, 0, 0, width(), height(), g, false, 2, &b);
|
||||
else
|
||||
kapp->style().drawPanel(&p, 0, 0, width(), height(), g, false, 2, &b);
|
||||
|
||||
setBackgroundPixmap(pix);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,12 +20,12 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_RESIZE_SIDE_H
|
||||
#define RISC_OS_RESIZE_SIDE_H
|
||||
#ifndef DEFAULT_RESIZE_SIDE_H
|
||||
#define DEFAULT_RESIZE_SIDE_H
|
||||
|
||||
#include <qwidget.h>
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class Manager;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -23,300 +23,59 @@
|
|||
#include <qimage.h>
|
||||
#include <qpixmap.h>
|
||||
#include <qpainter.h>
|
||||
#include <kpixmapeffect.h>
|
||||
|
||||
#include "../../options.h"
|
||||
|
||||
#include "Static.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
void
|
||||
Static::_drawButtonBorder(QPixmap & pix)
|
||||
static void drawButtonFrame(KPixmap & pix, const QColorGroup &g, bool sunken)
|
||||
{
|
||||
_drawBorder(pix, 17, 17);
|
||||
QPainter p;
|
||||
|
||||
int w = pix.width();
|
||||
int h = pix.height();
|
||||
|
||||
p.begin(&pix);
|
||||
|
||||
p.setPen(g.dark());
|
||||
|
||||
p.drawLine(0, 0, w-1, 0);
|
||||
p.drawLine(0, 0, 0, h-1);
|
||||
|
||||
p.setPen(sunken ? g.dark() : g.light());
|
||||
p.drawLine(1, 1, w-2, 1);
|
||||
p.drawLine(1, 1, 1, h-2);
|
||||
|
||||
p.setPen(sunken ? g.light() : g.dark());
|
||||
p.drawLine(w-2, 1, w-2, h-2);
|
||||
p.drawLine(1, h-2, w-2, h-2);
|
||||
|
||||
p.setPen(g.light());
|
||||
p.drawLine(w-1, 0, w-1, h-1);
|
||||
p.drawLine(0, h-1, w-1, h-1);
|
||||
|
||||
p.end();
|
||||
}
|
||||
|
||||
void
|
||||
Static::_drawBorder(QPixmap & pix, int w, int h)
|
||||
{
|
||||
// 0111111113
|
||||
// 1022222235
|
||||
// 12 46
|
||||
// 12 46
|
||||
// 12 46
|
||||
// 1344444476
|
||||
// 3566666667
|
||||
|
||||
painter_.begin(&pix);
|
||||
painter_.translate(transx, transy);
|
||||
|
||||
QColor c0 = down_ ? palette_[7] : palette_[0];
|
||||
QColor c1 = down_ ? palette_[6] : palette_[1];
|
||||
QColor c2 = down_ ? palette_[5] : palette_[2];
|
||||
QColor c3 = down_ ? palette_[4] : palette_[3];
|
||||
QColor c4 = down_ ? palette_[3] : palette_[4];
|
||||
QColor c5 = down_ ? palette_[2] : palette_[5];
|
||||
QColor c6 = down_ ? palette_[2] : palette_[6];
|
||||
QColor c7 = down_ ? palette_[1] : palette_[7];
|
||||
|
||||
painter_.setPen(c0);
|
||||
painter_.drawPoint(0, 0);
|
||||
|
||||
painter_.setPen(c1);
|
||||
painter_.drawPoint(1, 1);
|
||||
painter_.drawLine(1, 0, w - 1, 0);
|
||||
painter_.drawLine(0, 1, 0, h - 1);
|
||||
|
||||
painter_.setPen(c2);
|
||||
painter_.drawLine(2, 1, w - 2, 1);
|
||||
painter_.drawLine(1, 2, 1, h - 2);
|
||||
|
||||
painter_.setPen(c3);
|
||||
painter_.drawPoint(0, h);
|
||||
painter_.drawPoint(1, h - 1);
|
||||
painter_.drawPoint(w, 0);
|
||||
painter_.drawPoint(w - 1, 1);
|
||||
painter_.fillRect(2, 2, w - 2, h - 2, c3);
|
||||
|
||||
painter_.setPen(c4);
|
||||
painter_.drawLine(2, h - 1, w - 2, h - 1);
|
||||
painter_.drawLine(w - 1, 2, w - 1, h - 2);
|
||||
|
||||
painter_.setPen(c5);
|
||||
painter_.drawPoint(w, 1);
|
||||
painter_.drawPoint(1, h);
|
||||
|
||||
painter_.setPen(c6);
|
||||
painter_.drawLine(w, 2, w, h - 1);
|
||||
painter_.drawLine(2, h, w - 1, h);
|
||||
|
||||
painter_.setPen(c7);
|
||||
painter_.drawPoint(w - 1, h - 1);
|
||||
painter_.drawPoint(w, h);
|
||||
|
||||
painter_.end();
|
||||
}
|
||||
|
||||
void
|
||||
Static::_drawCloseSymbol(QPixmap & pixmap)
|
||||
{
|
||||
painter_.begin(&pixmap);
|
||||
painter_.translate(transx, transy);
|
||||
|
||||
painter_.setPen(QColor(palette_[1]));
|
||||
painter_.drawLine(2, 0, 11, 9);
|
||||
painter_.drawLine(0, 2, 9, 11);
|
||||
|
||||
painter_.drawLine(0, 9, 9, 0);
|
||||
painter_.drawLine(2, 11, 11, 2);
|
||||
|
||||
painter_.drawPoint(0, 1);
|
||||
painter_.drawPoint(1, 0);
|
||||
painter_.drawPoint(10, 0);
|
||||
painter_.drawPoint(11, 1);
|
||||
painter_.drawPoint(0, 10);
|
||||
painter_.drawPoint(1, 11);
|
||||
painter_.drawPoint(10, 11);
|
||||
painter_.drawPoint(11, 10);
|
||||
|
||||
painter_.setPen(QColor(palette_[6]));
|
||||
painter_.drawLine(1, 2, 9, 10);
|
||||
painter_.drawLine(1, 1, 10, 10);
|
||||
painter_.drawLine(2, 1, 10, 9);
|
||||
|
||||
painter_.drawLine(1, 9, 9, 1);
|
||||
painter_.drawLine(1, 10, 10, 1);
|
||||
painter_.drawLine(2, 10, 10, 2);
|
||||
|
||||
painter_.end();
|
||||
}
|
||||
|
||||
void
|
||||
Static::_drawIconifySymbol(QPixmap & pixmap)
|
||||
{
|
||||
painter_.begin(&pixmap);
|
||||
painter_.translate(transx, transy);
|
||||
|
||||
painter_.setPen(QColor(palette_[1]));
|
||||
painter_.drawRect(1, 4, 10, 4);
|
||||
|
||||
painter_.setPen(QColor(palette_[3]));
|
||||
painter_.drawPoint(1, 4);
|
||||
painter_.drawPoint(1, 7);
|
||||
painter_.drawPoint(10, 4);
|
||||
painter_.drawPoint(10, 7);
|
||||
|
||||
painter_.setPen(QColor(palette_[6]));
|
||||
painter_.drawLine(2, 5, 9, 5);
|
||||
painter_.drawLine(2, 6, 9, 6);
|
||||
|
||||
painter_.end();
|
||||
}
|
||||
|
||||
void
|
||||
Static::_drawLowerSymbol(QPixmap & pixmap)
|
||||
{
|
||||
painter_.begin(&pixmap);
|
||||
painter_.translate(transx, transy);
|
||||
|
||||
painter_.fillRect(1, 1, 6, 6, QColor(palette_[6]));
|
||||
painter_.fillRect(5, 5, 6, 6, QColor(palette_[3]));
|
||||
|
||||
painter_.setPen(QColor(palette_[1]));
|
||||
painter_.drawRect(0, 0, 8, 8);
|
||||
painter_.drawRect(4, 4, 8, 8);
|
||||
|
||||
painter_.setPen(QColor(palette_[3]));
|
||||
painter_.drawPoint(0, 0);
|
||||
painter_.drawPoint(7, 0);
|
||||
painter_.drawPoint(0, 7);
|
||||
painter_.drawPoint(3, 7);
|
||||
painter_.drawPoint(7, 3);
|
||||
painter_.drawPoint(4, 4);
|
||||
painter_.drawPoint(11, 4);
|
||||
painter_.drawPoint(4, 11);
|
||||
painter_.drawPoint(11, 11);
|
||||
|
||||
painter_.setPen(QColor(palette_[5]));
|
||||
painter_.drawPoint(5, 7);
|
||||
painter_.drawPoint(7, 5);
|
||||
|
||||
painter_.setPen(QColor(palette_[4]));
|
||||
painter_.drawPoint(7, 6);
|
||||
painter_.drawPoint(7, 7);
|
||||
painter_.drawPoint(6, 7);
|
||||
|
||||
painter_.end();
|
||||
}
|
||||
|
||||
void
|
||||
Static::_drawMaxSymbol(QPixmap & pixmap)
|
||||
{
|
||||
painter_.begin(&pixmap);
|
||||
painter_.translate(transx, transy);
|
||||
|
||||
painter_.setPen(QColor(palette_[1]));
|
||||
painter_.drawRect(2, 2, 8, 8);
|
||||
|
||||
painter_.setPen(QColor(palette_[3]));
|
||||
painter_.drawPoint(2, 2);
|
||||
painter_.drawPoint(2, 9);
|
||||
painter_.drawPoint(9, 9);
|
||||
painter_.drawPoint(9, 2);
|
||||
|
||||
painter_.fillRect(3, 3, 6, 6, QColor(palette_[6]));
|
||||
|
||||
painter_.end();
|
||||
}
|
||||
|
||||
void
|
||||
Static::_drawUnmaxSymbol(QPixmap & pixmap)
|
||||
{
|
||||
painter_.begin(&pixmap);
|
||||
painter_.translate(transx, transy);
|
||||
|
||||
painter_.setPen(QColor(palette_[1]));
|
||||
painter_.drawRect(0, 0, 12, 12);
|
||||
|
||||
painter_.setPen(QColor(palette_[3]));
|
||||
painter_.drawPoint(0, 0);
|
||||
painter_.drawPoint(0, 11);
|
||||
painter_.drawPoint(11, 0);
|
||||
painter_.drawPoint(11, 11);
|
||||
|
||||
painter_.fillRect(1, 1, 10, 10, QColor(palette_[6]));
|
||||
|
||||
painter_.end();
|
||||
}
|
||||
|
||||
void
|
||||
setPalette(Palette & pal, QColor c)
|
||||
{
|
||||
pal[3] = c.rgb();
|
||||
|
||||
int h, s, v;
|
||||
c.hsv(&h, &s, &v);
|
||||
|
||||
if (v < 72)
|
||||
c.setHsv(h, s, 72);
|
||||
|
||||
pal[0] = c.light(200).rgb();
|
||||
pal[1] = c.light(166).rgb();
|
||||
pal[2] = c.light(125).rgb();
|
||||
pal[4] = c.dark(133).rgb();
|
||||
pal[5] = c.dark(166).rgb();
|
||||
pal[6] = c.dark(200).rgb();
|
||||
pal[7] = c.dark(300).rgb();
|
||||
}
|
||||
|
||||
void
|
||||
setInversePalette(Palette & pal, QColor c)
|
||||
{
|
||||
pal[4] = c.rgb();
|
||||
|
||||
int h, s, v;
|
||||
c.hsv(&h, &s, &v);
|
||||
|
||||
if (v < 72)
|
||||
c.setHsv(h, s, 72);
|
||||
|
||||
pal[7] = c.light(200).rgb();
|
||||
pal[6] = c.light(166).rgb();
|
||||
pal[5] = c.light(125).rgb();
|
||||
pal[3] = c.dark(133).rgb();
|
||||
pal[2] = c.dark(166).rgb();
|
||||
pal[1] = c.dark(200).rgb();
|
||||
pal[0] = c.dark(300).rgb();
|
||||
}
|
||||
|
||||
Static * Static::instance_ = 0L;
|
||||
|
||||
void
|
||||
Static::_init()
|
||||
{
|
||||
buttonPixmaps_.append(&aIconify_);
|
||||
buttonPixmaps_.append(&aClose_);
|
||||
buttonPixmaps_.append(&aLower_);
|
||||
buttonPixmaps_.append(&aMax_);
|
||||
buttonPixmaps_.append(&aUnmax_);
|
||||
buttonPixmaps_.append(&iIconify_);
|
||||
buttonPixmaps_.append(&iClose_);
|
||||
buttonPixmaps_.append(&iLower_);
|
||||
buttonPixmaps_.append(&iMax_);
|
||||
buttonPixmaps_.append(&iUnmax_);
|
||||
buttonPixmaps_.append(&aIconifyDown_);
|
||||
buttonPixmaps_.append(&aCloseDown_);
|
||||
buttonPixmaps_.append(&aLowerDown_);
|
||||
buttonPixmaps_.append(&aMaxDown_);
|
||||
buttonPixmaps_.append(&aUnmaxDown_);
|
||||
buttonPixmaps_.append(&iIconifyDown_);
|
||||
buttonPixmaps_.append(&iCloseDown_);
|
||||
buttonPixmaps_.append(&iLowerDown_);
|
||||
buttonPixmaps_.append(&iMaxDown_);
|
||||
buttonPixmaps_.append(&iUnmaxDown_);
|
||||
|
||||
for (QListIterator<QPixmap> it(buttonPixmaps_); it.current(); ++it) {
|
||||
|
||||
it.current()->setOptimization(QPixmap::MemoryOptim);
|
||||
it.current()->resize(19, 20);
|
||||
it.current()->fill(Qt::black);
|
||||
}
|
||||
|
||||
aResize_.setOptimization(QPixmap::MemoryOptim);
|
||||
iResize_.setOptimization(QPixmap::MemoryOptim);
|
||||
aResize_.resize(30, 10);
|
||||
iResize_.resize(30, 10);
|
||||
aResize_.resize(30, RESIZE_BAR_HEIGHT);
|
||||
iResize_.resize(30, RESIZE_BAR_HEIGHT);
|
||||
aResize_.fill(Qt::black);
|
||||
iResize_.fill(Qt::black);
|
||||
|
||||
aTitleTextLeft_ .setOptimization(QPixmap::BestOptim);
|
||||
aTitleTextRight_ .setOptimization(QPixmap::BestOptim);
|
||||
aTitleTextMid_ .setOptimization(QPixmap::BestOptim);
|
||||
|
||||
iTitleTextLeft_ .setOptimization(QPixmap::BestOptim);
|
||||
iTitleTextRight_ .setOptimization(QPixmap::BestOptim);
|
||||
iTitleTextMid_ .setOptimization(QPixmap::BestOptim);
|
||||
aTitle_ .setOptimization(QPixmap::BestOptim);
|
||||
iTitle_ .setOptimization(QPixmap::BestOptim);
|
||||
|
||||
aResizeMidLeft_ .setOptimization(QPixmap::BestOptim);
|
||||
aResizeMidRight_ .setOptimization(QPixmap::BestOptim);
|
||||
|
@ -326,21 +85,6 @@ Static::_init()
|
|||
iResizeMidRight_ .setOptimization(QPixmap::BestOptim);
|
||||
iResizeMid_ .setOptimization(QPixmap::BestOptim);
|
||||
|
||||
aTitleTextLeft_ .resize(3, 20);
|
||||
aTitleTextRight_ .resize(3, 20);
|
||||
aTitleTextLeft_ .fill(Qt::black);
|
||||
aTitleTextRight_ .fill(Qt::black);
|
||||
|
||||
iTitleTextLeft_ .resize(3, 20);
|
||||
iTitleTextRight_ .resize(3, 20);
|
||||
iTitleTextLeft_ .fill(Qt::black);
|
||||
iTitleTextRight_ .fill(Qt::black);
|
||||
|
||||
aTitleTextMid_ .resize(128, 20);
|
||||
iTitleTextMid_ .resize(128, 20);
|
||||
aTitleTextMid_ .fill(Qt::black);
|
||||
iTitleTextMid_ .fill(Qt::black);
|
||||
|
||||
aResizeMidLeft_ .resize(3, 12);
|
||||
aResizeMidRight_ .resize(3, 12);
|
||||
aResizeMidLeft_ .fill(Qt::black);
|
||||
|
@ -351,275 +95,227 @@ Static::_init()
|
|||
iResizeMidLeft_ .fill(Qt::black);
|
||||
iResizeMidRight_ .fill(Qt::black);
|
||||
|
||||
aResizeMid_ .resize(128, 10);
|
||||
iResizeMid_ .resize(128, 10);
|
||||
aResizeMid_ .resize(128, RESIZE_BAR_HEIGHT);
|
||||
iResizeMid_ .resize(128, RESIZE_BAR_HEIGHT);
|
||||
aResizeMid_ .fill(Qt::black);
|
||||
iResizeMid_ .fill(Qt::black);
|
||||
|
||||
_loadGlyphs();
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
void
|
||||
Static::update()
|
||||
{
|
||||
// -------------------------------------------------------------------------
|
||||
// Palettes
|
||||
// -------------------------------------------------------------------------
|
||||
QPainter p;
|
||||
|
||||
Palette aBut, iBut;
|
||||
Palette aSym, iSym;
|
||||
titleHeight_ = 24;
|
||||
btnWidth1_ = 36;
|
||||
btnWidth2_ = 24;
|
||||
|
||||
if (QPixmap::defaultDepth() > 8) {
|
||||
unsigned int availableTitleHeight = titleHeight_ - 6;
|
||||
|
||||
setPalette(aBut, options->color(Options::ButtonBg, true));
|
||||
setPalette(iBut, options->color(Options::ButtonBg, false));
|
||||
aTitle_.resize(36, availableTitleHeight);
|
||||
iTitle_.resize(36, availableTitleHeight);
|
||||
|
||||
QColor btnForeground;
|
||||
if(qGray(options->color(Options::ButtonBg, true).rgb()) > 128)
|
||||
btnForeground = Qt::black;
|
||||
else
|
||||
btnForeground = Qt::white;
|
||||
setInversePalette(aSym, btnForeground);
|
||||
if(qGray(options->color(Options::ButtonBg, false).rgb()) > 128)
|
||||
btnForeground = Qt::black;
|
||||
else
|
||||
btnForeground = Qt::white;
|
||||
setInversePalette(iSym, btnForeground);
|
||||
aTitleText_.resize(36, availableTitleHeight);
|
||||
iTitleText_.resize(36, availableTitleHeight);
|
||||
|
||||
setPalette(aTitlePal_, options->color(Options::TitleBar, true));
|
||||
setPalette(iTitlePal_, options->color(Options::TitleBar, false));
|
||||
aTitleLeft_.resize(2, availableTitleHeight);
|
||||
iTitleLeft_.resize(2, availableTitleHeight);
|
||||
|
||||
setPalette(aResizePal_, options->color(Options::Handle, true));
|
||||
setPalette(iResizePal_, options->color(Options::Handle, false));
|
||||
}
|
||||
aTitleRight_.resize(2, availableTitleHeight);
|
||||
iTitleRight_.resize(2, availableTitleHeight);
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Bevels
|
||||
// -------------------------------------------------------------------------
|
||||
QColor bgColor, light, dark;
|
||||
QColorGroup buttonBgColorGroup = options->colorGroup(Options::ButtonBg, true);
|
||||
KPixmapEffect::GradientType vertGrad = KPixmapEffect::VerticalGradient;
|
||||
KPixmapEffect::GradientType diagGrad = KPixmapEffect::DiagonalGradient;
|
||||
QSize buttonSize1(btnWidth1_, availableTitleHeight);
|
||||
QSize buttonSize2(btnWidth2_, availableTitleHeight);
|
||||
|
||||
transx = transy = 0.0;
|
||||
// Titlebar
|
||||
|
||||
// Create sides of title text area and resize bar middle.
|
||||
bgColor = options->color(Options::TitleBar, true);
|
||||
|
||||
QPixmap temp(4, 20);
|
||||
temp.fill(Qt::black);
|
||||
palette_ = aTitlePal_;
|
||||
down_ = false;
|
||||
light = bgColor.light(120);
|
||||
dark = bgColor.dark(120);
|
||||
|
||||
_drawBorder(temp, 4, 18);
|
||||
KPixmapEffect::gradient(aTitle_, light, dark, vertGrad);
|
||||
KPixmapEffect::gradient(aTitleText_, light, dark, vertGrad);
|
||||
KPixmapEffect::gradient(aTitleLeft_, light, dark, vertGrad);
|
||||
KPixmapEffect::gradient(aTitleRight_, light, dark, vertGrad);
|
||||
|
||||
painter_.begin(&aTitleTextLeft_);
|
||||
painter_.drawPixmap(1, 1, temp, 0, 1);
|
||||
painter_.end();
|
||||
p.begin(&aTitle_);
|
||||
p.setPen(dark);
|
||||
p.drawLine(0, 0, 36, 0);
|
||||
p.setPen(light);
|
||||
p.drawLine(0, availableTitleHeight - 1, 36, availableTitleHeight - 1);
|
||||
p.end();
|
||||
|
||||
painter_.begin(&aTitleTextRight_);
|
||||
painter_.drawPixmap(0, 1, temp, 2, 1);
|
||||
painter_.end();
|
||||
p.begin(&aTitleText_);
|
||||
p.setPen(dark);
|
||||
p.drawLine(0, 0, 36, 0);
|
||||
p.setPen(light);
|
||||
p.drawLine(0, availableTitleHeight - 1, 36, availableTitleHeight - 1);
|
||||
p.end();
|
||||
|
||||
palette_ = iTitlePal_;
|
||||
_drawBorder(temp, 4, 18);
|
||||
p.begin(&aTitleLeft_);
|
||||
p.setPen(dark);
|
||||
p.drawPoint(1, 0);
|
||||
p.drawLine(0, 0, 0, availableTitleHeight - 1);
|
||||
p.setPen(light);
|
||||
p.drawPoint(1, availableTitleHeight - 1);
|
||||
p.end();
|
||||
|
||||
painter_.begin(&iTitleTextLeft_);
|
||||
painter_.drawPixmap(1, 1, temp, 0, 1);
|
||||
painter_.end();
|
||||
p.begin(&aTitleRight_);
|
||||
p.setPen(dark);
|
||||
p.drawPoint(0, 1);
|
||||
p.setPen(light);
|
||||
p.drawLine(1, 0, 1, availableTitleHeight - 1);
|
||||
p.drawPoint(0, availableTitleHeight - 1);
|
||||
p.end();
|
||||
|
||||
painter_.begin(&iTitleTextRight_);
|
||||
painter_.drawPixmap(0, 1, temp, 2, 1);
|
||||
painter_.end();
|
||||
bgColor = options->color(Options::TitleBar, false);
|
||||
light = bgColor.light(120);
|
||||
dark = bgColor.dark(120);
|
||||
|
||||
transy = 1.0;
|
||||
KPixmapEffect::gradient(iTitle_, light, dark, vertGrad);
|
||||
KPixmapEffect::gradient(iTitleText_, light, dark, vertGrad);
|
||||
KPixmapEffect::gradient(iTitleLeft_, light, dark, vertGrad);
|
||||
KPixmapEffect::gradient(iTitleRight_, light, dark, vertGrad);
|
||||
|
||||
palette_ = aResizePal_;
|
||||
temp.resize(4, 10);
|
||||
temp.fill(Qt::black);
|
||||
_drawBorder(temp, 4, 7);
|
||||
p.begin(&iTitle_);
|
||||
p.setPen(dark);
|
||||
p.drawLine(0, 0, 36, 0);
|
||||
p.setPen(light);
|
||||
p.drawLine(0, availableTitleHeight - 1, 36, availableTitleHeight - 1);
|
||||
p.end();
|
||||
|
||||
painter_.begin(&aResizeMidLeft_);
|
||||
painter_.drawPixmap(0, 1, temp, 0, 1);
|
||||
painter_.end();
|
||||
p.begin(&iTitleText_);
|
||||
p.setPen(dark);
|
||||
p.drawLine(0, 0, 36, 0);
|
||||
p.setPen(light);
|
||||
p.drawLine(0, availableTitleHeight - 1, 36, availableTitleHeight - 1);
|
||||
p.end();
|
||||
|
||||
painter_.begin(&aResizeMidRight_);
|
||||
painter_.drawPixmap(0, 1, temp, 2, 1);
|
||||
painter_.end();
|
||||
p.begin(&iTitleLeft_);
|
||||
p.setPen(dark);
|
||||
p.drawPoint(1, 0);
|
||||
p.drawLine(0, 0, 0, availableTitleHeight - 1);
|
||||
p.setPen(light);
|
||||
p.drawPoint(1, availableTitleHeight - 1);
|
||||
p.end();
|
||||
|
||||
palette_ = iResizePal_;
|
||||
_drawBorder(temp, 4, 7);
|
||||
p.begin(&iTitleRight_);
|
||||
p.setPen(dark);
|
||||
p.drawPoint(0, 1);
|
||||
p.setPen(light);
|
||||
p.drawLine(1, 0, 1, availableTitleHeight - 1);
|
||||
p.drawPoint(0, availableTitleHeight - 1);
|
||||
p.end();
|
||||
|
||||
painter_.begin(&iResizeMidLeft_);
|
||||
painter_.drawPixmap(0, 1, temp, 0, 1);
|
||||
painter_.end();
|
||||
p.begin(&aTitle_);
|
||||
p.setPen(options->color(Options::TitleBar, true).light(150));
|
||||
|
||||
painter_.begin(&iResizeMidRight_);
|
||||
painter_.drawPixmap(0, 1, temp, 2, 1);
|
||||
painter_.end();
|
||||
for (unsigned int y = 3; y < availableTitleHeight - 3; y += 3)
|
||||
for (unsigned int x = 1; x < 36; x += 3)
|
||||
p.drawPoint(x, y);
|
||||
|
||||
transx = transy = 0.0;
|
||||
p.setPen(options->color(Options::TitleBar, true).dark(150));
|
||||
|
||||
temp.resize(132, 20);
|
||||
for (unsigned int y = 3; y < availableTitleHeight - 3; y += 3)
|
||||
for (unsigned int x = 1; x < 36; x += 3)
|
||||
p.drawPoint(x + 1, y + 1);
|
||||
p.end();
|
||||
|
||||
temp.fill(Qt::black);
|
||||
// Buttons
|
||||
|
||||
palette_ = aTitlePal_;
|
||||
_drawBorder(temp, 132, 17);
|
||||
bgColor = buttonBgColorGroup.background();
|
||||
light = bgColor.light(120);
|
||||
dark = bgColor.dark(120);
|
||||
|
||||
painter_.begin(&aTitleTextMid_);
|
||||
painter_.drawPixmap(0, 1, temp, 2, 0);
|
||||
painter_.end();
|
||||
btnPix1_ .resize(buttonSize1);
|
||||
btnDownPix1_ .resize(buttonSize1);
|
||||
btnPix2_ .resize(buttonSize2);
|
||||
btnDownPix2_ .resize(buttonSize2);
|
||||
|
||||
palette_ = iTitlePal_;
|
||||
_drawBorder(temp, 132, 17);
|
||||
iBtnPix1_ .resize(buttonSize1);
|
||||
iBtnDownPix1_ .resize(buttonSize1);
|
||||
iBtnPix2_ .resize(buttonSize2);
|
||||
iBtnDownPix2_ .resize(buttonSize2);
|
||||
|
||||
painter_.begin(&iTitleTextMid_);
|
||||
painter_.drawPixmap(0, 1, temp, 2, 0);
|
||||
painter_.end();
|
||||
KPixmapEffect::gradient(btnPix1_, light, dark, diagGrad);
|
||||
KPixmapEffect::gradient(btnDownPix1_, dark, light, diagGrad);
|
||||
KPixmapEffect::gradient(btnPix2_, light, dark, diagGrad);
|
||||
KPixmapEffect::gradient(btnDownPix2_, dark, light, diagGrad);
|
||||
|
||||
transy = 1.0;
|
||||
KPixmapEffect::gradient(iBtnPix1_, light, dark, diagGrad);
|
||||
KPixmapEffect::gradient(iBtnDownPix1_, dark, light, diagGrad);
|
||||
KPixmapEffect::gradient(iBtnPix2_, light, dark, diagGrad);
|
||||
KPixmapEffect::gradient(iBtnDownPix2_, dark, light, diagGrad);
|
||||
|
||||
temp.fill(Qt::black);
|
||||
drawButtonFrame(btnPix1_, buttonBgColorGroup, false);
|
||||
drawButtonFrame(btnDownPix1_, buttonBgColorGroup, true);
|
||||
drawButtonFrame(btnPix2_, buttonBgColorGroup, false);
|
||||
drawButtonFrame(btnDownPix2_, buttonBgColorGroup, true);
|
||||
|
||||
palette_ = aResizePal_;
|
||||
_drawBorder(temp, 132, 7);
|
||||
drawButtonFrame(iBtnPix1_, buttonBgColorGroup, false);
|
||||
drawButtonFrame(iBtnDownPix1_, buttonBgColorGroup, true);
|
||||
drawButtonFrame(iBtnPix2_, buttonBgColorGroup, false);
|
||||
drawButtonFrame(iBtnDownPix2_, buttonBgColorGroup, true);
|
||||
|
||||
painter_.begin(&aResizeMid_);
|
||||
painter_.drawPixmap(0, 0, temp, 2, 0);
|
||||
painter_.end();
|
||||
|
||||
palette_ = iResizePal_;
|
||||
_drawBorder(temp, 132, 7);
|
||||
|
||||
painter_.begin(&iResizeMid_);
|
||||
painter_.drawPixmap(0, 0, temp, 2, 0);
|
||||
painter_.end();
|
||||
|
||||
down_ = false;
|
||||
|
||||
palette_ = aBut;
|
||||
transx = transy = 1.0;
|
||||
_drawButtonBorder(aClose_);
|
||||
_drawButtonBorder(aLower_);
|
||||
transx = 0.0;
|
||||
_drawButtonBorder(aIconify_);
|
||||
_drawButtonBorder(aMax_);
|
||||
_drawButtonBorder(aUnmax_);
|
||||
|
||||
palette_ = iBut;
|
||||
transx = transy = 1.0;
|
||||
_drawButtonBorder(iClose_);
|
||||
_drawButtonBorder(iLower_);
|
||||
transx = 0.0;
|
||||
_drawButtonBorder(iIconify_);
|
||||
_drawButtonBorder(iMax_);
|
||||
_drawButtonBorder(iUnmax_);
|
||||
|
||||
down_ = true;
|
||||
|
||||
palette_ = aBut;
|
||||
transx = transy = 1.0;
|
||||
_drawButtonBorder(aCloseDown_);
|
||||
_drawButtonBorder(aLowerDown_);
|
||||
transx = 0.0;
|
||||
_drawButtonBorder(aIconifyDown_);
|
||||
_drawButtonBorder(aMaxDown_);
|
||||
_drawButtonBorder(aUnmaxDown_);
|
||||
|
||||
palette_ = iBut;
|
||||
transx = transy = 1.0;
|
||||
_drawButtonBorder(iCloseDown_);
|
||||
_drawButtonBorder(iLowerDown_);
|
||||
transx = 0.0;
|
||||
_drawButtonBorder(iIconifyDown_);
|
||||
_drawButtonBorder(iMaxDown_);
|
||||
_drawButtonBorder(iUnmaxDown_);
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Button symbols
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
transy = 4.0;
|
||||
|
||||
palette_ = aSym;
|
||||
|
||||
transx = 4.0;
|
||||
_drawCloseSymbol (aClose_);
|
||||
_drawLowerSymbol (aLower_);
|
||||
transx = 3.0;
|
||||
_drawIconifySymbol (aIconify_);
|
||||
_drawMaxSymbol (aMax_);
|
||||
_drawUnmaxSymbol (aUnmax_);
|
||||
|
||||
transx = 4.0;
|
||||
_drawCloseSymbol (aCloseDown_);
|
||||
_drawLowerSymbol (aLowerDown_);
|
||||
transx = 3.0;
|
||||
_drawIconifySymbol (aIconifyDown_);
|
||||
_drawMaxSymbol (aMaxDown_);
|
||||
_drawUnmaxSymbol (aUnmaxDown_);
|
||||
|
||||
palette_ = iSym;
|
||||
|
||||
transx = 4.0;
|
||||
_drawCloseSymbol (iClose_);
|
||||
_drawLowerSymbol (iLower_);
|
||||
transx = 3.0;
|
||||
_drawIconifySymbol (iIconify_);
|
||||
_drawMaxSymbol (iMax_);
|
||||
_drawUnmaxSymbol (iUnmax_);
|
||||
|
||||
transx = 4.0;
|
||||
_drawCloseSymbol (iCloseDown_);
|
||||
_drawLowerSymbol (iLowerDown_);
|
||||
transx = 3.0;
|
||||
_drawIconifySymbol (iIconifyDown_);
|
||||
_drawMaxSymbol (iMaxDown_);
|
||||
_drawUnmaxSymbol (iUnmaxDown_);
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Resize handles
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
transx = transy = 1.0;
|
||||
|
||||
down_ = false;
|
||||
|
||||
palette_ = aResizePal_;
|
||||
_drawBorder(aResize_, 28, 7);
|
||||
|
||||
palette_ = iResizePal_;
|
||||
_drawBorder(iResize_, 28, 7);
|
||||
p.flush();
|
||||
}
|
||||
|
||||
QPixmap
|
||||
Static::button(SymbolType t, bool active, bool down)
|
||||
{
|
||||
QPixmap p(19, 20);
|
||||
bool buttonSize2 = (t == Sticky || t == Unsticky);
|
||||
QPixmap px = buttonPixmap(!buttonSize2, active, down);
|
||||
|
||||
if (down) {
|
||||
QBitmap b = glyph(t);
|
||||
b.setMask(b);
|
||||
|
||||
switch (t) {
|
||||
QPainter p(&px);
|
||||
QPoint offset((buttonSize2 ? btnWidth2_ : btnWidth1_) / 2 - 4, (titleHeight_ - 6) / 2 - 4);
|
||||
p.drawPixmap(offset, b);
|
||||
|
||||
case Iconify: p = active ? aIconifyDown_ : iIconifyDown_; break;
|
||||
case Close: p = active ? aCloseDown_ : iCloseDown_; break;
|
||||
case Lower: p = active ? aLowerDown_ : iLowerDown_; break;
|
||||
case Max: p = active ? aMaxDown_ : iMaxDown_; break;
|
||||
case Unmax: p = active ? aUnmaxDown_ : iUnmaxDown_; break;
|
||||
default: break;
|
||||
return px;
|
||||
}
|
||||
|
||||
} else {
|
||||
static unsigned char iconify_bits[] = {
|
||||
0xff, 0xff, 0x00, 0xff, 0xff, 0x7e, 0x3c, 0x18};
|
||||
|
||||
switch (t) {
|
||||
static unsigned char close_bits[] = {
|
||||
0xc3, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0xc3, 0x00 };
|
||||
|
||||
case Iconify: p = active ? aIconify_ : iIconify_; break;
|
||||
case Close: p = active ? aClose_ : iClose_; break;
|
||||
case Lower: p = active ? aLower_ : iLower_; break;
|
||||
case Max: p = active ? aMax_ : iMax_; break;
|
||||
case Unmax: p = active ? aUnmax_ : iUnmax_; break;
|
||||
default: break;
|
||||
}
|
||||
static unsigned char maximize_bits[] = {
|
||||
0x18, 0x3c, 0x7e, 0xff, 0xff, 0x00, 0xff, 0xff };
|
||||
|
||||
}
|
||||
static unsigned char unmax_bits[] = {
|
||||
0x30, 0x18, 0xcc, 0xe6, 0xf3, 0xf9, 0xfc, 0xfc};
|
||||
|
||||
return p;
|
||||
static unsigned char unsticky_bits[] = {
|
||||
0x3c, 0x42, 0x99, 0xbd, 0xbd, 0x99, 0x42, 0x3c};
|
||||
|
||||
static unsigned char sticky_bits[] = {
|
||||
0x3c, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x3c};
|
||||
|
||||
static unsigned char question_bits[] = {
|
||||
0x3c, 0x66, 0x60, 0x30, 0x18, 0x00, 0x18, 0x18};
|
||||
|
||||
|
||||
void
|
||||
Static::_loadGlyphs()
|
||||
{
|
||||
glyphClose_ = QBitmap(8, 8, close_bits);
|
||||
glyphMaximise_ = QBitmap(8, 8, maximize_bits);
|
||||
glyphUnmaximise_ = QBitmap(8, 8, unmax_bits);
|
||||
glyphSticky_ = QBitmap(8, 8, sticky_bits);
|
||||
glyphUnsticky_ = QBitmap(8, 8, unsticky_bits);
|
||||
glyphIconify_ = QBitmap(8, 8, iconify_bits);
|
||||
}
|
||||
|
||||
} // End namespace
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,19 +20,22 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_STATIC_H
|
||||
#define RISC_OS_STATIC_H
|
||||
#ifndef DEFAULT_STATIC_H
|
||||
#define DEFAULT_STATIC_H
|
||||
|
||||
#include <qimage.h>
|
||||
#include <qpixmap.h>
|
||||
#include <qpainter.h>
|
||||
#include <qbitmap.h>
|
||||
|
||||
#include "Palette.h"
|
||||
#include <kpixmap.h>
|
||||
|
||||
namespace RiscOS
|
||||
#include "Defines.h"
|
||||
|
||||
namespace Default
|
||||
{
|
||||
|
||||
enum SymbolType { Lower, Close, Iconify, Max, Unmax };
|
||||
enum SymbolType { Sticky, Unsticky, Close, Iconify, Max, Unmax };
|
||||
|
||||
class Static
|
||||
{
|
||||
|
@ -60,67 +63,111 @@ class Static
|
|||
|
||||
void update();
|
||||
|
||||
QPixmap titleTextLeft(bool active)
|
||||
{ return active ? aTitleTextLeft_ : iTitleTextLeft_; }
|
||||
const QPixmap & title(bool active) const
|
||||
{ return active ? aTitle_ : iTitle_; }
|
||||
|
||||
QPixmap titleTextRight(bool active)
|
||||
{ return active ? aTitleTextRight_ : iTitleTextRight_; }
|
||||
const QPixmap & titleText(bool active) const
|
||||
{ return active ? aTitleText_ : iTitleText_; }
|
||||
|
||||
QPixmap resizeMidLeft(bool active)
|
||||
const QPixmap & titleLeft(bool active) const
|
||||
{ return active ? aTitleLeft_ : iTitleLeft_; }
|
||||
|
||||
const QPixmap & titleRight(bool active) const
|
||||
{ return active ? aTitleRight_ : iTitleRight_; }
|
||||
|
||||
const QPixmap & resizeMidLeft(bool active) const
|
||||
{ return active ? aResizeMidLeft_ : iResizeMidLeft_; }
|
||||
|
||||
QPixmap resizeMidRight(bool active)
|
||||
const QPixmap & resizeMidRight(bool active) const
|
||||
{ return active ? aResizeMidRight_ : iResizeMidRight_; }
|
||||
|
||||
QPixmap titleTextMid(bool active)
|
||||
{ return active ? aTitleTextMid_ : iTitleTextMid_; }
|
||||
|
||||
QPixmap resizeMidMid(bool active)
|
||||
const QPixmap & resizeMidMid(bool active) const
|
||||
{ return active ? aResizeMid_ : iResizeMid_; }
|
||||
|
||||
QPixmap button(SymbolType t, bool active, bool down);
|
||||
|
||||
QPixmap resize(bool active)
|
||||
const QPixmap & resize(bool active) const
|
||||
{ return active ? aResize_ : iResize_; }
|
||||
|
||||
Palette & standardPalette()
|
||||
{ return standardPal_; }
|
||||
const QBitmap & glyph(SymbolType t) const
|
||||
{
|
||||
switch (t) {
|
||||
case Close: return glyphClose_;
|
||||
case Sticky: return glyphSticky_;
|
||||
case Unsticky: return glyphUnsticky_;
|
||||
case Iconify: return glyphIconify_;
|
||||
case Max: return glyphMaximise_;
|
||||
case Unmax: return glyphUnmaximise_;
|
||||
default: return glyphClose_;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int buttonWidth1() const { return btnWidth1_; }
|
||||
unsigned int buttonWidth2() const { return btnWidth2_; }
|
||||
unsigned int titleHeight() const { return titleHeight_; }
|
||||
|
||||
const KPixmap & buttonPixmap(int n, bool active, bool down) const
|
||||
{
|
||||
if (active) {
|
||||
if (n == 1)
|
||||
if (down)
|
||||
return btnDownPix1_;
|
||||
else
|
||||
return btnPix1_;
|
||||
else
|
||||
if (down)
|
||||
return btnDownPix2_;
|
||||
else
|
||||
return btnPix2_;
|
||||
} else {
|
||||
if (n == 1)
|
||||
if (down)
|
||||
return iBtnDownPix1_;
|
||||
else
|
||||
return iBtnPix1_;
|
||||
else
|
||||
if (down)
|
||||
return iBtnDownPix2_;
|
||||
else
|
||||
return iBtnPix2_;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void _drawButtonBorder (QPixmap &);
|
||||
void _drawBorder (QPixmap &, int, int);
|
||||
void _drawCloseSymbol (QPixmap &);
|
||||
void _drawIconifySymbol(QPixmap &);
|
||||
void _drawLowerSymbol (QPixmap &);
|
||||
void _drawMaxSymbol (QPixmap &);
|
||||
void _drawUnmaxSymbol (QPixmap &);
|
||||
|
||||
void _init();
|
||||
void _loadGlyphs();
|
||||
|
||||
static Static * instance_;
|
||||
|
||||
Palette standardPal_, aTitlePal_, iTitlePal_, aResizePal_, iResizePal_;
|
||||
|
||||
QPixmap aIconify_, aClose_, aLower_, aMax_, aUnmax_,
|
||||
iIconify_, iClose_, iLower_, iMax_, iUnmax_,
|
||||
QPixmap
|
||||
aResize_, iResize_,
|
||||
aIconifyDown_, aCloseDown_, aLowerDown_, aMaxDown_, aUnmaxDown_,
|
||||
iIconifyDown_, iCloseDown_, iLowerDown_, iMaxDown_, iUnmaxDown_,
|
||||
aResizeDown_, iResizeDown_,
|
||||
aTitleTextLeft_, aTitleTextRight_,
|
||||
aResizeMidLeft_, aResizeMidRight_,
|
||||
iTitleTextLeft_, iTitleTextRight_,
|
||||
iResizeMidLeft_, iResizeMidRight_,
|
||||
aTitleTextMid_, iTitleTextMid_,
|
||||
aResizeMid_, iResizeMid_;
|
||||
|
||||
QList<QPixmap> buttonPixmaps_;
|
||||
QBitmap
|
||||
glyphClose_,
|
||||
glyphSticky_,
|
||||
glyphUnsticky_,
|
||||
glyphIconify_,
|
||||
glyphMaximise_,
|
||||
glyphUnmaximise_;
|
||||
|
||||
QPainter painter_;
|
||||
bool down_;
|
||||
Palette palette_;
|
||||
double transx, transy;
|
||||
KPixmap aTitle_, iTitle_;
|
||||
KPixmap aTitleLeft_, iTitleLeft_;
|
||||
KPixmap aTitleRight_, iTitleRight_;
|
||||
KPixmap aTitleText_, iTitleText_;
|
||||
|
||||
KPixmap btnPix1_, btnDownPix1_, iBtnPix1_, iBtnDownPix1_;
|
||||
KPixmap btnPix2_, btnDownPix2_, iBtnPix2_, iBtnDownPix2_;
|
||||
|
||||
unsigned int btnWidth1_;
|
||||
unsigned int btnWidth2_;
|
||||
|
||||
unsigned int titleHeight_;
|
||||
};
|
||||
|
||||
} // End namespace
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -27,51 +27,78 @@
|
|||
#include "TitleText.h"
|
||||
#include "CloseButton.h"
|
||||
#include "IconifyButton.h"
|
||||
#include "LowerButton.h"
|
||||
#include "StickyButton.h"
|
||||
#include "MaximiseButton.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
TitleBar::TitleBar(Manager * client)
|
||||
: QWidget(client)
|
||||
{
|
||||
setBackgroundMode(NoBackground);
|
||||
|
||||
lower_ = new LowerButton (this);
|
||||
close_ = new CloseButton (this);
|
||||
text_ = new TitleText (this, client);
|
||||
iconify_ = new IconifyButton (this);
|
||||
maximise_ = new MaximiseButton (this);
|
||||
sticky_ = new StickyButton (this);
|
||||
|
||||
lower_ ->setAlign(Button::Left);
|
||||
close_ ->setAlign(Button::Left);
|
||||
iconify_ ->setAlign(Button::Right);
|
||||
maximise_ ->setAlign(Button::Right);
|
||||
|
||||
// Lower | Close | Text | Iconify | Maximise
|
||||
// Close | Text | Sticky | Iconify | Maximise
|
||||
|
||||
QHBoxLayout * layout = new QHBoxLayout(this);
|
||||
layout->setMargin(3);
|
||||
|
||||
layout->addWidget(lower_);
|
||||
layout->addWidget(close_);
|
||||
layout->addSpacing(2);
|
||||
layout->addWidget(text_, 1);
|
||||
layout->addSpacing(2);
|
||||
layout->addWidget(sticky_);
|
||||
layout->addWidget(iconify_);
|
||||
layout->addWidget(maximise_);
|
||||
|
||||
connect(lower_, SIGNAL(lowerClient()), client, SLOT(lower()));
|
||||
connect(close_, SIGNAL(closeClient()), client, SLOT(closeWindow()));
|
||||
connect(iconify_, SIGNAL(iconifyClient()), client, SLOT(iconify()));
|
||||
connect(maximise_, SIGNAL(maximiseClient()), client, SLOT(maximize()));
|
||||
connect(maximise_, SIGNAL(vMaxClient()), client, SLOT(vMax()));
|
||||
connect(maximise_, SIGNAL(raiseClient()), client, SLOT(raise()));
|
||||
connect(client, SIGNAL(maximiseChanged(bool)), maximise_, SLOT(setOn(bool)));
|
||||
connect(
|
||||
close_, SIGNAL(closeClient()),
|
||||
client, SLOT(closeWindow())
|
||||
);
|
||||
|
||||
connect(
|
||||
sticky_, SIGNAL(toggleSticky()),
|
||||
client, SLOT(toggleSticky())
|
||||
);
|
||||
|
||||
connect(
|
||||
client, SIGNAL(stickyStatusChanged(bool)),
|
||||
sticky_, SLOT(setOn(bool))
|
||||
);
|
||||
|
||||
connect(
|
||||
iconify_, SIGNAL(iconifyClient()),
|
||||
client, SLOT(iconify())
|
||||
);
|
||||
|
||||
connect(
|
||||
maximise_, SIGNAL(maximiseClient()),
|
||||
client, SLOT(maximize())
|
||||
);
|
||||
|
||||
connect(
|
||||
maximise_, SIGNAL(vMaxClient()),
|
||||
client, SLOT(vMax())
|
||||
);
|
||||
|
||||
connect(
|
||||
maximise_, SIGNAL(raiseClient()),
|
||||
client, SLOT(raise())
|
||||
);
|
||||
|
||||
connect(
|
||||
client, SIGNAL(maximiseChanged(bool)),
|
||||
maximise_, SLOT(setOn(bool))
|
||||
);
|
||||
}
|
||||
|
||||
void
|
||||
TitleBar::updateDisplay()
|
||||
{
|
||||
lower_ ->updateDisplay();
|
||||
close_ ->updateDisplay();
|
||||
text_ ->updateDisplay();
|
||||
iconify_ ->updateDisplay();
|
||||
|
@ -100,32 +127,32 @@ TitleBar::resizeEvent(QResizeEvent *)
|
|||
switch (sizeProblem) {
|
||||
|
||||
case 1:
|
||||
lower_ ->hide();
|
||||
close_ ->show();
|
||||
sticky_ ->hide();
|
||||
iconify_ ->show();
|
||||
maximise_ ->hide();
|
||||
close_ ->show();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
lower_ ->hide();
|
||||
close_ ->show();
|
||||
sticky_ ->hide();
|
||||
iconify_ ->hide();
|
||||
maximise_ ->hide();
|
||||
close_ ->show();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
lower_ ->hide();
|
||||
close_ ->hide();
|
||||
sticky_ ->hide();
|
||||
iconify_ ->hide();
|
||||
maximise_ ->hide();
|
||||
close_ ->hide();
|
||||
break;
|
||||
|
||||
case 0:
|
||||
default:
|
||||
lower_ ->show();
|
||||
close_ ->show();
|
||||
sticky_ ->show();
|
||||
iconify_ ->show();
|
||||
maximise_ ->show();
|
||||
close_ ->show();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -133,13 +160,43 @@ TitleBar::resizeEvent(QResizeEvent *)
|
|||
void
|
||||
TitleBar::setActive(bool b)
|
||||
{
|
||||
lower_->setActive(b);
|
||||
sticky_->setActive(b);
|
||||
close_->setActive(b);
|
||||
text_->setActive(b);
|
||||
iconify_->setActive(b);
|
||||
maximise_->setActive(b);
|
||||
}
|
||||
|
||||
void
|
||||
TitleBar::paintEvent(QPaintEvent * e)
|
||||
{
|
||||
QRect r(e->rect());
|
||||
|
||||
bool intersectsLeft =
|
||||
r.intersects(QRect(0, 0, 1, height()));
|
||||
|
||||
bool intersectsRight =
|
||||
r.intersects(QRect(width() - 1, 0, width(), height()));
|
||||
|
||||
bool intersectsTop =
|
||||
r.intersects(QRect(0, 0, width(), 1));
|
||||
|
||||
if (intersectsTop || intersectsLeft || intersectsRight) {
|
||||
|
||||
QPainter p(this);
|
||||
p.setPen(Qt::black);
|
||||
|
||||
if (intersectsTop)
|
||||
p.drawLine(r.left(), 0, r.right(), 0);
|
||||
|
||||
if (intersectsLeft)
|
||||
p.drawLine(0, r.top(), 0, r.bottom());
|
||||
|
||||
if (intersectsRight)
|
||||
p.drawLine(width() - 1, r.top(), width() - 1, r.bottom());
|
||||
}
|
||||
}
|
||||
|
||||
} // End namespace
|
||||
|
||||
// vim:ts=2:sw=2:tw=78
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,16 +20,16 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_TITLE_BAR_H
|
||||
#define RISC_OS_TITLE_BAR_H
|
||||
#ifndef DEFAULT_TITLE_BAR_H
|
||||
#define DEFAULT_TITLE_BAR_H
|
||||
|
||||
#include <qwidget.h>
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class Manager;
|
||||
class LowerButton;
|
||||
class StickyButton;
|
||||
class CloseButton;
|
||||
class TitleText;
|
||||
class IconifyButton;
|
||||
|
@ -51,14 +51,15 @@ class TitleBar : public QWidget
|
|||
protected:
|
||||
|
||||
void resizeEvent(QResizeEvent *);
|
||||
void paintEvent(QPaintEvent *);
|
||||
|
||||
private:
|
||||
|
||||
LowerButton * lower_;
|
||||
CloseButton * close_;
|
||||
|
||||
TitleText * text_;
|
||||
|
||||
StickyButton * sticky_;
|
||||
IconifyButton * iconify_;
|
||||
MaximiseButton * maximise_;
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -28,7 +28,7 @@
|
|||
#include "Manager.h"
|
||||
#include "Static.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
TitleText::TitleText(QWidget * parent, Manager * client)
|
||||
|
@ -56,12 +56,21 @@ TitleText::updatePixmap()
|
|||
|
||||
Static * s = Static::instance();
|
||||
|
||||
p.drawPixmap(0, 0, s->titleTextLeft(active_));
|
||||
p.drawPixmap(width() - 3, 0, s->titleTextRight(active_));
|
||||
p.drawTiledPixmap(3, 0, width() - 6, 20, s->titleTextMid(active_));
|
||||
p.drawPixmap(0, 0, s->titleLeft(active_));
|
||||
p.drawPixmap(width() - 2, 0, s->titleRight(active_));
|
||||
p.drawTiledPixmap(2, 0, width() - 2, height(), s->title(active_));
|
||||
|
||||
QFontMetrics fm(options->font());
|
||||
unsigned int w = fm.width(client_->caption());
|
||||
p.drawTiledPixmap(
|
||||
width() / 2 - w / 2, 0,
|
||||
w, height(),
|
||||
s->titleText(active_)
|
||||
);
|
||||
|
||||
p.setPen(options->color(Options::Font, active_));
|
||||
p.setFont(options->font());
|
||||
p.drawText(4, 0, width() - 8, 18, AlignCenter, client_->caption());
|
||||
p.drawText(4, 0, width() - 8, height(), AlignCenter, client_->caption());
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
RISC OS KWin client
|
||||
Default KWin client
|
||||
|
||||
Copyright 2000
|
||||
Rik Hemsley <rik@kde.org>
|
||||
|
@ -20,15 +20,15 @@
|
|||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef RISC_OS_TITLE_TEXT_H
|
||||
#define RISC_OS_TITLE_TEXT_H
|
||||
#ifndef DEFAULT_TITLE_TEXT_H
|
||||
#define DEFAULT_TITLE_TEXT_H
|
||||
|
||||
#include <qwidget.h>
|
||||
#include <qpoint.h>
|
||||
|
||||
#include "DBWidget.h"
|
||||
|
||||
namespace RiscOS
|
||||
namespace Default
|
||||
{
|
||||
|
||||
class Manager;
|
||||
|
|
Loading…
Reference in a new issue