diff --git a/beclient.cpp b/beclient.cpp deleted file mode 100644 index e834070e3d..0000000000 --- a/beclient.cpp +++ /dev/null @@ -1,215 +0,0 @@ -#include "beclient.h" -#include -#include -#include -#include -#include -#include -#include -#include "workspace.h" - - - -static const char * size_xpm[] = { -/* width height num_colors chars_per_pixel */ -"16 16 3 1", -/* colors */ -" s None c None", -". c #707070", -"X c white", -/* pixels */ -" ", -" ....... ", -" .XXXXXX ", -" .X .X ", -" .X .X....... ", -" .X .XXXXXXXX ", -" .X .X .X ", -" .X....X .X ", -" .XXXXXX .X ", -" .X .X ", -" .X .X ", -" .X .X ", -" .X........X ", -" .XXXXXXXXXX ", -" ", -" "}; - -static QPixmap* size_pix = 0; -static bool pixmaps_created = FALSE; - -static void create_pixmaps() -{ - if ( pixmaps_created ) - return; - pixmaps_created = true; - size_pix = new QPixmap( size_xpm ); -} - -BeClient::BeClient( Workspace *ws, WId w, QWidget *parent, const char *name ) - : Client( ws, w, parent, name, WResizeNoErase ) -{ - create_pixmaps(); - QGridLayout* g = new QGridLayout( this, 0, 0, 2 ); - g->addRowSpacing(1, 2); - g->setRowStretch( 2, 10 ); - g->addWidget( windowWrapper(), 2, 1 ); - g->addItem( new QSpacerItem( 0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding ) ); - g->addColSpacing(0, 2); - g->addColSpacing(2, 2); - g->addRowSpacing(3, 2); - - - - QHBoxLayout* hb = new QHBoxLayout; - g->addLayout( hb, 0, 1 ); - int fh = QMAX( 16, fontMetrics().lineSpacing()); - titlebar = new QSpacerItem(40, fh, QSizePolicy::Preferred, - QSizePolicy::Minimum ); - hb->addItem( titlebar ); - - hb->addStretch(); -} - - -BeClient::~BeClient() -{ -} - - -void BeClient::resizeEvent( QResizeEvent* e) -{ - Client::resizeEvent( e ); - doShape(); - if ( isVisibleToTLW() && !testWFlags( WNorthWestGravity ) ) { - // manual clearing without the titlebar (we selected WResizeNoErase ) - QPainter p( this ); - QRect t = titlebar->geometry(); - t.setTop( 0 ); - t.setLeft( 0 ); - QRegion r = rect(); - r = r.subtract( t ); - p.setClipRegion( r ); - p.eraseRect( rect() ); - } -} - -/*!\reimp - */ -void BeClient::captionChange( const QString& ) -{ - doShape(); - repaint(); -} - -void BeClient::paintEvent( QPaintEvent* ) -{ - QPainter p( this ); - QRect bar ( 0, 0, titlebar->geometry().right()+1, - titlebar->geometry().bottom() ); - qDrawWinPanel( &p, 0, bar.bottom()+2, width(), height() - bar.bottom()-2, - options->colorGroup(Options::Frame, false)); - qDrawWinPanel( &p, 2, bar.bottom()+4, width()-4, height() - bar.bottom()-6, - options->colorGroup(Options::Frame, true)); - - QRect t = titlebar->geometry(); - - bar.setBottom( bar.bottom() + 3 ); - p.setClipRect( bar ); - bar.setBottom( bar.bottom() + 2 ); - qDrawWinPanel( &p, bar, options->colorGroup(Options::TitleBar, isActive()), - FALSE, &options->colorGroup(Options::TitleBar, isActive()). - brush(QColorGroup::Background)); - p.setClipping( FALSE ); - - p.drawPixmap( t.right() - 20, t.center().y()-8, *size_pix ); - p.drawPixmap( t.left() +4, t.center().y()-miniIcon().height()/2, miniIcon() ); - t.setLeft( t.left() + 20 + 5 ); - p.setPen(options->color(Options::Font, isActive())); - p.setFont(options->font(isActive())); - p.drawText( t, AlignLeft|AlignVCenter, caption() ); -} - - -void BeClient::showEvent( QShowEvent* e) -{ - Client::showEvent( e ); - doShape(); - repaint(); -} - -void BeClient::doShape() -{ - QFontMetrics fm = fontMetrics(); - int cap = 20+20+10+10+fm.boundingRect(caption() ).width(); - titlebar->changeSize( QMIN( width(), cap), QMAX( 16, fm.lineSpacing()), - QSizePolicy::Preferred, QSizePolicy::Minimum ); - layout()->activate(); //#### this is broken!!!!! PAUL!!!!! - -// // // do it manually: #######remove this for Qt-2.01 - titlebar->setGeometry( QRect( titlebar->geometry().x(), titlebar->geometry().y(), - titlebar->sizeHint().width(), titlebar->sizeHint().height() ) ); - QRegion r( rect() ); - r = r.subtract( QRect( QPoint( titlebar->geometry().right()+1, 0), QPoint( width(), titlebar->geometry().bottom()) ) ); - setMask( r ); -} - -/*!\reimp - */ -void BeClient::activeChange( bool /* act */ ) -{ - repaint( 0, 0, width(), titlebar->geometry().bottom()+3, FALSE ); -} - -/*!\reimp - */ -Client::MousePosition BeClient::mousePosition( const QPoint& p ) const -{ - const int range = 16; - const int border = 4; - - int ly = titlebar->geometry().bottom(); - int lx = titlebar->geometry().right(); - if ( p.x() > titlebar->geometry().right() ) { - - if ( p.y() <= ly + range && p.x() >= width()-range) - return TopRight; - else if ( p.y() <= ly + border ) - return Top; - } else if ( p.y() < ly ) { - if ( p.y() > border && p.x() < lx - border ) - return Client::mousePosition( p ); - if ( p.y() < range && p.x() > lx - range ) - return TopRight; - else if ( p.x() > lx-border ) - return Right; - } - - return Client::mousePosition( p ); -} - - -void BeClient::mousePressEvent( QMouseEvent * e ) -{ - - Client::mousePressEvent( e ); -} - -void BeClient::mouseReleaseEvent( QMouseEvent * e ) -{ - Client::mouseReleaseEvent( e ); -} - - -void BeClient::mouseDoubleClickEvent( QMouseEvent * e ) -{ - if ( titlebar->geometry().contains( e->pos() ) ) - setShade( !isShade() ); - workspace()->requestFocus( this ); -} - - -void BeClient::windowWrapperShowEvent( QShowEvent* ) -{ - doShape(); -} diff --git a/beclient.h b/beclient.h deleted file mode 100644 index d83fc5252b..0000000000 --- a/beclient.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef BECLIENT_H -#define BECLIENT_H -#include "client.h" -class QToolButton; -class QLabel; -class QSpacerItem; - - -class BeClient : public Client -{ - Q_OBJECT -public: - BeClient( Workspace *ws, WId w, QWidget *parent=0, const char *name=0 ); - ~BeClient(); -protected: - void resizeEvent( QResizeEvent* ); - void windowWrapperShowEvent( QShowEvent* ); - void paintEvent( QPaintEvent* ); - void mousePressEvent( QMouseEvent * ); - void mouseReleaseEvent( QMouseEvent * ); - void mouseDoubleClickEvent( QMouseEvent * e ); - - void captionChange( const QString& name ); - - void showEvent( QShowEvent* ); - void activeChange( bool ); - - MousePosition mousePosition( const QPoint& p ) const; - -private: - QSpacerItem* titlebar; - void doShape(); -}; - - - -#endif diff --git a/nextclient.cpp b/nextclient.cpp deleted file mode 100644 index 2659ca039a..0000000000 --- a/nextclient.cpp +++ /dev/null @@ -1,290 +0,0 @@ -#include "nextclient.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "workspace.h" -#include "options.h" - -static unsigned char close_bits[] = { - 0x03, 0x03, 0x87, 0x03, 0xce, 0x01, 0xfc, 0x00, 0x78, 0x00, 0x78, 0x00, - 0xfc, 0x00, 0xce, 0x01, 0x87, 0x03, 0x03, 0x03}; - -static unsigned char iconify_bits[] = { - 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x03, 0xff, 0x03, 0xff, 0x03}; - -static unsigned char sticky_bits[] = { - 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0xfe, 0x01, 0xfe, 0x01, - 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00}; - -static unsigned char unsticky_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0xfe, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static KPixmap *aTitlePix=0; -static KPixmap *iTitlePix=0; -static KPixmap *aFramePix=0; -static KPixmap *iFramePix=0; -static KPixmap *aHandlePix=0; -static KPixmap *iHandlePix=0; -static bool pixmaps_created = false; - -static void create_pixmaps() -{ - if(pixmaps_created) - return; - pixmaps_created = true; - - aTitlePix = new KPixmap(); - aTitlePix->resize(32, 14); - KPixmapEffect::gradient(*aTitlePix, - options->color(Options::TitleBar, true), - options->color(Options::TitleBlend, true), - KPixmapEffect::VerticalGradient); - iTitlePix = new KPixmap(); - iTitlePix->resize(32, 14); - KPixmapEffect::gradient(*iTitlePix, - options->color(Options::TitleBar, false), - options->color(Options::TitleBlend, false), - KPixmapEffect::VerticalGradient); - // Bottom frame gradient - aFramePix = new KPixmap(); - aFramePix->resize(32, 6); - KPixmapEffect::gradient(*aFramePix, - options->color(Options::Frame, true).light(150), - options->color(Options::Frame, true).dark(120), - KPixmapEffect::VerticalGradient); - iFramePix = new KPixmap(); - iFramePix->resize(32, 6); - KPixmapEffect::gradient(*iFramePix, - options->color(Options::Frame, false).light(150), - options->color(Options::Frame, false).dark(120), - KPixmapEffect::VerticalGradient); - - // Handle gradient - aHandlePix = new KPixmap(); - aHandlePix->resize(32, 6); - KPixmapEffect::gradient(*aHandlePix, - options->color(Options::Handle, true).light(150), - options->color(Options::Handle, true).dark(120), - KPixmapEffect::VerticalGradient); - iHandlePix = new KPixmap(); - iHandlePix->resize(32, 6); - KPixmapEffect::gradient(*iHandlePix, - options->color(Options::Handle, false).light(150), - options->color(Options::Handle, false).dark(120), - KPixmapEffect::VerticalGradient); - -} - -NextButton::NextButton(QWidget *parent, const char *name, - const unsigned char *bitmap, int bw, int bh) - : QButton(parent, name) -{ - QPainter p; - - aBackground.resize(18, 18); - iBackground.resize(18, 18); - - QColor hColor(options->color(Options::ButtonBg, true)); - QColor lColor(options->color(Options::ButtonBlend, true)); - // only do this if we can dim/brighten equally - if(hColor.red() < 226 && hColor.green() < 226 && hColor.blue() < 226) - hColor.setRgb(hColor.red()+30, hColor.green()+30, hColor.blue()+30); - if(lColor.red() > 29 && lColor.green() > 29 && lColor.blue() > 29) - lColor.setRgb(lColor.red()-30, lColor.green()-30, lColor.blue()-30); - KPixmapEffect::gradient(iBackground, hColor, lColor, - KPixmapEffect::DiagonalGradient); - - hColor = options->color(Options::ButtonBlend, false); - lColor = options->color(Options::ButtonBg, false); - if(hColor.red() > 29 && hColor.green() > 29 && hColor.blue() > 29) - hColor.setRgb(hColor.red()-30, hColor.green()-30, hColor.blue()-30); - if(lColor.red() < 226 && lColor.green() < 226 && lColor.blue() < 226) - lColor.setRgb(lColor.red()+30, lColor.green()+30, lColor.blue()+30); - KPixmapEffect::gradient(aBackground, hColor, lColor, - KPixmapEffect::DiagonalGradient); - - KPixmap aInternal; - aInternal.resize(12, 12); - KPixmap iInternal; - iInternal.resize(12, 12); - KPixmapEffect::gradient(iInternal, - options->color(Options::ButtonBlend, true), - options->color(Options::ButtonBg, true), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(aInternal, - options->color(Options::ButtonBg, false), - options->color(Options::ButtonBlend, false), - KPixmapEffect::DiagonalGradient); - - p.begin(&iBackground); - p.drawPixmap(3, 3, iInternal); - p.setPen(Qt::black); - p.drawRect(0, 0, 18, 18); - p.end(); - - p.begin(&aBackground); - p.drawPixmap(3, 3, aInternal); - p.setPen(Qt::black); - p.drawRect(0, 0, 18, 18); - p.end(); - - resize(18, 18); - - if(bitmap) - setBitmap(bitmap, bw, bh); -} - -void NextButton::setBitmap(const unsigned char *bitmap, int w, int h) -{ - deco = QBitmap(w, h, bitmap, true); - deco.setMask(deco); - repaint(); -} - -void NextButton::drawButton(QPainter *p) -{ - if(isDown()) - p->drawPixmap(0, 0, aBackground); - else - p->drawPixmap(0, 0, iBackground); - - p->setPen(options->color(Options::ButtonFg, isDown())); - p->drawPixmap(isDown()? 5 : 4, isDown() ? 5 : 4, deco); -} - -NextClient::NextClient( Workspace *ws, WId w, QWidget *parent, - const char *name ) - : Client( ws, w, parent, name, WResizeNoErase ) -{ - create_pixmaps(); - QVBoxLayout *mainLayout = new QVBoxLayout(this); - QHBoxLayout *titleLayout = new QHBoxLayout(); - QHBoxLayout *windowLayout = new QHBoxLayout(); - - mainLayout->addLayout(titleLayout); - mainLayout->addLayout(windowLayout, 1); - mainLayout->addSpacing(6); - - windowLayout->addSpacing(1); - windowLayout->addWidget(windowWrapper(), 1); - windowLayout->addSpacing(1); - - - button[0] = new NextButton(this, "close", close_bits, 10, 10); - button[1] = new NextButton(this, "sticky"); - if(isSticky()) - button[1]->setBitmap(unsticky_bits, 10, 10); - else - button[1]->setBitmap(sticky_bits, 10, 10); - button[2] = new NextButton(this, "iconify", iconify_bits, 10, 10); - - connect( button[0], SIGNAL( clicked() ), this, ( SLOT( closeWindow() ) ) ); - connect( button[1], SIGNAL( clicked() ), this, ( SLOT( toggleSticky() ) ) ); - connect( button[2], SIGNAL( clicked() ), this, ( SLOT( iconify() ) ) ); - titleLayout->addWidget( button[2] ); - titlebar = new QSpacerItem(10, 16, QSizePolicy::Expanding, - QSizePolicy::Minimum ); - titleLayout->addItem(titlebar); - titleLayout->addWidget( button[1] ); - titleLayout->addWidget( button[0] ); - for ( int i = 0; i < 3; i++) { - button[i]->setMouseTracking( TRUE ); - button[i]->setFixedSize( 18, 18 ); - } - -} - -void NextClient::resizeEvent( QResizeEvent* e) -{ - Client::resizeEvent( e ); - - if ( isVisibleToTLW() && !testWFlags( WNorthWestGravity )) { - QPainter p( this ); - QRect t = titlebar->geometry(); - t.setTop( 0 ); - QRegion r = rect(); - r = r.subtract( t ); - p.setClipRegion( r ); - p.eraseRect( rect() ); - } -} - -void NextClient::captionChange( const QString& ) -{ - repaint( titlebar->geometry(), false ); -} - - -void NextClient::paintEvent( QPaintEvent* ) -{ - QPainter p( this ); - p.setPen(Qt::black); - p.drawRect(rect()); - - QRect t = titlebar->geometry(); - t.setTop(1); - p.drawTiledPixmap(t.x()+1, t.y()+1, t.width()-2, t.height()-2, - isActive() ? *aTitlePix : *iTitlePix); - qDrawShadePanel(&p, t.x(), t.y(), t.width(), t.height()-1, - options->colorGroup(Options::TitleBar, isActive())); - p.drawLine(t.x(), t.bottom(), t.right(), t.bottom()); - QRegion r = rect(); - r = r.subtract( t ); - p.setClipRegion( r ); - p.setClipping( FALSE ); - - t.setTop( 2 ); - t.setHeight(t.height()-4); - t.setLeft( t.left() + 4 ); - t.setRight( t.right() - 2 ); - - p.setPen(options->color(Options::Font, isActive())); - p.setFont(options->font(isActive())); - p.drawText( t, AlignCenter, caption() ); - - - qDrawShadePanel(&p, rect().x()+1, rect().bottom()-6, 24, 6, - options->colorGroup(Options::Handle, isActive()), false); - p.drawTiledPixmap(rect().x()+2, rect().bottom()-5, 22, 4, - isActive() ? *aHandlePix : *iHandlePix); - - qDrawShadePanel(&p, rect().x()+25, rect().bottom()-6, rect().width()-50, 6, - options->colorGroup(Options::Frame, isActive()), false); - p.drawTiledPixmap(rect().x()+26, rect().bottom()-5, rect().width()-52, 4, - isActive() ? *aFramePix : *iFramePix); - - qDrawShadePanel(&p, rect().right()-24, rect().bottom()-6, 24, 6, - options->colorGroup(Options::Handle, isActive()), false); - p.drawTiledPixmap(rect().right()-23, rect().bottom()-5, 22, 4, - isActive() ? *aHandlePix : *iHandlePix); -} - -void NextClient::mouseDoubleClickEvent( QMouseEvent * e ) -{ - if (titlebar->geometry().contains( e->pos() ) ) - setShade( !isShade() ); - workspace()->requestFocus( this ); -} - -void NextClient::stickyChange(bool on) -{ - if(on) - button[1]->setBitmap(unsticky_bits, 8, 8); - else - button[1]->setBitmap(sticky_bits, 8, 8); -} - - -void NextClient::init() -{ - Client::init(); -} - diff --git a/nextclient.h b/nextclient.h deleted file mode 100644 index 7e2cfc44cd..0000000000 --- a/nextclient.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef __NEXTCLIENT_H -#define __NEXTCLIENT_H - -#include -#include -#include -#include "client.h" -class QLabel; -class QSpacerItem; - - -// get rid of autohide :P -class NextButton : public QButton -{ -public: - NextButton(QWidget *parent=0, const char *name=0, - const unsigned char *bitmap=NULL, int bw=0, int bh=0); - void setBitmap(const unsigned char *bitmap, int bw, int bh); -protected: - virtual void drawButton(QPainter *p); - void drawButtonLabel(QPainter *){;} - KPixmap aBackground, iBackground; - QBitmap deco; -}; - -class NextClient : public Client -{ - Q_OBJECT -public: - NextClient( Workspace *ws, WId w, QWidget *parent=0, const char *name=0 ); - ~NextClient(){;} -protected: - void resizeEvent( QResizeEvent* ); - void paintEvent( QPaintEvent* ); - - void mouseDoubleClickEvent( QMouseEvent * ); - void init(); - void captionChange( const QString& name ); - void stickyChange(bool on); -private: - NextButton* button[3]; - QSpacerItem* titlebar; -}; - - - - -#endif diff --git a/systemclient.cpp b/systemclient.cpp deleted file mode 100644 index eb2413429c..0000000000 --- a/systemclient.cpp +++ /dev/null @@ -1,399 +0,0 @@ -#include "systemclient.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "workspace.h" -#include "options.h" - -static unsigned char iconify_bits[] = { - 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[] = { - 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}; - -static unsigned char sticky_bits[] = { - 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00}; - -static unsigned char question_bits[] = { - 0x3c, 0x66, 0x60, 0x30, 0x18, 0x00, 0x18, 0x18}; - -static QPixmap *titlePix=0; -static KPixmap *aFramePix=0; -static KPixmap *iFramePix=0; -static KPixmap *aHandlePix=0; -static KPixmap *iHandlePix=0; -static bool pixmaps_created = false; - -static void create_pixmaps() -{ - if(pixmaps_created) - return; - pixmaps_created = true; - - // titlebar - QPainter p; - QPainter maskPainter; - int i, y; - titlePix = new QPixmap(32, 14); - QBitmap mask(32, 14); - mask.fill(Qt::color0); - - p.begin(titlePix); - maskPainter.begin(&mask); - maskPainter.setPen(Qt::color1); - for(i=0, y=2; i < 4; ++i, y+=3){ - p.setPen(options->color(Options::TitleBar, true).light(150)); - p.drawLine(0, y, 31, y); - maskPainter.drawLine(0, y, 31, y); - p.setPen(options->color(Options::TitleBar, true).dark(120)); - p.drawLine(0, y+1, 31, y+1); - maskPainter.drawLine(0, y+1, 31, y+1); - } - p.end(); - maskPainter.end(); - titlePix->setMask(mask); - - // Bottom frame gradient - aFramePix = new KPixmap(); - aFramePix->resize(32, 6); - KPixmapEffect::gradient(*aFramePix, - options->color(Options::Frame, true).light(150), - options->color(Options::Frame, true).dark(120), - KPixmapEffect::VerticalGradient); - iFramePix = new KPixmap(); - iFramePix->resize(32, 6); - KPixmapEffect::gradient(*iFramePix, - options->color(Options::Frame, false).light(150), - options->color(Options::Frame, false).dark(120), - KPixmapEffect::VerticalGradient); - - // Handle gradient - aHandlePix = new KPixmap(); - aHandlePix->resize(32, 6); - KPixmapEffect::gradient(*aHandlePix, - options->color(Options::Handle, true).light(150), - options->color(Options::Handle, true).dark(120), - KPixmapEffect::VerticalGradient); - iHandlePix = new KPixmap(); - iHandlePix->resize(32, 6); - KPixmapEffect::gradient(*iHandlePix, - options->color(Options::Handle, false).light(150), - options->color(Options::Handle, false).dark(120), - KPixmapEffect::VerticalGradient); - -} - - -SystemButton::SystemButton(QWidget *parent, const char *name, - const unsigned char *bitmap) - : QButton(parent, name) -{ - QPainter p; - - aBackground.resize(14, 14); - iBackground.resize(14, 14); - - QColor hColor(options->color(Options::ButtonBg, true)); - QColor lColor(options->color(Options::ButtonBlend, true)); - // only do this if we can dim/brighten equally - if(hColor.red() < 226 && hColor.green() < 226 && hColor.blue() < 226) - hColor.setRgb(hColor.red()+30, hColor.green()+30, hColor.blue()+30); - if(lColor.red() > 29 && lColor.green() > 29 && lColor.blue() > 29) - lColor.setRgb(lColor.red()-30, lColor.green()-30, lColor.blue()-30); - KPixmapEffect::gradient(iBackground, hColor, lColor, - KPixmapEffect::DiagonalGradient); - - hColor = options->color(Options::ButtonBlend, false); - lColor = options->color(Options::ButtonBg, false); - if(hColor.red() > 29 && hColor.green() > 29 && hColor.blue() > 29) - hColor.setRgb(hColor.red()-30, hColor.green()-30, hColor.blue()-30); - if(lColor.red() < 226 && lColor.green() < 226 && lColor.blue() < 226) - lColor.setRgb(lColor.red()+30, lColor.green()+30, lColor.blue()+30); - KPixmapEffect::gradient(aBackground, hColor, lColor, - KPixmapEffect::DiagonalGradient); - - KPixmap aInternal; - aInternal.resize(10, 10); - KPixmap iInternal; - iInternal.resize(10, 10); - KPixmapEffect::gradient(iInternal, - options->color(Options::ButtonBlend, true), - options->color(Options::ButtonBg, true), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(aInternal, - options->color(Options::ButtonBg, false), - options->color(Options::ButtonBlend, false), - KPixmapEffect::DiagonalGradient); - - 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.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::ButtonFg, true)); - p.drawRect(0, 0, 14, 14); - - p.end(); - - resize(14, 14); - - if(bitmap) - setBitmap(bitmap); -} - -void SystemButton::setBitmap(const unsigned char *bitmap) -{ - deco = QBitmap(8, 8, bitmap, true); - deco.setMask(deco); - repaint(); -} - -void SystemButton::drawButton(QPainter *p) -{ - if(isDown()) - p->drawPixmap(0, 0, aBackground); - else - p->drawPixmap(0, 0, iBackground); - - p->setPen(options->color(Options::ButtonFg, isDown())); - p->drawPixmap(isDown() ? 4 : 3, isDown() ? 4 : 3, deco); -} - -SystemClient::SystemClient( Workspace *ws, WId w, QWidget *parent, - const char *name ) - : Client( ws, w, parent, name, WResizeNoErase ) -{ - create_pixmaps(); - bool help = providesContextHelp(); - - QGridLayout* g = new QGridLayout(this, 0, 0, 2); - g->setRowStretch(1, 10); - g->addWidget(windowWrapper(), 1, 1 ); - g->addItem( new QSpacerItem( 0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding ) ); - - g->addColSpacing(0, 2); - g->addColSpacing(2, 2); - g->addRowSpacing(2, 6); - - button[0] = new SystemButton(this, "close", close_bits); - button[1] = new SystemButton(this, "sticky"); - if(isSticky()) - button[1]->setBitmap(unsticky_bits); - else - button[1]->setBitmap(sticky_bits); - button[2] = new SystemButton(this, "iconify", iconify_bits); - button[3] = new SystemButton(this, "maximize", maximize_bits); - if(help){ - button[4] = new SystemButton(this, "help", question_bits); - connect( button[4], SIGNAL( clicked() ), this, ( SLOT( contextHelp() ) ) ); - } - - connect( button[0], SIGNAL( clicked() ), this, ( SLOT( closeWindow() ) ) ); - connect( button[1], SIGNAL( clicked() ), this, ( SLOT( toggleSticky() ) ) ); - connect( button[2], SIGNAL( clicked() ), this, ( SLOT( iconify() ) ) ); - connect( button[3], SIGNAL( clicked() ), this, ( SLOT( maximize() ) ) ); - - QHBoxLayout* hb = new QHBoxLayout(); - g->addLayout( hb, 0, 1 ); - hb->addSpacing(2); - hb->addWidget( button[0] ); - titlebar = new QSpacerItem(10, 16, QSizePolicy::Expanding, - QSizePolicy::Minimum); - hb->addItem(titlebar); - hb->addSpacing(3); - if(help){ - hb->addWidget( button[4] ); - hb->addSpacing(1); - } - hb->addWidget( button[1] ); - hb->addSpacing(1); - hb->addWidget( button[2] ); - hb->addSpacing(1); - hb->addWidget( button[3] ); - hb->addSpacing(3); - - for ( int i = 0; i < (help ? 5 : 4); i++) { - button[i]->setMouseTracking( TRUE ); - button[i]->setFixedSize( 14, 14 ); - } -} - -void SystemClient::resizeEvent( QResizeEvent* e) -{ - Client::resizeEvent( e ); - doShape(); - if ( isVisibleToTLW() && !testWFlags( WNorthWestGravity )) { - QPainter p( this ); - QRect t = titlebar->geometry(); - t.setTop( 0 ); - QRegion r = rect(); - r = r.subtract( t ); - p.setClipRegion( r ); - p.eraseRect( rect() ); - } -} - -void SystemClient::captionChange( const QString& ) -{ - repaint( titlebar->geometry(), false ); -} - -void SystemClient::drawRoundFrame(QPainter &p, int x, int y, int w, int h) -{ - int x2=x+w-1, y2=y+h-1; - QPointArray hPntArray, lPntArray; - hPntArray.putPoints(0, 12, x+4,y+1, x+5,y+1, // top left - x+3,y+2, x+2,y+3, x+1,y+4, x+1,y+5, - x+1,y2-5, x+1,y2-4, x+2,y2-3, // half corners - x2-5,y+1, x2-4,y+1, x2-3,y+2); - - lPntArray.putPoints(0, 17, x2-5,y2-1, x2-4,y2-1, // btm right - x2-3,y2-2, x2-2,y2-3, x2-1,y2-5, x2-1,y2-4, - - x+3,y2-2, x+4,y2-1, x+5,y2-1, //half corners - x2-2,y+3, x2-1,y+4, x2-1,y+5, - - x2-5,y2-2, x2-4,y2-2, // testing - x2-3,y2-3, - x2-2,y2-5, x2-2,y2-4); - - p.setPen(options->colorGroup(Options::Frame, isActive()).light()); - p.drawLine(x+6, y, x2-6, y); - p.drawLine(0, y+6, 0, y2-6); - p.drawPoints(hPntArray); - p.setPen(options->colorGroup(Options::Frame, isActive()).dark()); - p.drawLine(x+6, y2, x2-6, y2); - p.drawLine(x+6, y2-1, x2-6, y2-1); - p.drawLine(x2, y+6, x2, y2-6); - p.drawLine(x2-1, y+6, x2-1, y2-6); - p.drawPoints(lPntArray); -} - -void SystemClient::paintEvent( QPaintEvent* ) -{ - QPainter p( this ); - QRect t = titlebar->geometry(); - t.setTop( 1 ); - - QBrush fillBrush(colorGroup().brush(QColorGroup::Background).pixmap() ? - colorGroup().brush(QColorGroup::Background) : - options->colorGroup(Options::Frame, isActive()). - brush(QColorGroup::Button)); - - p.fillRect(rect(), fillBrush); - drawRoundFrame(p, 0, 0, width(), height()); - t.setTop( 2 ); - if(isActive()) - p.drawTiledPixmap(t, *titlePix); - - QRegion r = rect(); - r = r.subtract( t ); - p.setClipRegion( r ); - p.setClipping( FALSE ); - - t.setTop( 2 ); - t.setLeft( t.left() + 4 ); - t.setRight( t.right() - 2 ); - - p.setPen(options->color(Options::Font, isActive())); - p.setFont(options->font(isActive())); - 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(), fillBrush); - } - - p.drawText( t, AlignCenter, caption() ); - - p.setPen(options->colorGroup(Options::Frame, isActive()).light()); - p.drawLine(width()-20, height()-7, width()-10, height()-7); - p.drawLine(width()-20, height()-5, width()-10, height()-5); - p.setPen(options->colorGroup(Options::Frame, isActive()).dark()); - p.drawLine(width()-20, height()-6, width()-10, height()-6); - p.drawLine(width()-20, height()-4, width()-10, height()-4); -} - -#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) - -void SystemClient::doShape() -{ - // using a bunch of QRect lines seems much more efficent than bitmaps or - // point arrays - - QRegion mask(QRect(6, 0, width()-12, height())); - mask += QRegion(QRect(5, 1, 1, height()-2)); // left - mask += QRegion(QRect(4, 1, 1, height()-2)); - mask += QRegion(QRect(3, 2, 1, height()-4)); - mask += QRegion(QRect(2, 3, 1, height()-6)); - mask += QRegion(QRect(1, 4, 1, height()-8)); - mask += QRegion(QRect(0, 6, 1, height()-12)); - int x2 = width()-1; - mask += QRegion(QRect(x2-5, 1, 1, height()-2)); // right - mask += QRegion(QRect(x2-4, 1, 1, height()-2)); - mask += QRegion(QRect(x2-3, 2, 1, height()-4)); - mask += QRegion(QRect(x2-2, 3, 1, height()-6)); - mask += QRegion(QRect(x2-1, 4, 1, height()-8)); - mask += QRegion(QRect(x2, 6, 1, height()-12)); - - setMask(mask); - - -} - -void SystemClient::showEvent(QShowEvent *ev) -{ - Client::showEvent(ev); - doShape(); - repaint(); -} - -void SystemClient::windowWrapperShowEvent( QShowEvent* ) -{ - doShape(); -} - -void SystemClient::mouseDoubleClickEvent( QMouseEvent * e ) -{ - if (titlebar->geometry().contains( e->pos() ) ) - setShade( !isShade() ); - workspace()->requestFocus( this ); -} - -void SystemClient::stickyChange(bool on) -{ - button[1]->setBitmap(on ? unsticky_bits : sticky_bits); -} - -void SystemClient::maximizeChange(bool m) -{ - button[3]->setBitmap(m ? minmax_bits : maximize_bits); -} - -void SystemClient::init() -{ - // -} - - diff --git a/systemclient.h b/systemclient.h deleted file mode 100644 index 5e61ae5647..0000000000 --- a/systemclient.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef __SYSTEMCLIENT_H -#define __SYSTEMCLIENT_H - -#include -#include -#include -#include "client.h" -class QLabel; -class QSpacerItem; - - -// get rid of autohide :P -class SystemButton : public QButton -{ -public: - SystemButton(QWidget *parent=0, const char *name=0, - const unsigned char *bitmap=NULL); - void setBitmap(const unsigned char *bitmap); -protected: - virtual void drawButton(QPainter *p); - void drawButtonLabel(QPainter *){;} - KPixmap aBackground, iBackground; - QBitmap deco; -}; - -class SystemClient : public Client -{ - Q_OBJECT -public: - SystemClient( Workspace *ws, WId w, QWidget *parent=0, const char *name=0 ); - ~SystemClient(){;} -protected: - void drawRoundFrame(QPainter &p, int x, int y, int w, int h); - void resizeEvent( QResizeEvent* ); - void paintEvent( QPaintEvent* ); - void showEvent( QShowEvent* ); - void windowWrapperShowEvent( QShowEvent* ); - void mouseDoubleClickEvent( QMouseEvent * ); - void init(); - void captionChange( const QString& name ); - void stickyChange(bool on); - void maximizeChange(bool m); - void doShape(); -private: - SystemButton* button[5]; - QSpacerItem* titlebar; -}; - - - - -#endif