diff options
Diffstat (limited to 'kwin-styles/system')
-rw-r--r-- | kwin-styles/system/CMakeLists.txt | 32 | ||||
-rw-r--r-- | kwin-styles/system/Makefile.am | 21 | ||||
-rw-r--r-- | kwin-styles/system/system.desktop | 27 | ||||
-rw-r--r-- | kwin-styles/system/systemclient.cpp | 737 | ||||
-rw-r--r-- | kwin-styles/system/systemclient.h | 113 |
5 files changed, 0 insertions, 930 deletions
diff --git a/kwin-styles/system/CMakeLists.txt b/kwin-styles/system/CMakeLists.txt deleted file mode 100644 index 09a3a966..00000000 --- a/kwin-styles/system/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - -##### other data ################################ - -install( FILES system.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_system ############################### - -tde_add_kpart( twin3_system AUTOMOC - SOURCES systemclient.cpp - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/system/Makefile.am b/kwin-styles/system/Makefile.am deleted file mode 100644 index 5b401370..00000000 --- a/kwin-styles/system/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ - -INCLUDES = $(all_includes) - -kde_module_LTLIBRARIES = twin3_system.la - -twin3_system_la_SOURCES = systemclient.cpp -twin3_system_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -#twin_system_la_LDFLAGS = $(all_libraries) -avoid-version -module $(KDE_RPATH) $(KDE_MT_LDFLAGS) -twin3_system_la_LIBADD = $(LIB_TDEUI) -ltdecorations - -METASOURCES = AUTO -noinst_HEADERS = systemclient.h - -lnkdir = $(kde_datadir)/twin/ -lnk_DATA = system.desktop - -EXTRA_DIST = $(lnk_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/system/system.desktop b/kwin-styles/system/system.desktop deleted file mode 100644 index 94156b29..00000000 --- a/kwin-styles/system/system.desktop +++ /dev/null @@ -1,27 +0,0 @@ -[Desktop Entry] -Name=System++ -Name[br]=Reizhiad++ -Name[cs]=Systém++ -Name[cy]=Cysawd++ -Name[eo]=Sistem++ -Name[fa]=سیستم++ -Name[fi]=Järjestelmä++ -Name[fr]=Système++ -Name[fy]=Systeem++ -Name[hi]=सिस्टम++ -Name[it]=Sistem++ -Name[ja]=システム++ -Name[lt]=Sistema++ -Name[lv]=Sistēma++ -Name[nds]=Systeem++ -Name[nl]=Systeem++ -Name[pa]=ਸਿਸਟਮ++ -Name[sl]=Sistem++ -Name[ta]=தளம்++ -Name[tg]=Системаи++ -Name[th]=แบบ System++ -Name[tr]=Sistem++ -Name[ven]=Sisitemu++ -Name[xh]=Indlela esetyenziswayo++ -Name[zu]=Indlela esetshenziswayo++ -X-KDE-Library=twin3_system diff --git a/kwin-styles/system/systemclient.cpp b/kwin-styles/system/systemclient.cpp deleted file mode 100644 index a676a02a..00000000 --- a/kwin-styles/system/systemclient.cpp +++ /dev/null @@ -1,737 +0,0 @@ -#include "systemclient.h" - -#include <tqlayout.h> -#include <tqdrawutil.h> -#include <tqbitmap.h> -#include <tqtooltip.h> -#include <tqlabel.h> -#include <tqcursor.h> - -#include <kpixmapeffect.h> -#include <kdrawutil.h> -#include <klocale.h> -#include <kapplication.h> -#include <kdebug.h> - -// Default button tqlayout -const char default_left[] = "X"; -const char default_right[] = "HSIA"; - -namespace System { - -static unsigned char iconify_bits[] = { - 0x00, 0x00, 0xff, 0xff, 0x7e, 0x3c, 0x18, 0x00}; - -static unsigned char maximize_bits[] = { - 0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x00, 0x00}; - -static unsigned char r_minmax_bits[] = { - 0x0c, 0x18, 0x33, 0x67, 0xcf, 0x9f, 0x3f, 0x3f}; - -static unsigned char l_minmax_bits[] = { - 0x30, 0x18, 0xcc, 0xe6, 0xf3, 0xf9, 0xfc, 0xfc}; - -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 KPixmap *aUpperGradient=0; -static KPixmap *iUpperGradient=0; - -static KPixmap *btnPix=0; -static KPixmap *btnPixDown=0; -static KPixmap *iBtnPix=0; -static KPixmap *iBtnPixDown=0; -static TQColor *btnForeground; - -static bool pixmaps_created = false; - -static void drawButtonFrame(KPixmap *pix, const TQColorGroup &g) -{ - TQPainter p; - p.begin(pix); - p.setPen(g.mid()); - p.drawLine(0, 0, 13, 0); - p.drawLine(0, 0, 0, 13); - p.setPen(g.light()); - p.drawLine(13, 0, 13, 13); - p.drawLine(0, 13, 13, 13); - p.setPen(g.dark()); - p.drawRect(1, 1, 12, 12); - p.end(); -} - -static void create_pixmaps() -{ - if(pixmaps_created) - return; - pixmaps_created = true; - - if(TQPixmap::defaultDepth() > 8){ - // titlebar - aUpperGradient = new KPixmap; - aUpperGradient->resize(32, 18); - iUpperGradient = new KPixmap; - iUpperGradient->resize(32, 18); - TQColor bgColor = kapp->tqpalette().active().background(); - KPixmapEffect::gradient(*aUpperGradient, - KDecoration::options()->color(KDecorationOptions::ColorFrame, true).light(130), - bgColor, - KPixmapEffect::VerticalGradient); - KPixmapEffect::gradient(*iUpperGradient, - KDecoration::options()->color(KDecorationOptions::ColorFrame, false).light(130), - bgColor, - KPixmapEffect::VerticalGradient); - - // buttons - KPixmap aPix; - aPix.resize(12, 12); - KPixmap iPix; - iPix.resize(12, 12); - KPixmap aInternal; - aInternal.resize(8, 8); - KPixmap iInternal; - iInternal.resize(8, 8); - - TQColor hColor(KDecoration::options()->color(KDecorationOptions::ColorButtonBg, false)); - KPixmapEffect::gradient(iInternal, - hColor.dark(120), - hColor.light(120), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(iPix, - hColor.light(150), - hColor.dark(150), - KPixmapEffect::DiagonalGradient); - - hColor =KDecoration::options()->color(KDecorationOptions::ColorButtonBg, true); - KPixmapEffect::gradient(aInternal, - hColor.dark(120), - hColor.light(120), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(aPix, - hColor.light(150), - hColor.dark(150), - KPixmapEffect::DiagonalGradient); - bitBlt(TQT_TQPAINTDEVICE(&aPix), 1, 1, TQT_TQPAINTDEVICE(&aInternal), 0, 0, 8, 8, TQt::CopyROP, true); - bitBlt(TQT_TQPAINTDEVICE(&iPix), 1, 1, TQT_TQPAINTDEVICE(&iInternal), 0, 0, 8, 8, TQt::CopyROP, true); - - // normal buttons - btnPix = new KPixmap; - btnPix->resize(14, 14); - bitBlt(TQT_TQPAINTDEVICE(btnPix), 2, 2, TQT_TQPAINTDEVICE(&aPix), 0, 0, 10, 10, TQt::CopyROP, true); - drawButtonFrame(btnPix, KDecoration::options()->tqcolorGroup(KDecorationOptions::ColorFrame, true)); - - iBtnPix = new KPixmap; - iBtnPix->resize(14, 14); - bitBlt(TQT_TQPAINTDEVICE(iBtnPix), 2, 2, TQT_TQPAINTDEVICE(&iPix), 0, 0, 10, 10, TQt::CopyROP, true); - drawButtonFrame(iBtnPix, KDecoration::options()->tqcolorGroup(KDecorationOptions::ColorFrame, false)); - - - // pressed buttons - hColor = KDecoration::options()->color(KDecorationOptions::ColorButtonBg, false); - KPixmapEffect::gradient(iInternal, - hColor.light(130), - hColor.dark(130), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(iPix, - hColor.light(150), - hColor.dark(150), - KPixmapEffect::DiagonalGradient); - - hColor =KDecoration::options()->color(KDecorationOptions::ColorButtonBg, true); - KPixmapEffect::gradient(aInternal, - hColor.light(130), - hColor.dark(130), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(aPix, - hColor.light(150), - hColor.dark(150), - KPixmapEffect::DiagonalGradient); - bitBlt(TQT_TQPAINTDEVICE(&aPix), 1, 1, TQT_TQPAINTDEVICE(&aInternal), 0, 0, 8, 8, TQt::CopyROP, true); - bitBlt(TQT_TQPAINTDEVICE(&iPix), 1, 1, TQT_TQPAINTDEVICE(&iInternal), 0, 0, 8, 8, TQt::CopyROP, true); - - btnPixDown = new KPixmap; - btnPixDown->resize(14, 14); - bitBlt(TQT_TQPAINTDEVICE(btnPixDown), 2, 2, TQT_TQPAINTDEVICE(&aPix), 0, 0, 10, 10, TQt::CopyROP, true); - drawButtonFrame(btnPixDown, KDecoration::options()->tqcolorGroup(KDecorationOptions::ColorFrame, - true)); - - iBtnPixDown = new KPixmap; - iBtnPixDown->resize(14, 14); - bitBlt(TQT_TQPAINTDEVICE(iBtnPixDown), 2, 2, TQT_TQPAINTDEVICE(&iPix), 0, 0, 10, 10, TQt::CopyROP, true); - drawButtonFrame(iBtnPixDown, KDecoration::options()->tqcolorGroup(KDecorationOptions::ColorFrame, - false)); - } - if(tqGray(KDecoration::options()->color(KDecorationOptions::ColorButtonBg, true).rgb()) > 128) - btnForeground = new TQColor(TQt::black); - else - btnForeground = new TQColor(TQt::white); -} - -static void delete_pixmaps() -{ - if(aUpperGradient){ - delete aUpperGradient; - delete iUpperGradient; - delete btnPix; - delete btnPixDown; - delete iBtnPix; - delete iBtnPixDown; - aUpperGradient = 0; - } - delete btnForeground; - pixmaps_created = false; -} - -SystemButton::SystemButton(SystemClient *parent, const char *name, - const unsigned char *bitmap, const TQString& tip) -: TQButton(parent->widget(), name) -{ - setTipText(tip); - setBackgroundMode( NoBackground ); - setCursor(ArrowCursor); - resize(14, 14); - if(bitmap) - setBitmap(bitmap); - client = parent; -} - -void SystemButton::setTipText(const TQString &tip) -{ - if (KDecoration::options()->showTooltips()) - { - TQToolTip::remove(this ); - TQToolTip::add(this, tip ); - } -} - - -TQSize SystemButton::tqsizeHint() const -{ - return(TQSize(14, 14)); -} - -void SystemButton::reset() -{ - tqrepaint(false); -} - -void SystemButton::setBitmap(const unsigned char *bitmap) -{ - deco = TQBitmap(8, 8, bitmap, true); - deco.setMask(deco); - tqrepaint(); -} - -void SystemButton::drawButton(TQPainter *p) -{ - if(btnPixDown){ - if(client->isActive()) - p->drawPixmap(0, 0, isDown() ? *btnPixDown : *btnPix); - else - p->drawPixmap(0, 0, isDown() ? *iBtnPixDown : *iBtnPix); - } - else{ - TQColorGroup g = KDecoration::options()->tqcolorGroup(KDecorationOptions::ColorFrame, - client->isActive()); - int x2 = width()-1; - int y2 = height()-1; - // outer frame - p->setPen(g.mid()); - p->drawLine(0, 0, x2, 0); - p->drawLine(0, 0, 0, y2); - p->setPen(g.light()); - p->drawLine(x2, 0, x2, y2); - p->drawLine(0, x2, y2, x2); - p->setPen(g.dark()); - p->drawRect(1, 1, width()-2, height()-2); - // inner frame - g = KDecoration::options()->tqcolorGroup(KDecorationOptions::ColorButtonBg, client->isActive()); - p->fillRect(3, 3, width()-6, height()-6, g.background()); - p->setPen(isDown() ? g.mid() : g.light()); - p->drawLine(2, 2, x2-2, 2); - p->drawLine(2, 2, 2, y2-2); - p->setPen(isDown() ? g.light() : g.mid()); - p->drawLine(x2-2, 2, x2-2, y2-2); - p->drawLine(2, x2-2, y2-2, x2-2); - - } - - if(!deco.isNull()){ - p->setPen(*btnForeground); - p->drawPixmap(isDown() ? 4 : 3, isDown() ? 4 : 3, deco); - } -} - -void SystemButton::mousePressEvent( TQMouseEvent* e ) -{ - last_button = e->button(); - TQMouseEvent me ( e->type(), e->pos(), e->globalPos(), Qt::LeftButton, e->state() ); - TQButton::mousePressEvent( &me ); -} - -void SystemButton::mouseReleaseEvent( TQMouseEvent* e ) -{ - last_button = e->button(); - TQMouseEvent me ( e->type(), e->pos(), e->globalPos(), Qt::LeftButton, e->state() ); - TQButton::mouseReleaseEvent( &me ); -} - - - -SystemClient::SystemClient(KDecorationBridge* bridge, KDecorationFactory* factory) - : KDecoration(bridge, factory) -{} - -SystemClient::~SystemClient() -{ - for (int n=0; n<ButtonTypeCount; n++) { - if (button[n]) delete button[n]; - } -} - -void SystemClient::init() -{ - createMainWidget(0); - widget()->installEventFilter( this ); - - TQGridLayout* g = new TQGridLayout(widget(), 0, 0, 2); - - if (isPreview()) - { - g->addWidget(new TQLabel(i18n("<center><b>System++ preview</b></center>"), widget()), 1, 1); - } - else - { - g->addItem(new TQSpacerItem( 0, 0 ), 1, 1); // no widget in the middle - } -// g->addItem( new TQSpacerItem( 0, 0, TQSizePolicy::Fixed, TQSizePolicy::Expanding ) ); - g->setRowStretch(1, 10); - - g->addColSpacing(0, 2); - g->addColSpacing(2, 2); - g->addRowSpacing(2, 6); - - TQBoxLayout* hb = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - hb->setResizeMode(TQLayout::FreeResize); - g->addLayout( hb, 0, 1 ); - hb->addSpacing(3); - - titlebar = new TQSpacerItem(10, 14, TQSizePolicy::Expanding, - TQSizePolicy::Minimum); - - // setup titlebar buttons - for (int n=0; n<ButtonTypeCount; n++) button[n] = 0; - addButtons(hb, KDecoration::options()->customButtonPositions() ? - KDecoration::options()->titleButtonsLeft() : TQString(default_left)); - hb->addSpacing(2); - hb->addItem(titlebar); - hb->addSpacing(3); - addButtons(hb, KDecoration::options()->customButtonPositions() ? - KDecoration::options()->titleButtonsRight() : TQString(default_right)); - hb->addSpacing(2); - - widget()->setBackgroundMode(TQWidget::NoBackground); - recalcTitleBuffer(); -} - -void SystemClient::addButtons(TQBoxLayout *hb, const TQString& s) -{ - unsigned char *minmax_bits; - int l_max = KDecoration::options()->titleButtonsLeft().find('A'); - if (s.length() > 0) { - for (unsigned n=0; n < s.length(); n++) { - switch (s[n]) { - case 'X': // Close button - if ((!button[ButtonClose]) && isCloseable()) { - button[ButtonClose] = new SystemButton(this, "close", NULL, i18n("Close")); - connect( button[ButtonClose], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( closeWindow() ) ) ); - hb->addWidget(button[ButtonClose]); - hb->addSpacing(1); - } - break; - - case 'S': // Sticky button - if (!button[ButtonSticky]) { - button[ButtonSticky] = new SystemButton(this, "sticky", NULL, i18n("On all desktops")); - if(isOnAllDesktops()) - button[ButtonSticky]->setBitmap(unsticky_bits); - else - button[ButtonSticky]->setBitmap(sticky_bits); - connect( button[ButtonSticky], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( toggleOnAllDesktops() ) ) ); - hb->addWidget(button[ButtonSticky]); - hb->addSpacing(1); - } - break; - - case 'I': // Minimize button - if ((!button[ButtonMinimize]) && isMinimizable()) { - button[ButtonMinimize] = new SystemButton(this, "iconify", iconify_bits, i18n("Minimize")); - connect( button[ButtonMinimize], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( minimize() ) ) ); - hb->addWidget(button[ButtonMinimize]); - hb->addSpacing(1); - } - break; - - case 'A': // Maximize button - if ((!button[ButtonMaximize]) && isMaximizable()) { - if (maximizeMode()==MaximizeFull) { - if (KDecoration::options()->customButtonPositions() && (l_max>-1)) - minmax_bits = l_minmax_bits; - else - minmax_bits = r_minmax_bits; - button[ButtonMaximize] = new SystemButton(this, "maximize", minmax_bits, i18n("Restore")); - } - else - button[ButtonMaximize] = new SystemButton(this, "maximize", maximize_bits, i18n("Maximize")); - connect( button[ButtonMaximize], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( maxButtonClicked() ) ) ); - hb->addWidget(button[ButtonMaximize]); - hb->addSpacing(1); - } - break; - - case 'H': // Help button - if ((!button[ButtonHelp]) && providesContextHelp()) { - button[ButtonHelp] = new SystemButton(this, "help", question_bits, i18n("Help")); - connect( button[ButtonHelp], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( showContextHelp() ) ) ); - hb->addWidget(button[ButtonHelp]); - hb->addSpacing(1); - } - break; - - } - } - } -} - -bool SystemClient::eventFilter( TQObject* o, TQEvent* e ) -{ - if( TQT_BASE_OBJECT(o) != TQT_BASE_OBJECT(widget())) - return false; - switch( e->type()) - { - case TQEvent::Resize: - resizeEvent(TQT_TQRESIZEEVENT( e ) ); - return true; - case TQEvent::Paint: - paintEvent(TQT_TQPAINTEVENT( e ) ); - return true; - case TQEvent::MouseButtonDblClick: - mouseDoubleClickEvent(TQT_TQMOUSEEVENT( e ) ); - return true; - case TQEvent::MouseButtonPress: - processMousePressEvent(TQT_TQMOUSEEVENT( e ) ); - return true; - case TQEvent::Wheel: - wheelEvent( TQT_TQWHEELEVENT( e )); - return true; - default: - break; - } - return false; -} - -void SystemClient::reset(unsigned long) -{ - titleBuffer.resize(0, 0); - recalcTitleBuffer(); - widget()->tqrepaint(); - if (button[ButtonClose]) - button[ButtonClose]->reset(); - if (button[ButtonSticky]) - button[ButtonSticky]->reset(); - if (button[ButtonMinimize]) - button[ButtonMinimize]->reset(); - if (button[ButtonMaximize]) - button[ButtonMaximize]->reset(); - if (button[ButtonHelp]) - button[ButtonHelp]->reset(); -} - -void SystemClient::maxButtonClicked() -{ - maximize( button[ButtonMaximize]->last_button ); -} - -void SystemClient::resizeEvent( TQResizeEvent* ) -{ - //Client::resizeEvent( e ); - recalcTitleBuffer(); - doShape(); - /* - if ( isVisibleToTLW() && !testWFlags( WStaticContents )) { - TQPainter p( this ); - TQRect t = titlebar->tqgeometry(); - t.setTop( 0 ); - TQRegion r = rect(); - r = r.subtract( t ); - p.setClipRegion( r ); - p.eraseRect( rect() ); - }*/ -} - -void SystemClient::resize( const TQSize& s ) -{ - widget()->resize( s ); -} - - -TQSize SystemClient::tqminimumSize() const -{ - return widget()->tqminimumSize(); -} - - -void SystemClient::recalcTitleBuffer() -{ - if(oldTitle == caption() && width() == titleBuffer.width()) - return; - TQFontMetrics fm(options()->font(true)); - titleBuffer.resize(width(), 18); - TQPainter p; - p.begin(&titleBuffer); - if(aUpperGradient) - p.drawTiledPixmap(0, 0, width(), 18, *aUpperGradient); - else - p.fillRect(0, 0, width(), 18, - options()->tqcolorGroup(KDecorationOptions::ColorFrame, true). - brush(TQColorGroup::Button)); - - TQRect t = titlebar->tqgeometry(); - t.setTop( 2 ); - t.setLeft( t.left() + 4 ); - t.setRight( t.right() - 2 ); - - TQRegion r(t.x(), 0, t.width(), 18); - r -= TQRect(t.x()+((t.width()-fm.width(caption()))/2)-4, - 0, fm.width(caption())+8, 18); - p.setClipRegion(r); - int i, ly; - for(i=0, ly=4; i < 4; ++i, ly+=3){ - p.setPen(options()->color(KDecorationOptions::ColorTitleBar, true).light(150)); - p.drawLine(0, ly, width()-1, ly); - p.setPen(options()->color(KDecorationOptions::ColorTitleBar, true).dark(120)); - p.drawLine(0, ly+1, width()-1, ly+1); - } - p.setClipRect(t); - p.setPen(options()->color(KDecorationOptions::ColorFont, true)); - p.setFont(options()->font(true)); - - p.drawText(t.x()+((t.width()-fm.width(caption()))/2)-4, - 0, fm.width(caption())+8, 18, AlignCenter, caption()); - p.setClipping(false); - p.end(); - oldTitle = caption(); -} - -void SystemClient::captionChange() -{ - recalcTitleBuffer(); - widget()->tqrepaint(titlebar->tqgeometry(), false); -} - -void SystemClient::drawRoundFrame(TQPainter &p, int x, int y, int w, int h) -{ - kDrawRoundButton(&p, x, y, w, h, - options()->tqcolorGroup(KDecorationOptions::ColorFrame, isActive()), false); - -} - -void SystemClient::paintEvent( TQPaintEvent* ) -{ - TQPainter p(widget()); - TQRect t = titlebar->tqgeometry(); - - TQBrush fillBrush(TQBrush(widget()->tqcolorGroup().brush(TQColorGroup::Background)).pixmap() ? - widget()->tqcolorGroup().brush(TQColorGroup::Background) : - options()->tqcolorGroup(KDecorationOptions::ColorFrame, isActive()). - brush(TQColorGroup::Button)); - - p.fillRect(1, 18, width()-2, height()-19, fillBrush); - - t.setTop( 2 ); - t.setLeft( t.left() + 4 ); - t.setRight( t.right() - 2 ); - - if(isActive()) - p.drawPixmap(0, 0, titleBuffer); - else{ - if(iUpperGradient) - p.drawTiledPixmap(0, 0, width(), 18, *iUpperGradient); - else - p.fillRect(0, 0, width(), 18, fillBrush); - p.setPen(options()->color(KDecorationOptions::ColorFont, isActive())); - p.setFont(options()->font(isActive())); - p.drawText(t, AlignCenter, caption() ); - } - - p.setPen(options()->tqcolorGroup(KDecorationOptions::ColorFrame, 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()->tqcolorGroup(KDecorationOptions::ColorFrame, isActive()).dark()); - p.drawLine(width()-20, height()-6, width()-10, height()-6); - p.drawLine(width()-20, height()-4, width()-10, height()-4); - - drawRoundFrame(p, 0, 0, width(), height()); -} - -#define TQCOORDARRLEN(x) sizeof(x)/(sizeof(TQCOORD)*2) - -void SystemClient::doShape() -{ - // using a bunch of TQRect lines seems much more efficent than bitmaps or - // point arrays - - TQRegion mask; - kRoundMaskRegion(mask, 0, 0, width(), height()); - setMask(mask); -} - -void SystemClient::showEvent(TQShowEvent *) -{ -// Client::showEvent(ev); - doShape(); - widget()->show(); -// widget()->tqrepaint(); -} - -/*void SystemClient::windowWrapperShowEvent( TQShowEvent* ) -{ - doShape(); -}*/ - -void SystemClient::mouseDoubleClickEvent( TQMouseEvent * e ) -{ - if ( e->button() == Qt::LeftButton && titlebar->tqgeometry().contains( e->pos() ) ) - titlebarDblClickOperation(); -} - -void SystemClient::wheelEvent( TQWheelEvent *e ) -{ - if (isSetShade() || TQRect( 0, 0, width(), titlebar->tqgeometry().height() ).contains( e->pos() ) ) - titlebarMouseWheelOperation( e->delta()); -} - -void SystemClient::maximizeChange() -{ - unsigned char *minmax_bits; - int l_max = KDecoration::options()->titleButtonsLeft().find('A'); - if (KDecoration::options()->customButtonPositions() && (l_max>-1)) - minmax_bits = l_minmax_bits; - else - minmax_bits = r_minmax_bits; - if (button[ButtonMaximize]) { - button[ButtonMaximize]->setBitmap((maximizeMode()==MaximizeFull) ? minmax_bits : maximize_bits); - button[ButtonMaximize]->setTipText((maximizeMode()==MaximizeFull) ? i18n("Restore") : i18n("Maximize")); - } -} - -void SystemClient::activeChange() -{ - widget()->tqrepaint(false); - if (button[ButtonClose]) - button[ButtonClose]->reset(); - if (button[ButtonSticky]) - button[ButtonSticky]->reset(); - if (button[ButtonMinimize]) - button[ButtonMinimize]->reset(); - if (button[ButtonMaximize]) - button[ButtonMaximize]->reset(); - if (button[ButtonHelp]) - button[ButtonHelp]->reset(); -} - -void SystemClient::iconChange() -{ -// if (button[BtnMenu] && button[BtnMenu]->isVisible()) -// button[BtnMenu]->tqrepaint(false); -} - -void SystemClient::desktopChange() -{ - if (button[ButtonSticky]) { - button[ButtonSticky]->setBitmap(isOnAllDesktops() ? unsticky_bits : sticky_bits); - button[ButtonSticky]->setTipText(isOnAllDesktops() ? i18n("Not on all desktops") : i18n("On all desktops")); - } -} - -/*void SystemClient::stickyChange(bool on) -{ -}*/ - -KDecoration::Position SystemClient::mousePosition(const TQPoint &p) const -{ - return KDecoration::mousePosition(p); -} - -void SystemClient::borders(int& left, int& right, int& top, int& bottom) const -{ - left = 4; - right = 4; - top = 18; - bottom = 8; - -/* if ((maximizeMode()==MaximizeFull) && !options()->moveResizeMaximizedWindows()) { - left = right = bottom = 0; - top = 1 + titleHeight + (borderSize-1); - }*/ -} - -SystemDecoFactory::SystemDecoFactory() -{ - create_pixmaps(); -} - -SystemDecoFactory::~SystemDecoFactory() -{ - delete_pixmaps(); -} - -KDecoration *SystemDecoFactory::createDecoration( KDecorationBridge *b ) -{ - return new SystemClient(b, this); -} - -bool SystemDecoFactory::reset( unsigned long changed ) -{ - System::delete_pixmaps(); - System::create_pixmaps(); - // Ensure changes in tooltip state get applied - resetDecorations(changed); - return true; -} - -bool SystemDecoFactory::supports( Ability ability ) -{ - switch( ability ) - { - case AbilityAnnounceButtons: - case AbilityButtonOnAllDesktops: - case AbilityButtonHelp: - case AbilityButtonMinimize: - case AbilityButtonMaximize: - case AbilityButtonClose: - return true; - default: - return false; - }; -} - -TQValueList<KDecorationFactory::BorderSize> SystemDecoFactory::borderSizes() const -{ // the list must be sorted - return TQValueList< BorderSize >() << BorderNormal; -} - -} - -extern "C" KDE_EXPORT KDecorationFactory *create_factory() -{ - return new System::SystemDecoFactory(); -} - -#include "systemclient.moc" diff --git a/kwin-styles/system/systemclient.h b/kwin-styles/system/systemclient.h deleted file mode 100644 index ecaf25ee..00000000 --- a/kwin-styles/system/systemclient.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef __SYSTEMCLIENT_H -#define __SYSTEMCLIENT_H - -#include <tqvariant.h> -#include <tqbitmap.h> -#include <tqbutton.h> - -#include <kpixmap.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> - - -class TQLabel; -class TQSpacerItem; -class TQBoxLayout; - -namespace System { - -class SystemButton; - -enum ButtonType { - ButtonClose=0, - ButtonSticky, - ButtonMinimize, - ButtonMaximize, - ButtonHelp, - ButtonTypeCount -}; - -class SystemClient : public KDecoration -{ - Q_OBJECT - TQ_OBJECT - public: - SystemClient(KDecorationBridge* bridge, KDecorationFactory* factory); - ~SystemClient(); - virtual Position mousePosition(const TQPoint& p) const; - virtual void resize(const TQSize&); - virtual bool eventFilter(TQObject* o, TQEvent* e); - virtual void init(); - protected: - virtual void maximizeChange(); - virtual void captionChange(); - virtual void shadeChange() {}; - virtual void iconChange(); - virtual void desktopChange(); - virtual void activeChange(); - virtual TQSize tqminimumSize() const; - virtual void borders(int&, int&, int&, int&) const; - virtual void reset( unsigned long changed ); - void drawRoundFrame(TQPainter &p, int x, int y, int w, int h); - void resizeEvent( TQResizeEvent* ); - void paintEvent( TQPaintEvent* ); - void showEvent( TQShowEvent* ); - void mouseDoubleClickEvent( TQMouseEvent * ); - void wheelEvent(TQWheelEvent *e); - void doShape(); - void recalcTitleBuffer(); - private: - void addButtons(TQBoxLayout* hb, const TQString& buttons); - private slots: - void maxButtonClicked(); - - private: - SystemButton* button[ButtonTypeCount]; - TQSpacerItem* titlebar; - TQPixmap titleBuffer; - TQString oldTitle; -}; - -class SystemButton : public TQButton -{ - public: - SystemButton(SystemClient *parent=0, const char *name=0, - const unsigned char *bitmap=NULL, const TQString& tip=NULL); - void setBitmap(const unsigned char *bitmap); - void reset(); - TQSize tqsizeHint() const; - void setTipText(const TQString &tip); - ButtonState last_button; - protected: - virtual void drawButton(TQPainter *p); - void drawButtonLabel(TQPainter *){} - TQBitmap deco; - - void mousePressEvent( TQMouseEvent* e ); - void mouseReleaseEvent( TQMouseEvent* e ); - - private: - SystemClient* client; -}; - - -class SystemDecoFactory : public TQObject, public KDecorationFactory -{ - Q_OBJECT - TQ_OBJECT - public: - SystemDecoFactory(); - virtual ~SystemDecoFactory(); - virtual KDecoration *createDecoration(KDecorationBridge *); - virtual bool reset(unsigned long); - virtual bool supports( Ability ability ); - virtual TQValueList< BorderSize > borderSizes() const; - private: - void readConfig(); -}; - - - -} - -#endif |