Trying different buttons out. On a different note I just saw an imac. I really
like their window frames, but they look huge... If you want a screenshot I updated the last entry screenshot on http://mosfet.jorsm.com again. svn path=/trunk/kdebase/kwin/; revision=35282
This commit is contained in:
parent
49f894fa51
commit
c7f1a58bd8
2 changed files with 33 additions and 55 deletions
|
@ -12,13 +12,16 @@
|
|||
#include "options.h"
|
||||
|
||||
static unsigned char iconify_bits[] = {
|
||||
0x00, 0x00, 0xff, 0xff, 0x7e, 0x3c, 0x18, 0x00 };
|
||||
0xff, 0xff, 0x00, 0xff, 0xff, 0x7e, 0x3c, 0x18};
|
||||
|
||||
static unsigned char close_bits[] = {
|
||||
0xc3, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0xc3, 0x00 };
|
||||
|
||||
static unsigned char maximize_bits[] = {
|
||||
0x3f, 0x9f, 0xcf, 0x67, 0x33, 0x19, 0x0c, 0x06 };
|
||||
0x18, 0x3c, 0x7e, 0xff, 0xff, 0x00, 0xff, 0xff };
|
||||
|
||||
static unsigned char minmax_bits[] = {
|
||||
0x0c, 0x18, 0x33, 0x67, 0xcf, 0x9f, 0x3f, 0x3f};
|
||||
|
||||
static unsigned char unsticky_bits[] = {
|
||||
0x00, 0x18, 0x18, 0x7e, 0x7e, 0x18, 0x18, 0x00};
|
||||
|
@ -135,37 +138,30 @@ SystemButton::SystemButton(QWidget *parent, const char *name,
|
|||
|
||||
p.begin(&iBackground);
|
||||
p.drawPixmap(2, 2, iInternal);
|
||||
p.setPen(options->color(Options::ButtonBg, false));
|
||||
p.drawLine(0, 13, 13, 13);
|
||||
p.drawLine(13, 0, 13, 13);
|
||||
p.setPen(options->color(Options::ButtonBlend, false));
|
||||
p.drawRect(0, 0, 14, 14);
|
||||
p.drawLine(0, 0, 12, 0);
|
||||
p.drawLine(0, 0, 0, 12);
|
||||
p.end();
|
||||
|
||||
p.begin(&aBackground);
|
||||
p.drawPixmap(2, 2, aInternal);
|
||||
p.setPen(options->color(Options::ButtonBlend, true));
|
||||
p.setPen(options->color(Options::ButtonFg, true));
|
||||
p.drawRect(0, 0, 14, 14);
|
||||
|
||||
p.end();
|
||||
|
||||
resize(14, 14);
|
||||
|
||||
QBitmap mask;
|
||||
mask.resize(14, 14);
|
||||
mask.fill(color1);
|
||||
p.begin(&mask);
|
||||
p.setPen(color0);
|
||||
p.drawPoint(0, 0);
|
||||
p.drawPoint(13, 0);
|
||||
p.drawPoint(0, 13);
|
||||
p.drawPoint(13, 13);
|
||||
p.end();
|
||||
setMask(mask);
|
||||
|
||||
if(bitmap)
|
||||
setBitmap(bitmap);
|
||||
}
|
||||
|
||||
void SystemButton::setBitmap(const unsigned char *bitmap)
|
||||
{
|
||||
deco = QBitmap(8, 8, bitmap);
|
||||
deco = QBitmap(8, 8, bitmap, true);
|
||||
deco.setMask(deco);
|
||||
repaint();
|
||||
}
|
||||
|
@ -211,7 +207,7 @@ SystemClient::SystemClient( Workspace *ws, WId w, QWidget *parent,
|
|||
g->addLayout( hb, 0, 1 );
|
||||
hb->addSpacing(2);
|
||||
hb->addWidget( button[0] );
|
||||
titlebar = new QSpacerItem(10, 14, QSizePolicy::Expanding,
|
||||
titlebar = new QSpacerItem(10, 16, QSizePolicy::Expanding,
|
||||
QSizePolicy::Minimum);
|
||||
hb->addItem(titlebar);
|
||||
hb->addSpacing(2);
|
||||
|
@ -226,8 +222,6 @@ SystemClient::SystemClient( Workspace *ws, WId w, QWidget *parent,
|
|||
button[i]->setMouseTracking( TRUE );
|
||||
button[i]->setFixedSize( 14, 14 );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void SystemClient::resizeEvent( QResizeEvent* e)
|
||||
|
@ -257,38 +251,21 @@ void SystemClient::paintEvent( QPaintEvent* )
|
|||
QRect t = titlebar->geometry();
|
||||
t.setTop( 1 );
|
||||
|
||||
// if we have a pixmapped bg use that, otherwise use color settings
|
||||
|
||||
if(colorGroup().brush(QColorGroup::Background).pixmap()){
|
||||
qDrawShadePanel(&p, rect(), colorGroup(), false, 1,
|
||||
&colorGroup().brush(QColorGroup::Background));
|
||||
|
||||
}
|
||||
else{
|
||||
qDrawShadePanel(&p, rect(),
|
||||
options->colorGroup(Options::Frame, isActive()), false, 1,
|
||||
&options->colorGroup(Options::Frame, isActive()).
|
||||
brush(QColorGroup::Button));
|
||||
}
|
||||
p.setPen(Qt::black);
|
||||
p.drawRect(rect());
|
||||
QBrush fillBrush(colorGroup().brush(QColorGroup::Background).pixmap() ?
|
||||
colorGroup().brush(QColorGroup::Background) :
|
||||
options->colorGroup(Options::Frame, isActive()).
|
||||
brush(QColorGroup::Button));
|
||||
|
||||
|
||||
if(colorGroup().brush(QColorGroup::Background).pixmap())
|
||||
qDrawShadePanel(&p, rect().x()+1, rect().y()+1, rect().width()-2,
|
||||
rect().height()-2, colorGroup(), false);
|
||||
else
|
||||
qDrawShadePanel(&p, rect().x()+1, rect().y()+1, rect().width()-2,
|
||||
rect().height()-2, colorGroup(), false);
|
||||
qDrawShadePanel(&p, rect().x()+1, rect().y()+1, rect().width()-2,
|
||||
rect().height()-2,
|
||||
options->colorGroup(Options::Frame, isActive()), false, 1,
|
||||
&fillBrush);
|
||||
|
||||
t.setTop( 2 );
|
||||
if(isActive())
|
||||
p.drawTiledPixmap(t, *titlePix);
|
||||
else if(colorGroup().brush(QColorGroup::Background).pixmap())
|
||||
p.fillRect(t, colorGroup().brush(QColorGroup::Background));
|
||||
else
|
||||
p.fillRect(t, options->colorGroup(Options::Frame, false).
|
||||
brush(QColorGroup::Button));
|
||||
|
||||
QRegion r = rect();
|
||||
r = r.subtract( t );
|
||||
|
@ -304,8 +281,7 @@ void SystemClient::paintEvent( QPaintEvent* )
|
|||
if(isActive()){
|
||||
QFontMetrics fm(options->font(true));
|
||||
p.fillRect(t.x()+((t.width()-fm.width(caption()))/2)-4, t.y(),
|
||||
fm.width(caption())+8, t.height(),
|
||||
colorGroup().brush(QColorGroup::Background));
|
||||
fm.width(caption())+8, t.height(), fillBrush);
|
||||
}
|
||||
|
||||
p.drawText( t, AlignCenter, caption() );
|
||||
|
@ -335,12 +311,13 @@ void SystemClient::mouseDoubleClickEvent( QMouseEvent * e )
|
|||
|
||||
void SystemClient::stickyChange(bool on)
|
||||
{
|
||||
if(on)
|
||||
button[1]->setBitmap(unsticky_bits);
|
||||
else
|
||||
button[1]->setBitmap(sticky_bits);
|
||||
button[1]->setBitmap(on ? unsticky_bits : sticky_bits);
|
||||
}
|
||||
|
||||
void SystemClient::maximizeChange(bool m)
|
||||
{
|
||||
button[3]->setBitmap(m ? minmax_bits : maximize_bits);
|
||||
}
|
||||
|
||||
void SystemClient::init()
|
||||
{
|
||||
|
|
|
@ -37,6 +37,7 @@ protected:
|
|||
void init();
|
||||
void captionChange( const QString& name );
|
||||
void stickyChange(bool on);
|
||||
void maximizeChange(bool m);
|
||||
private:
|
||||
SystemButton* button[4];
|
||||
QSpacerItem* titlebar;
|
||||
|
|
Loading…
Reference in a new issue