diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-07 21:50:31 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-07 21:50:31 -0600 |
commit | e35f3fe53cd8df85d4fd04e49dfffbaeac971cdf (patch) | |
tree | 95836fc22de909b3b20dbf3fc3dea230e5e58e3b /kwin-styles | |
parent | a5355f151396be579eba5838c7d8d93a43362cd7 (diff) | |
download | tdeartwork-e35f3fe53cd8df85d4fd04e49dfffbaeac971cdf.tar.gz tdeartwork-e35f3fe53cd8df85d4fd04e49dfffbaeac971cdf.zip |
Rename kwin to twin (Part 2 of 2)
Diffstat (limited to 'kwin-styles')
246 files changed, 0 insertions, 20132 deletions
diff --git a/kwin-styles/CMakeLists.txt b/kwin-styles/CMakeLists.txt deleted file mode 100644 index 255bbf18..00000000 --- a/kwin-styles/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -include( "${TDE_CMAKE_DIR}/twin.cmake" ) - -add_subdirectory( cde ) -add_subdirectory( glow ) -add_subdirectory( icewm ) -add_subdirectory( kde1 ) -add_subdirectory( kstep ) -add_subdirectory( openlook ) -add_subdirectory( riscos ) -add_subdirectory( smooth-blend ) -add_subdirectory( system ) diff --git a/kwin-styles/Makefile.am b/kwin-styles/Makefile.am deleted file mode 100644 index 76abee7d..00000000 --- a/kwin-styles/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -SUBDIRS = kstep glow cde icewm openlook kde1 system riscos smooth-blend - -messages: - $(XGETTEXT) `find . -name \*.cpp` -o $(podir)/twin_art_clients.pot diff --git a/kwin-styles/cde/CMakeLists.txt b/kwin-styles/cde/CMakeLists.txt deleted file mode 100644 index 790ff84c..00000000 --- a/kwin-styles/cde/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_subdirectory( config ) - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - -##### other data ################################ - -install( FILES cde.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_cde ################################## - -tde_add_kpart( twin3_cde AUTOMOC - SOURCES cdeclient.cpp - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/cde/Makefile.am b/kwin-styles/cde/Makefile.am deleted file mode 100644 index 129a22bc..00000000 --- a/kwin-styles/cde/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ - -INCLUDES = $(all_includes) - -SUBDIRS = . config - -kde_module_LTLIBRARIES = twin3_cde.la - -twin3_cde_la_SOURCES = cdeclient.cpp -twin3_cde_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin3_cde_la_LIBADD = -ltdecorations - -METASOURCES = AUTO -noinst_HEADERS = cdeclient.h - -lnkdir = $(kde_datadir)/twin/ -lnk_DATA = cde.desktop - -EXTRA_DIST = $(lnk_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/cde/cde.desktop b/kwin-styles/cde/cde.desktop deleted file mode 100644 index a5f1ac66..00000000 --- a/kwin-styles/cde/cde.desktop +++ /dev/null @@ -1,6 +0,0 @@ -[Desktop Entry] -Name=CDE -Name[af]=Cde -Name[hi]=सीडीई -Name[ne]=सीडीई -X-KDE-Library=twin3_cde diff --git a/kwin-styles/cde/cdeclient.cpp b/kwin-styles/cde/cdeclient.cpp deleted file mode 100644 index 03eb14fa..00000000 --- a/kwin-styles/cde/cdeclient.cpp +++ /dev/null @@ -1,863 +0,0 @@ -/* - * $Id$ - * - * CDE KWin client - emulates the look and feel - * of dtwm, the CDE window manager. - * - * Copyright (c) 2000-2001, 2002 - * Chris Lee <lee@azsites.com> - * Lennart Kudling <kudling@kde.org> - * Fredrik H�glund <fredrik@kde.org> - * - * Copyright (c) 2003,2004 - * Luciano Montanaro <mikelima@cirulla.net> - * - * Originally based on the KStep client. - * - * Distributed under the terms of the BSD license. - */ - -#include "cdeclient.h" -#include <tqdatetime.h> -#include <tqlayout.h> -#include <tqbutton.h> -#include <tqcursor.h> -#include <tqlabel.h> -#include <tqtooltip.h> -#include <tqdrawutil.h> -#include <tqpainter.h> -#include <tqapplication.h> -#include <klocale.h> -#include <kconfig.h> - -extern "C" KDE_EXPORT KDecorationFactory* create_factory() -{ - return new CDE::CdeClientFactory(); -} - -namespace CDE { - -static int s_frameWidth = 5; -static int s_buttonSize = 19; -static bool titlebarButtonMode = true; -static bool coloredFrame = true; -static TQt::AlignmentFlags textAlignment = TQt::AlignHCenter; - -// Precomputed border sizes for accessibility -// The sizes are applied for tiny -> normal -> large -> very large -> huge -> -// very huge -> oversized -static const int borderSizes[] = { 4, 6, 9, 12, 18, 26, 42 }; - -// Parameters needed to draw the widgets (offsets from the border) -static int s_o1 = 4; -static int s_o2 = 7; -static int s_w1 = 11; -static int s_w2 = 5; - -// These are the line segments for the X on the close button - -static const int NUM_CLOSEL_COORDS = 2 * 14; -static const TQCOORD closeLLinesTemplate[NUM_CLOSEL_COORDS] = - { 14,3, 12,3, 12,3, 9,6, 5,3, 3,3, 3,3, 3,5, - 3,5, 6,8, 6,9, 3,12, 3,12, 3,14 }; - -static const int NUM_CLOSED_COORDS = 2 * 18; -static const TQCOORD closeDLinesTemplate[NUM_CLOSED_COORDS] = - { 5,3, 8,6, 14,4, 14,5, 14,5, 11,8, 11,9, 14,12, 14,12, 14,14, - 14,14, 12,14, 12,14, 9,11, 8,11, 5,14, 5,14, 4,14 }; - -static TQCOORD closeLLines[NUM_CLOSEL_COORDS]; - -static TQCOORD closeDLines[NUM_CLOSED_COORDS]; - -// These are the line segments for the ? on the help button -static const int NUM_HELPL_COORDS = 2 * 16; -static const TQCOORD helpLLinesTemplate[NUM_HELPL_COORDS] = - { 4,6, 4,5, 4,5, 6,3, 6,3, 9,3, 10,3, 11,4, - 9,7, 7,9, 7,9, 7,10, 7,14, 7,13, 8,12, 9,12 }; - -static const int NUM_HELPD_COORDS = 2 * 14; -static const TQCOORD helpDLinesTemplate[NUM_HELPD_COORDS] = - { 5,7, 8,6, 12,5, 12,8, 12,8, 10,10, 10,10, 10,11, - 10,11, 8,11, 10,14, 10,13, 9,15, 8,15 }; - -static TQCOORD helpLLines[NUM_HELPL_COORDS]; - -static TQCOORD helpDLines[NUM_HELPD_COORDS]; - - -// This question mark is taller than the one above and -// is positioned one pixel higher on the button -/* -static const TQCOORD helpLLines[] = - { 4,5, 4,4, 4,4, 6,2, 6,2, 9,2, 10,2, 11,3, - 9,6, 7,8, 7,9, 7,10, 7,13, 8,12, 8,12, 9,12 }; - -static const TQCOORD helpDLines[] = - { 5,6, 8,5, 12,4, 12,7, 12,7, 10,9, 10,10, 10,11, - 10,11, 8,11, 10,13, 9,14, 9,14, 8,14 }; -*/ -// Same as the one above but with a larger dot under -// the question mark -/* -static const TQCOORD helpLLines[] = - { 4,5, 4,4, 4,4, 6,2, 6,2, 9,2, 10,2, 11,3, - 9,6, 7,8, 7,9, 7,10, 7,14, 7,13, 8,12, 9,12 }; - -static const TQCOORD helpDLines[] = - { 5,6, 8,5, 12,4, 12,7, 12,7, 10,9, 10,10, 10,11, - 10,11, 8,11, 10,13, 10,14, 9,15, 8,15 }; -*/ - -static inline const KDecorationOptions* options() -{ - return KDecoration::options(); -} - -static void fixColorGroup(TQColorGroup & tqcolorGroup) -{ - TQColor light = tqcolorGroup.light(); - - int hue, saturation, value; - - light.hsv(&hue, &saturation, &value); - - if (value < 128) - { - light.setHsv(hue, saturation, 128); - tqcolorGroup.setColor(TQColorGroup::Light, light); - } - - TQColor dark = tqcolorGroup.dark(); - - dark.hsv(&hue, &saturation, &value); - - if (value < 84) - { - dark.setHsv(hue, saturation, 84); - tqcolorGroup.setColor(TQColorGroup::Dark, dark); - } -} - -// scaling helper function used to scale the close 'X' glyph - -static int scaleCoord(int c) -{ - if (c < 6) return c; - if (c <= 11) return c + (s_buttonSize - 19) / 2; - return c + s_buttonSize - 19; -} - -static void readConfig(CdeClientFactory *f) -{ - KConfig conf( "twincderc" ); - - conf.setGroup("General"); - coloredFrame = conf.readBoolEntry( "UseTitleBarBorderColors", true ); - titlebarButtonMode = conf.readBoolEntry( "TitlebarButtonMode", true ); - - TQString value = conf.readEntry( "TextAlignment", "AlignHCenter" ); - if ( value == "AlignLeft" ) - textAlignment = TQt::AlignLeft; - else if ( value == "AlignHCenter" ) - textAlignment = TQt::AlignHCenter; - else if ( value == "AlignRight" ) - textAlignment = TQt::AlignRight; - - - // find preferred border size - int i = options()->preferredBorderSize(f); - if (i >= 0 && i <= 6) s_frameWidth = borderSizes[i]; - - // Do not allow malicious users or corrupt config files to - // go past the domain of the valid border sizes. - - // Size limit increased for accessability. LM - if (s_frameWidth < 0) s_frameWidth = 0; - if (s_frameWidth > 30) s_frameWidth = 30; - - // Force button size to be in a reasonable range. - // If the frame width is large, the button size must be large too. - s_buttonSize = TQFontMetrics(options()->font( true )).height() + 2; - if (s_buttonSize < 19) s_buttonSize = 19; - if (s_buttonSize < s_frameWidth) s_buttonSize = s_frameWidth; - s_buttonSize |= 1; // Be sure the button size is odd. - - // Calculate widths and offsets for the button icons - s_o1 = s_buttonSize * 4 / 19; - s_o2 = s_buttonSize * 7 / 19; - s_w1 = s_buttonSize - 2 * s_o1; - s_w2 = s_buttonSize - 2 * s_o2; - - // Copy and scale the close icon - int offset = (s_buttonSize - 19) / 2; - for (int i = 0; i < NUM_CLOSEL_COORDS; i++) { - closeLLines[i] = scaleCoord(closeLLinesTemplate[i]); - } - for (int i = 0; i < NUM_CLOSED_COORDS; i++) { - closeDLines[i] = scaleCoord(closeDLinesTemplate[i]); - } - // Copy and center the help icon - for (int i = 0; i < NUM_HELPL_COORDS; i++) { - helpLLines[i] = helpLLinesTemplate[i] + offset; - } - for (int i = 0; i < NUM_HELPD_COORDS; i++) { - helpDLines[i] = helpDLinesTemplate[i] + offset; - } -} - -// --------------------------------------- - -CdeClientFactory::CdeClientFactory() -{ - CDE::readConfig(this); -} - -CdeClientFactory::~CdeClientFactory() -{ -} - -KDecoration *CdeClientFactory::createDecoration(KDecorationBridge *b) -{ - return new CdeClient(b, this); -} - -bool CdeClientFactory::reset(unsigned long /*changed*/) -{ - // TODO Do not recreate decorations if it is not needed. Look at - // ModernSystem for how to do that - // For now just return true. - CDE::readConfig(this); - return true; -} - -bool CdeClientFactory::supports( Ability ability ) -{ - switch( ability ) - { - case AbilityAnnounceButtons: - case AbilityButtonMenu: - case AbilityButtonOnAllDesktops: - case AbilityButtonHelp: - case AbilityButtonMinimize: - case AbilityButtonMaximize: - case AbilityButtonClose: - return true; - default: - return false; - }; -} - -TQValueList< CdeClientFactory::BorderSize > -CdeClientFactory::borderSizes() const -{ - // the list must be sorted - return TQValueList< BorderSize >() << BorderTiny << BorderNormal << - BorderLarge << BorderVeryLarge << BorderHuge << - BorderVeryHuge << BorderOversized; -} - -// --------------------------------------- - -CdeClient::CdeClient(KDecorationBridge *b, KDecorationFactory *f) - : KDecoration(b, f) -{ -} - -void CdeClient::init() -{ - createMainWidget(WStaticContents | WResizeNoErase | WRepaintNoErase); - widget()->installEventFilter(this); - - widget()->setBackgroundMode(NoBackground); - - mainLayout = new TQVBoxLayout(widget()); - TQBoxLayout* windowLayout = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - titleLayout = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - - // TODO Check if this stuff can be simplified. - // Border sizes are from a fixed set now. - if ( s_frameWidth > 1 ) - { - // the style normally draws a black frame around the window, so we - // need 1 line of space for that in addition to the normal window frame - mainLayout->setMargin( s_frameWidth+1 ); - } - else - { - // but if the frame is set to just 1 pixel we just draw the black frame - // instead of the normal window frame, so no extra space is needed. if - // its 0 we don't draw anything. - mainLayout->setMargin( s_frameWidth ); - } - - mainLayout->addLayout( titleLayout ); - mainLayout->addLayout( windowLayout, 1 ); - - if (isPreview()) - windowLayout->addWidget(new TQLabel(i18n( - "<center><b>CDE preview</b></center>"), widget()), 1); - else - windowLayout->addItem( new TQSpacerItem( 0, 0 )); - - for ( int i=0; i < BtnCount; i++ ) - button[i] = NULL; - - addClientButtons( options()->titleButtonsLeft() ); - - titlebar = new TQSpacerItem( 10, 16, TQSizePolicy::Expanding, TQSizePolicy::Minimum ); - titleLayout->addItem( titlebar ); - - addClientButtons( options()->titleButtonsRight() ); - - titlebarPressed = false; - closing = false; -} - -void CdeClient::addClientButtons( const TQString& s ) -{ - if ( s.length() > 0 ) - for ( unsigned int i = 0; i < s.length(); i++ ) - { - switch( s[i].latin1() ) - { - // Menu button - case 'M': - if ( ! button[BtnMenu] ) - { - button[BtnMenu] = new CdeButton( this, "menu", BtnMenu, i18n("Menu"), Qt::LeftButton|Qt::RightButton ); - connect( button[BtnMenu], TQT_SIGNAL(pressed()), TQT_SLOT(menuButtonPressed()) ); - connect( button[BtnMenu], TQT_SIGNAL(released()), TQT_SLOT(menuButtonReleased()) ); - titleLayout->addWidget( button[BtnMenu] ); - } - break; - - //Help button - case 'H': - if ( providesContextHelp() && (! button[BtnHelp] ) ) - { - button[BtnHelp] = new CdeButton( this, "help", BtnHelp, i18n("Help") ); - connect(button[BtnHelp], - TQT_SIGNAL(clicked()), TQT_SLOT(showContextHelp())); - titleLayout->addWidget( button[BtnHelp] ); - } - break; - - //Minimize button - case 'I': - if ( (! button[BtnIconify] ) && isMinimizable() ) - { - button[BtnIconify] = new CdeButton( this, "iconify", BtnIconify, i18n("Minimize") ); - connect(button[BtnIconify], - TQT_SIGNAL(clicked()), TQT_SLOT(minimize())); - titleLayout->addWidget( button[BtnIconify] ); - } - break; - - // Maximize button - case 'A': - if ( (! button[BtnMax] ) && isMaximizable() ) - { - button[BtnMax] = new CdeButton(this, "maximize", BtnMax, i18n("Maximize"), Qt::LeftButton|Qt::MidButton|Qt::RightButton); - connect(button[BtnMax], TQT_SIGNAL(clicked()), - TQT_SLOT(maximizeButtonClicked())); - titleLayout->addWidget( button[BtnMax] ); - } - break; - - // Close button - case 'X': - if ( !button[BtnClose] && isCloseable()) - { - button[BtnClose] = new CdeButton(this, "close", BtnClose, i18n("Close")); - connect( button[BtnClose], TQT_SIGNAL( clicked()), TQT_SLOT(closeWindow()) ); - titleLayout->addWidget( button[BtnClose] ); - } - // Add onAlldesktops button and spacers - } - } - -} - -void CdeClient::captionChange() -{ - widget()->tqrepaint(titlebar->tqgeometry(), false); -} - -void CdeClient::activeChange() -{ - for ( int i=0; i < BtnCount; i++ ) - if ( button[i] ) button[i]->reset(); - - widget()->tqrepaint(false); -} - -void CdeClient::maximizeChange() -{ - if ( button[BtnMax] ) { - bool m = maximizeMode() == MaximizeFull; - TQToolTip::remove(button[BtnMax]); - TQToolTip::add(button[BtnMax], m ? i18n("Restore") : i18n("Maximize")); - button[BtnMax]->tqrepaint(); - } -} - -void CdeClient::iconChange() -{ -} - -void CdeClient::shadeChange() -{ -} - -void CdeClient::showEvent(TQShowEvent *) -{ - widget()->tqrepaint(); -} - -void CdeClient::desktopChange() -{ - // Nothing to do yet -} - -TQSize CdeClient::tqminimumSize() const -{ - return TQSize(2 * (s_buttonSize + s_frameWidth), - 2 * s_frameWidth + s_buttonSize); -} - -void CdeClient::resize(const TQSize& s) -{ - widget()->resize(s); -} - -void CdeClient::maximizeButtonClicked() -{ - if (button[BtnMax]) { - maximize(button[BtnMax]->lastButton()); - } -} - -void CdeClient::menuButtonPressed() -{ - static TQTime* t = NULL; - static CdeClient* lastClient = NULL; - if( t == NULL ) - t = new TQTime; - bool dbl = ( lastClient == this && t->elapsed() <= TQApplication::doubleClickInterval()); - lastClient = this; - t->start(); - if( !dbl ) - { - TQRect menuRect = button[BtnMenu]->rect(); - TQPoint menuTop = button[BtnMenu]->mapToGlobal(menuRect.topLeft()); - TQPoint menuBottom = - button[BtnMenu]->mapToGlobal(menuRect.bottomRight()); - KDecorationFactory* f = factory(); - showWindowMenu(TQRect(menuTop, menuBottom)); - if( !f->exists( this )) // 'this' was deleted - return; - button[BtnMenu]->setDown(false); - } - else - closing = true; -} - -void CdeClient::menuButtonReleased() -{ - if( closing ) - closeWindow(); -} - -void CdeClient::resizeEvent( TQResizeEvent* e) -{ - if (widget()->isVisibleToTLW()) { - widget()->update(); - int dx = 0; - int dy = 0; - - if ( e->oldSize().width() != width() ) - dx = 32 + TQABS( e->oldSize().width() - width() ); - - if ( e->oldSize().height() != height() ) - dy = 8 + TQABS( e->oldSize().height() - height() ); - - if ( dy ) - widget()->update( 0, height() - dy + 1, width(), dy ); - - if ( dx ) - { - widget()->update( width() - dx + 1, 0, dx, height() ); - widget()->update( TQRect( TQPoint(4,4), - titlebar->tqgeometry().bottomLeft() - TQPoint(1,0) ) ); - widget()->update(TQRect(titlebar->tqgeometry().topRight(), - TQPoint(width() - 4, titlebar->tqgeometry().bottom()))); - - // Titlebar needs no paint event - TQApplication::postEvent( this, new TQPaintEvent( titlebar->tqgeometry(), false ) ); - } - } -} - -void CdeClient::paintEvent( TQPaintEvent* ) -{ - TQPainter p(widget()); - - TQColorGroup tqcolorGroup; - - if ( coloredFrame ) - tqcolorGroup = options()->tqcolorGroup( KDecoration::ColorTitleBar, isActive() ); - else - tqcolorGroup = options()->tqcolorGroup( KDecoration::ColorFrame, isActive() ); - - fixColorGroup( tqcolorGroup ); - - TQRect trect = titlebar->tqgeometry(); - TQRect mrect = widget()->rect(); - - if ( s_frameWidth > 0 ) - { - // draw black frame: - p.setPen( TQt::black ); - p.drawRect( mrect ); - } - - p.setPen( TQt::NoPen ); - p.setBrush( tqcolorGroup.background() ); - - - if ( s_frameWidth > 1 ) - { - bool shaded = isShade(); - int longSide = s_frameWidth + s_buttonSize; - - // draw frame-background: - p.drawRect( 1, 1, - mrect.width() - 2, s_frameWidth ); - p.drawRect( 1, mrect.height() - s_frameWidth - 1, - mrect.width() - 2, s_frameWidth ); - p.drawRect( 1, s_frameWidth + 1, - s_frameWidth, mrect.height() - 2*s_frameWidth - 2 ); - p.drawRect( mrect.width() - s_frameWidth - 1, s_frameWidth + 1, - s_frameWidth, mrect.height() - 2*s_frameWidth - 2 ); - - if ( ! shaded ) - { - // draw left and right frames: - qDrawShadePanel( &p, 1, longSide + 1, - s_frameWidth, mrect.height() - 2 * (longSide + 1), - tqcolorGroup ); - - qDrawShadePanel( &p, mrect.width() - s_frameWidth - 1, longSide + 1, - s_frameWidth, mrect.height() - 2 * (longSide + 1), - tqcolorGroup ); - } - - // draw top and bottom frames: - qDrawShadePanel( &p, longSide + 1, 1, - mrect.width() - 2 * (longSide + 1), s_frameWidth, - tqcolorGroup ); - - qDrawShadePanel( &p, longSide + 1, mrect.height() - s_frameWidth - 1, - mrect.width() - 2 * (longSide + 1), s_frameWidth, - tqcolorGroup ); - - // draw light corner parts: - p.setPen( tqcolorGroup.light() ); - - // tl corner: - p.drawLine( 1, 1, longSide - 1, 1 ); - p.drawLine( 1, 1, 1, longSide - 1 ); - - // tr corner: - p.drawLine( mrect.width() - 3, 1, mrect.width() - longSide - 1, 1 ); - p.drawLine( mrect.width() - longSide - 1, 1, - mrect.width() - longSide - 1, s_frameWidth - 1 ); - p.drawLine( mrect.width() - s_frameWidth - 1, s_frameWidth, - mrect.width() - s_frameWidth - 1, longSide - 1 ); - - // br corner: - if ( !shaded ) - { - p.drawLine( mrect.width() - 3, mrect.height() - longSide - 1, - mrect.width() - s_frameWidth - 1, mrect.height() - longSide - 1 ); - } - p.drawLine( mrect.width() - s_frameWidth - 1, mrect.height() - longSide, - mrect.width() - s_frameWidth - 1, mrect.height() - s_frameWidth - 1 ); - p.drawLine( mrect.width() - s_frameWidth - 2, mrect.height() - s_frameWidth - 1, - mrect.width() - longSide - 1, mrect.height() - s_frameWidth - 1 ); - p.drawLine( mrect.width() - longSide - 1, mrect.height() - s_frameWidth, - mrect.width() - longSide - 1, mrect.height() - 2 ); - - // bl corner: - if ( !shaded ) - { - p.drawLine( s_frameWidth-1, mrect.height() - longSide - 1, - 2, mrect.height() - longSide - 1 ); - } - p.drawLine( 1, mrect.height() - longSide - 1, - 1, mrect.height() - 3 ); - p.drawLine( longSide - 1, mrect.height() - s_frameWidth - 1, - s_frameWidth + 1, mrect.height() - s_frameWidth - 1 ); - - // draw dark corner parts: - p.setPen( tqcolorGroup.dark() ); - - // tl corner: - if ( !shaded ) - p.drawLine( 1, longSide, s_frameWidth, longSide ); - p.drawLine( s_frameWidth, longSide - 1, s_frameWidth, s_frameWidth ); - p.drawLine( s_frameWidth + 1, s_frameWidth, longSide, s_frameWidth ); - p.drawLine( s_frameWidth + s_buttonSize, s_frameWidth, longSide, 1 ); - - // tr corner: - p.drawLine( mrect.width() - longSide - 1, s_frameWidth, - mrect.width() - s_frameWidth - 2, s_frameWidth ); - if ( !shaded ) - { - p.drawLine( mrect.width() - s_frameWidth - 1, longSide, - mrect.width() - 2, longSide ); - } - p.drawLine( mrect.width() - 2, longSide, mrect.width() - 2, 1 ); - - // br corner: - p.drawLine( mrect.width() - longSide - 1, mrect.height() - 2, - mrect.width() - 3, mrect.height() - 2 ); - p.drawLine( mrect.width() - 2, mrect.height() - 2, - mrect.width() - 2, mrect.height() - longSide - 2 ); - - // bl corner: - p.drawLine( 1, mrect.height() - 2, - longSide, mrect.height() - 2 ); - p.drawLine( s_frameWidth + s_buttonSize, mrect.height() - 3, - longSide, mrect.height() - s_frameWidth - 1 ); - p.drawLine( s_frameWidth, mrect.height() - s_frameWidth - 1, - s_frameWidth, mrect.height() - longSide - 1 ); - } - - - p.setPen( TQt::NoPen ); - - if ( !coloredFrame ) - { - tqcolorGroup = options()->tqcolorGroup( KDecoration::ColorTitleBar, isActive() ); - fixColorGroup( tqcolorGroup ); - p.setBrush( tqcolorGroup.background() ); - } - - // draw titlebar: - p.drawRect( trect ); - qDrawShadePanel( &p, trect, tqcolorGroup, titlebarPressed ); - - // draw caption: - if ( titlebarPressed ) // move the caption right and down if the titlebar is pressed - trect.moveBy( 1,1 ); // Note: the real Mwm doesn't actually do this - - p.setFont( options()->font( true ) ); - p.setPen( options()->color( KDecoration::ColorFont, isActive() ) ); - if ( p.fontMetrics().width( caption() ) > trect.width() - 6 ) - { - // left align the text if its too wide to fit in the titlebar - p.drawText( trect.x() + 3, trect.y(), - trect.width() - 6, trect.height(), - AlignLeft | AlignVCenter, caption() ); - } - else - { - // otherwise we'll draw it according to the user settings - p.drawText( trect.x() + 3, trect.y(), - trect.width() - 6, trect.height(), - textAlignment | AlignVCenter, caption() ); - } - - // Draw a line behind the wrapped window to prevent having - // unpainted areas when we're shaded. - p.setPen( tqcolorGroup.dark() ); - p.drawLine(s_frameWidth + 1, mrect.height() - s_frameWidth - 2, - mrect.width() - s_frameWidth - 2, mrect.height() - s_frameWidth - 2); - -} - -KDecoration::Position CdeClient::mousePosition( const TQPoint& p ) const -{ - const int range = s_frameWidth + s_buttonSize; - const int border = s_frameWidth + 1; - - Position m = PositionCenter; - - if ((p.x() > border && p.x() < width() - border) - && (p.y() > border && p.y() < height() - border)) - return PositionCenter; - - if (p.y() < range && p.x() <= range) - m = PositionTopLeft; - else if (p.y() >= height() - range && p.x() >= width() - range) - m = PositionBottomRight; - else if (p.y() >= height()-range && p.x() <= range) - m = PositionBottomLeft; - else if (p.y() < range && p.x() >= width() - range) - m = PositionTopRight; - else if (p.y() < border) - m = PositionTop; - else if (p.y() >= height() - border) - m = PositionBottom; - else if (p.x() <= border) - m = PositionLeft; - else if (p.x() >= width() - border) - m = PositionRight; - else - m = PositionCenter; - return m; -} - -void CdeClient::mouseDoubleClickEvent( TQMouseEvent * e ) -{ - if ( e->button() == Qt::LeftButton && titlebar->tqgeometry().contains( e->pos() ) ) - titlebarDblClickOperation(); -} - -void CdeClient::wheelEvent( TQWheelEvent * e ) -{ - if (isSetShade() || titleLayout->tqgeometry().contains( e->pos() ) ) - titlebarMouseWheelOperation( e->delta()); -} - -void CdeClient::mousePressEvent( TQMouseEvent * e ) -{ - if ( e->button() == Qt::LeftButton && titlebar->tqgeometry().contains( e->pos() ) ) - { - if ( titlebarButtonMode ) - { - titlebarPressed = true; - widget()->tqrepaint(titlebar->tqgeometry(), false); - } - } -} - -void CdeClient::borders(int &left, int &right, int &top, int &bottom) const -{ - left = right = bottom = s_frameWidth + 1; - top = s_buttonSize + s_frameWidth + 1; -} - -void CdeClient::mouseReleaseEvent( TQMouseEvent * e ) -{ - if ( e->button() == Qt::LeftButton && titlebarPressed ) - { - titlebarPressed = false; - widget()->tqrepaint(titlebar->tqgeometry(), false); - } -} - -bool CdeClient::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::Show: - showEvent(TQT_TQSHOWEVENT(e)); - return true; - case TQEvent::Wheel: - wheelEvent( TQT_TQWHEELEVENT( e )); - return true; - default: - break; - } - return false; -} - -// --------------------------------------- - -CdeButton::CdeButton(CdeClient* parent, - const char* name, int btnType, const TQString& tip, int realize_btns) - : TQButton(parent->widget(), name), m_btnType(btnType), last_button(Qt::NoButton) -{ - setBackgroundMode( TQWidget::NoBackground ); - setFixedSize( s_buttonSize, s_buttonSize ); - resize( s_buttonSize, s_buttonSize ); - m_parent = parent; - - setCursor(ArrowCursor); - TQToolTip::add(this, tip); - - m_realize_buttons = realize_btns; -} - -void CdeButton::reset() -{ - tqrepaint( false ); -} - -void CdeButton::drawButton( TQPainter* p ) -{ - p->setBrush( options()->color( KDecoration::ColorTitleBar, m_parent->isActive() ) ); - p->drawRect( 0, 0, s_buttonSize, s_buttonSize ); - - TQColorGroup tqcolorGroup = - options()->tqcolorGroup( KDecoration::ColorTitleBar, m_parent->isActive() ); - - fixColorGroup(tqcolorGroup); - - qDrawShadePanel( p, 0, 0, s_buttonSize, s_buttonSize, - tqcolorGroup, isDown() ); - - switch ( m_btnType ) - { - case (BtnMenu): - qDrawShadePanel( p, s_o1, s_o2, s_w1, s_w2, tqcolorGroup ); - break; - case (BtnHelp): - p->setPen( tqcolorGroup.light() ); - p->drawLineSegments( TQPointArray(16, helpLLines) ); - p->setPen( tqcolorGroup.dark() ); - p->drawLineSegments( TQPointArray(14, helpDLines) ); - break; - case (BtnIconify): - qDrawShadePanel( p, s_o2, s_o2, s_w2, s_w2, tqcolorGroup ); - break; - case (BtnMax): - qDrawShadePanel( p, s_o1, s_o1, s_w1, s_w1, tqcolorGroup, - m_parent->maximizeMode() == KDecoration::MaximizeFull ); - break; - case (BtnClose): - p->setPen( tqcolorGroup.dark() ); - p->drawLineSegments( TQPointArray(18, closeDLines) ); - p->setPen( tqcolorGroup.light() ); - p->drawLineSegments( TQPointArray(15, closeLLines) ); - break; - } -} - -void CdeButton::mousePressEvent(TQMouseEvent *e) -{ - last_button = e->button(); - TQMouseEvent me(e->type(), e->pos(), - e->globalPos(), (e->button()&m_realize_buttons)?Qt::LeftButton:Qt::NoButton, e->state()); - TQButton::mousePressEvent(&me); -} - -void CdeButton::mouseReleaseEvent(TQMouseEvent * e) -{ - last_button = e->button(); - TQMouseEvent me(e->type(), e->pos(), - e->globalPos(), (e->button()&m_realize_buttons)?Qt::LeftButton:Qt::NoButton, e->state()); - TQButton::mouseReleaseEvent(&me); -} - -} // CDE namespace - -#include "cdeclient.moc" - -// vim: sw=4 diff --git a/kwin-styles/cde/cdeclient.h b/kwin-styles/cde/cdeclient.h deleted file mode 100644 index e3a0e9ad..00000000 --- a/kwin-styles/cde/cdeclient.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * CDE KWin client - emulates the look and feel - * of dtwm, the CDE window manager. - * - * Copyright (c) 2000-2001, 2002 - * Chris Lee <lee@azsites.com> - * Lennart Kudling <kudling@kde.org> - * Fredrik H�glund <fredrik@kde.org> - * - * Copyright (c) 2003 - * Luciano Montanaro <mikelima@cirulla.net> - * - * Originally based on the KStep client. - * - * Distributed under the terms of the BSD license. - */ - -#ifndef __CDECLIENT_H -#define __CDECLIENT_H - -#include <tqbutton.h> -#include <tqbitmap.h> -#include <kpixmap.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> - -class TQLabel; -class TQBoxLayout; -class TQVBoxLayout; -class TQSpacerItem; - -namespace CDE { - -class CdeClient; - -enum Buttons { BtnMenu=0, BtnHelp, BtnIconify, BtnMax, BtnClose, BtnCount }; - -class CdeButton : public TQButton -{ -public: - CdeButton( CdeClient* parent=0, const char* name=0, int btnType=0, - const TQString& tip=NULL, int realize_btns = Qt::LeftButton ); - void reset(); - ButtonState lastButton() { return last_button; } - -protected: - void mousePressEvent(TQMouseEvent *e); - void mouseReleaseEvent(TQMouseEvent *e); - virtual void drawButton(TQPainter *p); - -private: - CdeClient *m_parent; - int m_btnType; - int m_realize_buttons; - ButtonState last_button; -}; - -class CdeClient : public KDecoration -{ - Q_OBJECT - TQ_OBJECT -public: - CdeClient(KDecorationBridge *b, KDecorationFactory *f); - ~CdeClient() {}; - void init(); - -protected: - bool eventFilter(TQObject *o, TQEvent *e); - void resizeEvent( TQResizeEvent* ); - void paintEvent( TQPaintEvent* ); - - void showEvent(TQShowEvent *); - void addClientButtons( const TQString& ); - void mouseDoubleClickEvent( TQMouseEvent* ); - void wheelEvent( TQWheelEvent * ); - void captionChange(); - void desktopChange(); - void activeChange(); - void shadeChange(); - void iconChange(); - TQSize tqminimumSize() const; - void resize(const TQSize &size); - void borders(int &left, int &right, int &top, int &bottom) const; - void mousePressEvent( TQMouseEvent* ); - void mouseReleaseEvent( TQMouseEvent* ); - void maximizeChange(); - Position mousePosition( const TQPoint& p ) const; - -protected slots: - void menuButtonPressed(); - void menuButtonReleased(); - void maximizeButtonClicked(); - -private: - CdeButton* button[BtnCount]; - TQVBoxLayout* mainLayout; - TQBoxLayout* titleLayout; - TQSpacerItem* titlebar; - bool titlebarPressed; - bool closing; -}; - -class CdeClientFactory: public TQObject, public KDecorationFactory -{ -public: - CdeClientFactory(); - virtual ~CdeClientFactory(); - virtual KDecoration *createDecoration(KDecorationBridge *); - virtual bool supports( Ability ability ); - virtual bool reset(unsigned long changed); - - TQValueList< CdeClientFactory::BorderSize > borderSizes() const; - -}; - -} - -#endif - diff --git a/kwin-styles/cde/config/CMakeLists.txt b/kwin-styles/cde/config/CMakeLists.txt deleted file mode 100644 index 5faec263..00000000 --- a/kwin-styles/cde/config/CMakeLists.txt +++ /dev/null @@ -1,28 +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} -) - -##### twin_cde_config (module) ################### - -tde_add_kpart( twin_cde_config AUTOMOC - SOURCES config.cpp - LINK tdeui-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/cde/config/Makefile.am b/kwin-styles/cde/config/Makefile.am deleted file mode 100644 index 3e5bd243..00000000 --- a/kwin-styles/cde/config/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -INCLUDES = $(all_includes) - -kde_module_LTLIBRARIES = twin_cde_config.la - -twin_cde_config_la_SOURCES = config.cpp -twin_cde_config_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin_cde_config_la_LIBADD = $(LIB_TDEUI) - -METASOURCES = AUTO -noinst_HEADERS = config.h - -lnkdir = $(kde_datadir)/twin/ - - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/cde/config/config.cpp b/kwin-styles/cde/config/config.cpp deleted file mode 100644 index fcd2de42..00000000 --- a/kwin-styles/cde/config/config.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// $Id$ -#include "config.h" -#include <kapplication.h> -#include <kglobal.h> -#include <tqwhatsthis.h> -#include <tqvbox.h> -#include <klocale.h> - -extern "C" KDE_EXPORT TQObject* allocate_config( KConfig* conf, TQWidget* parent ) -{ - return new CdeConfig(conf, parent); -} - - -/* NOTE: - * 'conf' is a pointer to the twindecoration modules open twin config, - * and is by default set to the "Style" group. - * - * 'parent' is the parent of the TQObject, which is a VBox inside the - * Configure tab in twindecoration - */ - -CdeConfig::CdeConfig( KConfig* conf, TQWidget* parent ) - : TQObject( parent ) -{ - cdeConfig = new KConfig("twincderc"); - KGlobal::locale()->insertCatalogue("twin_art_clients"); - - groupBox = new TQVBox( parent ); - - bgAlign = new TQButtonGroup( 3, Qt::Horizontal, i18n("Text &Alignment"), groupBox ); - bgAlign->setExclusive( true ); - TQWhatsThis::add( bgAlign, i18n("Use these buttons to set the tqalignment of the titlebar caption text.") ); - new TQRadioButton( i18n("Left"), bgAlign, "AlignLeft" ); - TQRadioButton *radio2 = new TQRadioButton( i18n("Centered"), bgAlign, "AlignHCenter" ); - radio2->setChecked( true ); - new TQRadioButton( i18n("Right"), bgAlign, "AlignRight" ); - - cbColorBorder = new TQCheckBox( i18n("Draw window frames using &titlebar colors"), groupBox ); - TQWhatsThis::add( cbColorBorder, i18n("When selected, the window decoration borders " - "are drawn using the titlebar colors. Otherwise, they are " - "drawn using normal border colors instead.") ); - -// cbTitlebarButton = new TQCheckBox( i18n("Titlebar acts like a &pushbutton when clicked"), groupBox ); -// TQWhatsThis::add( cbTitlebarButton, i18n("When selected, this option causes the window titlebar to behave " -// "as if it was a pushbutton when you click it to move the window.") ); - - (void) new TQLabel( i18n("Tip: If you want the look of the original Motif(tm) Window Manager,\n" - "click the \"Buttons\" tab above and remove the help\n" - "and close buttons from the titlebar."), groupBox ); - - // Load configuration options - load( conf ); - - // Ensure we track user changes properly - connect( cbColorBorder, TQT_SIGNAL(clicked()), TQT_SLOT(slotSelectionChanged()) ); -// connect( cbTitlebarButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotSelectionChanged()) ); - connect( bgAlign, TQT_SIGNAL(clicked(int)), TQT_SLOT(slotSelectionChanged(int)) ); - - // Make the widgets visible in twindecoration - groupBox->show(); -} - - -CdeConfig::~CdeConfig() -{ - delete bgAlign; - delete groupBox; - delete cdeConfig; -} - - -void CdeConfig::slotSelectionChanged() -{ - emit changed(); -} - -void CdeConfig::slotSelectionChanged( int ) -{ - emit changed(); -} - -// Loads the configurable options from the twinrc config file -// It is passed the open config from twindecoration to improve efficiency -void CdeConfig::load( KConfig* /*conf*/ ) -{ - cdeConfig->setGroup("General"); - - TQString value = cdeConfig->readEntry( "TextAlignment", "AlignHCenter" ); - TQRadioButton *button = (TQRadioButton*)bgAlign->child( (const char *)value.latin1() ); - if ( button ) - button->setChecked( true ); - - bool coloredFrame = cdeConfig->readBoolEntry( "UseTitleBarBorderColors", true ); - cbColorBorder->setChecked( coloredFrame ); - -// bool titlebarButton = cdeConfig->readBoolEntry( "TitlebarButtonMode", true ); -// cbTitlebarButton->setChecked( titlebarButton ); -} - - -// Saves the configurable options to the twinrc config file -void CdeConfig::save( KConfig* /*conf*/ ) -{ - cdeConfig->setGroup("General"); - - TQRadioButton *button = (TQRadioButton*)bgAlign->selected(); - if ( button ) - cdeConfig->writeEntry( "TextAlignment", TQString(button->name()) ); - - cdeConfig->writeEntry( "UseTitleBarBorderColors", cbColorBorder->isChecked() ); -// cdeConfig->writeEntry( "TitlebarButtonMode", cbTitlebarButton->isChecked() ); - - // Ensure others trying to read this config get updated - cdeConfig->sync(); -} - - -// Sets UI widget defaults which must correspond to style defaults -void CdeConfig::defaults() -{ - TQRadioButton *button = (TQRadioButton*)bgAlign->child( "AlignHCenter" ); - if ( button ) - button->setChecked( true ); - - cbColorBorder->setChecked( true ); -// cbTitlebarButton->setChecked( true ); -} - -#include "config.moc" -// vim: ts=4 diff --git a/kwin-styles/cde/config/config.h b/kwin-styles/cde/config/config.h deleted file mode 100644 index fc7fa136..00000000 --- a/kwin-styles/cde/config/config.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef __KDE_CDECONFIG_H -#define __KDE_CDECONFIG_H - -#include <tqcheckbox.h> -#include <tqgroupbox.h> -#include <tqbuttongroup.h> -#include <tqlabel.h> -#include <tqradiobutton.h> -#include <tqhbox.h> -#include <kconfig.h> - -class TQCheckBox; -class TQGroupBox; -class TQVBox; -class TQLabel; -class TQRadioButton; - -class CdeConfig: public TQObject -{ - Q_OBJECT - TQ_OBJECT - - public: - CdeConfig( KConfig* conf, TQWidget* parent ); - ~CdeConfig(); - - // These public signals/slots work similar to KCM modules - signals: - void changed(); - - public slots: - void load( KConfig* conf ); - void save( KConfig* conf ); - void defaults(); - - protected slots: - void slotSelectionChanged(); // Internal use - void slotSelectionChanged( int ); - - private: - KConfig* cdeConfig; - TQCheckBox* cbColorBorder; -// TQCheckBox* cbTitlebarButton; - TQHBox* groupBox; - TQGroupBox* gbSlider; - TQButtonGroup* bgAlign; -}; - - -#endif - -// vim: ts=4 diff --git a/kwin-styles/configure.in.in b/kwin-styles/configure.in.in deleted file mode 100644 index e93b34e6..00000000 --- a/kwin-styles/configure.in.in +++ /dev/null @@ -1,3 +0,0 @@ -if test "x$kde_use_qt_mac" = "xyes"; then - DO_NOT_COMPILE="$DO_NOT_COMPILE twin-styles" -fi diff --git a/kwin-styles/glow/CMakeLists.txt b/kwin-styles/glow/CMakeLists.txt deleted file mode 100644 index 76d0a23e..00000000 --- a/kwin-styles/glow/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_subdirectory( config ) -add_subdirectory( themes ) - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - -##### other data ################################ - -install( FILES glow.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_glow ################################ - -tde_add_kpart( twin3_glow AUTOMOC - SOURCES glowbutton.cpp glowclient.cpp - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/glow/Makefile.am b/kwin-styles/glow/Makefile.am deleted file mode 100644 index bb624e59..00000000 --- a/kwin-styles/glow/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ - -INCLUDES = $(all_includes) - -SUBDIRS = . config themes - -kde_module_LTLIBRARIES = twin3_glow.la - -twin3_glow_la_SOURCES = glowclient.cpp glowbutton.cpp -twin3_glow_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin3_glow_la_LIBADD = $(LIB_TDECORE) -ltdecorations - -METASOURCES = AUTO -noinst_HEADERS = glowclient.h glowbutton.h resources.h - -linkdir = $(kde_datadir)/twin/ -link_DATA = glow.desktop - -EXTRA_DIST = $(link_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/glow/config/CMakeLists.txt b/kwin-styles/glow/config/CMakeLists.txt deleted file mode 100644 index bfcc2633..00000000 --- a/kwin-styles/glow/config/CMakeLists.txt +++ /dev/null @@ -1,28 +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} -) - -##### twin_glow_config (module) ################## - -tde_add_kpart( twin_glow_config AUTOMOC - SOURCES glowconfigdialog.cpp - LINK tdeui-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/glow/config/Makefile.am b/kwin-styles/glow/config/Makefile.am deleted file mode 100644 index bf3d334b..00000000 --- a/kwin-styles/glow/config/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -INCLUDES = $(all_includes) - -kde_module_LTLIBRARIES = twin_glow_config.la - -twin_glow_config_la_SOURCES = glowconfigdialog.cpp -twin_glow_config_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin_glow_config_la_LIBADD = $(LIB_TDEUI) - -METASOURCES = AUTO -noinst_HEADERS = glowconfigdialog.h - -lnkdir = $(kde_datadir)/twin/ - - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/glow/config/bitmaps.h b/kwin-styles/glow/config/bitmaps.h deleted file mode 100644 index 7ecb262a..00000000 --- a/kwin-styles/glow/config/bitmaps.h +++ /dev/null @@ -1,55 +0,0 @@ -/*************************************************************************** - bitmaps.h - description - ------------------- - begin : Thu Sep 12 2001 - copyright : (C) 2001 by Henning Burchardt - email : h_burchardt@gmx.net - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#ifndef BITMAPS_H -#define BITMAPS_H - -#define BITMAP_SIZE 17 - -static unsigned char close_bits[] = { - 0x00,0x00,0x16,0x00,0x00,0x16,0x00,0x00,0xf8,0x00,0x00,0x0c,0x10,0x10,0x60, - 0x30,0x18,0x00,0x60,0x0c,0xc8,0xc0,0x07,0x16,0x80,0x03,0x60,0xc0,0x07,0x00, - 0x60,0x0c,0x00,0x30,0x18,0xf8,0x10,0x10,0x00,0x00,0x00,0x46,0x00,0x00,0xfe, - 0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0xf3,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; -static unsigned char help_bits[] = { - 0x00,0x00,0x16,0x00,0x00,0x16,0x00,0x00,0x10,0x00,0x00,0x0c,0x80,0x07,0xb6, - 0x40,0x0c,0x00,0x00,0x0c,0xc8,0x00,0x0c,0x16,0x00,0x06,0xb6,0x00,0x03,0x00, - 0x00,0x01,0x00,0x00,0x00,0x10,0x00,0x01,0x00,0x00,0x00,0xac,0x00,0x00,0xfe, - 0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x24,0xc4,0x3f,0x40,0x01,0xf3,0x00,0x00, - 0x70,0xb9,0x65,0x40,0x70,0xb9,0x65,0x40 }; -static unsigned char maximizeoff_bits[] = { - 0x00,0x00,0x16,0x00,0x00,0x16,0x00,0x00,0x1e,0x00,0x00,0x0c,0xf0,0x1f,0x60, - 0xf0,0x1f,0x00,0x10,0x10,0xc8,0x10,0x10,0x16,0x10,0x10,0x60,0x10,0x10,0x00, - 0x10,0x10,0x00,0x10,0x10,0x1e,0xf0,0x1f,0x00,0x00,0x00,0x50,0x00,0x00,0xfe, - 0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x68,0xb9,0x65,0x40,0x01,0xf2,0x00,0x00, - 0x00,0x00,0x00,0x00,0xe0,0xb1,0x65,0x40 }; -static unsigned char minimize_bits[] = { - 0x00,0x00,0x16,0x00,0x00,0x16,0x00,0x00,0x10,0x00,0x00,0x0c,0x00,0x00,0xb6, - 0xe0,0x0f,0x00,0x00,0x00,0xc8,0x20,0x08,0x16,0x60,0x0c,0xb6,0xc0,0x06,0x00, - 0x80,0x03,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0xb2,0x00,0x00,0xfe, - 0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0xf2,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; -static unsigned char stickyoff_bits[] = { - 0x00,0x00,0x16,0x00,0x00,0x16,0x00,0x00,0x1e,0x00,0x00,0x0c,0x50,0x15,0x60, - 0xe0,0x00,0x00,0xf0,0x11,0xc8,0xe0,0x00,0x16,0x50,0x15,0x60,0x00,0x00,0x00, - 0x10,0x11,0x00,0x00,0x00,0x1e,0x50,0x15,0x00,0x00,0x00,0x46,0x00,0x00,0xfe, - 0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x08,0x31,0xf2,0x00,0x00, - 0x00,0x00,0x00,0x00,0x29,0xf2,0x00,0x00 }; - -#endif - diff --git a/kwin-styles/glow/config/glowconfigdialog.cpp b/kwin-styles/glow/config/glowconfigdialog.cpp deleted file mode 100644 index f8ff62fd..00000000 --- a/kwin-styles/glow/config/glowconfigdialog.cpp +++ /dev/null @@ -1,369 +0,0 @@ -/*************************************************************************** - glowconfigdialog.cpp - description - ------------------- - begin : Thu Sep 12 2001 - copyright : (C) 2001 by Henning Burchardt - email : h_burchardt@gmx.net - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#include <tqbitmap.h> -#include <tqbuttongroup.h> -#include <tqcheckbox.h> -#include <tqcombobox.h> -#include <tqdir.h> -#include <tqfileinfo.h> -#include <tqgroupbox.h> -#include <tqlabel.h> -#include <tqlayout.h> -#include <tqlistview.h> -#include <tqpushbutton.h> -#include <tqsignalmapper.h> -#include <tqstringlist.h> -#include <kconfig.h> -#include <kcolorbutton.h> -#include <kdebug.h> -#include <kglobal.h> -#include <kglobalsettings.h> -#include <klocale.h> -#include <kpixmap.h> -#include <kpixmapeffect.h> -#include <kstandarddirs.h> -#include "bitmaps.h" -#include "glowconfigdialog.h" -#include "../resources.h" - -#define NUMBER_OF_BUTTONS 5 - -extern "C" -{ - KDE_EXPORT TQObject* allocate_config( KConfig* conf, TQWidget* parent ) - { - return(new GlowConfigDialog(conf, parent)); - } -} - -GlowConfigDialog::GlowConfigDialog( KConfig * conf, TQWidget * parent ) - : TQObject(parent) -{ - _glowConfig = new KConfig("twinglowrc"); - KGlobal::locale()->insertCatalogue("twin_glow_config"); - - _main_group_box = new TQWidget(parent); - TQVBoxLayout *main_group_boxLayout = new TQVBoxLayout(_main_group_box); - main_group_boxLayout->tqsetAlignment(TQt::AlignTop | TQt::AlignLeft); - main_group_boxLayout->setSpacing(6); - - //------------------------------------------------------------------------- - // themes - - _theme_list_view = new TQListView (_main_group_box, "theme_list_view"); - _theme_list_view->addColumn (i18n("Theme")); - _theme_list_view->addColumn (i18n("Button Size")); - _theme_list_view->setAllColumnsShowFocus(true); - _theme_list_view->setResizeMode(TQListView::AllColumns); - - main_group_boxLayout->addWidget (_theme_list_view); - TQObject::connect (_theme_list_view, TQT_SIGNAL(selectionChanged()), - this, TQT_SLOT(slotThemeListViewSelectionChanged())); - slotLoadThemeList(); - - _button_glow_color_group_box = new TQGroupBox( - 0, Qt::Horizontal, i18n("Button Glow Colors"), _main_group_box); - TQHBoxLayout *colorHBoxLayout = - new TQHBoxLayout(_button_glow_color_group_box->tqlayout()); - - // create buttons - TQSize buttonSize(BITMAP_SIZE, BITMAP_SIZE); - TQPixmap pm(buttonSize); - pm.fill(TQt::black); - - _stickyButton = new TQPushButton(_button_glow_color_group_box); - pm.setMask(TQBitmap(buttonSize, stickyoff_bits, true)); - _stickyButton->setPixmap(pm); - colorHBoxLayout->addWidget(_stickyButton); - _titleButtonList.push_back(_stickyButton); - - _helpButton = new TQPushButton(_button_glow_color_group_box); - pm.setMask(TQBitmap(buttonSize, help_bits, true)); - _helpButton->setPixmap(pm); - colorHBoxLayout->addWidget(_helpButton); - _titleButtonList.push_back(_helpButton); - - _iconifyButton = new TQPushButton(_button_glow_color_group_box); - pm.setMask(TQBitmap(buttonSize, minimize_bits, true)); - _iconifyButton->setPixmap(pm); - colorHBoxLayout->addWidget(_iconifyButton); - _titleButtonList.push_back(_iconifyButton); - - _maximizeButton = new TQPushButton(_button_glow_color_group_box); - pm.setMask(TQBitmap(buttonSize, maximizeoff_bits, true)); - _maximizeButton->setPixmap(pm); - colorHBoxLayout->addWidget(_maximizeButton); - _titleButtonList.push_back(_maximizeButton); - - _closeButton = new TQPushButton(_button_glow_color_group_box); - pm.setMask(TQBitmap(buttonSize, close_bits, true)); - _closeButton->setPixmap(pm); - colorHBoxLayout->addWidget(_closeButton); - _titleButtonList.push_back(_closeButton); - - // create signal mapper - _titleButtonMapper = new TQSignalMapper(this); - for( uint i=0; i<_titleButtonList.size(); i++ ) { - _titleButtonMapper->setMapping(TQT_TQOBJECT(_titleButtonList[i]), i); - connect(_titleButtonList[i], TQT_SIGNAL(clicked()),_titleButtonMapper, TQT_SLOT(map())); - } - connect(_titleButtonMapper, TQT_SIGNAL(mapped(int)),this, TQT_SLOT(slotTitleButtonClicked(int))); - - _colorButton = new KColorButton(_button_glow_color_group_box); - _colorButton->setEnabled(false); - connect(_colorButton, TQT_SIGNAL(changed(const TQColor&)), - this, TQT_SLOT(slotColorButtonChanged(const TQColor&))); - - colorHBoxLayout->addItem(new TQSpacerItem( - 200, 20, TQSizePolicy::Expanding, TQSizePolicy::Minimum)); - colorHBoxLayout->addWidget(_colorButton); - - main_group_boxLayout->addWidget(_button_glow_color_group_box); - - TQHBoxLayout *titlebarGradientTypeLayout = new TQHBoxLayout(); - _titlebarGradientTypeComboBox = new TQComboBox(_main_group_box); - - KConfig *c = KGlobal::config(); - KConfigGroupSaver cgs( c, TQString::tqfromLatin1("WM") ); - TQColor activeBackground = c->readColorEntry("activeBackground"); - TQColor activeBlend = c->readColorEntry("activeBlend"); - - // If the colors are equal, change one to get a gradient effect - if (activeBackground==activeBlend) { - activeBackground = activeBackground.dark(); - } - for (int i=0; i< KPixmapEffect::EllipticGradient; i++ ) { - KPixmap gradPixmap(TQSize(196,20)); - KPixmapEffect::gradient(gradPixmap, activeBackground, - activeBlend, (KPixmapEffect::GradientType) i); - - _titlebarGradientTypeComboBox->insertItem(gradPixmap, i); - } - - connect(_titlebarGradientTypeComboBox, TQT_SIGNAL(activated(int)), - this, TQT_SLOT(slotTitlebarGradientTypeChanged(int))); - titlebarGradientTypeLayout->addWidget( - new TQLabel(i18n("Titlebar gradient:"), _main_group_box)); - titlebarGradientTypeLayout->addWidget(_titlebarGradientTypeComboBox, 0, TQt::AlignLeft); - titlebarGradientTypeLayout->addStretch(10); - main_group_boxLayout->addLayout(titlebarGradientTypeLayout); - - - _showResizeHandleCheckBox = new TQCheckBox( - i18n("Show resize handle"), _main_group_box); - connect(_showResizeHandleCheckBox, TQT_SIGNAL(clicked()), - this, TQT_SLOT(slotResizeHandleCheckBoxChanged())); - main_group_boxLayout->addWidget(_showResizeHandleCheckBox); - - // load config and update user interface - load(conf); - - _main_group_box->show(); -} - -GlowConfigDialog::~GlowConfigDialog() -{ - delete _main_group_box; - delete _glowConfig; - delete[] _buttonConfigMap; -} - -void GlowConfigDialog::load( KConfig* /* conf */ ) -{ - TQColor color; - const TQColor defaultCloseButtonColor(DEFAULT_CLOSE_BUTTON_COLOR); - const TQColor defaultMaximizeButtonColor(DEFAULT_MAXIMIZE_BUTTON_COLOR); - const TQColor defaultIconifyButtonColor(DEFAULT_ICONIFY_BUTTON_COLOR); - const TQColor defaultHelpButtonColor(DEFAULT_HELP_BUTTON_COLOR); - const TQColor defaultStickyButtonColor(DEFAULT_STICKY_BUTTON_COLOR); - - _glowConfig->setGroup("General"); - - _buttonConfigMap = new TQColor[NUMBER_OF_BUTTONS]; - color = _glowConfig->readColorEntry("stickyButtonGlowColor", - &defaultStickyButtonColor); - _buttonConfigMap[stickyButton] = color; - - color = _glowConfig->readColorEntry("helpButtonGlowColor", - &defaultHelpButtonColor); - _buttonConfigMap[helpButton] = color; - - color = _glowConfig->readColorEntry("iconifyButtonGlowColor", - &defaultIconifyButtonColor); - _buttonConfigMap[iconifyButton] = color; - - color = _glowConfig->readColorEntry("maximizeButtonGlowColor", - &defaultMaximizeButtonColor); - _buttonConfigMap[maximizeButton] = color; - - color = _glowConfig->readColorEntry("closeButtonGlowColor", - &defaultCloseButtonColor); - _buttonConfigMap[closeButton] = color; - - _showResizeHandle = _glowConfig->readBoolEntry("showResizeHandle", true); - _titlebarGradientType = static_cast<KPixmapEffect::GradientType> - (_glowConfig->readNumEntry("titlebarGradientType", - KPixmapEffect::DiagonalGradient)); - - _showResizeHandleCheckBox->setChecked(_showResizeHandle); - _titlebarGradientTypeComboBox->setCurrentItem(_titlebarGradientType); - - _theme_name = _glowConfig->readEntry ("themeName", "default"); - _theme_list_view->setSelected ( - _theme_list_view->findItem (_theme_name, 0), true); - slotTitleButtonClicked(0); -} - -void GlowConfigDialog::save( KConfig* /* conf */ ) -{ - _glowConfig->setGroup("General"); - - _glowConfig->writeEntry("stickyButtonGlowColor", _buttonConfigMap[stickyButton]); - _glowConfig->writeEntry("helpButtonGlowColor", _buttonConfigMap[helpButton]); - _glowConfig->writeEntry("iconifyButtonGlowColor", _buttonConfigMap[iconifyButton]); - _glowConfig->writeEntry("maximizeButtonGlowColor", _buttonConfigMap[maximizeButton]); - _glowConfig->writeEntry("closeButtonGlowColor", _buttonConfigMap[closeButton]); - - _glowConfig->writeEntry("showResizeHandle", _showResizeHandle); - _glowConfig->writeEntry("titlebarGradientType", _titlebarGradientType); - - _glowConfig->writeEntry ("themeName", _theme_name); - - _glowConfig->sync(); -} - -void GlowConfigDialog::defaults() -{ - const TQColor defaultCloseButtonColor = DEFAULT_CLOSE_BUTTON_COLOR; - const TQColor defaultMaximizeButtonColor(DEFAULT_MAXIMIZE_BUTTON_COLOR); - const TQColor defaultIconifyButtonColor(DEFAULT_ICONIFY_BUTTON_COLOR); - const TQColor defaultHelpButtonColor(DEFAULT_HELP_BUTTON_COLOR); - const TQColor defaultStickyButtonColor(DEFAULT_STICKY_BUTTON_COLOR); - - _buttonConfigMap[stickyButton] = defaultStickyButtonColor; - _buttonConfigMap[helpButton] = defaultHelpButtonColor; - _buttonConfigMap[iconifyButton] = defaultIconifyButtonColor; - _buttonConfigMap[maximizeButton] = defaultMaximizeButtonColor; - _buttonConfigMap[closeButton] = defaultCloseButtonColor; - - _showResizeHandle = true; - _titlebarGradientType = KPixmapEffect::DiagonalGradient; - - _showResizeHandleCheckBox->setChecked(_showResizeHandle); - _titlebarGradientTypeComboBox->setCurrentItem(_titlebarGradientType); - - _theme_list_view->setSelected ( - _theme_list_view->findItem("default", 0), true); -} - -void GlowConfigDialog::slotLoadThemeList () -{ - TQStringList dir_list=KGlobal::dirs()->findDirs("data", "twin/glow-themes"); - - TQStringList::ConstIterator it; - - _theme_list_view->clear(); - new TQListViewItem (_theme_list_view, "default", "17x17"); - - for (it=dir_list.begin(); it!=dir_list.end(); ++it) - { - TQDir dir (*it, TQString("*"), TQDir::Unsorted, - TQDir::Dirs | TQDir::Readable); - if (dir.exists()) - { - TQFileInfoListIterator it2(*dir.entryInfoList()); - TQFileInfo * finfo; - - while ((finfo=it2.current())) - { - if (finfo->fileName() == "." || finfo->fileName() == "..") { - ++it2; - continue; - } - - if (! _theme_list_view->findItem (finfo->fileName(), 0)) - { - KConfig conf (dir.path() + "/" + finfo->fileName() + "/" + - finfo->fileName() + ".theme"); - TQSize button_size = conf.readSizeEntry ( - "buttonSize", new TQSize (-1, -1)); - if (button_size.width() == -1) - { - ++it2; - continue; - } - TQString size_string = TQString("") + - TQString::number(button_size.width()) + - "x" + TQString::number(button_size.height()); - new TQListViewItem (_theme_list_view, - finfo->fileName(), size_string); - } - - ++it2; - } - } - } -} - -void GlowConfigDialog::slotTitlebarGradientTypeChanged(int index) -{ - _titlebarGradientType = static_cast<KPixmapEffect::GradientType>(index); - emit changed(); -} - -void GlowConfigDialog::slotResizeHandleCheckBoxChanged() -{ - _showResizeHandle = _showResizeHandleCheckBox->isChecked(); - emit changed(); -} - -void GlowConfigDialog::slotTitleButtonClicked(int index) -{ - for( int i=0; i< ((int) _titleButtonList.size()); i++ ) { - _titleButtonList[i]->setDown(i==index); - } - _colorButton->setEnabled(true); - _colorButton->setColor(_buttonConfigMap[index]); -} - -void GlowConfigDialog::slotColorButtonChanged(const TQColor& glowColor) -{ - if( _stickyButton->isDown() ) { - _buttonConfigMap[stickyButton] = glowColor; - } else if( _helpButton->isDown() ) { - _buttonConfigMap[helpButton] = glowColor; - } else if( _iconifyButton->isDown() ) { - _buttonConfigMap[iconifyButton] = glowColor; - } else if( _maximizeButton->isDown() ) { - _buttonConfigMap[maximizeButton] = glowColor; - } else { - _buttonConfigMap[closeButton] = glowColor; - } - emit changed(); -} - -void GlowConfigDialog::slotThemeListViewSelectionChanged () -{ - if( _theme_list_view->selectedItem() != 0 ) { - _theme_name = _theme_list_view->selectedItem()->text (0); - - emit changed(); - } -} - -#include "glowconfigdialog.moc" diff --git a/kwin-styles/glow/config/glowconfigdialog.h b/kwin-styles/glow/config/glowconfigdialog.h deleted file mode 100644 index 81747a4c..00000000 --- a/kwin-styles/glow/config/glowconfigdialog.h +++ /dev/null @@ -1,92 +0,0 @@ -/*************************************************************************** - glowconfigdialog.h - description - ------------------- - begin : Thu Sep 12 2001 - copyright : (C) 2001 by Henning Burchardt - email : h_burchardt@gmx.net - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#ifndef GLOW_CONFIG_DIALOG_H -#define GLOW_CONFIG_DIALOG_H - -#include <tqvaluevector.h> -#include <tqobject.h> - -class TQListView; -class TQPushButton; -class TQSignalMapper; -class TQCheckBox; -class TQComboBox; -class KConfig; -class KColorButton; - -class GlowConfigDialog : public TQObject -{ - Q_OBJECT - TQ_OBJECT - -public: - GlowConfigDialog( KConfig* conf, TQWidget* parent ); - ~GlowConfigDialog(); - -signals: - void changed(); - -public slots: - void load( KConfig* conf ); - void save( KConfig* conf ); - void defaults(); - -protected slots: - void slotTitleButtonClicked(int); - void slotColorButtonChanged(const TQColor&); - void slotTitlebarGradientTypeChanged(int); - void slotResizeHandleCheckBoxChanged(); - void slotThemeListViewSelectionChanged (); - -private slots: - void slotLoadThemeList (); - -private: - enum ButtonType{stickyButton, helpButton, iconifyButton, - maximizeButton, closeButton }; - - KConfig *_glowConfig; - - bool _showResizeHandle; - KPixmapEffect::GradientType _titlebarGradientType; - TQString _theme_name; - - TQWidget *_main_group_box; - TQGroupBox *_button_glow_color_group_box; - TQGroupBox *_theme_group_box; - - TQListView * _theme_list_view; - - TQCheckBox *_showResizeHandleCheckBox; - TQComboBox *_titlebarGradientTypeComboBox; - - TQPushButton *_stickyButton; - TQPushButton *_helpButton; - TQPushButton *_iconifyButton; - TQPushButton *_maximizeButton; - TQPushButton *_closeButton; - TQSignalMapper *_titleButtonMapper; - - TQColor* _buttonConfigMap; - TQValueVector<TQPushButton*> _titleButtonList; - - KColorButton *_colorButton; -}; - -#endif - diff --git a/kwin-styles/glow/glow.desktop b/kwin-styles/glow/glow.desktop deleted file mode 100644 index 9659e5d6..00000000 --- a/kwin-styles/glow/glow.desktop +++ /dev/null @@ -1,49 +0,0 @@ -[Desktop Entry] -Name=Glow -Name[af]=Gloei -Name[br]=Lufrus -Name[ca]=Lluïssor -Name[cs]=Záře -Name[cy]=Gwrid -Name[da]=Glød -Name[el]=Λάμψη -Name[es]=Brillo -Name[et]=Helendus -Name[eu]=Dirdira -Name[fa]=درخشندگی -Name[fi]=Hehku -Name[fr]=Lueur -Name[fy]=Gloede -Name[hi]=ग्लो -Name[is]=Glóð -Name[it]=Bagliore -Name[ja]=輝き -Name[ka]=გავარვარება -Name[lt]=Švytėjimas -Name[lv]=Kvēlot -Name[mk]=Отсјај -Name[ms]=Kilau -Name[mt]=Dija -Name[nb]=Glød -Name[ne]=चमक -Name[nl]=Gloed -Name[nn]=Glød -Name[pl]=Blask -Name[ro]=Licărire -Name[ru]=Зарево -Name[sk]=Plameň -Name[sl]=Lesk -Name[sr]=Сијање -Name[sr@Latn]=Sijanje -Name[sv]=Glöd -Name[ta]=ஒளிப்பெற்று -Name[tg]=Шафақ -Name[th]=เรืองแสง -Name[tr]=Parlama -Name[uk]=Заграва -Name[ven]=Tshedza -Name[vi]=Hào quang -Name[xh]=Qukuqela -Name[zh_CN]=光芒 -Name[zu]=Khanya -X-KDE-Library=twin3_glow diff --git a/kwin-styles/glow/glowbutton.cpp b/kwin-styles/glow/glowbutton.cpp deleted file mode 100644 index 87079c2e..00000000 --- a/kwin-styles/glow/glowbutton.cpp +++ /dev/null @@ -1,339 +0,0 @@ -/*************************************************************************** - glowbutton.cpp - description - ------------------- - begin : Thu Sep 6 2001 - copyright : (C) 2001 by Henning Burchardt - email : h_burchardt@gmx.net - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#include <math.h> -#include <iostream> -#include <vector> -#include <tqmap.h> -#include <tqpixmap.h> -#include <tqpixmapcache.h> -#include <tqbitmap.h> -#include <tqpainter.h> -#include <tqimage.h> -#include <tqtimer.h> -#include <tqtooltip.h> -#include <kdecoration.h> -#include <kiconeffect.h> -#include "glowbutton.h" - -namespace Glow -{ - -//----------------------------------------------------------------------------- -// PixmapCache -//----------------------------------------------------------------------------- - -TQMap<TQString, const TQPixmap*> PixmapCache::m_pixmapMap; - -const TQPixmap* PixmapCache::find(const TQString& key) -{ - TQMap<TQString, const TQPixmap*>::const_iterator it = - m_pixmapMap.find(key); - if( it != m_pixmapMap.end() ) - return *it; - else - return 0; -} - -void PixmapCache::insert(const TQString& key, const TQPixmap *pixmap) -{ - m_pixmapMap[key] = pixmap; -} - -void PixmapCache::erase(const TQString& key) -{ - TQMap<TQString, const TQPixmap*>::iterator it = - m_pixmapMap.find(key); - if (it != m_pixmapMap.end()) - { - delete *it; - m_pixmapMap.erase(it); - } -} - -void PixmapCache::clear() -{ - // delete all pixmaps in the cache - TQMap<TQString, const TQPixmap*>::const_iterator it - = m_pixmapMap.begin(); - for(; it != m_pixmapMap.end(); ++it) - delete *it; - m_pixmapMap.clear(); -} - -//----------------------------------------------------------------------------- -// GlowButton -//----------------------------------------------------------------------------- - -GlowButton::GlowButton(TQWidget *parent, const char *name, - const TQString& tip, const int realizeBtns) - : TQButton(parent, name) -{ - m_realizeButtons = realizeBtns; - - _steps = 0; - m_updateTime = 50; - m_pixmapName = TQString(); - - m_timer = new TQTimer(this); - connect(m_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotTimeout())); - m_pos = 0; - m_timertqStatus = Stop; - - setTipText (tip); - setCursor(arrowCursor); -} - -GlowButton::~GlowButton() -{ -} - -void GlowButton::setTipText( const TQString& tip ) -{ - if (KDecoration::options()->showTooltips()) - { - TQToolTip::remove( this ); - TQToolTip::add( this, tip ); - } -} - -TQString GlowButton::getPixmapName() const -{ - return m_pixmapName; -} - -TQt::ButtonState GlowButton::lastButton() const -{ - return _last_button; -} - -void GlowButton::setPixmapName(const TQString& pixmapName) -{ - m_pixmapName = pixmapName; - - const TQPixmap *pixmap = PixmapCache::find(pixmapName); - if( ! pixmap ) - return; - - // set steps - _steps = pixmap->height()/pixmap->width() - 1; - - tqrepaint(false); -} - -void GlowButton::paintEvent( TQPaintEvent *e ) -{ - TQWidget::paintEvent(e); - const TQPixmap *pixmap = PixmapCache::find(m_pixmapName); - if( pixmap != 0 ) - { - int pos = m_pos>=0?m_pos:-m_pos; - TQPainter p; - TQPixmap pm (pixmap->size()); - p.begin(&pm); - const TQPixmap * bg_pixmap = PixmapCache::find( - TQString::number(parentWidget()->winId())); - p.drawPixmap (0, 0, *bg_pixmap, x(), y(), width(), height()); - p.drawPixmap (0, 0, *pixmap, 0, pos*height(), width(), height()); - p.end(); - p.begin(this); - p.drawPixmap (0, 0, pm); - p.end(); - } -} - -void GlowButton::enterEvent( TQEvent *e ) -{ - if( m_pos<0 ) - m_pos=-m_pos; - m_timertqStatus = Run; - if( ! m_timer->isActive() ) - m_timer->start(m_updateTime); - TQButton::enterEvent(e); -} - -void GlowButton::leaveEvent( TQEvent *e ) -{ - m_timertqStatus = Stop; - if( ! m_timer->isActive() ) - m_timer->start(m_updateTime); - TQButton::leaveEvent(e); -} - -void GlowButton::mousePressEvent( TQMouseEvent *e ) -{ - _last_button = e->button(); - if( m_timer->isActive() ) - m_timer->stop(); - m_pos = _steps; - tqrepaint(false); - // without pretending LeftButton, clicking on the button with MidButton - // or RightButton would cause unwanted titlebar action - TQMouseEvent me (e->type(), e->pos(), e->globalPos(), - (e->button()&m_realizeButtons)?Qt::LeftButton:Qt::NoButton, e->state()); - TQButton::mousePressEvent(&me); -} - -void GlowButton::mouseReleaseEvent( TQMouseEvent *e ) -{ - _last_button = e->button(); - TQPoint p = mapToParent(mapFromGlobal(e->globalPos())); - if( ! m_timer->isActive() ) { - m_timer->start(m_updateTime); - } - if( ! tqgeometry().contains(p) ) { - m_timertqStatus = Stop; - } - TQMouseEvent me (e->type(), e->pos(), e->globalPos(), - (e->button()&m_realizeButtons)?Qt::LeftButton:Qt::NoButton, e->state()); - TQButton::mouseReleaseEvent(&me); -} - -void GlowButton::slotTimeout() -{ - tqrepaint(false); - - if( m_pos>=_steps-1 ) { - m_pos = -m_pos; - } - if( m_timertqStatus==Stop ) { - if( m_pos==0 ) { - m_timer->stop(); - return; - } else if( m_pos>0 ) { - m_pos = -m_pos; - } - } - - m_pos++; -} - -//----------------------------------------------------------------------------- -// GlowButtonFactory -//----------------------------------------------------------------------------- - -GlowButtonFactory::GlowButtonFactory() -{ - _steps = 20; -} - -int GlowButtonFactory::getSteps() -{ - return _steps; -} - -void GlowButtonFactory::setSteps(int steps) -{ - _steps = steps; -} - -TQPixmap * GlowButtonFactory::createGlowButtonPixmap( - const TQImage & bg_image, - const TQImage & fg_image, - const TQImage & glow_image, - const TQColor & color, - const TQColor & glow_color) -{ - if (bg_image.size() != fg_image.size() - || fg_image.size() != glow_image.size()) { - std::cerr << "Image size error" << std::endl; - return new TQPixmap(); - } - - TQImage colorized_bg_image = bg_image.copy(); - KIconEffect::colorize (colorized_bg_image, color, 1.0); - - int w = colorized_bg_image.width(); - int h = colorized_bg_image.height(); - - TQImage image (w, (_steps+1)*h, 32); - image.setAlphaBuffer (true); - for (int i=0; i<_steps+1; ++i) { - for (int y=0; y<h; ++y) { - uint * src1_line = (uint*) colorized_bg_image.scanLine (y); - uint * src2_line = (uint*) fg_image.scanLine (y); - uint * dst_line = (uint*) image.scanLine (i*h+y); - for (int x=0; x<w; ++x) { - int r = tqRed (*(src1_line+x)); - int g = tqGreen (*(src1_line+x)); - int b = tqBlue (*(src1_line+x)); - int a = TQMAX (tqAlpha(*(src1_line+x)),tqGray(*(src2_line+x))); - *(dst_line+x) = tqRgba (r, g, b, a); - } - } - } - TQPixmap * pixmap = new TQPixmap (image); - TQPainter painter (pixmap); - - bool dark = (tqGray(color.rgb()) <= 127); - TQImage fg_img (w, h, 32); - fg_img.setAlphaBuffer (true); - for (int y=0; y<h; ++y) { - uint * src_line = (uint*) fg_image.scanLine (y); - uint * dst_line = (uint*) fg_img.scanLine (y); - for (int x=0; x<w; ++x) { - int alpha = tqGray (*(src_line+x)); - if (dark) - *(dst_line+x) = tqRgba (255, 255, 255, alpha); - else - *(dst_line+x) = tqRgba (0, 0, 0, alpha); - } - } - - int r = glow_color.red(); - int g = glow_color.green(); - int b = glow_color.blue(); - TQImage glow_img (w, h, 32); - glow_img.setAlphaBuffer (true); - for (int i=0; i<_steps; ++i) { - painter.drawImage (0, i*h, fg_img); - for (int y=0; y<h; ++y) { - uint * src_line = (uint*) glow_image.scanLine(y); - uint * dst_line = (uint*) glow_img.scanLine(y); - for (int x=0; x<w; ++x) { - int alpha = - (int) (tqGray (*(src_line+x)) * ((double) i/_steps)); - *(dst_line+x) = tqRgba (r, g, b, alpha); - } - } - painter.drawImage (0, i*h, glow_img); - } - painter.drawImage (0, _steps*h, fg_img); - for (int y=0; y<h; ++y) { - uint * src_line = (uint*) glow_image.scanLine (y); - uint * dst_line = (uint*) glow_img.scanLine (y); - for (int x=0; x<w; ++x) { - int alpha = tqGray (*(src_line+x)); - *(dst_line+x) = tqRgba (r, g, b, alpha); - } - } - painter.drawImage (0, _steps*h, glow_img); - - return pixmap; -} - -GlowButton* GlowButtonFactory::createGlowButton( - TQWidget *parent, const char* name, const TQString& tip, const int realizeBtns) -{ - GlowButton *glowButton = new GlowButton(parent, name, tip, realizeBtns); - return glowButton; -} - -} - -#include "glowbutton.moc" - diff --git a/kwin-styles/glow/glowbutton.h b/kwin-styles/glow/glowbutton.h deleted file mode 100644 index d2e83beb..00000000 --- a/kwin-styles/glow/glowbutton.h +++ /dev/null @@ -1,129 +0,0 @@ -/*************************************************************************** - glowbutton.h - description - ------------------- - begin : Thu Sep 14 2001 - copyright : (C) 2001 by Henning Burchardt - email : h_burchardt@gmx.net - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#ifndef GLOW_BUTTON_H -#define GLOW_BUTTON_H - -#include <vector> -#include <tqmap.h> -#include <tqbutton.h> - -class TQPixmap; -class TQBitmap; -class TQTimer; -class TQString; - -namespace Glow -{ - -class PixmapCache -{ -public: - static const TQPixmap* find(const TQString& key); - static void insert(const TQString& key, const TQPixmap *pixmap); - static void erase(const TQString& key); - static void clear(); -private: - static TQMap<TQString, const TQPixmap*> m_pixmapMap; -}; - - -//----------------------------------------------------------------------------- - -class GlowButton : public TQButton -{ - Q_OBJECT - TQ_OBJECT - -public: - GlowButton(TQWidget *parent, const char* name, const TQString& tip, const int realizeBtns); - ~GlowButton(); - - void setTipText( const TQString& tip ); - - TQString getPixmapName() const; - ButtonState lastButton() const; - - /** Sets the name of the pixmap in the pixmap cache. - * If no background pixmap is wanted use TQString() as name. */ - void setPixmapName(const TQString& pixmapName); - -protected: - virtual void paintEvent( TQPaintEvent * ); - virtual void enterEvent( TQEvent * ); - virtual void leaveEvent( TQEvent * ); - virtual void mousePressEvent( TQMouseEvent * ); - virtual void mouseReleaseEvent( TQMouseEvent * ); - -protected slots: - void slotTimeout(); - -private: - enum TimertqStatus { Run, Stop }; - - int m_updateTime; - int _steps; - TQString m_pixmapName; - - TQTimer *m_timer; - int m_pos; - TimertqStatus m_timertqStatus; - - int m_realizeButtons; - ButtonState _last_button; -}; - -//----------------------------------------------------------------------------- - -class GlowButtonFactory -{ -public: - GlowButtonFactory(); - - int getSteps(); - - /** - * Sets the number of pixmaps used to create the glow effect of the - * glow buttons. - */ - void setSteps(int steps); - - /** - * Creates a background pixmap for a glow button. - * The pixmap will consist of sub pixmaps of the size of the button which - * are placed one below the other. Each sub pixmap is copied on the button - * in succession to create the glow effect. The last sub pixmap is used - * when the button is pressed. - */ - TQPixmap * createGlowButtonPixmap( - const TQImage & bg_image, -// const TQImage & bg_alpha_image, - const TQImage & fg_image, - const TQImage & glow_image, - const TQColor & color, - const TQColor & glow_color); - - GlowButton* createGlowButton( - TQWidget *parent, const char* name, const TQString& tip, const int realizeBtns = Qt::LeftButton); - -private: - int _steps; -}; - -} // namespace - -#endif diff --git a/kwin-styles/glow/glowclient.cpp b/kwin-styles/glow/glowclient.cpp deleted file mode 100644 index 98133221..00000000 --- a/kwin-styles/glow/glowclient.cpp +++ /dev/null @@ -1,902 +0,0 @@ -/*************************************************************************** - glowclient.cpp - description - ------------------- - begin : Thu Sep 6 2001 - copyright : (C) 2001 by Henning Burchardt - email : h_burchardt@gmx.net - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#include <tqapplication.h> -#include <tqbitmap.h> -#include <tqimage.h> -#include <tqlayout.h> -#include <tqpainter.h> -#include <tqpixmap.h> -#include <kconfig.h> -#include <kdebug.h> -#include <klocale.h> -#include <kpixmapeffect.h> -#include <kpixmap.h> -#include <kstandarddirs.h> -#include <tqlabel.h> -#include "resources.h" -#include "glowclient.h" -#include "glowbutton.h" - -namespace Glow -{ - -static int titleHeight; -static int SIDE_MARGIN; -static int BOTTOM_MARGIN; -static const int TITLE_MARGIN = 2; -static const int TITLE_SPACING = 1; -static int RESIZE_HANDLE_HEIGHT; - -//----------------------------------------------------------------------------- - -GlowClientConfig::GlowClientConfig() -{ - themeName = "default"; -} - -void GlowClientConfig::load(KDecorationFactory *factory) -{ - KConfig conf("twinglowrc"); - conf.setGroup("General"); - - const TQColor defaultCloseButtonColor(DEFAULT_CLOSE_BUTTON_COLOR); - const TQColor defaultMaximizeButtonColor(DEFAULT_MAXIMIZE_BUTTON_COLOR); - const TQColor defaultIconifyButtonColor(DEFAULT_ICONIFY_BUTTON_COLOR); - const TQColor defaultHelpButtonColor(DEFAULT_HELP_BUTTON_COLOR); - const TQColor defaultStickyButtonColor(DEFAULT_STICKY_BUTTON_COLOR); - - stickyButtonGlowColor = conf.readColorEntry( - "stickyButtonGlowColor", &defaultStickyButtonColor); - - helpButtonGlowColor = conf.readColorEntry( - "helpButtonGlowColor", &defaultHelpButtonColor); - - iconifyButtonGlowColor = conf.readColorEntry( - "iconifyButtonGlowColor", &defaultIconifyButtonColor); - - maximizeButtonGlowColor = conf.readColorEntry( - "maximizeButtonGlowColor", &defaultMaximizeButtonColor); - - closeButtonGlowColor = conf.readColorEntry( - "closeButtonGlowColor", &defaultCloseButtonColor); - - showResizeHandle = conf.readBoolEntry("showResizeHandle", true); - titlebarGradientType = conf.readNumEntry("titlebarGradientType", - KPixmapEffect::DiagonalGradient); - - themeName = conf.readEntry ("themeName", "default"); - - switch(KDecoration::options()->preferredBorderSize (factory)) { - case KDecoration::BorderLarge: - SIDE_MARGIN = 8; - BOTTOM_MARGIN = 6; - RESIZE_HANDLE_HEIGHT = 10; - break; - case KDecoration::BorderVeryLarge: - SIDE_MARGIN = 12; - BOTTOM_MARGIN = 12; - RESIZE_HANDLE_HEIGHT = 18; - break; - case KDecoration::BorderHuge: - SIDE_MARGIN = 18; - BOTTOM_MARGIN = 18; - RESIZE_HANDLE_HEIGHT = 27; - break; - case KDecoration::BorderVeryHuge: - SIDE_MARGIN = 27; - BOTTOM_MARGIN = 27; - RESIZE_HANDLE_HEIGHT = 40; - break; - case KDecoration::BorderOversized: - SIDE_MARGIN = 40; - BOTTOM_MARGIN = 40; - RESIZE_HANDLE_HEIGHT = 60; - break; - case KDecoration::BorderNormal: - default: - SIDE_MARGIN = 4; - BOTTOM_MARGIN = 2; - RESIZE_HANDLE_HEIGHT = 4; - } -} - -//----------------------------------------------------------------------------- - -GlowClientGlobals::~GlowClientGlobals() -{ - deletePixmaps(); - m_instance = 0; -} - -TQString GlowClientGlobals::getPixmapName(PixmapType type, bool isActive) -{ - TQString s = getPixmapTypeName(static_cast<PixmapType>(type)); - s += "|"; - s += isActive ? "Active" : "NotActive"; - return s; -} - -GlowClientGlobals::GlowClientGlobals() - : KDecorationFactory() -{ - _button_factory = new GlowButtonFactory(); - readConfig(); - readTheme (); - if (!createPixmaps()) - { - deletePixmaps(); - delete _theme; - config()->themeName = "default"; - readTheme(); - createPixmaps(); - } -} - -void GlowClientGlobals::readConfig() -{ - _config = new GlowClientConfig(); - _config->load(this); -} - -TQValueList< GlowClientGlobals::BorderSize > -GlowClientGlobals::borderSizes() const -{ - // the list must be sorted - return TQValueList< BorderSize >() << BorderNormal << - BorderLarge << BorderVeryLarge << BorderHuge << - BorderVeryHuge << BorderOversized; -} - -void GlowClientGlobals::readTheme() -{ - TQString theme_config_file = KGlobal::dirs()->findResource ("data", - TQString("twin/glow-themes/") + config()->themeName + "/" + - config()->themeName + ".theme"); - if (theme_config_file.isNull()) - { - config()->themeName = "default"; - return; - } - - KConfig conf (theme_config_file); - _theme = new GlowTheme(default_glow_theme); - - _theme->buttonSize = conf.readSizeEntry ("buttonSize", - &_theme->buttonSize); - _theme->stickyOnPixmap = conf.readEntry ("stickyOnPixmap", - _theme->stickyOnPixmap); - _theme->stickyOffPixmap = conf.readEntry ("stickyOffPixmap", - _theme->stickyOffPixmap); - _theme->maximizeOnPixmap = conf.readEntry ("maximizeOnPixmap", - _theme->maximizeOnPixmap); - _theme->maximizeOffPixmap = conf.readEntry ("maximizeOffPixmap", - _theme->maximizeOffPixmap); - _theme->helpPixmap = conf.readEntry ("helpPixmap", - _theme->helpPixmap); - _theme->closePixmap = conf.readEntry ("closePixmap", - _theme->closePixmap); - _theme->iconifyPixmap = conf.readEntry ("iconifyPixmap", - _theme->iconifyPixmap); - _theme->stickyOnGlowPixmap = conf.readEntry ("stickyOnGlowPixmap", - _theme->stickyOnGlowPixmap); - _theme->stickyOffGlowPixmap = conf.readEntry ("stickyOffGlowPixmap", - _theme->stickyOffGlowPixmap); - _theme->maximizeOnGlowPixmap = conf.readEntry ("maximizeOnGlowPixmap", - _theme->maximizeOnGlowPixmap); - _theme->maximizeOffGlowPixmap = conf.readEntry ("maximizeOffGlowPixmap", - _theme->maximizeOffGlowPixmap); - _theme->helpGlowPixmap = conf.readEntry ("helpGlowPixmap", - _theme->helpGlowPixmap); - _theme->closeGlowPixmap = conf.readEntry ("closeGlowPixmap", - _theme->closeGlowPixmap); - _theme->iconifyGlowPixmap = conf.readEntry ("iconifyGlowPixmap", - _theme->iconifyGlowPixmap); - - titleHeight = TQFontMetrics(KDecoration::options()->font(true)).height(); - if (titleHeight < SIDE_MARGIN) - titleHeight = SIDE_MARGIN; - if (titleHeight < _theme->buttonSize.height()) - titleHeight = _theme->buttonSize.height(); -} - -bool GlowClientGlobals::reset( unsigned long /*changed*/ ) -{ - deletePixmaps(); - delete _config; - readConfig(); - delete _theme; - readTheme (); - if (! createPixmaps()) - { - deletePixmaps(); - delete _theme; - _config->themeName = "default"; - readTheme(); - createPixmaps(); - } - return true; // FRAME -} - -bool GlowClientGlobals::supports( Ability ability ) -{ - switch( ability ) - { - case AbilityAnnounceButtons: - case AbilityButtonOnAllDesktops: - case AbilityButtonSpacer: - case AbilityButtonHelp: - case AbilityButtonMinimize: - case AbilityButtonMaximize: - case AbilityButtonClose: - return true; - default: - return false; - }; -} - -bool GlowClientGlobals::createPixmaps() -{ - for( int type=0; type<=Close; type++ ) { - if (! createPixmap(static_cast<PixmapType>(type), false)) - return false; - if (! createPixmap(static_cast<PixmapType>(type), true)) - return false; - } - - return true; -} - -void GlowClientGlobals::deletePixmaps() -{ - PixmapCache::clear(); -} - -const TQString GlowClientGlobals::getPixmapTypeName(PixmapType type) -{ - switch(type) { - case (StickyOn): - return "StickyOn"; - case(StickyOff ): - return "StickyOff"; - case(Help): - return "Help"; - case(Iconify): - return "Iconify"; - case(MaximizeOn): - return "MaximizeOn"; - case(MaximizeOff): - return "MaximizeOff"; - case(Close): - return "Close"; - default: - return TQString(); - } -} - -bool GlowClientGlobals::createPixmap(PixmapType type, bool isActive) -{ - TQString theme_dir = KGlobal::dirs()->findResource ("data", - TQString("twin/glow-themes/") + _config->themeName + "/"); - - TQColor glow_color; - TQColor color = options()->color(ColorButtonBg, isActive); - - TQImage bg_image (theme_dir+_theme->backgroundPixmap); - TQImage fg_image; - TQImage glow_image; - - switch(type) { - case (StickyOn): - { - fg_image = TQImage (theme_dir+_theme->stickyOnPixmap); - glow_image = TQImage (theme_dir+_theme->stickyOnGlowPixmap); - glow_color = _config->stickyButtonGlowColor; - break; - } - case (StickyOff): - { - fg_image = TQImage (theme_dir+_theme->stickyOffPixmap); - glow_image = TQImage (theme_dir+_theme->stickyOffGlowPixmap); - glow_color = _config->stickyButtonGlowColor; - break; - } - case (Help): - { - fg_image = TQImage (theme_dir+_theme->helpPixmap); - glow_image = TQImage (theme_dir+_theme->helpGlowPixmap); - glow_color = _config->helpButtonGlowColor; - break; - } - case (Iconify): - { - fg_image = TQImage (theme_dir+_theme->iconifyPixmap); - glow_image = TQImage (theme_dir+_theme->iconifyGlowPixmap); - glow_color = _config->iconifyButtonGlowColor; - break; - } - case (MaximizeOn): - { - fg_image = TQImage (theme_dir+_theme->maximizeOnPixmap); - glow_image = TQImage (theme_dir+_theme->maximizeOnGlowPixmap); - glow_color = _config->maximizeButtonGlowColor; - break; - } - case (MaximizeOff): - { - fg_image = TQImage (theme_dir+_theme->maximizeOffPixmap); - glow_image = TQImage (theme_dir+_theme->maximizeOffGlowPixmap); - glow_color = _config->maximizeButtonGlowColor; - break; - } - case (Close): - { - fg_image = TQImage (theme_dir+_theme->closePixmap); - glow_image = TQImage (theme_dir+_theme->closeGlowPixmap); - glow_color = _config->closeButtonGlowColor; - break; - } - } - - if (bg_image.size() != _theme->buttonSize - || fg_image.size() != _theme->buttonSize - || glow_image.size() != _theme->buttonSize) - return false; - - TQPixmap * glowPm = buttonFactory()->createGlowButtonPixmap( - bg_image, fg_image, glow_image, - color, glow_color); - if (glowPm->isNull()) - return false; - PixmapCache::insert(getPixmapName(type, isActive), glowPm); - return true; -} - -GlowClientGlobals *GlowClientGlobals::m_instance = 0; - -GlowClientGlobals *GlowClientGlobals::instance() -{ - if( ! m_instance ) - { - m_instance = new GlowClientGlobals(); - } - return m_instance; -} - -//----------------------------------------------------------------------------- - -GlowClient::GlowClient( KDecorationBridge* b, KDecorationFactory* f ) - : KDecoration( b, f ), - m_stickyButton(0), m_helpButton(0), m_minimizeButton(0), - m_maximizeButton(0), m_closeButton(0), - m_leftButtonLayout(0), m_rightButtonLayout(0), _main_layout(0) -{ -} - -void GlowClient::init() -{ - createMainWidget(WResizeNoErase | WStaticContents | WRepaintNoErase); - widget()->installEventFilter(this); - - createButtons(); - resetLayout(); -} - -GlowClient::~GlowClient() -{ - PixmapCache::erase(TQString::number(widget()->winId())); -} - -void GlowClient::resizeEvent( TQResizeEvent * ) -{ - doShape(); - widget()->tqrepaint(false); -} - -void GlowClient::paintEvent( TQPaintEvent * ) -{ - GlowClientConfig *conf = GlowClientGlobals::instance()->config(); - TQRect r_this = widget()->rect(); - TQRect r_title = _title_spacer->tqgeometry(); - TQColorGroup titleCg = options()->tqcolorGroup(ColorTitleBar, isActive()); - TQColorGroup titleBlendCg=options()->tqcolorGroup(ColorTitleBlend, isActive()); - TQColorGroup cg = widget()->tqcolorGroup(); - TQColor titleColor = options()->color(ColorTitleBar, isActive()); - TQColor titleBlendColor = options()->color(ColorTitleBlend, isActive()); - TQColor bgColor = widget()->tqcolorGroup().background(); - TQPainter p; - TQPointArray pArray, pArray2, pArray3, pArray4; - - // pixmap for title bar - TQSize tBSize(width(), r_title.height()); - TQSize gradientPixmapSize (tBSize-TQSize(3,3)); - if (! gradientPixmapSize.isValid()) - gradientPixmapSize = TQSize(0,0); - KPixmap gradientPixmap(gradientPixmapSize); - if (! gradientPixmapSize.isNull()) - KPixmapEffect::gradient(gradientPixmap, titleColor, titleBlendColor, - (KPixmapEffect::GradientType) conf->titlebarGradientType); - - TQPixmap * title_buffer = new TQPixmap(tBSize); - p.begin(title_buffer); - if (! gradientPixmap.isNull()) - p.drawPixmap(2, 2, gradientPixmap); - - if (tBSize.width()>=3 && tBSize.height()>=3) - { - // draw caption - p.setFont(options()->font(isActive())); - p.setPen(options()->color(ColorFont, isActive())); - p.drawText(r_title.x(), 0, - r_title.width(), r_title.height(), - TQt::AlignLeft | TQt::AlignVCenter | TQt::SingleLine, caption()); - - // draw split color beneath buttons top right - pArray4 = TQPointArray(4); - pArray4.setPoint(0, tBSize.width()-1, tBSize.height()/2-1); - pArray4.setPoint(1, r_title.x()+r_title.width()-1+tBSize.height()/2, - tBSize.height()/2-1); - pArray4.setPoint(2, r_title.x()+r_title.width()-1, tBSize.height()); - pArray4.setPoint(3, tBSize.width()-1, tBSize.height()); - p.setPen(TQt::NoPen); - p.setBrush(bgColor); - p.drawPolygon(pArray4); - - // draw borders - pArray = TQPointArray(3); - pArray.setPoint(0, tBSize.width()-1, tBSize.height()/2-1); - pArray.setPoint(1, r_title.x()+r_title.width()-1+tBSize.height()/2, - tBSize.height()/2-1); - pArray.setPoint(2, r_title.x()+r_title.width()-1, tBSize.height()-1); - p.setPen(titleCg.mid()); - p.drawPolyline(pArray); - p.drawLine (0, tBSize.height()-1, r_title.x()+r_title.width()-1, tBSize.height()-1); - - pArray2 = TQPointArray(3); - pArray2.setPoint(0, 1, tBSize.height()-2); - pArray2.setPoint(1, 1, 1); - pArray2.setPoint(2, tBSize.width()-2, 1); - p.setPen(titleCg.light()); - p.drawPolyline(pArray2); - } - - pArray3 = TQPointArray(4); - pArray3.setPoint(0, 0, tBSize.height()-1); - pArray3.setPoint(1, 0, 0); - pArray3.setPoint(2, tBSize.width()-1, 0); - pArray3.setPoint(3, tBSize.width()-1, tBSize.height()-1); - p.setPen(TQt::black); - p.drawPolyline(pArray3); - p.end(); - - // insert title buffer in cache; before that, remove old buffer - PixmapCache::erase(TQString::number(widget()->winId())); - PixmapCache::insert(TQString::number(widget()->winId()), title_buffer); - - bitBlt(widget(), 0, 0, title_buffer); - for (unsigned int i=0; i<m_buttonList.size(); ++i) - m_buttonList[i]->tqrepaint(false); - - p.begin(widget()); - p.setPen(TQt::black); - //----- - // draw borders - p.drawLine(0,tBSize.height(),0,r_this.height()-1); - p.drawLine(0,r_this.height()-1,r_this.width()-1,r_this.height()-1); - p.drawLine(r_this.width()-1,r_this.height()-1, - r_this.width()-1,tBSize.height()/2); - //----- - // fill content widget - p.fillRect(1, tBSize.height(), - r_this.width()-2, r_this.height()-tBSize.height()-1, - options()->tqcolorGroup(ColorFrame, isActive()).background()); - p.end(); - - // paint resize handle if necessary - if(conf->showResizeHandle && isResizable() && ! isShade() - && width()>=2 && height() >= RESIZE_HANDLE_HEIGHT) - { - p.begin(widget()); - p.setPen (TQt::black); - p.drawLine (1, height() - RESIZE_HANDLE_HEIGHT, - width()-2, height() - RESIZE_HANDLE_HEIGHT); - p.end(); - } -} - -void GlowClient::showEvent( TQShowEvent * ) -{ - doShape(); - widget()->tqrepaint(false); -} - -void GlowClient::mouseDoubleClickEvent( TQMouseEvent *e ) -{ - if(e->button() == Qt::LeftButton && _title_spacer->tqgeometry().contains(e->pos())) - titlebarDblClickOperation(); -} - -void GlowClient::wheelEvent( TQWheelEvent *e ) -{ - if (isSetShade() || TQRect( 0, 0, width(), titleHeight ).contains(e->pos())) - titlebarMouseWheelOperation( e->delta()); -} - -void GlowClient::activeChange() -{ - updateButtonPixmaps(); - widget()->tqrepaint(false); -} - -void GlowClient::iconChange() -{ - // we have no (t yet an) icon button, so do nothing -} - -void GlowClient::shadeChange() -{ -} - -void GlowClient::captionChange() -{ - widget()->update(_title_spacer->tqgeometry()); -} - -TQSize GlowClient::tqminimumSize() const -{ - return widget()->tqminimumSize(); -} - -void GlowClient::resize( const TQSize& s ) -{ - widget()->resize( s ); -} - -void GlowClient::borders( int& left, int& right, int& top, int& bottom ) const -{ - left = right = SIDE_MARGIN; - top = titleHeight + TITLE_MARGIN + 1; - if (GlowClientGlobals::instance()->config()->showResizeHandle - && isResizable()) - bottom = RESIZE_HANDLE_HEIGHT; - else - bottom = BOTTOM_MARGIN; -} - -void GlowClient::desktopChange() -{ - if (isOnAllDesktops()) { - m_stickyButton->setPixmapName( - GlowClientGlobals::instance()->getPixmapName( - GlowClientGlobals::StickyOn, isActive())); - m_stickyButton->setTipText(i18n("Not on all desktops")); - } else { - m_stickyButton->setPixmapName( - GlowClientGlobals::instance()->getPixmapName( - GlowClientGlobals::StickyOff, isActive())); - m_stickyButton->setTipText(i18n("On all desktops")); - } -} - -void GlowClient::maximizeChange() -{ - if (maximizeMode() == MaximizeFull) { - m_maximizeButton->setPixmapName( - GlowClientGlobals::instance()->getPixmapName( - GlowClientGlobals::MaximizeOn, isActive())); - m_maximizeButton->setTipText(i18n("Restore")); - } else { - m_maximizeButton->setPixmapName( - GlowClientGlobals::instance()->getPixmapName( - GlowClientGlobals::MaximizeOff, isActive())); - m_maximizeButton->setTipText(i18n("Maximize")); - } -} - -KDecoration::Position GlowClient::mousePosition(const TQPoint &pos) const -{ - Position m = PositionCenter; - - int bottomSize - = (GlowClientGlobals::instance()->config()->showResizeHandle) - ? RESIZE_HANDLE_HEIGHT : BOTTOM_MARGIN; - - const int range = 14 + 3*SIDE_MARGIN/2; - - if ( ( pos.x() > SIDE_MARGIN && pos.x() < width() - SIDE_MARGIN ) - && ( pos.y() > 4 && pos.y() < height() - bottomSize ) ) - m = PositionCenter; - else if ( pos.y() <= range && pos.x() <= range) - m = PositionTopLeft; - else if ( pos.y() >= height()-range && pos.x() >= width()-range) - m = PositionBottomRight; - else if ( pos.y() >= height()-range && pos.x() <= range) - m = PositionBottomLeft; - else if ( pos.y() <= range && pos.x() >= width()-range) - m = PositionTopRight; - else if ( pos.y() <= 4 ) - m = PositionTop; - else if ( pos.y() >= height()-bottomSize ) - m = PositionBottom; - else if ( pos.x() <= SIDE_MARGIN ) - m = PositionLeft; - else if ( pos.x() >= width()-SIDE_MARGIN ) - m = PositionRight; - else - m = PositionCenter; - - return m; -} - -void GlowClient::createButtons() -{ - GlowClientGlobals *globals = GlowClientGlobals::instance(); - GlowButtonFactory *factory = globals->buttonFactory(); - TQSize size = globals->theme()->buttonSize; - - m_stickyButton = factory->createGlowButton(widget(), - "StickyButton", isOnAllDesktops()?i18n("Not on all desktops"):i18n("On all desktops"), Qt::LeftButton|Qt::RightButton); - m_stickyButton->setFixedSize(size); - connect(m_stickyButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(toggleOnAllDesktops())); - m_buttonList.insert(m_buttonList.end(), m_stickyButton); - - m_helpButton = factory->createGlowButton(widget(), - "HelpButton", i18n("Help")); - m_helpButton->setFixedSize(size); - connect(m_helpButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(showContextHelp())); - m_buttonList.insert(m_buttonList.end(), m_helpButton); - - m_minimizeButton = factory->createGlowButton(widget(), - "IconifyButton", i18n("Minimize")); - m_minimizeButton->setFixedSize(size); - connect(m_minimizeButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(minimize())); - m_buttonList.insert(m_buttonList.end(), m_minimizeButton); - - m_maximizeButton=factory->createGlowButton(widget(), - "MaximizeButton", i18n("Maximize"), Qt::LeftButton|Qt::MidButton|Qt::RightButton); - m_maximizeButton->setFixedSize(size); - connect(m_maximizeButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotMaximize())); - m_buttonList.insert(m_buttonList.end(), m_maximizeButton); - - m_closeButton = factory->createGlowButton(widget(), - "CloseButton", i18n("Close")); - m_closeButton->setFixedSize(size); - connect(m_closeButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(closeWindow())); - m_buttonList.insert(m_buttonList.end(), m_closeButton); -} - -void GlowClient::resetLayout() -{ - _main_layout = new TQVBoxLayout(widget(), 0, 0); - _main_layout->setResizeMode (TQLayout::FreeResize); - - // update button positions and colors - updateButtonPositions(); - updateButtonPixmaps(); - - TQBoxLayout * topLayout = new TQBoxLayout(_main_layout, - TQBoxLayout::LeftToRight, 0, 0); - topLayout->setMargin(0); - topLayout->setSpacing(TITLE_SPACING); - topLayout->addSpacing(SIDE_MARGIN); - TQVBoxLayout *outerLeftLayout = new TQVBoxLayout(topLayout); - outerLeftLayout->addSpacing(TITLE_MARGIN); - outerLeftLayout->addItem(m_leftButtonLayout); - outerLeftLayout->addSpacing(1); - topLayout->addSpacing(SIDE_MARGIN); - - _title_spacer = new TQSpacerItem(0, titleHeight + TITLE_MARGIN + 1, - TQSizePolicy::Expanding, TQSizePolicy::Fixed); - topLayout->addItem(_title_spacer); - - topLayout->addSpacing(SIDE_MARGIN); - TQVBoxLayout *outerRightLayout = new TQVBoxLayout(topLayout); - outerRightLayout->addSpacing(TITLE_MARGIN); - outerRightLayout->addItem(m_rightButtonLayout); - outerRightLayout->addSpacing(1); - topLayout->addSpacing(SIDE_MARGIN); - - TQBoxLayout *midLayout = new TQBoxLayout( - _main_layout, TQBoxLayout::LeftToRight, 0, 0); - midLayout->addSpacing(SIDE_MARGIN); - if(isPreview()) - midLayout->addWidget( - new TQLabel( i18n( "<b><center>Glow preview</center></b>" ), widget())); - else - midLayout->addItem( new TQSpacerItem( 0, 0 )); - midLayout->addSpacing(SIDE_MARGIN); - - if(GlowClientGlobals::instance()->config()->showResizeHandle - && isResizable() ) { - _bottom_spacer = new TQSpacerItem(SIDE_MARGIN*2, - RESIZE_HANDLE_HEIGHT, TQSizePolicy::Expanding, TQSizePolicy::Minimum); - } else { - _bottom_spacer = new TQSpacerItem(SIDE_MARGIN*2, - BOTTOM_MARGIN, TQSizePolicy::Expanding, TQSizePolicy::Minimum); - } - _main_layout->addItem (_bottom_spacer); - _main_layout->setStretchFactor(topLayout, 0); - _main_layout->setStretchFactor(midLayout, 1); -} - -void GlowClient::updateButtonPositions() -{ - TQString buttons = options()->titleButtonsLeft() + "|" - + options()->titleButtonsRight(); - bool leftButtons=true; - - // hide all buttons - for( unsigned int i=0; i<m_buttonList.size(); i++ ) - m_buttonList[i]->hide(); - - m_leftButtonList.clear(); - m_rightButtonList.clear(); - - // reset left and right button tqlayout - if(m_leftButtonLayout) - delete m_leftButtonLayout; - m_leftButtonLayout = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - m_leftButtonLayout->setMargin(0); - m_leftButtonLayout->setSpacing(TITLE_SPACING); - if(m_rightButtonLayout) - delete m_rightButtonLayout; - m_rightButtonLayout = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - m_rightButtonLayout->setMargin(0); - m_rightButtonLayout->setSpacing(TITLE_SPACING); - - for( unsigned int i=0; i<buttons.length(); i++ ) - { - char c = buttons[i].latin1(); - GlowButton *button = 0; - if( c=='S' ) // sticky - button = m_stickyButton; - else if( c=='H' && providesContextHelp() ) // help - button = m_helpButton; - else if( c=='I' && isMinimizable() ) // iconify - button = m_minimizeButton; - else if( c=='A' && isMaximizable() ) // maximize - button = m_maximizeButton; - else if( c=='X' && isCloseable() ) // close - button= m_closeButton; - else if( c=='_' ) // spacer item - { - if(leftButtons) - m_leftButtonLayout->addSpacing(4); - else - m_rightButtonLayout->addSpacing(4); - } - else if( c=='|' ) - leftButtons = false; - - if (button) { - button->show(); // show visible buttons - if (leftButtons) { - m_leftButtonList.insert(m_leftButtonList.end(), button); - m_leftButtonLayout->addWidget(button); - } else { - m_rightButtonList.insert(m_rightButtonList.end(), button); - m_rightButtonLayout->addWidget(button); - } - } - } -} - -void GlowClient::updateButtonPixmaps() -{ - GlowClientGlobals *globals = GlowClientGlobals::instance(); - - if ( isOnAllDesktops() ) { - m_stickyButton->setPixmapName(globals->getPixmapName( - GlowClientGlobals::StickyOn, isActive())); - } else { - m_stickyButton->setPixmapName(globals->getPixmapName( - GlowClientGlobals::StickyOff, isActive())); - } - m_helpButton->setPixmapName(globals->getPixmapName( - GlowClientGlobals::Help, isActive())); - - m_minimizeButton->setPixmapName(globals->getPixmapName( - GlowClientGlobals::Iconify, isActive())); - - if ( maximizeMode() == MaximizeFull ) { - m_maximizeButton->setPixmapName(globals->getPixmapName( - GlowClientGlobals::MaximizeOn, isActive())); - } else { - m_maximizeButton->setPixmapName(globals->getPixmapName( - GlowClientGlobals::MaximizeOff, isActive())); - } - m_closeButton->setPixmapName(globals->getPixmapName( - GlowClientGlobals::Close, isActive())); -} - -void GlowClient::doShape() -{ - TQRegion mask(widget()->rect()); - // edges - - mask -= TQRegion(width()-1,0,1,1); - mask -= TQRegion(0,height()-1,1,1); - mask -= TQRegion(width()-1,height()-1,1,1); - setMask(mask); -} - -bool GlowClient::isLeft(GlowButton *button) -{ - for( unsigned int i=0; i<m_leftButtonList.size(); i++ ) - if( m_leftButtonList[i] == button ) - return true; - return false; -} - -bool GlowClient::isRight(GlowButton *button) -{ - for( unsigned int i=0; i<m_rightButtonList.size(); i++ ) - if( m_rightButtonList[i] == button ) - return true; - return false; -} - -void GlowClient::slotMaximize() -{ - maximize(m_maximizeButton->lastButton()); -} - -bool GlowClient::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::Show: - showEvent( TQT_TQSHOWEVENT( e )); - return true; - case TQEvent::Wheel: - wheelEvent( TQT_TQWHEELEVENT( e )); - return true; - default: - break; - } - return false; -} - -KDecoration* GlowClientGlobals::createDecoration( KDecorationBridge* bridge ) -{ - return new GlowClient( bridge, this ); -} - -} // end of namespace - -extern "C" -KDE_EXPORT KDecorationFactory* create_factory() -{ - return Glow::GlowClientGlobals::instance(); -} - -#include "glowclient.moc" - diff --git a/kwin-styles/glow/glowclient.h b/kwin-styles/glow/glowclient.h deleted file mode 100644 index 9129dce0..00000000 --- a/kwin-styles/glow/glowclient.h +++ /dev/null @@ -1,206 +0,0 @@ -/*************************************************************************** - glowclient.h - description - ------------------- - begin : Thu Sep 6 2001 - copyright : (C) 2001 by Henning Burchardt - email : h_burchardt@gmx.net - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#ifndef GLOW_CLIENT_H -#define GLOW_CLIENT_H - -#include <vector> -#include <map> -#include <kdecoration.h> -#include <kdecorationfactory.h> - -class TQPixmap; -class TQBitmap; -class TQTimer; -class TQBoxLayout; -class TQGridLayout; -class TQVBoxLayout; -class TQSpacerItem; - -namespace Glow -{ - -class GlowButton; -class GlowButtonFactory; - -//----------------------------------------------------------------------------- -// GlowTheme -//----------------------------------------------------------------------------- - -struct GlowTheme -{ - TQSize buttonSize; - - TQString backgroundPixmap; - TQString backgroundAlphaPixmap; - - TQString stickyOnPixmap; - TQString stickyOffPixmap; - TQString maximizeOnPixmap; - TQString maximizeOffPixmap; - TQString helpPixmap; - TQString closePixmap; - TQString iconifyPixmap; - - TQString stickyOnGlowPixmap; - TQString stickyOffGlowPixmap; - TQString maximizeOnGlowPixmap; - TQString maximizeOffGlowPixmap; - TQString helpGlowPixmap; - TQString closeGlowPixmap; - TQString iconifyGlowPixmap; -}; - -static GlowTheme default_glow_theme = { - TQSize (17, 17), - "background.png", "background_alpha.png", - "stickyon.png", "stickyoff.png", - "maximizeon.png", "maximizeoff.png", - "help.png", "close.png", "iconify.png", - "stickyon_glow.png", "stickyoff_glow.png", - "maximizeon_glow.png", "maximizeoff_glow.png", - "help_glow.png", "close_glow.png", "iconify_glow.png" }; - -//----------------------------------------------------------------------------- -// GlowClientConfig -//----------------------------------------------------------------------------- - -class GlowClientConfig -{ -public: - GlowClientConfig(); - - void load (KDecorationFactory *factory); - - TQColor stickyButtonGlowColor; - TQColor helpButtonGlowColor; - TQColor iconifyButtonGlowColor; - TQColor maximizeButtonGlowColor; - TQColor closeButtonGlowColor; - bool showResizeHandle; - int titlebarGradientType; - TQString themeName; -}; - -//----------------------------------------------------------------------------- -// GlowClientGlobals -//----------------------------------------------------------------------------- - -class GlowClientGlobals : public KDecorationFactory -{ -public: - enum PixmapType { StickyOn, StickyOff, Help, Iconify, MaximizeOn, - MaximizeOff, Close }; - - static GlowClientGlobals *instance(); - - ~GlowClientGlobals(); - - virtual KDecoration* createDecoration( KDecorationBridge* b ); - virtual bool reset( unsigned long changed ); - virtual bool supports( Ability ability ); - TQValueList< GlowClientGlobals::BorderSize > borderSizes() const; - - TQString getPixmapName(PixmapType type, bool isActive); - - GlowTheme * theme() const { return _theme; } - GlowClientConfig * config() const { return _config; } - GlowButtonFactory * buttonFactory() { return _button_factory; } - -private: - static GlowClientGlobals *m_instance; - - GlowTheme * _theme; - GlowClientConfig * _config; - GlowButtonFactory * _button_factory; - - GlowClientGlobals(); - void readConfig(); - void readTheme (); - bool createPixmaps(); - void deletePixmaps(); - bool createPixmap(PixmapType type,bool isActive); - const TQString getPixmapTypeName(PixmapType type); -}; - -//----------------------------------------------------------------------------- -// GlowClient -//----------------------------------------------------------------------------- - -class GlowClient : public KDecoration -{ - Q_OBJECT - TQ_OBJECT -public: - GlowClient( KDecorationBridge* b, KDecorationFactory* f ); - ~GlowClient(); - - virtual void init(); - virtual void borders( int&, int&, int&, int& ) const; - virtual void resize( const TQSize& ); - virtual TQSize tqminimumSize() const; - -protected: - virtual void resizeEvent( TQResizeEvent * ); - virtual void paintEvent( TQPaintEvent * ); - virtual void showEvent( TQShowEvent * ); - virtual void mouseDoubleClickEvent( TQMouseEvent * ); - virtual void wheelEvent( TQWheelEvent * ); - virtual void maximizeChange(); - virtual void activeChange(); - virtual void iconChange(); - virtual void desktopChange(); - virtual void shadeChange(); - virtual void captionChange(); - virtual Position mousePosition(const TQPoint &) const; - virtual bool eventFilter( TQObject* o, TQEvent* e ); - -private: - std::vector<GlowButton*> m_buttonList; - std::vector<GlowButton*> m_leftButtonList; - std::vector<GlowButton*> m_rightButtonList; - GlowButton *m_stickyButton; - GlowButton *m_helpButton; - GlowButton *m_minimizeButton; - GlowButton *m_maximizeButton; - GlowButton *m_closeButton; - TQBoxLayout *m_leftButtonLayout; - TQBoxLayout *m_rightButtonLayout; - TQSpacerItem * _bottom_spacer; - TQSpacerItem * _title_spacer; - TQVBoxLayout * _main_layout; - - void createButtons(); - void updateButtonPositions(); - /** - * Before this method is called we have to update the button - * positions with updateButtonPositions() because the pixmaps - * depend on the position - */ - void updateButtonPixmaps(); - void resetLayout(); - void doShape(); - bool isLeft(GlowButton *button); - bool isRight(GlowButton *button); - -protected slots: - void slotMaximize(); -}; - -} // namespace - -#endif diff --git a/kwin-styles/glow/resources.h b/kwin-styles/glow/resources.h deleted file mode 100644 index a304b822..00000000 --- a/kwin-styles/glow/resources.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef RESOURCES_H -#define RESOURCES_H - -#define DEFAULT_CLOSE_BUTTON_COLOR TQt::red -#define DEFAULT_MAXIMIZE_BUTTON_COLOR TQt::yellow -#define DEFAULT_ICONIFY_BUTTON_COLOR TQt::green -#define DEFAULT_HELP_BUTTON_COLOR TQt::white -#define DEFAULT_STICKY_BUTTON_COLOR TQt::white - -#endif - diff --git a/kwin-styles/glow/themes/CMakeLists.txt b/kwin-styles/glow/themes/CMakeLists.txt deleted file mode 100644 index 2f725214..00000000 --- a/kwin-styles/glow/themes/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_subdirectory( default ) -add_subdirectory( glass ) -add_subdirectory( glass_huge ) -add_subdirectory( glass_large ) -add_subdirectory( glass_verylarge ) -add_subdirectory( square )
\ No newline at end of file diff --git a/kwin-styles/glow/themes/Makefile.am b/kwin-styles/glow/themes/Makefile.am deleted file mode 100644 index ec2725a7..00000000 --- a/kwin-styles/glow/themes/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS=default glass square glass_large glass_verylarge glass_huge diff --git a/kwin-styles/glow/themes/default/CMakeLists.txt b/kwin-styles/glow/themes/default/CMakeLists.txt deleted file mode 100644 index 433e22b6..00000000 --- a/kwin-styles/glow/themes/default/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -install( FILES - background.png - help.png help_glow.png - close.png close_glow.png - iconify.png iconify_glow.png - maximizeoff.png maximizeoff_glow.png - maximizeon.png maximizeon_glow.png - stickyon.png stickyon_glow.png - stickyoff.png stickyoff_glow.png - default.theme - DESTINATION ${DATA_INSTALL_DIR}/twin/glow-themes/default ) diff --git a/kwin-styles/glow/themes/default/Makefile.am b/kwin-styles/glow/themes/default/Makefile.am deleted file mode 100644 index b3ef0fa5..00000000 --- a/kwin-styles/glow/themes/default/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -linkdir = $(kde_datadir)/twin/glow-themes/default -link_DATA = \ -background.png \ -help.png help_glow.png \ -close.png close_glow.png \ -iconify.png iconify_glow.png \ -maximizeoff.png maximizeoff_glow.png \ -maximizeon.png maximizeon_glow.png \ -stickyon.png stickyon_glow.png \ -stickyoff.png stickyoff_glow.png \ -default.theme - -EXTRA_DIST = $(link_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/glow/themes/default/background.png b/kwin-styles/glow/themes/default/background.png Binary files differdeleted file mode 100644 index 3fcbcdf5..00000000 --- a/kwin-styles/glow/themes/default/background.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/close.png b/kwin-styles/glow/themes/default/close.png Binary files differdeleted file mode 100644 index 898a368a..00000000 --- a/kwin-styles/glow/themes/default/close.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/close_glow.png b/kwin-styles/glow/themes/default/close_glow.png Binary files differdeleted file mode 100644 index 69b36e92..00000000 --- a/kwin-styles/glow/themes/default/close_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/default.theme b/kwin-styles/glow/themes/default/default.theme deleted file mode 100644 index 26f00feb..00000000 --- a/kwin-styles/glow/themes/default/default.theme +++ /dev/null @@ -1,19 +0,0 @@ -buttonSize=17,17 - -backgroundPixmap=background.png - -stickyOnPixmap=stickyon.png -stickyOffPixmap=stickyoff.png -maximizeOnPixmap=maximizeon.png -maximizeOffPixmap=maximizeoff.png -helpPixmap=help.png -closePixmap=close.png -iconifyPixmap=iconify.png - -stickyOnGlowPixmap=stickyon_glow.png -stickyOffGlowPixmap=stickyoff_glow.png -maximizeOnGlowPixmap=maximizeon_glow.png -maximizeOffGlowPixmap=maximizeoff_glow.png -helpGlowPixmap=help_glow.png -closeGlowPixmap=close_glow.png -iconifyGlowPixmap=iconify_glow.png diff --git a/kwin-styles/glow/themes/default/help.png b/kwin-styles/glow/themes/default/help.png Binary files differdeleted file mode 100644 index c3ed65ee..00000000 --- a/kwin-styles/glow/themes/default/help.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/help_glow.png b/kwin-styles/glow/themes/default/help_glow.png Binary files differdeleted file mode 100644 index 79a5006a..00000000 --- a/kwin-styles/glow/themes/default/help_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/iconify.png b/kwin-styles/glow/themes/default/iconify.png Binary files differdeleted file mode 100644 index 94fc6338..00000000 --- a/kwin-styles/glow/themes/default/iconify.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/iconify_glow.png b/kwin-styles/glow/themes/default/iconify_glow.png Binary files differdeleted file mode 100644 index 8b4d1413..00000000 --- a/kwin-styles/glow/themes/default/iconify_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/maximizeoff.png b/kwin-styles/glow/themes/default/maximizeoff.png Binary files differdeleted file mode 100644 index e60cdc97..00000000 --- a/kwin-styles/glow/themes/default/maximizeoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/maximizeoff_glow.png b/kwin-styles/glow/themes/default/maximizeoff_glow.png Binary files differdeleted file mode 100644 index 25f4c8ec..00000000 --- a/kwin-styles/glow/themes/default/maximizeoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/maximizeon.png b/kwin-styles/glow/themes/default/maximizeon.png Binary files differdeleted file mode 100644 index 3976411f..00000000 --- a/kwin-styles/glow/themes/default/maximizeon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/maximizeon_glow.png b/kwin-styles/glow/themes/default/maximizeon_glow.png Binary files differdeleted file mode 100644 index 941ed849..00000000 --- a/kwin-styles/glow/themes/default/maximizeon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/stickyoff.png b/kwin-styles/glow/themes/default/stickyoff.png Binary files differdeleted file mode 100644 index 3600e326..00000000 --- a/kwin-styles/glow/themes/default/stickyoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/stickyoff_glow.png b/kwin-styles/glow/themes/default/stickyoff_glow.png Binary files differdeleted file mode 100644 index 5c9861a0..00000000 --- a/kwin-styles/glow/themes/default/stickyoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/stickyon.png b/kwin-styles/glow/themes/default/stickyon.png Binary files differdeleted file mode 100644 index a84941a3..00000000 --- a/kwin-styles/glow/themes/default/stickyon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/default/stickyon_glow.png b/kwin-styles/glow/themes/default/stickyon_glow.png Binary files differdeleted file mode 100644 index 905653e5..00000000 --- a/kwin-styles/glow/themes/default/stickyon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/CMakeLists.txt b/kwin-styles/glow/themes/glass/CMakeLists.txt deleted file mode 100644 index 279668d3..00000000 --- a/kwin-styles/glow/themes/glass/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -install( FILES - background.png - help.png help_glow.png - close.png close_glow.png - iconify.png iconify_glow.png - maximizeoff.png maximizeoff_glow.png - maximizeon.png maximizeon_glow.png - stickyon.png stickyon_glow.png - stickyoff.png stickyoff_glow.png - glass.theme - DESTINATION ${DATA_INSTALL_DIR}/twin/glow-themes/glass ) diff --git a/kwin-styles/glow/themes/glass/Makefile.am b/kwin-styles/glow/themes/glass/Makefile.am deleted file mode 100644 index aeff2c35..00000000 --- a/kwin-styles/glow/themes/glass/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -linkdir = $(kde_datadir)/twin/glow-themes/glass -link_DATA = \ -background.png \ -help.png help_glow.png \ -close.png close_glow.png \ -iconify.png iconify_glow.png \ -maximizeoff.png maximizeoff_glow.png \ -maximizeon.png maximizeon_glow.png \ -stickyon.png stickyon_glow.png \ -stickyoff.png stickyoff_glow.png \ -glass.theme - -EXTRA_DIST = $(link_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/glow/themes/glass/background.png b/kwin-styles/glow/themes/glass/background.png Binary files differdeleted file mode 100644 index 97d278a0..00000000 --- a/kwin-styles/glow/themes/glass/background.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/close.png b/kwin-styles/glow/themes/glass/close.png Binary files differdeleted file mode 100644 index 8b61cfd2..00000000 --- a/kwin-styles/glow/themes/glass/close.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/close_glow.png b/kwin-styles/glow/themes/glass/close_glow.png Binary files differdeleted file mode 100644 index 2be50e89..00000000 --- a/kwin-styles/glow/themes/glass/close_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/glass.theme b/kwin-styles/glow/themes/glass/glass.theme deleted file mode 100644 index 9facf271..00000000 --- a/kwin-styles/glow/themes/glass/glass.theme +++ /dev/null @@ -1,19 +0,0 @@ -buttonSize=19,19 - -backgroundPixmap=background.png - -stickyOnPixmap=stickyon.png -stickyOffPixmap=stickyoff.png -maximizeOnPixmap=maximizeon.png -maximizeOffPixmap=maximizeoff.png -helpPixmap=help.png -closePixmap=close.png -iconifyPixmap=iconify.png - -stickyOnGlowPixmap=stickyon_glow.png -stickyOffGlowPixmap=stickyoff_glow.png -maximizeOnGlowPixmap=maximizeon_glow.png -maximizeOffGlowPixmap=maximizeoff_glow.png -helpGlowPixmap=help_glow.png -closeGlowPixmap=close_glow.png -iconifyGlowPixmap=iconify_glow.png diff --git a/kwin-styles/glow/themes/glass/help.png b/kwin-styles/glow/themes/glass/help.png Binary files differdeleted file mode 100644 index 7a12fe88..00000000 --- a/kwin-styles/glow/themes/glass/help.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/help_glow.png b/kwin-styles/glow/themes/glass/help_glow.png Binary files differdeleted file mode 100644 index 77976ff1..00000000 --- a/kwin-styles/glow/themes/glass/help_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/iconify.png b/kwin-styles/glow/themes/glass/iconify.png Binary files differdeleted file mode 100644 index 55b9f6a9..00000000 --- a/kwin-styles/glow/themes/glass/iconify.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/iconify_glow.png b/kwin-styles/glow/themes/glass/iconify_glow.png Binary files differdeleted file mode 100644 index ff741dbe..00000000 --- a/kwin-styles/glow/themes/glass/iconify_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/maximizeoff.png b/kwin-styles/glow/themes/glass/maximizeoff.png Binary files differdeleted file mode 100644 index b08d34c1..00000000 --- a/kwin-styles/glow/themes/glass/maximizeoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/maximizeoff_glow.png b/kwin-styles/glow/themes/glass/maximizeoff_glow.png Binary files differdeleted file mode 100644 index 8ff43447..00000000 --- a/kwin-styles/glow/themes/glass/maximizeoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/maximizeon.png b/kwin-styles/glow/themes/glass/maximizeon.png Binary files differdeleted file mode 100644 index 8894007e..00000000 --- a/kwin-styles/glow/themes/glass/maximizeon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/maximizeon_glow.png b/kwin-styles/glow/themes/glass/maximizeon_glow.png Binary files differdeleted file mode 100644 index 7fe3c840..00000000 --- a/kwin-styles/glow/themes/glass/maximizeon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/stickyoff.png b/kwin-styles/glow/themes/glass/stickyoff.png Binary files differdeleted file mode 100644 index d87cfe9d..00000000 --- a/kwin-styles/glow/themes/glass/stickyoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/stickyoff_glow.png b/kwin-styles/glow/themes/glass/stickyoff_glow.png Binary files differdeleted file mode 100644 index f682df78..00000000 --- a/kwin-styles/glow/themes/glass/stickyoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/stickyon.png b/kwin-styles/glow/themes/glass/stickyon.png Binary files differdeleted file mode 100644 index f044c134..00000000 --- a/kwin-styles/glow/themes/glass/stickyon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass/stickyon_glow.png b/kwin-styles/glow/themes/glass/stickyon_glow.png Binary files differdeleted file mode 100644 index 0b468787..00000000 --- a/kwin-styles/glow/themes/glass/stickyon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/CMakeLists.txt b/kwin-styles/glow/themes/glass_huge/CMakeLists.txt deleted file mode 100644 index 92021eff..00000000 --- a/kwin-styles/glow/themes/glass_huge/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -install( FILES - background.png - help.png help_glow.png - close.png close_glow.png - iconify.png iconify_glow.png - maximizeoff.png maximizeoff_glow.png - maximizeon.png maximizeon_glow.png - stickyon.png stickyon_glow.png - stickyoff.png stickyoff_glow.png - glass_huge.theme - DESTINATION ${DATA_INSTALL_DIR}/twin/glow-themes/glass_huge ) diff --git a/kwin-styles/glow/themes/glass_huge/Makefile.am b/kwin-styles/glow/themes/glass_huge/Makefile.am deleted file mode 100644 index 244f67a0..00000000 --- a/kwin-styles/glow/themes/glass_huge/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -linkdir = $(kde_datadir)/twin/glow-themes/glass_huge -link_DATA = \ -background.png \ -help.png help_glow.png \ -close.png close_glow.png \ -iconify.png iconify_glow.png \ -maximizeoff.png maximizeoff_glow.png \ -maximizeon.png maximizeon_glow.png \ -stickyon.png stickyon_glow.png \ -stickyoff.png stickyoff_glow.png \ -glass_huge.theme - -EXTRA_DIST = $(link_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/glow/themes/glass_huge/background.png b/kwin-styles/glow/themes/glass_huge/background.png Binary files differdeleted file mode 100644 index f69e109b..00000000 --- a/kwin-styles/glow/themes/glass_huge/background.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/close.png b/kwin-styles/glow/themes/glass_huge/close.png Binary files differdeleted file mode 100644 index 3f1c7369..00000000 --- a/kwin-styles/glow/themes/glass_huge/close.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/close_glow.png b/kwin-styles/glow/themes/glass_huge/close_glow.png Binary files differdeleted file mode 100644 index 00b647dc..00000000 --- a/kwin-styles/glow/themes/glass_huge/close_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/glass_huge.theme b/kwin-styles/glow/themes/glass_huge/glass_huge.theme deleted file mode 100644 index d8c41f52..00000000 --- a/kwin-styles/glow/themes/glass_huge/glass_huge.theme +++ /dev/null @@ -1,19 +0,0 @@ -buttonSize=40,40 - -backgroundPixmap=background.png - -stickyOnPixmap=stickyon.png -stickyOffPixmap=stickyoff.png -maximizeOnPixmap=maximizeon.png -maximizeOffPixmap=maximizeoff.png -helpPixmap=help.png -closePixmap=close.png -iconifyPixmap=iconify.png - -stickyOnGlowPixmap=stickyon_glow.png -stickyOffGlowPixmap=stickyoff_glow.png -maximizeOnGlowPixmap=maximizeon_glow.png -maximizeOffGlowPixmap=maximizeoff_glow.png -helpGlowPixmap=help_glow.png -closeGlowPixmap=close_glow.png -iconifyGlowPixmap=iconify_glow.png diff --git a/kwin-styles/glow/themes/glass_huge/help.png b/kwin-styles/glow/themes/glass_huge/help.png Binary files differdeleted file mode 100644 index a391ce94..00000000 --- a/kwin-styles/glow/themes/glass_huge/help.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/help_glow.png b/kwin-styles/glow/themes/glass_huge/help_glow.png Binary files differdeleted file mode 100644 index a8237795..00000000 --- a/kwin-styles/glow/themes/glass_huge/help_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/iconify.png b/kwin-styles/glow/themes/glass_huge/iconify.png Binary files differdeleted file mode 100644 index b3219692..00000000 --- a/kwin-styles/glow/themes/glass_huge/iconify.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/iconify_glow.png b/kwin-styles/glow/themes/glass_huge/iconify_glow.png Binary files differdeleted file mode 100644 index a5950bcc..00000000 --- a/kwin-styles/glow/themes/glass_huge/iconify_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/maximizeoff.png b/kwin-styles/glow/themes/glass_huge/maximizeoff.png Binary files differdeleted file mode 100644 index b6ca8c0b..00000000 --- a/kwin-styles/glow/themes/glass_huge/maximizeoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/maximizeoff_glow.png b/kwin-styles/glow/themes/glass_huge/maximizeoff_glow.png Binary files differdeleted file mode 100644 index deb8b29f..00000000 --- a/kwin-styles/glow/themes/glass_huge/maximizeoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/maximizeon.png b/kwin-styles/glow/themes/glass_huge/maximizeon.png Binary files differdeleted file mode 100644 index bcccef1f..00000000 --- a/kwin-styles/glow/themes/glass_huge/maximizeon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/maximizeon_glow.png b/kwin-styles/glow/themes/glass_huge/maximizeon_glow.png Binary files differdeleted file mode 100644 index 410296b1..00000000 --- a/kwin-styles/glow/themes/glass_huge/maximizeon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/stickyoff.png b/kwin-styles/glow/themes/glass_huge/stickyoff.png Binary files differdeleted file mode 100644 index db79fec8..00000000 --- a/kwin-styles/glow/themes/glass_huge/stickyoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/stickyoff_glow.png b/kwin-styles/glow/themes/glass_huge/stickyoff_glow.png Binary files differdeleted file mode 100644 index ff8377b1..00000000 --- a/kwin-styles/glow/themes/glass_huge/stickyoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/stickyon.png b/kwin-styles/glow/themes/glass_huge/stickyon.png Binary files differdeleted file mode 100644 index c6b1f6bc..00000000 --- a/kwin-styles/glow/themes/glass_huge/stickyon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_huge/stickyon_glow.png b/kwin-styles/glow/themes/glass_huge/stickyon_glow.png Binary files differdeleted file mode 100644 index 46d8470b..00000000 --- a/kwin-styles/glow/themes/glass_huge/stickyon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/CMakeLists.txt b/kwin-styles/glow/themes/glass_large/CMakeLists.txt deleted file mode 100644 index 597d15c1..00000000 --- a/kwin-styles/glow/themes/glass_large/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -install( FILES - background.png - help.png help_glow.png - close.png close_glow.png - iconify.png iconify_glow.png - maximizeoff.png maximizeoff_glow.png - maximizeon.png maximizeon_glow.png - stickyon.png stickyon_glow.png - stickyoff.png stickyoff_glow.png - glass_large.theme - DESTINATION ${DATA_INSTALL_DIR}/twin/glow-themes/glass_large ) diff --git a/kwin-styles/glow/themes/glass_large/Makefile.am b/kwin-styles/glow/themes/glass_large/Makefile.am deleted file mode 100644 index 353e4b6f..00000000 --- a/kwin-styles/glow/themes/glass_large/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -linkdir = $(kde_datadir)/twin/glow-themes/glass_large -link_DATA = \ -background.png \ -help.png help_glow.png \ -close.png close_glow.png \ -iconify.png iconify_glow.png \ -maximizeoff.png maximizeoff_glow.png \ -maximizeon.png maximizeon_glow.png \ -stickyon.png stickyon_glow.png \ -stickyoff.png stickyoff_glow.png \ -glass_large.theme - -EXTRA_DIST = $(link_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/glow/themes/glass_large/background.png b/kwin-styles/glow/themes/glass_large/background.png Binary files differdeleted file mode 100644 index 860e346f..00000000 --- a/kwin-styles/glow/themes/glass_large/background.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/close.png b/kwin-styles/glow/themes/glass_large/close.png Binary files differdeleted file mode 100644 index 4e180281..00000000 --- a/kwin-styles/glow/themes/glass_large/close.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/close_glow.png b/kwin-styles/glow/themes/glass_large/close_glow.png Binary files differdeleted file mode 100644 index 59976dd3..00000000 --- a/kwin-styles/glow/themes/glass_large/close_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/glass_large.theme b/kwin-styles/glow/themes/glass_large/glass_large.theme deleted file mode 100644 index 1fdf6832..00000000 --- a/kwin-styles/glow/themes/glass_large/glass_large.theme +++ /dev/null @@ -1,19 +0,0 @@ -buttonSize=23,23 - -backgroundPixmap=background.png - -stickyOnPixmap=stickyon.png -stickyOffPixmap=stickyoff.png -maximizeOnPixmap=maximizeon.png -maximizeOffPixmap=maximizeoff.png -helpPixmap=help.png -closePixmap=close.png -iconifyPixmap=iconify.png - -stickyOnGlowPixmap=stickyon_glow.png -stickyOffGlowPixmap=stickyoff_glow.png -maximizeOnGlowPixmap=maximizeon_glow.png -maximizeOffGlowPixmap=maximizeoff_glow.png -helpGlowPixmap=help_glow.png -closeGlowPixmap=close_glow.png -iconifyGlowPixmap=iconify_glow.png diff --git a/kwin-styles/glow/themes/glass_large/help.png b/kwin-styles/glow/themes/glass_large/help.png Binary files differdeleted file mode 100644 index 464a7d49..00000000 --- a/kwin-styles/glow/themes/glass_large/help.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/help_glow.png b/kwin-styles/glow/themes/glass_large/help_glow.png Binary files differdeleted file mode 100644 index 21e94cd0..00000000 --- a/kwin-styles/glow/themes/glass_large/help_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/iconify.png b/kwin-styles/glow/themes/glass_large/iconify.png Binary files differdeleted file mode 100644 index c148f4bb..00000000 --- a/kwin-styles/glow/themes/glass_large/iconify.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/iconify_glow.png b/kwin-styles/glow/themes/glass_large/iconify_glow.png Binary files differdeleted file mode 100644 index 9daa831b..00000000 --- a/kwin-styles/glow/themes/glass_large/iconify_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/maximizeoff.png b/kwin-styles/glow/themes/glass_large/maximizeoff.png Binary files differdeleted file mode 100644 index 40580530..00000000 --- a/kwin-styles/glow/themes/glass_large/maximizeoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/maximizeoff_glow.png b/kwin-styles/glow/themes/glass_large/maximizeoff_glow.png Binary files differdeleted file mode 100644 index 164aadbf..00000000 --- a/kwin-styles/glow/themes/glass_large/maximizeoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/maximizeon.png b/kwin-styles/glow/themes/glass_large/maximizeon.png Binary files differdeleted file mode 100644 index 34e9425a..00000000 --- a/kwin-styles/glow/themes/glass_large/maximizeon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/maximizeon_glow.png b/kwin-styles/glow/themes/glass_large/maximizeon_glow.png Binary files differdeleted file mode 100644 index 6038c045..00000000 --- a/kwin-styles/glow/themes/glass_large/maximizeon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/stickyoff.png b/kwin-styles/glow/themes/glass_large/stickyoff.png Binary files differdeleted file mode 100644 index a29cde1a..00000000 --- a/kwin-styles/glow/themes/glass_large/stickyoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/stickyoff_glow.png b/kwin-styles/glow/themes/glass_large/stickyoff_glow.png Binary files differdeleted file mode 100644 index 76c4781e..00000000 --- a/kwin-styles/glow/themes/glass_large/stickyoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/stickyon.png b/kwin-styles/glow/themes/glass_large/stickyon.png Binary files differdeleted file mode 100644 index c805faf4..00000000 --- a/kwin-styles/glow/themes/glass_large/stickyon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_large/stickyon_glow.png b/kwin-styles/glow/themes/glass_large/stickyon_glow.png Binary files differdeleted file mode 100644 index 7a6b9ec4..00000000 --- a/kwin-styles/glow/themes/glass_large/stickyon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/CMakeLists.txt b/kwin-styles/glow/themes/glass_verylarge/CMakeLists.txt deleted file mode 100644 index 5fd50a91..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -install( FILES - background.png - help.png help_glow.png - close.png close_glow.png - iconify.png iconify_glow.png - maximizeoff.png maximizeoff_glow.png - maximizeon.png maximizeon_glow.png - stickyon.png stickyon_glow.png - stickyoff.png stickyoff_glow.png - glass_verylarge.theme - DESTINATION ${DATA_INSTALL_DIR}/twin/glow-themes/glass_verylarge ) diff --git a/kwin-styles/glow/themes/glass_verylarge/Makefile.am b/kwin-styles/glow/themes/glass_verylarge/Makefile.am deleted file mode 100644 index ab67c5db..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -linkdir = $(kde_datadir)/twin/glow-themes/glass_verylarge -link_DATA = \ -background.png \ -help.png help_glow.png \ -close.png close_glow.png \ -iconify.png iconify_glow.png \ -maximizeoff.png maximizeoff_glow.png \ -maximizeon.png maximizeon_glow.png \ -stickyon.png stickyon_glow.png \ -stickyoff.png stickyoff_glow.png \ -glass_verylarge.theme - -EXTRA_DIST = $(link_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/glow/themes/glass_verylarge/background.png b/kwin-styles/glow/themes/glass_verylarge/background.png Binary files differdeleted file mode 100644 index ed032232..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/background.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/close.png b/kwin-styles/glow/themes/glass_verylarge/close.png Binary files differdeleted file mode 100644 index 15dc4b50..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/close.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/close_glow.png b/kwin-styles/glow/themes/glass_verylarge/close_glow.png Binary files differdeleted file mode 100644 index 9207e37e..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/close_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/glass_verylarge.theme b/kwin-styles/glow/themes/glass_verylarge/glass_verylarge.theme deleted file mode 100644 index 36368a8d..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/glass_verylarge.theme +++ /dev/null @@ -1,19 +0,0 @@ -buttonSize=30,30 - -backgroundPixmap=background.png - -stickyOnPixmap=stickyon.png -stickyOffPixmap=stickyoff.png -maximizeOnPixmap=maximizeon.png -maximizeOffPixmap=maximizeoff.png -helpPixmap=help.png -closePixmap=close.png -iconifyPixmap=iconify.png - -stickyOnGlowPixmap=stickyon_glow.png -stickyOffGlowPixmap=stickyoff_glow.png -maximizeOnGlowPixmap=maximizeon_glow.png -maximizeOffGlowPixmap=maximizeoff_glow.png -helpGlowPixmap=help_glow.png -closeGlowPixmap=close_glow.png -iconifyGlowPixmap=iconify_glow.png diff --git a/kwin-styles/glow/themes/glass_verylarge/help.png b/kwin-styles/glow/themes/glass_verylarge/help.png Binary files differdeleted file mode 100644 index 3a2d0c9d..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/help.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/help_glow.png b/kwin-styles/glow/themes/glass_verylarge/help_glow.png Binary files differdeleted file mode 100644 index 29e6edf9..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/help_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/iconify.png b/kwin-styles/glow/themes/glass_verylarge/iconify.png Binary files differdeleted file mode 100644 index 2d760e3d..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/iconify.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/iconify_glow.png b/kwin-styles/glow/themes/glass_verylarge/iconify_glow.png Binary files differdeleted file mode 100644 index 01f474e5..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/iconify_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/maximizeoff.png b/kwin-styles/glow/themes/glass_verylarge/maximizeoff.png Binary files differdeleted file mode 100644 index 4224aa05..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/maximizeoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/maximizeoff_glow.png b/kwin-styles/glow/themes/glass_verylarge/maximizeoff_glow.png Binary files differdeleted file mode 100644 index 9327994a..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/maximizeoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/maximizeon.png b/kwin-styles/glow/themes/glass_verylarge/maximizeon.png Binary files differdeleted file mode 100644 index 2d90482f..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/maximizeon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/maximizeon_glow.png b/kwin-styles/glow/themes/glass_verylarge/maximizeon_glow.png Binary files differdeleted file mode 100644 index 3b9a6bf4..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/maximizeon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/stickyoff.png b/kwin-styles/glow/themes/glass_verylarge/stickyoff.png Binary files differdeleted file mode 100644 index a2c26583..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/stickyoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/stickyoff_glow.png b/kwin-styles/glow/themes/glass_verylarge/stickyoff_glow.png Binary files differdeleted file mode 100644 index c6e57e21..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/stickyoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/stickyon.png b/kwin-styles/glow/themes/glass_verylarge/stickyon.png Binary files differdeleted file mode 100644 index 56cde081..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/stickyon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/glass_verylarge/stickyon_glow.png b/kwin-styles/glow/themes/glass_verylarge/stickyon_glow.png Binary files differdeleted file mode 100644 index f3778479..00000000 --- a/kwin-styles/glow/themes/glass_verylarge/stickyon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/CMakeLists.txt b/kwin-styles/glow/themes/square/CMakeLists.txt deleted file mode 100644 index 0343fa2a..00000000 --- a/kwin-styles/glow/themes/square/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -install( FILES - background.png - help.png help_glow.png - close.png close_glow.png - iconify.png iconify_glow.png - maximizeoff.png maximizeoff_glow.png - maximizeon.png maximizeon_glow.png - stickyon.png stickyon_glow.png - stickyoff.png stickyoff_glow.png - square.theme - DESTINATION ${DATA_INSTALL_DIR}/twin/glow-themes/square ) diff --git a/kwin-styles/glow/themes/square/Makefile.am b/kwin-styles/glow/themes/square/Makefile.am deleted file mode 100644 index 01193d98..00000000 --- a/kwin-styles/glow/themes/square/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -linkdir = $(kde_datadir)/twin/glow-themes/square -link_DATA = \ -background.png \ -help.png help_glow.png \ -close.png close_glow.png \ -iconify.png iconify_glow.png \ -maximizeoff.png maximizeoff_glow.png \ -maximizeon.png maximizeon_glow.png \ -stickyon.png stickyon_glow.png \ -stickyoff.png stickyoff_glow.png \ -square.theme - -EXTRA_DIST = $(link_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/glow/themes/square/background.png b/kwin-styles/glow/themes/square/background.png Binary files differdeleted file mode 100644 index 225af3a5..00000000 --- a/kwin-styles/glow/themes/square/background.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/close.png b/kwin-styles/glow/themes/square/close.png Binary files differdeleted file mode 100644 index 898a368a..00000000 --- a/kwin-styles/glow/themes/square/close.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/close_glow.png b/kwin-styles/glow/themes/square/close_glow.png Binary files differdeleted file mode 100644 index 4cd1f1cb..00000000 --- a/kwin-styles/glow/themes/square/close_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/help.png b/kwin-styles/glow/themes/square/help.png Binary files differdeleted file mode 100644 index c3ed65ee..00000000 --- a/kwin-styles/glow/themes/square/help.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/help_glow.png b/kwin-styles/glow/themes/square/help_glow.png Binary files differdeleted file mode 100644 index 4cd1f1cb..00000000 --- a/kwin-styles/glow/themes/square/help_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/iconify.png b/kwin-styles/glow/themes/square/iconify.png Binary files differdeleted file mode 100644 index 94fc6338..00000000 --- a/kwin-styles/glow/themes/square/iconify.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/iconify_glow.png b/kwin-styles/glow/themes/square/iconify_glow.png Binary files differdeleted file mode 100644 index 4cd1f1cb..00000000 --- a/kwin-styles/glow/themes/square/iconify_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/maximizeoff.png b/kwin-styles/glow/themes/square/maximizeoff.png Binary files differdeleted file mode 100644 index e60cdc97..00000000 --- a/kwin-styles/glow/themes/square/maximizeoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/maximizeoff_glow.png b/kwin-styles/glow/themes/square/maximizeoff_glow.png Binary files differdeleted file mode 100644 index 4cd1f1cb..00000000 --- a/kwin-styles/glow/themes/square/maximizeoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/maximizeon.png b/kwin-styles/glow/themes/square/maximizeon.png Binary files differdeleted file mode 100644 index 3976411f..00000000 --- a/kwin-styles/glow/themes/square/maximizeon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/maximizeon_glow.png b/kwin-styles/glow/themes/square/maximizeon_glow.png Binary files differdeleted file mode 100644 index 4cd1f1cb..00000000 --- a/kwin-styles/glow/themes/square/maximizeon_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/square.theme b/kwin-styles/glow/themes/square/square.theme deleted file mode 100644 index 26f00feb..00000000 --- a/kwin-styles/glow/themes/square/square.theme +++ /dev/null @@ -1,19 +0,0 @@ -buttonSize=17,17 - -backgroundPixmap=background.png - -stickyOnPixmap=stickyon.png -stickyOffPixmap=stickyoff.png -maximizeOnPixmap=maximizeon.png -maximizeOffPixmap=maximizeoff.png -helpPixmap=help.png -closePixmap=close.png -iconifyPixmap=iconify.png - -stickyOnGlowPixmap=stickyon_glow.png -stickyOffGlowPixmap=stickyoff_glow.png -maximizeOnGlowPixmap=maximizeon_glow.png -maximizeOffGlowPixmap=maximizeoff_glow.png -helpGlowPixmap=help_glow.png -closeGlowPixmap=close_glow.png -iconifyGlowPixmap=iconify_glow.png diff --git a/kwin-styles/glow/themes/square/stickyoff.png b/kwin-styles/glow/themes/square/stickyoff.png Binary files differdeleted file mode 100644 index 3600e326..00000000 --- a/kwin-styles/glow/themes/square/stickyoff.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/stickyoff_glow.png b/kwin-styles/glow/themes/square/stickyoff_glow.png Binary files differdeleted file mode 100644 index 4cd1f1cb..00000000 --- a/kwin-styles/glow/themes/square/stickyoff_glow.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/stickyon.png b/kwin-styles/glow/themes/square/stickyon.png Binary files differdeleted file mode 100644 index a84941a3..00000000 --- a/kwin-styles/glow/themes/square/stickyon.png +++ /dev/null diff --git a/kwin-styles/glow/themes/square/stickyon_glow.png b/kwin-styles/glow/themes/square/stickyon_glow.png Binary files differdeleted file mode 100644 index 4cd1f1cb..00000000 --- a/kwin-styles/glow/themes/square/stickyon_glow.png +++ /dev/null diff --git a/kwin-styles/icewm/CMakeLists.txt b/kwin-styles/icewm/CMakeLists.txt deleted file mode 100644 index d59f42c9..00000000 --- a/kwin-styles/icewm/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_subdirectory( config ) -add_subdirectory( icewm-themes ) - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - -##### other data ################################ - -install( FILES icewm.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_icewm ############################### - -tde_add_kpart( twin3_icewm AUTOMOC - SOURCES icewm.cpp - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/icewm/Makefile.am b/kwin-styles/icewm/Makefile.am deleted file mode 100644 index e067c531..00000000 --- a/kwin-styles/icewm/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -INCLUDES = $(all_includes) - -SUBDIRS = . config icewm-themes - -kde_module_LTLIBRARIES = twin3_icewm.la - -twin3_icewm_la_SOURCES = icewm.cpp -twin3_icewm_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin3_icewm_la_LIBADD = $(LIB_TDEUI) -ltdecorations - -METASOURCES = AUTO -noinst_HEADERS = icewm.h - -lnkdir = $(kde_datadir)/twin/ -lnk_DATA = icewm.desktop - -EXTRA_DIST = $(lnk_DATA) - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/icewm/config/CMakeLists.txt b/kwin-styles/icewm/config/CMakeLists.txt deleted file mode 100644 index 9e2e118d..00000000 --- a/kwin-styles/icewm/config/CMakeLists.txt +++ /dev/null @@ -1,28 +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} -) - -##### twin_icewm_config (module) ################ - -tde_add_kpart( twin_icewm_config AUTOMOC - SOURCES config.cpp - LINK tdeui-shared kio-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/icewm/config/Makefile.am b/kwin-styles/icewm/config/Makefile.am deleted file mode 100644 index ca2d2552..00000000 --- a/kwin-styles/icewm/config/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ -INCLUDES = $(all_includes) - -kde_module_LTLIBRARIES = twin_icewm_config.la - -twin_icewm_config_la_SOURCES = config.cpp -twin_icewm_config_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin_icewm_config_la_LIBADD = $(LIB_TDEUI) $(LIB_KIO) - -METASOURCES = AUTO -noinst_HEADERS = config.h - -lnkdir = $(kde_datadir)/twin/ - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/icewm/config/config.cpp b/kwin-styles/icewm/config/config.cpp deleted file mode 100644 index a0a2a8db..00000000 --- a/kwin-styles/icewm/config/config.cpp +++ /dev/null @@ -1,271 +0,0 @@ -/* - * $Id$ - * - * This file contains the IceWM configuration widget - * - * Copyright (c) 2001 - * Karol Szwed <gallium@kde.org> - * http://gallium.n3.net/ - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#include "config.h" -#include <tqdir.h> -#include <tqregexp.h> -#include <tqvbox.h> -#include <tqwhatsthis.h> -#include <kglobal.h> -#include <klocale.h> -#include <kstandarddirs.h> -#include <kdialog.h> -#include <kdirwatch.h> -#include <kapplication.h> - - -extern "C" -{ - KDE_EXPORT TQObject* allocate_config( KConfig* conf, TQWidget* parent ) - { - return(new IceWMConfig(conf, parent)); - } -} - - -// NOTE: -// ========================================================================== -// 'conf' is a pointer to the twindecoration modules open twin config, -// and is by default set to the "Style" group. -// -// 'parent' is the parent of the TQObject, which is a VBox inside the -// Configure tab in twindecoration -// ========================================================================== - -IceWMConfig::IceWMConfig( KConfig* conf, TQWidget* parent ) - : TQObject( parent ) -{ - icewmConfig = new KConfig("twinicewmrc"); - KGlobal::locale()->insertCatalogue("twin_art_clients"); - - mainWidget = new TQVBox( parent ); - mainWidget->setSpacing( KDialog::spacingHint() ); - - themeListBox = new TQListBox( mainWidget ); - TQWhatsThis::add( themeListBox, - i18n("Make your IceWM selection by clicking on a theme here. ") ); - - cbThemeTitleTextColors = new TQCheckBox( - i18n("Use theme &title text colors"), mainWidget ); - - TQWhatsThis::add( cbThemeTitleTextColors, - i18n("When selected, titlebar colors will follow those set " - "in the IceWM theme. If not selected, the current KDE " - "titlebar colors will be used instead.") ); - - cbTitleBarOnTop = new TQCheckBox( - i18n("&Show title bar on top of windows"), mainWidget ); - - TQWhatsThis::add( cbTitleBarOnTop, - i18n("When selected, all window titlebars will be shown " - "at the top of each window, otherwise they will be " - "shown at the bottom.") ); - - cbShowMenuButtonIcon = new TQCheckBox( - i18n("&Menu button always shows application mini icon"), mainWidget ); - - TQWhatsThis::add( cbShowMenuButtonIcon, - i18n("When selected, all titlebar menu buttons will have " - "the application icon shown. If not selected, the current " - "theme's defaults are used instead.") ); - - urlLabel = new KURLLabel( mainWidget ); - urlLabel->setText( i18n("Open KDE's IceWM theme folder") ); - - themeLabel = new TQLabel( - i18n("Clicking on the link above will cause a window to appear " - "showing the KDE IceWM theme folder. You can " - "add or remove native IceWM themes by " - "uncompressing <b>http://icewm.themes.org/</b> theme files " - "into this folder, or by creating folder symlinks to " - "existing IceWM themes on your system."), mainWidget ); - - // Load configuration options - load( conf ); - - // Ensure we track user changes properly - connect( themeListBox, TQT_SIGNAL(selectionChanged()), - this, TQT_SLOT(slotSelectionChanged()) ); - - connect( urlLabel, TQT_SIGNAL(leftClickedURL(const TQString&)), - this, TQT_SLOT(callURL(const TQString&))); - - connect( cbThemeTitleTextColors, TQT_SIGNAL(clicked()), - this, TQT_SLOT(slotSelectionChanged()) ); - - connect( cbTitleBarOnTop, TQT_SIGNAL(clicked()), - this, TQT_SLOT(slotSelectionChanged()) ); - - connect( cbShowMenuButtonIcon, TQT_SIGNAL(clicked()), - this, TQT_SLOT(slotSelectionChanged()) ); - - // Create the theme directory (if not found) ... and obtain the path as we do so. - localThemeString = KGlobal::dirs()->saveLocation("data", "twin"); - localThemeString += "/icewm-themes"; - if (!TQFile::exists(localThemeString)) - TQDir().mkdir(localThemeString); - - // Watch the icewm theme directory for theme additions/removals - KDirWatch::self()->addDir(localThemeString); - connect( KDirWatch::self(), TQT_SIGNAL(dirty(const TQString&)), this, TQT_SLOT(findIceWMThemes()) ); - connect( KDirWatch::self(), TQT_SIGNAL(created(const TQString&)), this, TQT_SLOT(findIceWMThemes()) ); - connect( KDirWatch::self(), TQT_SIGNAL(deleted(const TQString&)), this, TQT_SLOT(findIceWMThemes()) ); - - // Set the konqui link url - TQString urlThemeString = TQString("file://") + localThemeString; - urlThemeString.replace( TQRegExp("~"), "$HOME" ); - urlLabel->setURL( urlThemeString ); - - // Make the widgets visible in twindecoration - mainWidget->show(); - - KDirWatch::self()->startScan(); -} - - -IceWMConfig::~IceWMConfig() -{ - KDirWatch::self()->removeDir(localThemeString); - KDirWatch::self()->stopScan(); - delete icewmConfig; - delete mainWidget; -} - - -// Searches for all installed IceWM themes, and adds them to the listBox. -void IceWMConfig::findIceWMThemes() -{ - TQStringList dirList = KGlobal::dirs()->findDirs("data", "twin/icewm-themes"); - TQStringList::ConstIterator it; - - // Remove any old themes in the list (if any) - themeListBox->clear(); - themeListBox->insertItem( i18n("Infadel #2 (default)") ); - - // Step through all twin/icewm-themes directories... - for( it = dirList.begin(); it != dirList.end(); it++) - { - // List all directory names only... - TQDir d(*it, TQString("*"), TQDir::Unsorted, TQDir::Dirs | TQDir::Readable ); - if (d.exists()) - { - TQFileInfoListIterator it2( *d.entryInfoList() ); - TQFileInfo* finfo; - - // Step through all directories within the twin/icewm-themes directory - while( (finfo = it2.current()) ) - { - // Ignore . and .. directories - if ( (finfo->fileName() == ".") || (finfo->fileName() == "..") ) - { - ++it2; - continue; - } - - if ( !themeListBox->findItem( finfo->fileName()) ) - themeListBox->insertItem( finfo->fileName() ); - - ++it2; - } - } - } - - // Sort the items - themeListBox->sort(); - - // Select the currently used IceWM theme - TQString themeName = icewmConfig->readEntry("CurrentTheme"); - - // Provide a theme alias - if (themeName == "default") - themeName = ""; - - if (themeName.isEmpty()) - themeListBox->setCurrentItem( - themeListBox->findItem( i18n("Infadel #2 (default)") ) ); - else - themeListBox->setCurrentItem( themeListBox->findItem(themeName) ); -} - - -void IceWMConfig::callURL( const TQString& s ) -{ - kapp->invokeBrowser( s ); -} - - -void IceWMConfig::slotSelectionChanged() -{ - emit changed(); -} - - -// Loads the configurable options from the twinicewmrc config file -void IceWMConfig::load( KConfig* ) -{ - icewmConfig->setGroup("General"); - - bool override = icewmConfig->readBoolEntry( "ThemeTitleTextColors", true ); - cbThemeTitleTextColors->setChecked( override ); - - override = icewmConfig->readBoolEntry( "TitleBarOnTop", true ); - cbTitleBarOnTop->setChecked( override ); - - override = icewmConfig->readBoolEntry( "ShowMenuButtonIcon", false ); - cbShowMenuButtonIcon->setChecked( override ); - - findIceWMThemes(); -} - - -// Saves the configurable options to the twinicewmrc config file -void IceWMConfig::save( KConfig* ) -{ - icewmConfig->setGroup("General"); - icewmConfig->writeEntry( "ThemeTitleTextColors", cbThemeTitleTextColors->isChecked() ); - icewmConfig->writeEntry( "TitleBarOnTop", cbTitleBarOnTop->isChecked() ); - icewmConfig->writeEntry( "ShowMenuButtonIcon", cbShowMenuButtonIcon->isChecked() ); - - if (themeListBox->currentText() == i18n("Infadel #2 (default)")) - icewmConfig->writeEntry("CurrentTheme", "default"); - else - icewmConfig->writeEntry("CurrentTheme", themeListBox->currentText() ); - - icewmConfig->sync(); -} - - -// Sets UI widget defaults which must correspond to config defaults -void IceWMConfig::defaults() -{ - cbThemeTitleTextColors->setChecked( true ); - cbTitleBarOnTop->setChecked( true ); - cbShowMenuButtonIcon->setChecked( false ); - themeListBox->setCurrentItem( themeListBox->findItem(i18n("Infadel #2 (default)")) ); -} - -#include "config.moc" -// vim: ts=4 diff --git a/kwin-styles/icewm/config/config.h b/kwin-styles/icewm/config/config.h deleted file mode 100644 index c9c5b2d0..00000000 --- a/kwin-styles/icewm/config/config.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * $Id$ - * - * This file contains the IceWM configuration widget - * - * Copyright (c) 2001 - * Karol Szwed <gallium@kde.org> - * http://gallium.n3.net/ - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef _ICEWMCONFIG_H -#define _ICEWMCONFIG_H - -#include <tqwidget.h> -#include <tqcheckbox.h> -#include <tqgroupbox.h> -#include <tqlistbox.h> -#include <tqlabel.h> -#include <kurllabel.h> -#include <kconfig.h> - -class TQVBox; - -class IceWMConfig: public TQObject -{ - Q_OBJECT - TQ_OBJECT - - public: - IceWMConfig( KConfig* conf, TQWidget* parent ); - ~IceWMConfig(); - - // These public signals/slots work similar to KCM modules - signals: - void changed(); - - public slots: - void load( KConfig* conf ); - void save( KConfig* conf ); - void defaults(); - - protected slots: - void slotSelectionChanged(); // Internal use - void callURL( const TQString& s ); - void findIceWMThemes(); - - private: - KConfig* icewmConfig; - TQCheckBox* cbThemeTitleTextColors; - TQCheckBox* cbTitleBarOnTop; - TQCheckBox* cbShowMenuButtonIcon; - TQListBox* themeListBox; - TQLabel* themeLabel; - KURLLabel* urlLabel; - TQString localThemeString; - TQVBox* mainWidget; -}; - - -#endif -// vim: ts=4 diff --git a/kwin-styles/icewm/icewm-themes/CMakeLists.txt b/kwin-styles/icewm/icewm-themes/CMakeLists.txt deleted file mode 100644 index 367553ab..00000000 --- a/kwin-styles/icewm/icewm-themes/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -install( FILES - titleAB.xpm titleAJ.xpm titleAM.xpm titleAP.xpm titleAQ.xpm - titleAR.xpm titleAS.xpm titleAT.xpm titleIB.xpm titleIJ.xpm - titleIM.xpm titleIQ.xpm titleIR.xpm titleIS.xpm titleIT.xpm - titleIP.xpm closeA.xpm closeI.xpm depthA.xpm depthI.xpm - maximizeA.xpm maximizeI.xpm menuButtonA.xpm menuButtonI.xpm - minimizeA.xpm minimizeI.xpm restoreA.xpm restoreI.xpm - rolldownA.xpm rolldownI.xpm rollupA.xpm rollupI.xpm - default.theme - DESTINATION ${DATA_INSTALL_DIR}/twin/icewm-themes ) diff --git a/kwin-styles/icewm/icewm-themes/Makefile.am b/kwin-styles/icewm/icewm-themes/Makefile.am deleted file mode 100644 index dcd5463a..00000000 --- a/kwin-styles/icewm/icewm-themes/Makefile.am +++ /dev/null @@ -1,12 +0,0 @@ -pics_DATA = titleAB.xpm titleAJ.xpm titleAM.xpm titleAP.xpm titleAQ.xpm \ - titleAR.xpm titleAS.xpm titleAT.xpm titleIB.xpm titleIJ.xpm \ - titleIM.xpm titleIQ.xpm titleIR.xpm titleIS.xpm titleIT.xpm \ - titleIP.xpm closeA.xpm closeI.xpm depthA.xpm depthI.xpm \ - maximizeA.xpm maximizeI.xpm menuButtonA.xpm menuButtonI.xpm \ - minimizeA.xpm minimizeI.xpm restoreA.xpm restoreI.xpm \ - rolldownA.xpm rolldownI.xpm rollupA.xpm rollupI.xpm \ - default.theme - -picsdir = $(kde_datadir)/twin/icewm-themes - - diff --git a/kwin-styles/icewm/icewm-themes/closeA.xpm b/kwin-styles/icewm/icewm-themes/closeA.xpm deleted file mode 100644 index cc202bcd..00000000 --- a/kwin-styles/icewm/icewm-themes/closeA.xpm +++ /dev/null @@ -1,69 +0,0 @@ -/* XPM */ -static char * closeA_xpm[] = { -"15 34 32 1", -" c None", -". c #858686", -"+ c #9A9A9A", -"@ c #AEAEAE", -"# c #5D5D5E", -"$ c #111214", -"% c #040404", -"& c #C2C2C2", -"* c #181C22", -"= c #2D333D", -"- c #56657A", -"; c #58667E", -"> c #5D6E86", -", c #D6D6D6", -"' c #1D2632", -") c #4A4A4A", -"! c #6E809C", -"~ c #EAEAEA", -"{ c #717273", -"] c #232D3A", -"^ c #4D5868", -"/ c #798EAA", -"( c #7E96B6", -"_ c #C7CDD4", -": c #FEFEFE", -"< c #8CA3C5", -"[ c #435165", -"} c #3C4553", -"| c #323F4F", -"1 c #0D0E13", -"2 c #363636", -"3 c #677B98", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/(/_>^]{~", -":*)^>!(<'!_^[*:", -"~%}^>!/*/_>^}%~", -",%}[->*!,>;^}%,", -"&%|[^$>_>;^}=%&", -"@$]|1[&^^^}|]$@", -"+)$]|&}[)||=$)+", -"..**']=|=]]**..", -"{{{$1*'''*1${{{", -"####=%%%%1=####", -")))))))))))))))", -"2222222=2222222", -"...............", -"+++++++++++++++", -"@@@@)1%%%$)@@@@", -"&&&*'})[)}]*&&&", -",,*=)[^-^^}2*,,", -"~{'}[^;>;-[}'{~", -":$=}[^>31+[|=*:", -"~%=}[^;$;^+|=%~", -",%]|}^1-^+}|]%,", -"&%'2|1[[/)|2'%&", -"@1']%|}.}|2]'1@", -"+)1']=.==]]'1)+", -"..$$*.]]''*$1..", -"{{{11$***$1${{{", -"####]%%%%%]####", -")))))))))))))))", -"222222222222222"}; diff --git a/kwin-styles/icewm/icewm-themes/closeI.xpm b/kwin-styles/icewm/icewm-themes/closeI.xpm deleted file mode 100644 index 4529b06f..00000000 --- a/kwin-styles/icewm/icewm-themes/closeI.xpm +++ /dev/null @@ -1,69 +0,0 @@ -/* XPM */ -static char * closeI_xpm[] = { -"15 34 32 1", -" g None", -". g #858585", -"+ g #9A9A9A", -"@ g #AEAEAE", -"# g #5D5D5D", -"$ g #111111", -"% g #040404", -"& g #C2C2C2", -"* g #1B1B1B", -"= g #323232", -"- g #626262", -"; g #646464", -"> g #6B6B6B", -", g #D6D6D6", -"' g #242424", -") g #4A4A4A", -"! g #7D7D7D", -"~ g #EAEAEA", -"{ g #717171", -"] g #2B2B2B", -"^ g #565656", -"/ g #8A8A8A", -"( g #929292", -"_ g #CBCBCB", -": g #FEFEFE", -"< g #9F9F9F", -"[ g #4F4F4F", -"} g #434343", -"| g #3C3C3C", -"1 g #0E0E0E", -"2 g #363636", -"3 g #787878", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/(/_>^]{~", -":*)^>!(<'!_^[*:", -"~%}^>!/*/_>^}%~", -",%}[->*!,>;^}%,", -"&%|[^$>_>;^}=%&", -"@$]|1[&^^^}|]$@", -"+)$]|&}[)||=$)+", -"..**']=|=]]**..", -"{{{$1*'''*1${{{", -"####=%%%%1=####", -")))))))))))))))", -"2222222=2222222", -"...............", -"+++++++++++++++", -"@@@@)1%%%$)@@@@", -"&&&*'})[)}]*&&&", -",,*=)[^-^^}2*,,", -"~{'}[^;>;-[}'{~", -":$=}[^>31+[|=*:", -"~%=}[^;$;^+|=%~", -",%]|}^1-^+}|]%,", -"&%'2|1[[/)|2'%&", -"@1']%|}.}|2]'1@", -"+)1']=.==]]'1)+", -"..$$*.]]''*$1..", -"{{{11$***$1${{{", -"####]%%%%%]####", -")))))))))))))))", -"222222222222222"}; diff --git a/kwin-styles/icewm/icewm-themes/default.theme b/kwin-styles/icewm/icewm-themes/default.theme deleted file mode 100644 index 945a3824..00000000 --- a/kwin-styles/icewm/icewm-themes/default.theme +++ /dev/null @@ -1,48 +0,0 @@ -# Xerithane: -# -# Well, Artwiz inspired me (dirty lil blackbox user <g>) -# So, I ripped his font (snap.pcf), and then got the chrome style idea and -# adapted the theme as a rip of the e.t.o page (get it, Infadel..) -# Some of the borrowed style is from Area 51 (by RudeSka, herald of #icewm) -# Also borrowed are some icons from Area 51. -# -# tbf: -# -# Extended Artwiz's snap font, added cursors, polished the applets. -# Invented depth, hide, rollup and rolldown buttons. Redraw the others. -# Reduced number of colors. - -# closeI.xpm depthI.xpm maximizeI.xpm minimizeI.xpm restoreI.xpm hideI.xpm -# rollupI.xpm rolldownI.xpm menuButtonI.xpm -# closeA.xpm depthA.xpm maximizeA.xpm minimizeA.xpm restoreA.xpm hideA.xpm -# rollupA.xpm rolldownA.xpm menuButtonA.xpm - -# PLEASE NOTE: -# ============ -# Heavily modified by gallium for the purposes of twin-icewm. -# Please do not use this for icewm. Use the original icewm Infadel #2 instead. -# The full Infadel #2 theme will still work with twin-icewm as well, but -# this trimmed version is included here for space reasons. - -ThemeDescription="Infadel/1.0.7(twin)" -ThemeAuthor="xerithane@nerdfarm.org" -Look=pixmap - -TitleButtonsLeft="s" -TitleButtonsRight="xmi" -TitleButtonsSupported="sxmihrd" -TitleBarCentered=1 -TitleBarHeight=17 - -# Modified border sizes so they're more user "grip" friendly -BorderSizeX=3 -BorderSizeY=3 -CornerSizeX=28 -CornerSizeY=28 - -ColorNormalTitleBarText="#c0c0c0" -ColorActiveTitleBarText="#ffffff" -ColorActiveBorder="#868687" -ColorNormalBorder="#575757" - -ShowMenuButtonIcon=0 diff --git a/kwin-styles/icewm/icewm-themes/depthA.xpm b/kwin-styles/icewm/icewm-themes/depthA.xpm deleted file mode 100644 index 67a2e1e6..00000000 --- a/kwin-styles/icewm/icewm-themes/depthA.xpm +++ /dev/null @@ -1,69 +0,0 @@ -/* XPM */ -static char * depthA_xpm[] = { -"15 34 32 1", -" c None", -". c #858686", -"+ c #9A9A9A", -"@ c #AEAEAE", -"# c #363636", -"$ c #0D0E13", -"% c #040404", -"& c #C2C2C2", -"* c #4A4A4A", -"= c #2D333D", -"- c #56657A", -"; c #5D6E86", -"> c #D6D6D6", -", c #4D5868", -"' c #677B98", -") c #6E809C", -"! c #58667E", -"~ c #EAEAEA", -"{ c #232D3A", -"] c #798EAA", -"^ c #7E96B6", -"/ c #FEFEFE", -"( c #3C4553", -"_ c #8CA3C5", -": c #111214", -"< c #323F4F", -"[ c #435165", -"} c #C7CDD4", -"| c #717273", -"1 c #181C22", -"2 c #1D2632", -"3 c #5D5D5E", -"...............", -"+++++++++++++++", -"@@@@.#$%$#.@@@@", -"&&&*=-;;;-=*&&&", -">>,*-;')';!*,>>", -"~@{,;)]^]);,{@~", -"/*(-;)^_^);,(,/", -"~:(,;)<(<);,*:~", -">%([!=)))}![(%>", -"&:=*[-}}&-,[=$&", -"@#=<*[,-,[(<{#@", -"+|:{<(((*(<=:|+", -"..#1{=<==={1#..", -"|||{$12221$=|||", -"3333(1%%%1(3333", -"***************", -"###############", -"...............", -"+++++++++++++++", -"@@@@|{$%%=|@@@@", -"&&&(2**[[(2(&&&", -">>*=([,3,,*#*>>", -"~+1([3!;!,[(2+~", -"/(#([,;'!-[(#(/", -"~:=([,{={,[<=:~", -">%{<(2,-,+(<=%>", -"&$2#((^+.[<=2$&", -"@=2{=#<<(<#{1=@", -"+3$2{===={{2$!+", -"..=:122{221:=..", -"|||{%1111:$2|||", -"3333#1%%%:*3333", -"***************", -"###############"}; diff --git a/kwin-styles/icewm/icewm-themes/depthI.xpm b/kwin-styles/icewm/icewm-themes/depthI.xpm deleted file mode 100644 index e4fe17a9..00000000 --- a/kwin-styles/icewm/icewm-themes/depthI.xpm +++ /dev/null @@ -1,69 +0,0 @@ -/* XPM */ -static char * depthI_xpm[] = { -"15 34 32 1", -" g None", -". g #858585", -"+ g #9A9A9A", -"@ g #AEAEAE", -"# g #363636", -"$ g #0E0E0E", -"% g #040404", -"& g #C2C2C2", -"* g #4A4A4A", -"= g #323232", -"- g #626262", -"; g #6B6B6B", -"> g #D6D6D6", -", g #565656", -"' g #787878", -") g #7D7D7D", -"! g #646464", -"~ g #EAEAEA", -"{ g #2B2B2B", -"] g #8A8A8A", -"^ g #929292", -"/ g #FEFEFE", -"( g #434343", -"_ g #9F9F9F", -": g #111111", -"< g #3C3C3C", -"[ g #4F4F4F", -"} g #CBCBCB", -"| g #717171", -"1 g #1B1B1B", -"2 g #242424", -"3 g #5D5D5D", -"...............", -"+++++++++++++++", -"@@@@.#$%$#.@@@@", -"&&&*=-;;;-=*&&&", -">>,*-;')';!*,>>", -"~@{,;)]^]);,{@~", -"/*(-;)^_^);,(,/", -"~:(,;)<(<);,*:~", -">%([!=)))}![(%>", -"&:=*[-}}&-,[=$&", -"@#=<*[,-,[(<{#@", -"+|:{<(((*(<=:|+", -"..#1{=<==={1#..", -"|||{$12221$=|||", -"3333(1%%%1(3333", -"***************", -"###############", -"...............", -"+++++++++++++++", -"@@@@|{$%%=|@@@@", -"&&&(2**[[(2(&&&", -">>*=([,3,,*#*>>", -"~+1([3!;!,[(2+~", -"/(#([,;'!-[(#(/", -"~:=([,{={,[<=:~", -">%{<(2,-,+(<=%>", -"&$2#((^+.[<=2$&", -"@=2{=#<<(<#{1=@", -"+3$2{===={{2$!+", -"..=:122{221:=..", -"|||{%1111:$2|||", -"3333#1%%%:*3333", -"***************", -"###############"}; diff --git a/kwin-styles/icewm/icewm-themes/maximizeA.xpm b/kwin-styles/icewm/icewm-themes/maximizeA.xpm deleted file mode 100644 index c34304dc..00000000 --- a/kwin-styles/icewm/icewm-themes/maximizeA.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * maximizeA_xpm[] = { -"15 34 31 1", -" c None", -". c #858686", -"+ c #9A9A9A", -"@ c #AEAEAE", -"# c #5D5D5E", -"$ c #111214", -"% c #040404", -"& c #C2C2C2", -"* c #181C22", -"= c #2D333D", -"- c #56657A", -"; c #58667E", -"> c #5D6E86", -", c #D6D6D6", -"' c #1D2632", -") c #4A4A4A", -"! c #6E809C", -"~ c #EAEAEA", -"{ c #717273", -"] c #232D3A", -"^ c #4D5868", -"/ c #798EAA", -"( c #7E96B6", -"_ c #FEFEFE", -": c #7A91B1", -"< c #3C4553", -"[ c #435165", -"} c #C7CDD4", -"| c #323F4F", -"1 c #0D0E13", -"2 c #363636", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/(/!>^]{~", -"_*)^>!(~:!>-)*_", -"~%<^>!,@,!>^<%~", -",%<[-}@@@};^|%,", -"&%|[^%%%%%^<|%&", -"@$]|<^^^^^<|]$@", -"+)$]|<<[<<|]$)+", -"..**'==|=]]**..", -"{{{$1*'''*1${{{", -"####=%%%%1=####", -")))))))))))))))", -"222222222222222", -"...............", -"+++++++++++++++", -"@@@@)1%%%$)@@@@", -"&&&*'<)[)['*}&&", -",,*2<^^^^[<2*,,", -"~{'<[^>>;-)<*{~", -"_$=|[->+;-[<2*_", -"~%=<[^+.+^[|=%~", -",%]|<+.!!+<|]%,", -"&%'=|%%%%%|2'%&", -"@1']=||<||2]'1@", -"+)1']==2=]]'1)+", -"..$1*'''''*$1..", -"{{{11$***$1${{{", -"####]%%%%%]####", -")))))))))))))))", -"222222222222222"}; diff --git a/kwin-styles/icewm/icewm-themes/maximizeI.xpm b/kwin-styles/icewm/icewm-themes/maximizeI.xpm deleted file mode 100644 index d857672b..00000000 --- a/kwin-styles/icewm/icewm-themes/maximizeI.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * maximizeI_xpm[] = { -"15 34 31 1", -" g None", -". g #858585", -"+ g #9A9A9A", -"@ g #AEAEAE", -"# g #5D5D5D", -"$ g #111111", -"% g #040404", -"& g #C2C2C2", -"* g #1B1B1B", -"= g #323232", -"- g #626262", -"; g #646464", -"> g #6B6B6B", -", g #D6D6D6", -"' g #242424", -") g #4A4A4A", -"! g #7D7D7D", -"~ g #EAEAEA", -"{ g #717171", -"] g #2B2B2B", -"^ g #565656", -"/ g #8A8A8A", -"( g #929292", -"_ g #FEFEFE", -": g #8D8D8D", -"< g #434343", -"[ g #4F4F4F", -"} g #CBCBCB", -"| g #3C3C3C", -"1 g #0E0E0E", -"2 g #363636", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/(/!>^]{~", -"_*)^>!(~:!>-)*_", -"~%<^>!,@,!>^<%~", -",%<[-}@@@};^|%,", -"&%|[^%%%%%^<|%&", -"@$]|<^^^^^<|]$@", -"+)$]|<<[<<|]$)+", -"..**'==|=]]**..", -"{{{$1*'''*1${{{", -"####=%%%%1=####", -")))))))))))))))", -"222222222222222", -"...............", -"+++++++++++++++", -"@@@@)1%%%$)@@@@", -"&&&*'<)[)['*}&&", -",,*2<^^^^[<2*,,", -"~{'<[^>>;-)<*{~", -"_$=|[->+;-[<2*_", -"~%=<[^+.+^[|=%~", -",%]|<+.!!+<|]%,", -"&%'=|%%%%%|2'%&", -"@1']=||<||2]'1@", -"+)1']==2=]]'1)+", -"..$1*'''''*$1..", -"{{{11$***$1${{{", -"####]%%%%%]####", -")))))))))))))))", -"222222222222222"}; diff --git a/kwin-styles/icewm/icewm-themes/menuButtonA.xpm b/kwin-styles/icewm/icewm-themes/menuButtonA.xpm deleted file mode 100644 index e4b5e0ed..00000000 --- a/kwin-styles/icewm/icewm-themes/menuButtonA.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * menuButtonA_xpm[] = { -"17 34 31 1", -" c None", -". c #858686", -"+ c #9A9A9A", -"@ c #AEAEAE", -"# c #363636", -"$ c #0D0E13", -"% c #040404", -"& c #C2C2C2", -"* c #4A4A4A", -"= c #2D333D", -"- c #56657A", -"; c #5D6E86", -"> c #D6D6D6", -", c #4D5868", -"' c #677B98", -") c #6E809C", -"! c #58667E", -"~ c #EAEAEA", -"{ c #232D3A", -"] c #798EAA", -"^ c #7E96B6", -"/ c #FEFEFE", -"( c #3C4553", -"_ c #8CA3C5", -": c #111214", -"< c #435165", -"[ c #323F4F", -"} c #717273", -"| c #181C22", -"1 c #1D2632", -"2 c #5D5D5E", -".................", -"+++++++++++++++++", -"@@@@@.#$%$#.@@@@@", -"&&&&*=-;;;-=*&&&&", -">>>,*-;')';!*,>>>", -"~~@{,;)]^]);,{@~~", -"//*(-;)^_^);,(,//", -"~~:(,;)]^]);,*:~~", -">>%(<%%%%%%%<(%>>", -"&&$=<@&&&&&@<=$&&", -"@@#{[*<,,,,([=#@@", -"++}|{[((<(([=:}++", -"...#|{{=[={{|#...", -"}}}}{$|111|$=}}}}", -"22222(|%%$|(22222", -"*****************", -"#################", -".................", -"+++++++++++++++++", -"@@@@@}{$%%=}@@@@@", -"&&&&(1**<<(1(&&&&", -">>>*=(<,-2<*#*>>>", -"~~+|(<,-;-,<(1+~~", -"//(#(<-;'!-<(#(//", -"~~$=[*,!;-,<[=:~~", -">>%{[%%%%%%%[{%>>", -"&&$1#.]..]..#1$&&", -"@@=1{=[((([#{1=@@", -"++2$1{====={|$2++", -"...{:|11{11|:=...", -"}}}}{%:|||:$1}}}}", -"22222(|%%%|(22222", -"*****************", -"#################"}; diff --git a/kwin-styles/icewm/icewm-themes/menuButtonI.xpm b/kwin-styles/icewm/icewm-themes/menuButtonI.xpm deleted file mode 100644 index 854ea273..00000000 --- a/kwin-styles/icewm/icewm-themes/menuButtonI.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * menuButtonI_xpm[] = { -"17 34 31 1", -" g None", -". g #858585", -"+ g #9A9A9A", -"@ g #AEAEAE", -"# g #363636", -"$ g #0E0E0E", -"% g #040404", -"& g #C2C2C2", -"* g #4A4A4A", -"= g #323232", -"- g #626262", -"; g #6B6B6B", -"> g #D6D6D6", -", g #565656", -"' g #787878", -") g #7D7D7D", -"! g #646464", -"~ g #EAEAEA", -"{ g #2B2B2B", -"] g #8A8A8A", -"^ g #929292", -"/ g #FEFEFE", -"( g #434343", -"_ g #9F9F9F", -": g #111111", -"< g #4F4F4F", -"[ g #3C3C3C", -"} g #717171", -"| g #1B1B1B", -"1 g #242424", -"2 g #5D5D5D", -".................", -"+++++++++++++++++", -"@@@@@.#$%$#.@@@@@", -"&&&&*=-;;;-=*&&&&", -">>>,*-;')';!*,>>>", -"~~@{,;)]^]);,{@~~", -"//*(-;)^_^);,(,//", -"~~:(,;)]^]);,*:~~", -">>%(<%%%%%%%<(%>>", -"&&$=<@&&&&&@<=$&&", -"@@#{[*<,,,,([=#@@", -"++}|{[((<(([=:}++", -"...#|{{=[={{|#...", -"}}}}{$|111|$=}}}}", -"22222(|%%$|(22222", -"*****************", -"#################", -".................", -"+++++++++++++++++", -"@@@@@}{$%%=}@@@@@", -"&&&&(1**<<(1(&&&&", -">>>*=(<,-2<*#*>>>", -"~~+|(<,-;-,<(1+~~", -"//(#(<-;'!-<(#(//", -"~~$=[*,!;-,<[=:~~", -">>%{[%%%%%%%[{%>>", -"&&$1#.]..]..#1$&&", -"@@=1{=[((([#{1=@@", -"++2$1{====={|$2++", -"...{:|11{11|:=...", -"}}}}{%:|||:$1}}}}", -"22222(|%%%|(22222", -"*****************", -"#################"}; diff --git a/kwin-styles/icewm/icewm-themes/minimizeA.xpm b/kwin-styles/icewm/icewm-themes/minimizeA.xpm deleted file mode 100644 index bcbfa3a7..00000000 --- a/kwin-styles/icewm/icewm-themes/minimizeA.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * minimizeA_xpm[] = { -"15 34 31 1", -" c None", -". c #858686", -"+ c #9A9A9A", -"@ c #AEAEAE", -"# c #5D5D5E", -"$ c #111214", -"% c #040404", -"& c #C2C2C2", -"* c #181C22", -"= c #2D333D", -"- c #56657A", -"; c #58667E", -"> c #5D6E86", -", c #D6D6D6", -"' c #1D2632", -") c #4A4A4A", -"! c #6E809C", -"~ c #EAEAEA", -"{ c #717273", -"] c #232D3A", -"^ c #4D5868", -"/ c #798EAA", -"( c #7E96B6", -"_ c #FEFEFE", -": c #8CA3C5", -"< c #3C4553", -"[ c #323F4F", -"} c #0D0E13", -"| c #435165", -"1 c #363636", -"2 c #677B98", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/(/!>^]{~", -"_*)^>!(:(!>-)*_", -"~%<^>,,,,,>^<%~", -",%<^-%@@@%-^[%,", -"&%[<^-}@%-^<[%&", -"@}][<|^%^|<[]$@", -"+|$][<<|<<[=$)+", -"..**]==[=]]**..", -"{{{$}*'''*}${{{", -"####=%%%%}]####", -")))))))))))))))", -"111111111111111", -"...............", -"+++++++++++++++", -"@@@@)}%%%}^@@@@", -"&&&*'<)|)<'*&&&", -",,*1||^-^|)1*,,", -"~{*[|^;>;^|<'{~", -"_*1<|->2>-|<=*_", -"~%=[|+++++|[=%~", -",%=[<%!.!%<[]%,", -"&%'1[<%.%)[1'%&", -"@}']11[%[[1]'}@", -"+)}']==1==]'})+", -"..}$*'''''*$}..", -"{{{$}$**$$}}{{{", -"####]%%%%}]####", -")))))))))))))))", -"111111111111111"}; diff --git a/kwin-styles/icewm/icewm-themes/minimizeI.xpm b/kwin-styles/icewm/icewm-themes/minimizeI.xpm deleted file mode 100644 index e2e954a2..00000000 --- a/kwin-styles/icewm/icewm-themes/minimizeI.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * minimizeI_xpm[] = { -"15 34 31 1", -" g None", -". g #858585", -"+ g #9A9A9A", -"@ g #AEAEAE", -"# g #5D5D5D", -"$ g #111111", -"% g #040404", -"& g #C2C2C2", -"* g #1B1B1B", -"= g #323232", -"- g #626262", -"; g #646464", -"> g #6B6B6B", -", g #D6D6D6", -"' g #242424", -") g #4A4A4A", -"! g #7D7D7D", -"~ g #EAEAEA", -"{ g #717171", -"] g #2B2B2B", -"^ g #565656", -"/ g #8A8A8A", -"( g #929292", -"_ g #FEFEFE", -": g #9F9F9F", -"< g #434343", -"[ g #3C3C3C", -"} g #0E0E0E", -"| g #4F4F4F", -"1 g #363636", -"2 g #787878", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/(/!>^]{~", -"_*)^>!(:(!>-)*_", -"~%<^>,,,,,>^<%~", -",%<^-%@@@%-^[%,", -"&%[<^-}@%-^<[%&", -"@}][<|^%^|<[]$@", -"+|$][<<|<<[=$)+", -"..**]==[=]]**..", -"{{{$}*'''*}${{{", -"####=%%%%}]####", -")))))))))))))))", -"111111111111111", -"...............", -"+++++++++++++++", -"@@@@)}%%%}^@@@@", -"&&&*'<)|)<'*&&&", -",,*1||^-^|)1*,,", -"~{*[|^;>;^|<'{~", -"_*1<|->2>-|<=*_", -"~%=[|+++++|[=%~", -",%=[<%!.!%<[]%,", -"&%'1[<%.%)[1'%&", -"@}']11[%[[1]'}@", -"+)}']==1==]'})+", -"..}$*'''''*$}..", -"{{{$}$**$$}}{{{", -"####]%%%%}]####", -")))))))))))))))", -"111111111111111"}; diff --git a/kwin-styles/icewm/icewm-themes/restoreA.xpm b/kwin-styles/icewm/icewm-themes/restoreA.xpm deleted file mode 100644 index 93481afe..00000000 --- a/kwin-styles/icewm/icewm-themes/restoreA.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * restoreA_xpm[] = { -"15 34 31 1", -" c None", -". c #858686", -"+ c #9A9A9A", -"@ c #AEAEAE", -"# c #5D5D5E", -"$ c #111214", -"% c #040404", -"& c #C2C2C2", -"* c #181C22", -"= c #2D333D", -"- c #56657A", -"; c #58667E", -"> c #5D6E86", -", c #D6D6D6", -"' c #1D2632", -") c #4A4A4A", -"! c #6E809C", -"~ c #EAEAEA", -"{ c #717273", -"] c #232D3A", -"^ c #4D5868", -"/ c #798EAA", -"( c #FEFEFE", -"_ c #3C4553", -": c #0D0E13", -"< c #323F4F", -"[ c #C7CDD4", -"} c #435165", -"| c #363636", -"1 c #8CA3C5", -"2 c #7E96B6", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/,/!>^]{~", -"(*)^>!,@,!>-)*(", -"~%_^>,@@@,>^_%~", -",%_^;%:%%%-^<%,", -"&%<_^[[[[[^_<%&", -"@:]<_:@@@%_<]$@", -"+}$]<<%@%_<]$)+", -"..**]]=%=]]**..", -"{{{$:*'''*:${{{", -"####=%%%%:=####", -")))))))))))))))", -"|||||||||||||||", -"...............", -"+++++++++++++++", -"@@@@):%%%$)@@@@", -"&&&*'_)})}'*[&&", -",,*|_^^^^}_|*,,", -"~{'_}^>1;#}<'{~", -"($=<}-+.+^}_=*(", -"~%=_)+!..+}<=%~", -",%=<_%%%%%)|]%,", -"&%'<<++2+/_=]%&", -"@:*]=%.{.%|]*:@", -"+):'']%{%]]':)+", -"..$$*''%''*$$..", -"{{{$:$***$::{{{", -"####]%%%%:]####", -")))))))))))))))", -"|||||||||||||||"}; diff --git a/kwin-styles/icewm/icewm-themes/restoreI.xpm b/kwin-styles/icewm/icewm-themes/restoreI.xpm deleted file mode 100644 index b1408657..00000000 --- a/kwin-styles/icewm/icewm-themes/restoreI.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * restoreI_xpm[] = { -"15 34 31 1", -" g None", -". g #858585", -"+ g #9A9A9A", -"@ g #AEAEAE", -"# g #5D5D5D", -"$ g #111111", -"% g #040404", -"& g #C2C2C2", -"* g #1B1B1B", -"= g #323232", -"- g #626262", -"; g #646464", -"> g #6B6B6B", -", g #D6D6D6", -"' g #242424", -") g #4A4A4A", -"! g #7D7D7D", -"~ g #EAEAEA", -"{ g #717171", -"] g #2B2B2B", -"^ g #565656", -"/ g #8A8A8A", -"( g #FEFEFE", -"_ g #434343", -": g #0E0E0E", -"< g #3C3C3C", -"[ g #CBCBCB", -"} g #4F4F4F", -"| g #363636", -"1 g #9F9F9F", -"2 g #929292", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/,/!>^]{~", -"(*)^>!,@,!>-)*(", -"~%_^>,@@@,>^_%~", -",%_^;%:%%%-^<%,", -"&%<_^[[[[[^_<%&", -"@:]<_:@@@%_<]$@", -"+}$]<<%@%_<]$)+", -"..**]]=%=]]**..", -"{{{$:*'''*:${{{", -"####=%%%%:=####", -")))))))))))))))", -"|||||||||||||||", -"...............", -"+++++++++++++++", -"@@@@):%%%$)@@@@", -"&&&*'_)})}'*[&&", -",,*|_^^^^}_|*,,", -"~{'_}^>1;#}<'{~", -"($=<}-+.+^}_=*(", -"~%=_)+!..+}<=%~", -",%=<_%%%%%)|]%,", -"&%'<<++2+/_=]%&", -"@:*]=%.{.%|]*:@", -"+):'']%{%]]':)+", -"..$$*''%''*$$..", -"{{{$:$***$::{{{", -"####]%%%%:]####", -")))))))))))))))", -"|||||||||||||||"}; diff --git a/kwin-styles/icewm/icewm-themes/rolldownA.xpm b/kwin-styles/icewm/icewm-themes/rolldownA.xpm deleted file mode 100644 index e7b70845..00000000 --- a/kwin-styles/icewm/icewm-themes/rolldownA.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * rolldownA_xpm[] = { -"15 34 31 1", -" c None", -". c #858686", -"+ c #9A9A9A", -"@ c #AEAEAE", -"# c #5D5D5E", -"$ c #111214", -"% c #040404", -"& c #C2C2C2", -"* c #181C22", -"= c #2D333D", -"- c #56657A", -"; c #58667E", -"> c #5D6E86", -", c #D6D6D6", -"' c #1D2632", -") c #4A4A4A", -"! c #6E809C", -"~ c #EAEAEA", -"{ c #717273", -"] c #232D3A", -"^ c #4D5868", -"/ c #798EAA", -"( c #7E96B6", -"_ c #FEFEFE", -": c #3C4553", -"< c #323F4F", -"[ c #0D0E13", -"} c #C7CDD4", -"| c #435165", -"1 c #363636", -"2 c #8CA3C5", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/(/!>^]{~", -"_*)^>,,~,,>-)*_", -"~%:^>%@@@%>^:%~", -",%:^->%@%>;^<%,", -"&%<:^;>%>-^:<%&", -"@[]<&&}}}&&<][@", -"+|$]%%%%%%%=$)+", -"..**]]====]**..", -"{{{$[*']'*[${{{", -"####=%%%%%=####", -")))))))))))))))", -"111111=11111111", -"...............", -"+++++++++++++++", -"@@@@)[%%%[^@@@@", -"&&&*':)|):'*&&&", -",,*=)|^-^|)1*,,", -"~{':|^;>;^|:'{~", -"_$=:|+2+2+|:=*_", -"~%=:|%...%)<=%~", -",%]<:|%.%|)<]%,", -"&%'1<:)%):<<'%&", -"@[''+/+/+(.]*[@", -"+)['%%%%%%%'[)+", -"..$$*'''''*$$..", -"{{{[[$***$[[{{{", -"####]%%%%%]####", -")))))))))))))))", -"111111111111111"}; diff --git a/kwin-styles/icewm/icewm-themes/rolldownI.xpm b/kwin-styles/icewm/icewm-themes/rolldownI.xpm deleted file mode 100644 index 993e561b..00000000 --- a/kwin-styles/icewm/icewm-themes/rolldownI.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * rolldownI_xpm[] = { -"15 34 31 1", -" g None", -". g #858585", -"+ g #9A9A9A", -"@ g #AEAEAE", -"# g #5D5D5D", -"$ g #111111", -"% g #040404", -"& g #C2C2C2", -"* g #1B1B1B", -"= g #323232", -"- g #626262", -"; g #646464", -"> g #6B6B6B", -", g #D6D6D6", -"' g #242424", -") g #4A4A4A", -"! g #7D7D7D", -"~ g #EAEAEA", -"{ g #717171", -"] g #2B2B2B", -"^ g #565656", -"/ g #8A8A8A", -"( g #929292", -"_ g #FEFEFE", -": g #434343", -"< g #3C3C3C", -"[ g #0E0E0E", -"} g #CBCBCB", -"| g #4F4F4F", -"1 g #363636", -"2 g #9F9F9F", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^>!/(/!>^]{~", -"_*)^>,,~,,>-)*_", -"~%:^>%@@@%>^:%~", -",%:^->%@%>;^<%,", -"&%<:^;>%>-^:<%&", -"@[]<&&}}}&&<][@", -"+|$]%%%%%%%=$)+", -"..**]]====]**..", -"{{{$[*']'*[${{{", -"####=%%%%%=####", -")))))))))))))))", -"111111=11111111", -"...............", -"+++++++++++++++", -"@@@@)[%%%[^@@@@", -"&&&*':)|):'*&&&", -",,*=)|^-^|)1*,,", -"~{':|^;>;^|:'{~", -"_$=:|+2+2+|:=*_", -"~%=:|%...%)<=%~", -",%]<:|%.%|)<]%,", -"&%'1<:)%):<<'%&", -"@[''+/+/+(.]*[@", -"+)['%%%%%%%'[)+", -"..$$*'''''*$$..", -"{{{[[$***$[[{{{", -"####]%%%%%]####", -")))))))))))))))", -"111111111111111"}; diff --git a/kwin-styles/icewm/icewm-themes/rollupA.xpm b/kwin-styles/icewm/icewm-themes/rollupA.xpm deleted file mode 100644 index 32311d6a..00000000 --- a/kwin-styles/icewm/icewm-themes/rollupA.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * rollupA_xpm[] = { -"15 34 31 1", -" c None", -". c #858686", -"+ c #9A9A9A", -"@ c #AEAEAE", -"# c #5D5D5E", -"$ c #111214", -"% c #040404", -"& c #C2C2C2", -"* c #181C22", -"= c #2D333D", -"- c #56657A", -"; c #58667E", -"> c #5D6E86", -", c #D6D6D6", -"' c #1D2632", -") c #4A4A4A", -"! c #6E809C", -"~ c #EAEAEA", -"{ c #717273", -"] c #232D3A", -"^ c #4D5868", -"/ c #C7CDD4", -"( c #FEFEFE", -"_ c #0D0E13", -": c #435165", -"< c #3C4553", -"[ c #677B98", -"} c #798EAA", -"| c #323F4F", -"1 c #363636", -"2 c #8CA3C5", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^/,,,,,/^]{~", -"(*)^_%__%_%^:*(", -"~%<^;[},}!>^<%~", -",%<^;>,@/[-^<%,", -"&%|<^/@@@/^<=%&", -"@_]|<_%%%%<|]$@", -"+)*]|<<<<||=$)+", -"..$*'=||==]**..", -"{{{$_**''*_${{{", -"##-#=_%%%%=####", -")))))))))))))))", -"111111=11111111", -"...............", -"+++++++++++++++", -"@@@@)_%%%_^@@@@", -"&&&*'<):)<'*&&&", -",,*=):^-^^)1*,,", -"~{'|+2+2+++<'{~", -"($=<%%%%%%%<=*(", -"~%=|:^;+;^:|=%~", -",%=|<:+.+:<|]%,", -"&%'1<+!!.+|1'%&", -"@_']=%%%%%1]'_@", -"+)_*]====]]'_)+", -"..$$*'']''*$_..", -"{{{__$$*$$_${{{", -"####]%%%%_]####", -")))))))))))))))", -"111111111111111"}; diff --git a/kwin-styles/icewm/icewm-themes/rollupI.xpm b/kwin-styles/icewm/icewm-themes/rollupI.xpm deleted file mode 100644 index 31b81973..00000000 --- a/kwin-styles/icewm/icewm-themes/rollupI.xpm +++ /dev/null @@ -1,68 +0,0 @@ -/* XPM */ -static char * rollupI_xpm[] = { -"15 34 31 1", -" g None", -". g #858585", -"+ g #9A9A9A", -"@ g #AEAEAE", -"# g #5D5D5D", -"$ g #111111", -"% g #040404", -"& g #C2C2C2", -"* g #1B1B1B", -"= g #323232", -"- g #626262", -"; g #646464", -"> g #6B6B6B", -", g #D6D6D6", -"' g #242424", -") g #4A4A4A", -"! g #7D7D7D", -"~ g #EAEAEA", -"{ g #717171", -"] g #2B2B2B", -"^ g #565656", -"/ g #CBCBCB", -"( g #FEFEFE", -"_ g #0E0E0E", -": g #4F4F4F", -"< g #434343", -"[ g #787878", -"} g #8A8A8A", -"| g #3C3C3C", -"1 g #363636", -"2 g #9F9F9F", -"...............", -"+++++++++++++++", -"@@@@#$%%%$#@@@@", -"&&&*=-;>;-=*&&&", -",,')->!!!>;)',,", -"~{]^/,,,,,/^]{~", -"(*)^_%__%_%^:*(", -"~%<^;[},}!>^<%~", -",%<^;>,@/[-^<%,", -"&%|<^/@@@/^<=%&", -"@_]|<_%%%%<|]$@", -"+)*]|<<<<||=$)+", -"..$*'=||==]**..", -"{{{$_**''*_${{{", -"##-#=_%%%%=####", -")))))))))))))))", -"111111=11111111", -"...............", -"+++++++++++++++", -"@@@@)_%%%_^@@@@", -"&&&*'<):)<'*&&&", -",,*=):^-^^)1*,,", -"~{'|+2+2+++<'{~", -"($=<%%%%%%%<=*(", -"~%=|:^;+;^:|=%~", -",%=|<:+.+:<|]%,", -"&%'1<+!!.+|1'%&", -"@_']=%%%%%1]'_@", -"+)_*]====]]'_)+", -"..$$*'']''*$_..", -"{{{__$$*$$_${{{", -"####]%%%%_]####", -")))))))))))))))", -"111111111111111"}; diff --git a/kwin-styles/icewm/icewm-themes/titleAB.xpm b/kwin-styles/icewm/icewm-themes/titleAB.xpm deleted file mode 100644 index f153f2af..00000000 --- a/kwin-styles/icewm/icewm-themes/titleAB.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static char * titleAS_xpm[] = { -"1 17 12 1", -" c None", -". c #868687", -"+ c #9A9A9B", -"@ c #AEAEAF", -"# c #C2C2C3", -"$ c #D6D6D7", -"% c #EAEAEB", -"& c #FFFFFF", -"* c #727273", -"= c #5E5E5F", -"- c #4A4A4B", -"; c #363637", -".", -"+", -"@", -"#", -"$", -"%", -"&", -"%", -"$", -"#", -"@", -"+", -".", -"*", -"=", -"-", -";"}; diff --git a/kwin-styles/icewm/icewm-themes/titleAJ.xpm b/kwin-styles/icewm/icewm-themes/titleAJ.xpm deleted file mode 100644 index 0ef284c1..00000000 --- a/kwin-styles/icewm/icewm-themes/titleAJ.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -static char * titleAJ_xpm[] = { -"3 17 17 1", -" c None", -". c #858687", -"+ c #4F4F51", -"@ c #999A9A", -"# c #AEAEAE", -"$ c #5E5E5E", -"% c #C2C2C2", -"& c #717172", -"* c #D6D6D6", -"= c #E9EAEA", -"- c #FEFEFE", -"; c #909090", -"> c #717374", -", c #5C5F64", -"' c #373739", -") c #494B4D", -"! c #343638", -"..+", -"@@+", -"##$", -"%%&", -"**&", -"==&", -"--;", -"==&", -"**&", -"%%&", -"##$", -"@@+", -"..+", -">>+", -",,'", -"))'", -"!!'"}; diff --git a/kwin-styles/icewm/icewm-themes/titleAM.xpm b/kwin-styles/icewm/icewm-themes/titleAM.xpm deleted file mode 100644 index 808458a4..00000000 --- a/kwin-styles/icewm/icewm-themes/titleAM.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -static char * titleAM_xpm[] = { -"18 17 53 1", -" c None", -". c #868687", -"+ c #4E4E4F", -"@ c #484848", -"# c #9A9A9B", -"$ c #575758", -"% c #344066", -"& c #515151", -"* c #AEAEAF", -"= c #606061", -"- c #425076", -"; c #606060", -"> c #C2C2C3", -", c #68686A", -"' c #526185", -") c #707070", -"! c #D6D6D7", -"~ c #717173", -"{ c #607194", -"] c #808080", -"^ c #EAEAEB", -"/ c #7A7A7C", -"( c #7081A3", -"_ c #8E8E8E", -": c #FFFFFF", -"< c #838385", -"[ c #7284A6", -"} c #9B9B9B", -"| c #7587A9", -"1 c #A9A9A9", -"2 c #66779A", -"3 c #B7B7B7", -"4 c #57668A", -"5 c #C5C5C5", -"6 c #4A597D", -"7 c #D2D2D2", -"8 c #3D4A70", -"9 c #303C63", -"0 c #A7A7A7", -"a c #727273", -"b c #454547", -"c c #273259", -"d c #7F7F7F", -"e c #5E5E5F", -"f c #3C3C3E", -"g c #969696", -"h c #848484", -"i c #6B6B6B", -"j c #575757", -"k c #4A4A4B", -"l c #333335", -"m c #363637", -"n c #2A2A2C", -"..............+...", -"@@@@@@@@@@@@@#$###", -"%%%%%%%%%%%%&*=***", -"------------;>,>>>", -"'''''''''''')!~!!!", -"{{{{{{{{{{{{]^/^^^", -"((((((((((((_:<:::", -"[[[[[[[[[[[[}^/^^^", -"||||||||||||1!~!!!", -"2222222222223>,>>>", -"4444444444445*=***", -"6666666666667#$###", -"8888888888885.+...", -"9999999999990abaaa", -"ccccccccccccdefeee", -"}}}}}}}}}ghijklkkk", -"mmmmmmmmmmmmmmnmmm"}; diff --git a/kwin-styles/icewm/icewm-themes/titleAP.xpm b/kwin-styles/icewm/icewm-themes/titleAP.xpm deleted file mode 100644 index a4ae203a..00000000 --- a/kwin-styles/icewm/icewm-themes/titleAP.xpm +++ /dev/null @@ -1,73 +0,0 @@ -/* XPM */ -static char * titleAP_xpm[] = { -"18 17 53 1", -" c None", -". c #868687", -"+ c #4E4E4F", -"@ c #9A9A9B", -"# c #575758", -"$ c #484848", -"% c #AEAEAF", -"& c #606061", -"* c #515151", -"= c #344066", -"- c #C2C2C3", -"; c #68686A", -"> c #606060", -", c #425076", -"' c #D6D6D7", -") c #717173", -"! c #707070", -"~ c #526185", -"{ c #EAEAEB", -"] c #7A7A7C", -"^ c #808080", -"/ c #607194", -"( c #FFFFFF", -"_ c #838385", -": c #8E8E8E", -"< c #7081A3", -"[ c #9B9B9B", -"} c #7284A6", -"| c #A9A9A9", -"1 c #7587A9", -"2 c #B7B7B7", -"3 c #66779A", -"4 c #C5C5C5", -"5 c #57668A", -"6 c #D2D2D2", -"7 c #4A597D", -"8 c #3D4A70", -"9 c #727273", -"0 c #454547", -"a c #A7A7A7", -"b c #303C63", -"c c #5E5E5F", -"d c #3C3C3E", -"e c #7F7F7F", -"f c #273259", -"g c #4A4A4B", -"h c #333335", -"i c #575757", -"j c #6B6B6B", -"k c #848484", -"l c #969696", -"m c #363637", -"n c #2A2A2C", -"...+..............", -"@@@#@$$$$$$$$$$$$$", -"%%%&%*============", -"---;->,,,,,,,,,,,,", -"''')'!~~~~~~~~~~~~", -"{{{]{^////////////", -"(((_(:<<<<<<<<<<<<", -"{{{]{[}}}}}}}}}}}}", -"''')'|111111111111", -"---;-2333333333333", -"%%%&%4555555555555", -"@@@#@6777777777777", -"...+.4888888888888", -"99909abbbbbbbbbbbb", -"cccdceffffffffffff", -"ggghgijkl[[[[[[[[[", -"mmmnmmmmmmmmmmmmmm"}; diff --git a/kwin-styles/icewm/icewm-themes/titleAQ.xpm b/kwin-styles/icewm/icewm-themes/titleAQ.xpm deleted file mode 100644 index 8bc6cd28..00000000 --- a/kwin-styles/icewm/icewm-themes/titleAQ.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -static char * titleAQ_xpm[] = { -"2 17 17 1", -" c None", -". c #4F4F51", -"+ c #858687", -"@ c #999A9A", -"# c #5E5E5E", -"$ c #AEAEAE", -"% c #717172", -"& c #C2C2C2", -"* c #D6D6D6", -"= c #E9EAEA", -"- c #909090", -"; c #FEFEFE", -"> c #717374", -", c #373739", -"' c #5C5F64", -") c #494B4D", -"! c #343638", -".+", -".@", -"#$", -"%&", -"%*", -"%=", -"-;", -"%=", -"%*", -"%&", -"#$", -".@", -".+", -".>", -",'", -",)", -",!"}; diff --git a/kwin-styles/icewm/icewm-themes/titleAR.xpm b/kwin-styles/icewm/icewm-themes/titleAR.xpm deleted file mode 100644 index 8bc6cd28..00000000 --- a/kwin-styles/icewm/icewm-themes/titleAR.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -static char * titleAQ_xpm[] = { -"2 17 17 1", -" c None", -". c #4F4F51", -"+ c #858687", -"@ c #999A9A", -"# c #5E5E5E", -"$ c #AEAEAE", -"% c #717172", -"& c #C2C2C2", -"* c #D6D6D6", -"= c #E9EAEA", -"- c #909090", -"; c #FEFEFE", -"> c #717374", -", c #373739", -"' c #5C5F64", -") c #494B4D", -"! c #343638", -".+", -".@", -"#$", -"%&", -"%*", -"%=", -"-;", -"%=", -"%*", -"%&", -"#$", -".@", -".+", -".>", -",'", -",)", -",!"}; diff --git a/kwin-styles/icewm/icewm-themes/titleAS.xpm b/kwin-styles/icewm/icewm-themes/titleAS.xpm deleted file mode 100644 index f153f2af..00000000 --- a/kwin-styles/icewm/icewm-themes/titleAS.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static char * titleAS_xpm[] = { -"1 17 12 1", -" c None", -". c #868687", -"+ c #9A9A9B", -"@ c #AEAEAF", -"# c #C2C2C3", -"$ c #D6D6D7", -"% c #EAEAEB", -"& c #FFFFFF", -"* c #727273", -"= c #5E5E5F", -"- c #4A4A4B", -"; c #363637", -".", -"+", -"@", -"#", -"$", -"%", -"&", -"%", -"$", -"#", -"@", -"+", -".", -"*", -"=", -"-", -";"}; diff --git a/kwin-styles/icewm/icewm-themes/titleAT.xpm b/kwin-styles/icewm/icewm-themes/titleAT.xpm deleted file mode 100644 index 84f06879..00000000 --- a/kwin-styles/icewm/icewm-themes/titleAT.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -static char * titleAT_xpm[] = { -"1 17 18 1", -" c None", -". c #868687", -"+ c #484848", -"@ c #344066", -"# c #425076", -"$ c #526185", -"% c #607194", -"& c #7081A3", -"* c #7284A6", -"= c #7587A9", -"- c #66779A", -"; c #57668A", -"> c #4A597D", -", c #3D4A70", -"' c #303C63", -") c #273259", -"! c #9B9B9B", -"~ c #363637", -".", -"+", -"@", -"#", -"$", -"%", -"&", -"*", -"=", -"-", -";", -">", -",", -"'", -")", -"!", -"~"}; diff --git a/kwin-styles/icewm/icewm-themes/titleIB.xpm b/kwin-styles/icewm/icewm-themes/titleIB.xpm deleted file mode 100644 index f153f2af..00000000 --- a/kwin-styles/icewm/icewm-themes/titleIB.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static char * titleAS_xpm[] = { -"1 17 12 1", -" c None", -". c #868687", -"+ c #9A9A9B", -"@ c #AEAEAF", -"# c #C2C2C3", -"$ c #D6D6D7", -"% c #EAEAEB", -"& c #FFFFFF", -"* c #727273", -"= c #5E5E5F", -"- c #4A4A4B", -"; c #363637", -".", -"+", -"@", -"#", -"$", -"%", -"&", -"%", -"$", -"#", -"@", -"+", -".", -"*", -"=", -"-", -";"}; diff --git a/kwin-styles/icewm/icewm-themes/titleIJ.xpm b/kwin-styles/icewm/icewm-themes/titleIJ.xpm deleted file mode 100644 index 0ef284c1..00000000 --- a/kwin-styles/icewm/icewm-themes/titleIJ.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -static char * titleAJ_xpm[] = { -"3 17 17 1", -" c None", -". c #858687", -"+ c #4F4F51", -"@ c #999A9A", -"# c #AEAEAE", -"$ c #5E5E5E", -"% c #C2C2C2", -"& c #717172", -"* c #D6D6D6", -"= c #E9EAEA", -"- c #FEFEFE", -"; c #909090", -"> c #717374", -", c #5C5F64", -"' c #373739", -") c #494B4D", -"! c #343638", -"..+", -"@@+", -"##$", -"%%&", -"**&", -"==&", -"--;", -"==&", -"**&", -"%%&", -"##$", -"@@+", -"..+", -">>+", -",,'", -"))'", -"!!'"}; diff --git a/kwin-styles/icewm/icewm-themes/titleIM.xpm b/kwin-styles/icewm/icewm-themes/titleIM.xpm deleted file mode 100644 index 575b63c4..00000000 --- a/kwin-styles/icewm/icewm-themes/titleIM.xpm +++ /dev/null @@ -1,66 +0,0 @@ -/* XPM */ -static char * titleIM_xpm[] = { -"18 17 46 1", -" c None", -". c #868686", -"+ c #4E4E4E", -"@ c #484848", -"# c #9A9A9A", -"$ c #575757", -"% c #4D4D4D", -"& c #515151", -"* c #AEAEAE", -"= c #606060", -"- c #5C5C5C", -"; c #C2C2C2", -"> c #696969", -", c #6B6B6B", -"' c #707070", -") c #D6D6D6", -"! c #727272", -"~ c #7A7A7A", -"{ c #808080", -"] c #EAEAEA", -"^ c #7B7B7B", -"/ c #898989", -"( c #8E8E8E", -"_ c #FFFFFF", -": c #848484", -"< c #8C8C8C", -"[ c #9B9B9B", -"} c #8F8F8F", -"| c #A9A9A9", -"1 c #B7B7B7", -"2 c #C5C5C5", -"3 c #636363", -"4 c #D2D2D2", -"5 c #565656", -"6 c #494949", -"7 c #A7A7A7", -"8 c #464646", -"9 c #404040", -"0 c #7F7F7F", -"a c #5E5E5E", -"b c #3D3D3D", -"c c #969696", -"d c #4A4A4A", -"e c #343434", -"f c #363636", -"g c #2B2B2B", -"..............+...", -"@@@@@@@@@@@@@#$###", -"%%%%%%%%%%%%&*=***", -"------------=;>;;;", -",,,,,,,,,,,,')!)))", -"~~~~~~~~~~~~{]^]]]", -"////////////(_:___", -"<<<<<<<<<<<<[]^]]]", -"}}}}}}}}}}}}|)!)))", -"{{{{{{{{{{{{1;>;;;", -"''''''''''''2*=***", -"3333333333334#$###", -"5555555555552.+...", -"6666666666667!8!!!", -"9999999999990abaaa", -"[[[[[[[[[c:,$deddd", -"ffffffffffffffgfff"}; diff --git a/kwin-styles/icewm/icewm-themes/titleIP.xpm b/kwin-styles/icewm/icewm-themes/titleIP.xpm deleted file mode 100644 index 170d1b2a..00000000 --- a/kwin-styles/icewm/icewm-themes/titleIP.xpm +++ /dev/null @@ -1,66 +0,0 @@ -/* XPM */ -static char * titleIP_xpm[] = { -"18 17 46 1", -" c None", -". c #868686", -"+ c #4E4E4E", -"@ c #9A9A9A", -"# c #575757", -"$ c #484848", -"% c #AEAEAE", -"& c #606060", -"* c #515151", -"= c #4D4D4D", -"- c #C2C2C2", -"; c #696969", -"> c #5C5C5C", -", c #D6D6D6", -"' c #727272", -") c #707070", -"! c #6B6B6B", -"~ c #EAEAEA", -"{ c #7B7B7B", -"] c #808080", -"^ c #7A7A7A", -"/ c #FFFFFF", -"( c #848484", -"_ c #8E8E8E", -": c #898989", -"< c #9B9B9B", -"[ c #8C8C8C", -"} c #A9A9A9", -"| c #8F8F8F", -"1 c #B7B7B7", -"2 c #C5C5C5", -"3 c #D2D2D2", -"4 c #636363", -"5 c #565656", -"6 c #464646", -"7 c #A7A7A7", -"8 c #494949", -"9 c #5E5E5E", -"0 c #3D3D3D", -"a c #7F7F7F", -"b c #404040", -"c c #4A4A4A", -"d c #343434", -"e c #969696", -"f c #363636", -"g c #2B2B2B", -"...+..............", -"@@@#@$$$$$$$$$$$$$", -"%%%&%*============", -"---;-&>>>>>>>>>>>>", -",,,',)!!!!!!!!!!!!", -"~~~{~]^^^^^^^^^^^^", -"///(/_::::::::::::", -"~~~{~<[[[[[[[[[[[[", -",,,',}||||||||||||", -"---;-1]]]]]]]]]]]]", -"%%%&%2))))))))))))", -"@@@#@3444444444444", -"...+.2555555555555", -"'''6'7888888888888", -"99909abbbbbbbbbbbb", -"cccdc#!(e<<<<<<<<<", -"fffgffffffffffffff"}; diff --git a/kwin-styles/icewm/icewm-themes/titleIQ.xpm b/kwin-styles/icewm/icewm-themes/titleIQ.xpm deleted file mode 100644 index 8bc6cd28..00000000 --- a/kwin-styles/icewm/icewm-themes/titleIQ.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -static char * titleAQ_xpm[] = { -"2 17 17 1", -" c None", -". c #4F4F51", -"+ c #858687", -"@ c #999A9A", -"# c #5E5E5E", -"$ c #AEAEAE", -"% c #717172", -"& c #C2C2C2", -"* c #D6D6D6", -"= c #E9EAEA", -"- c #909090", -"; c #FEFEFE", -"> c #717374", -", c #373739", -"' c #5C5F64", -") c #494B4D", -"! c #343638", -".+", -".@", -"#$", -"%&", -"%*", -"%=", -"-;", -"%=", -"%*", -"%&", -"#$", -".@", -".+", -".>", -",'", -",)", -",!"}; diff --git a/kwin-styles/icewm/icewm-themes/titleIR.xpm b/kwin-styles/icewm/icewm-themes/titleIR.xpm deleted file mode 100644 index 8bc6cd28..00000000 --- a/kwin-styles/icewm/icewm-themes/titleIR.xpm +++ /dev/null @@ -1,37 +0,0 @@ -/* XPM */ -static char * titleAQ_xpm[] = { -"2 17 17 1", -" c None", -". c #4F4F51", -"+ c #858687", -"@ c #999A9A", -"# c #5E5E5E", -"$ c #AEAEAE", -"% c #717172", -"& c #C2C2C2", -"* c #D6D6D6", -"= c #E9EAEA", -"- c #909090", -"; c #FEFEFE", -"> c #717374", -", c #373739", -"' c #5C5F64", -") c #494B4D", -"! c #343638", -".+", -".@", -"#$", -"%&", -"%*", -"%=", -"-;", -"%=", -"%*", -"%&", -"#$", -".@", -".+", -".>", -",'", -",)", -",!"}; diff --git a/kwin-styles/icewm/icewm-themes/titleIS.xpm b/kwin-styles/icewm/icewm-themes/titleIS.xpm deleted file mode 100644 index f153f2af..00000000 --- a/kwin-styles/icewm/icewm-themes/titleIS.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static char * titleAS_xpm[] = { -"1 17 12 1", -" c None", -". c #868687", -"+ c #9A9A9B", -"@ c #AEAEAF", -"# c #C2C2C3", -"$ c #D6D6D7", -"% c #EAEAEB", -"& c #FFFFFF", -"* c #727273", -"= c #5E5E5F", -"- c #4A4A4B", -"; c #363637", -".", -"+", -"@", -"#", -"$", -"%", -"&", -"%", -"$", -"#", -"@", -"+", -".", -"*", -"=", -"-", -";"}; diff --git a/kwin-styles/icewm/icewm-themes/titleIT.xpm b/kwin-styles/icewm/icewm-themes/titleIT.xpm deleted file mode 100644 index ddcab757..00000000 --- a/kwin-styles/icewm/icewm-themes/titleIT.xpm +++ /dev/null @@ -1,38 +0,0 @@ -/* XPM */ -static char * titleIT_xpm[] = { -"1 17 18 1", -" c None", -". c #868686", -"+ c #484848", -"@ c #4D4D4D", -"# c #5C5C5C", -"$ c #6B6B6B", -"% c #7A7A7A", -"& c #898989", -"* c #8C8C8C", -"= c #8F8F8F", -"- c #808080", -"; c #707070", -"> c #636363", -", c #565656", -"' c #494949", -") c #404040", -"! c #9B9B9B", -"~ c #363636", -".", -"+", -"@", -"#", -"$", -"%", -"&", -"*", -"=", -"-", -";", -">", -",", -"'", -")", -"!", -"~"}; diff --git a/kwin-styles/icewm/icewm.cpp b/kwin-styles/icewm/icewm.cpp deleted file mode 100644 index 4b9a064b..00000000 --- a/kwin-styles/icewm/icewm.cpp +++ /dev/null @@ -1,1703 +0,0 @@ -/* - $Id$ - - Gallium-IceWM themeable KWin client - - Copyright 2001 - Karol Szwed <gallium@kde.org> - http://gallium.n3.net/ - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - - ----------------------------------------------------------------------------- - This client loads most icewm 1.0.X pixmap themes, without taking into account - specific font settings for clients, or coloured mouse cursors. Titlebar - fonts can be changed via the kde control center. Bi-colour mouse cursors - may be added in future if requested by users, as well as theme font support. - Any styles using inbuilt icewm titlebar drawing without using pixmaps (e.g. - Warp4, win95 etc.) are not fully supported, and may cause drawing errors, - as these themes use in-built icewm drawing mechanisms. - - When a pixmap theme is not present (or a corrupt one is present) then very - plain title decorations are painted instead, so that users don't see - non-painted window areas where possible ;) - - At a later date, frame shaping may be added if really requested, and an - update to support the latest icewm 1.1.X theme format may be made. - -*/ - -#include <kconfig.h> -#include <kstandarddirs.h> -#include <kglobal.h> -#include <klocale.h> -#include <kdrawutil.h> -#include <tqapplication.h> -#include <tqlabel.h> -#include <tqdrawutil.h> -#include <tqdatetime.h> -#include <tqbitmap.h> -#include <tqcursor.h> -#include <tqstring.h> -#include <tqtooltip.h> -#include <tqregexp.h> -#include "icewm.h" - -namespace IceWM { - -//////////////////////////////////////////////////////////////////////////////////////////// -// Here's the global pixmap stuff - as memory efficient as it can be :) -//////////////////////////////////////////////////////////////////////////////////////////// - -// IceWM frame pixmaps -TQPixmap* frameTL[] = {NULL, NULL}; -TQPixmap* frameT [] = {NULL, NULL}; -TQPixmap* frameTR[] = {NULL, NULL}; -TQPixmap* frameL [] = {NULL, NULL}; -TQPixmap* frameR [] = {NULL, NULL}; -TQPixmap* frameBL[] = {NULL, NULL}; -TQPixmap* frameB [] = {NULL, NULL}; -TQPixmap* frameBR[] = {NULL, NULL}; - -// Button pixmaps -TQPixmap* closePix[] = {NULL, NULL}; -TQPixmap* depthPix[] = {NULL, NULL}; -TQPixmap* maximizePix[] = {NULL, NULL}; -TQPixmap* minimizePix[] = {NULL, NULL}; -TQPixmap* restorePix[] = {NULL, NULL}; -TQPixmap* hidePix[] = {NULL, NULL}; -TQPixmap* rollupPix[] = {NULL, NULL}; -TQPixmap* rolldownPix[] = {NULL, NULL}; -TQPixmap* menuButtonPix[] = {NULL, NULL}; - -// Titlebar pixmaps -TQPixmap* titleJ[] = {NULL, NULL}; -TQPixmap* titleL[] = {NULL, NULL}; -TQPixmap* titleS[] = {NULL, NULL}; -TQPixmap* titleP[] = {NULL, NULL}; -TQPixmap* titleT[] = {NULL, NULL}; -TQPixmap* titleM[] = {NULL, NULL}; -TQPixmap* titleB[] = {NULL, NULL}; -TQPixmap* titleR[] = {NULL, NULL}; -TQPixmap* titleQ[] = {NULL, NULL}; - -ThemeHandler* clientHandler; - -TQString* titleButtonsLeft; -TQString* titleButtonsRight; - -TQColor* colorActiveBorder; -TQColor* colorInActiveBorder; -TQColor* colorActiveButton; -TQColor* colorInActiveButton; -TQColor* colorActiveTitleBarText; -TQColor* colorInActiveTitleBarText; -TQColor* colorActiveTitleBar; -TQColor* colorInActiveTitleBar; -TQColor* colorActiveTitleTextShadow; -TQColor* colorInActiveTitleTextShadow; - -int cornerSizeX; -int cornerSizeY; -int titleBarHeight; -int borderSizeX; -int borderSizeY; - -bool validframe = false; -bool useActiveShadow = false; -bool useInActiveShadow = false; - -// KControl Settings - Read from twinicewmrc config file or icewm theme -bool themeTitleTextColors = true; // Allow theme to set colors. - // kcontrol will have no effect - -bool titleBarOnTop = true; // Titlebars can be below windows too :) -bool showMenuButtonIcon = false; // Draw a mini icon over the menu pixmap. -bool customButtonPositions = false; // Let the theme dictate the btn pos. -bool titleBarCentered = true; - -enum styles {OTHER, WARP3, WARP4, MOTIF, WIN95, NICE} themeLook; - -//////////////////////////////////////////////////////////////////////////////////////////// -// General utility functions -//////////////////////////////////////////////////////////////////////////////////////////// - -// Returns true if both active and inactive pixmaps are valid, and not null -bool validPixmaps( TQPixmap* p[] ) -{ - return ( p[Active] && ( !p[Active]->isNull() ) && - p[InActive] && ( !p[InActive]->isNull() ) ); -} - - -//////////////////////////////////////////////////////////////////////////////////////////// -// ThemeHandler class -// -// This class allows us to free dynamic memory upon being reset, or unloaded -// from twin, so we don't leak big images everywhere, and handles the theme -// initialisation / destruction in general. -//////////////////////////////////////////////////////////////////////////////////////////// - -ThemeHandler::ThemeHandler() -{ - initialized = false; - - // Prevent having globals objects (use pointers to objects) - titleButtonsLeft = new TQString(); - titleButtonsRight = new TQString(); - - colorActiveBorder = new TQColor(); - colorInActiveBorder = new TQColor(); - colorActiveButton = new TQColor(); - colorInActiveButton = new TQColor(); - colorActiveTitleBarText = new TQColor(); - colorInActiveTitleBarText = new TQColor(); - colorActiveTitleBar = new TQColor(); - colorInActiveTitleBar = new TQColor(); - colorActiveTitleTextShadow = new TQColor(); - colorInActiveTitleTextShadow = new TQColor(); - - // Initialize - readConfig(); - initTheme(); - validframe = isFrameValid(); - initialized = true; -} - - -ThemeHandler::~ThemeHandler() -{ - if (initialized) - freePixmaps(); - - delete colorInActiveTitleTextShadow; - delete colorActiveTitleTextShadow; - delete colorInActiveBorder; - delete colorActiveTitleBarText; - delete colorInActiveTitleBarText; - delete colorActiveTitleBar; - delete colorInActiveTitleBar; - delete colorActiveBorder; - delete colorActiveButton; - delete colorInActiveButton; - - delete titleButtonsRight; - delete titleButtonsLeft; -} - - -KDecoration* ThemeHandler::createDecoration( KDecorationBridge* bridge ) -{ - return new IceWMClient( bridge, this ); -} - - -// Converts KDE style button strings to icewm style button strings -void ThemeHandler::convertButtons( TQString& s ) -{ - s.replace( TQRegExp("_"), ""); // Spacer (ignored) - s.replace( TQRegExp("H"), ""); // Help (ignored) - s.replace( TQRegExp("M"), "s"); // Sysmenu - s.replace( TQRegExp("S"), "d"); // Sticky/OnAllDesktops - s.replace( TQRegExp("I"), "i"); // Minimize - s.replace( TQRegExp("A"), "m"); // Maximize - s.replace( TQRegExp("X"), "x"); // Close -} - - -// Reverses all characters in a TQString -TQString ThemeHandler::reverseString( TQString s ) -{ - if (s.length() <= 1) - return s; - - TQString tmpStr; - for(int i = s.length()-1; i >= 0; i--) - { - tmpStr += s[(unsigned int)i]; - } - - return tmpStr; -} - - -// This function reads the twinicewmrc config file -void ThemeHandler::readConfig() -{ - KConfig conf("twinicewmrc"); - conf.setGroup("General"); - themeName = conf.readEntry("CurrentTheme"); - themeTitleTextColors = conf.readBoolEntry("ThemeTitleTextColors", true); - showMenuButtonIcon = conf.readBoolEntry("ShowMenuButtonIcon", false); - titleBarOnTop = conf.readBoolEntry("TitleBarOnTop", true); - - customButtonPositions = KDecoration::options()->customButtonPositions(); - if (customButtonPositions) - { - *titleButtonsLeft = KDecoration::options()->titleButtonsLeft(); - *titleButtonsRight = KDecoration::options()->titleButtonsRight(); - - // Convert KDE to icewm style buttons - convertButtons( *titleButtonsLeft ); - convertButtons( *titleButtonsRight ); - } - - // Provide a default theme alias - if (themeName == "default") - themeName = ""; -} - - -// This creates the dynamic pixmaps upon loading the style -// into the pixmap buffers above, and configures the dimensioning stuff. -void ThemeHandler::initTheme() -{ - // Add a slash if required - if ( !themeName.isEmpty() ) - themeName += "/"; - - // We use kconfig to read icewm config files... - // this is easy since icewm uses key=value pairs! - KConfig config( locate("data", TQString("twin/icewm-themes/") + - themeName + TQString("default.theme")) ); - - // Load specifics, or use IceWM defaults instead. - borderSizeX = config.readNumEntry("BorderSizeX", 6); - borderSizeY = config.readNumEntry("BorderSizeY", 6); - cornerSizeX = config.readNumEntry("CornerSizeX", 24); - cornerSizeY = config.readNumEntry("CornerSizeY", 24); - titleBarCentered = (bool) config.readNumEntry("TitleBarCentered", 0); - - // Check if readConfig() hasn't overridden this value... - if (!showMenuButtonIcon) - showMenuButtonIcon = (bool) config.readNumEntry("ShowMenuButtonIcon", 0); - titleBarHeight = config.readNumEntry("TitleBarHeight", 20); - - if (!customButtonPositions) - { - // Read in the button configuration, stripping any quotes - // Ignore on all desktops 'd' on the left buttons - // (some themes look bad with it on by default) - *titleButtonsLeft = config.readEntry("TitleButtonsLeft", "s"); - *titleButtonsLeft = titleButtonsLeft->replace( TQRegExp(TQString("\"")), ""); - *titleButtonsRight = config.readEntry("TitleButtonsRight", "xmir"); - *titleButtonsRight = titleButtonsRight->replace( TQRegExp(TQString("\"")), ""); - - // I have no idea why the right side buttons in icewm are reversed - *titleButtonsRight = reverseString( *titleButtonsRight ); - } - - // Read the default border and text colours from the config file - // And use IceWM defaults if not found - TQString s; - - s = config.readEntry("Look", "other"); - if (s=="motif") themeLook = MOTIF; - else if (s=="warp3") themeLook = WARP3; - else if (s=="warp4") themeLook = WARP4; - else if (s=="win95") themeLook = WIN95; - else if (s=="nice") themeLook = NICE; - else themeLook = OTHER; - - s = config.readEntry("ColorActiveBorder", "#C0C0C0"); - *colorActiveBorder = decodeColor( s ); - s = config.readEntry("ColorNormalBorder", "#C0C0C0"); - *colorInActiveBorder = decodeColor( s ); - s = config.readEntry("ColorActiveButton", "#C0C0C0"); - *colorActiveButton = decodeColor( s ); - s = config.readEntry("ColorNormalButton", "#C0C0C0"); - *colorInActiveButton = decodeColor( s ); - - // Use these as a last resort - s = config.readEntry("ColorActiveTitleBar", "#0000A0"); - *colorActiveTitleBar = decodeColor( s ); - s = config.readEntry("ColorNormalTitleBar", "#808080"); - *colorInActiveTitleBar = decodeColor( s ); - - // Read titlebar text colours - s = config.readEntry("ColorActiveTitleBarText", "#FFFFFF"); - *colorActiveTitleBarText = decodeColor( s ); - s = config.readEntry("ColorNormalTitleBarText", "#000000"); - *colorInActiveTitleBarText = decodeColor( s ); - - // Use title text shadows only with theme title text colors - if ( themeTitleTextColors ) - { - s = config.readEntry("ColorActiveTitleBarShadow"); - if (!s.isEmpty()) - { - *colorActiveTitleTextShadow = decodeColor( s ); - useActiveShadow = true; - } else - useActiveShadow = false; - - s = config.readEntry("ColorNormalTitleBarShadow"); - if (!s.isEmpty()) - { - *colorInActiveTitleTextShadow = decodeColor( s ); - useInActiveShadow = true; - } else - useInActiveShadow = false; - } else - { - useActiveShadow = false; - useInActiveShadow = false; - } - - // Stretch pixmaps for speed, where required - setPixmap( titleJ, "title", "J.xpm" ); - setPixmap( titleL, "title", "L.xpm" ); - setPixmap( titleS, "title", "S.xpm", true ); - - setPixmap( titleP, "title", "P.xpm" ); - setPixmap( titleT, "title", "T.xpm", true ); - setPixmap( titleM, "title", "M.xpm" ); - setPixmap( titleB, "title", "B.xpm", true ); - setPixmap( titleR, "title", "R.xpm" ); - setPixmap( titleQ, "title", "Q.xpm" ); - - setPixmapButton( closePix, "close", ".xpm" ); - setPixmapButton( depthPix, "depth", ".xpm" ); - setPixmapButton( maximizePix, "maximize", ".xpm" ); - setPixmapButton( minimizePix, "minimize", ".xpm" ); - setPixmapButton( restorePix, "restore", ".xpm" ); - setPixmapButton( hidePix, "hide", ".xpm" ); - setPixmapButton( rollupPix, "rollup", ".xpm" ); - setPixmapButton( rolldownPix, "rolldown", ".xpm" ); - setPixmapButton( menuButtonPix,"menuButton",".xpm" ); - - // Top - setPixmap( frameTL, "frame", "TL.xpm" ); - setPixmap( frameT, "frame", "T.xpm", true ); - setPixmap( frameTR, "frame", "TR.xpm" ); - - // Sides - setPixmap( frameL, "frame", "L.xpm", true,Qt::Vertical ); - setPixmap( frameR, "frame", "R.xpm", true,Qt::Vertical ); - - // Bottom - setPixmap( frameBL, "frame", "BL.xpm" ); - setPixmap( frameB, "frame", "B.xpm", true ); - setPixmap( frameBR, "frame", "BR.xpm" ); - - // Make sure border sizes are at least reasonable... - if (borderSizeX < 0) - borderSizeX = 0; - if (borderSizeY < 0) - borderSizeY = 0; - // ...and titleBarHeight as well - if (titleBarHeight < 0) - titleBarHeight = 0; - - // This is a work-around for some themes - if (!titleT[Active]) - titleT[Active] = duplicateValidPixmap( Active ); - - if (!titleB[Active]) - titleB[Active] = duplicateValidPixmap( Active ); - - - if (titleL[Active] && !titleL[InActive]) - titleL[InActive] = duplicateValidPixmap( InActive, titleL[Active]->width() ); - - if (titleS[Active] && !titleS[InActive]) - titleS[InActive] = duplicateValidPixmap( InActive, titleS[Active]->width() ); - - if (titleP[Active] && !titleP[InActive]) - titleP[InActive] = duplicateValidPixmap( InActive, titleP[Active]->width() ); - - if (titleT[Active] && !titleT[InActive]) - titleT[InActive] = duplicateValidPixmap( InActive, titleT[Active]->width() ); - - if (titleM[Active] && !titleM[InActive]) - titleM[InActive] = duplicateValidPixmap( InActive, titleM[Active]->width() ); - - if (titleB[Active] && !titleB[InActive]) - titleB[InActive] = duplicateValidPixmap( InActive, titleB[Active]->width() ); - - if (titleR[Active] && !titleR[InActive]) - titleR[InActive] = duplicateValidPixmap( InActive, titleR[Active]->width() ); -} - - -TQPixmap* ThemeHandler::duplicateValidPixmap( bool act, int size ) -{ - TQPixmap* p1 = NULL; - // Use the stretch or title pixmaps instead - if ( titleS[act] ) - p1 = new TQPixmap( *titleS[act] ); - else if ( titleB[act] ) - p1 = new TQPixmap( *titleB[act] ); - else if ( titleT[act] ) - p1 = new TQPixmap( *titleT[act] ); - - // Stretch if required - if ( (size != -1) && p1 && (!p1->isNull()) ) - p1 = stretchPixmap( p1, true, size ); - - return p1; -} - - -// Frees all memory used by pixmaps. -void ThemeHandler::freePixmaps() -{ - freePixmapGroup( frameTL ); - freePixmapGroup( frameT ); - freePixmapGroup( frameTR ); - freePixmapGroup( frameL ); - freePixmapGroup( frameR ); - freePixmapGroup( frameBL ); - freePixmapGroup( frameB ); - freePixmapGroup( frameBR ); - - freePixmapGroup( closePix ); - freePixmapGroup( depthPix ); - freePixmapGroup( maximizePix ); - freePixmapGroup( minimizePix ); - freePixmapGroup( restorePix ); - freePixmapGroup( hidePix ); - freePixmapGroup( rollupPix ); - freePixmapGroup( rolldownPix ); - freePixmapGroup( menuButtonPix ); - - freePixmapGroup( titleJ ); - freePixmapGroup( titleL ); - freePixmapGroup( titleS ); - freePixmapGroup( titleP ); - freePixmapGroup( titleT ); - freePixmapGroup( titleM ); - freePixmapGroup( titleB ); - freePixmapGroup( titleR ); - freePixmapGroup( titleQ ); -} - - -// Frees a dynamic pixmap group from the heap. -void ThemeHandler::freePixmapGroup( TQPixmap* p[] ) -{ - if (p) - { - if (p[Active]) delete p[Active]; - if (p[InActive]) delete p[InActive]; - p[Active] = NULL; - p[InActive] = NULL; - } else - qWarning("twin-icewm: freePixmapGroup - invalid TQPixmap** 'p'\n"); -} - - -// Converts icewm colors #C0C0C0 or rgb:C0/C0/C0 to TQColors -TQColor ThemeHandler::decodeColor( TQString& s ) -{ - // Make rgb:C0/C0/C0, or #C0/C0/C0 -> C0C0C0 - s.replace( TQRegExp("r"), ""); - s.replace( TQRegExp("g"), ""); - s.replace( TQRegExp("b"), ""); - s.replace( TQRegExp("#"), ""); - s.replace( TQRegExp("/"), ""); - s.replace( TQRegExp(":"), ""); - s.replace( TQRegExp("\\"), ""); - s.replace( TQRegExp("\""), ""); - - // Wierd error - return grey - if (s.length() != 6) - return TQColor( 0xC0, 0xC0, 0xC0 ); - - // TQt makes this conversion very easy - return TQColor( TQString("#") + s ); -} - - -// Stretches tiny pixmaps vertically or horizontally, taking into account -// repetition in patterns, so as not to make them mismatched -TQPixmap* ThemeHandler::stretchPixmap( TQPixmap* src, bool stretchHoriz, int stretchSize ) -{ - if (!src) return NULL; - if (src->isNull()) return NULL; - - int s_inc, size; - - // If its the right size already, just return - if (stretchSize == -1) - { - if (stretchHoriz) - s_inc = src->width(); - else - s_inc = src->height(); - - size = s_inc; - if (size >= 100) - return src; - - // Stretch an appropriate amount - taking care of pattern repetition - while( size < 100 ) - size += s_inc; - } else - size = stretchSize; - - TQPixmap* p = new TQPixmap(); - if ( stretchHoriz ) - p->resize( size, src->height() ); - else - p->resize( src->width(), size ); - - TQPainter pnt( p ); - if ( stretchHoriz ) - pnt.drawTiledPixmap( 0, 0, size, src->height(), *src); - else - pnt.drawTiledPixmap( 0, 0, src->width(), size, *src); - pnt.end(); - - delete src; - return p; -} - -static void draw3DRect(TQPainter &pnt, TQColor &col, int x, int y, int w, int h, bool up) { - TQColor light = col.light(135); - TQColor dark = col.dark(140); - pnt.setPen(up ? light : dark); - pnt.drawLine(x, y, x+w, y); - pnt.drawLine(x, y, x, y+h); - pnt.setPen(up ? dark : light); - pnt.drawLine(x, y+h, x+w, y+h); - pnt.drawLine(x+w, y, x+w, y+h); - pnt.setPen(col); - pnt.drawPoint(x+w, y); - pnt.drawPoint(x, y+h); -} - -void ThemeHandler::setPixmapButton( TQPixmap* p[], TQString s1, TQString s2) -{ - if ( p[Active] ) - qWarning("twin-icewm: setPixmap - should be null (1)\n"); - if ( p[InActive] ) - qWarning("twin-icewm: setPixmap - should be null (2)\n"); - - TQString str = locate("appdata", TQString("icewm-themes/") - + themeName + s1 + "A" + s2); - if (str.isEmpty()) - str = locate("appdata", TQString("icewm-themes/") - + themeName + s1 + s2); - - TQPixmap *qp = new TQPixmap(str); - TQColor cActive = themeLook == WIN95 ? *colorActiveTitleBar : *colorActiveButton; - TQColor cInActive = themeLook == WIN95 ? *colorInActiveTitleBar : *colorInActiveButton; - - if (!qp->isNull() && themeLook > 0) { - int w = qp->width(); - if (themeLook > 0 && titleBarHeight > w) w = titleBarHeight; - p[Active] = new TQPixmap(w, 2*titleBarHeight ); - p[Active] -> fill(cActive); - - TQPainter pnt( p[Active] ); - - int offX = (w - qp->width())/2; - int offY = (titleBarHeight - qp->height())/2; - if (offY < 0) offY = 0; - - if (themeLook == WIN95) { - draw3DRect(pnt, *colorActiveButton, offX-1, offY-1, - qp->width()+1, qp->height()+1, true); - draw3DRect(pnt, *colorActiveButton, offX-1, offY-1 + titleBarHeight, - qp->width()+1, qp->height()+1, false); - } else if (themeLook != WARP4) { - draw3DRect(pnt, *colorActiveButton, 0, 0, - w-1, titleBarHeight-1, true); - draw3DRect(pnt, *colorActiveButton, 0, titleBarHeight, - w-1, 2*titleBarHeight-1, false); - } - - pnt.drawPixmap(offX, offY, *qp); - if (qp->height() <= titleBarHeight) { - pnt.drawPixmap(offX, titleBarHeight+offY, *qp); - } - pnt.end(); - delete qp; - } else { - p[Active] = qp; - } - - str = locate("appdata", TQString("icewm-themes/") - + themeName + s1 + "I" + s2); - if (str.isEmpty()) - str = locate("appdata", TQString("icewm-themes/") - + themeName + s1 + s2); - - qp = new TQPixmap(str); - if (!qp->isNull() && themeLook > 0) { - int w = qp->width(); - if (titleBarHeight > w) w = titleBarHeight; - p[InActive] = new TQPixmap(w, 2*titleBarHeight ); - p[InActive] -> fill(cInActive); - - TQPainter pnt( p[InActive] ); - - int offX = (w - qp->width())/2; - int offY = (titleBarHeight - qp->height())/2; - if (offY < 0) offY = 0; - - if (themeLook == WIN95) { - draw3DRect(pnt, *colorInActiveButton, offX-1, offY-1, - qp->width()+1, qp->height()+1, true); - draw3DRect(pnt, *colorInActiveButton, offX-1, offY-1 + titleBarHeight, - qp->width()+1, qp->height()+1, false); - } else if (themeLook != WARP4) { - draw3DRect(pnt, *colorInActiveButton, 0, 0, - w-1, titleBarHeight-1, true); - draw3DRect(pnt, *colorActiveButton, 0, titleBarHeight, - w-1, 2*titleBarHeight-1, false); - } - pnt.drawPixmap(offX, offY, *qp); - if (qp->height() <= titleBarHeight) { - pnt.drawPixmap(offX, titleBarHeight+offY, *qp); - } - pnt.end(); - delete qp; - } else { - p[InActive] = qp; - } -} - - - - -// Loads the specified Active/InActive files into the specific pixmaps, and -// can perform horizontal / vertical stretching if required for speed. -// Tries to implement some icewm specific pixmap handling for some dodgy themes -void ThemeHandler::setPixmap( TQPixmap* p[], TQString s1, TQString s2, - bool stretch, bool stretchHoriz ) -{ - if ( p[Active] ) - qWarning("twin-icewm: setPixmap - should be null (1)\n"); - if ( p[InActive] ) - qWarning("twin-icewm: setPixmap - should be null (2)\n"); - - p[Active] = new TQPixmap( locate("data", TQString("twin/icewm-themes/") - + themeName + s1 + "A" + s2) ); - p[InActive] = new TQPixmap( locate("data", TQString("twin/icewm-themes/") - + themeName + s1 + "I" + s2) ); - - // Stretch the pixmap if requested. - if ( stretch ) - { - if (p[Active]) - p[Active] = stretchPixmap( p[Active], stretchHoriz ); - if (p[InActive]) - p[InActive] = stretchPixmap( p[InActive], stretchHoriz ); - } - - if ( p[Active] && p[InActive] ) - { - // Make sure active and inactive pixmaps are the same width for proper painting - if (p[Active]->width() > p[InActive]->width()) - p[InActive] = stretchPixmap( p[InActive], true, p[Active]->width() ); - } - -} - - -// returns true if there were enough pixmaps loaded to -// draw the pixmap frame properly. -bool ThemeHandler::isFrameValid() -{ - return - ( validPixmaps( frameTL ) && - validPixmaps( frameT ) && - validPixmaps( frameTR ) && - validPixmaps( frameL ) && - validPixmaps( frameR ) && - validPixmaps( frameBL ) && - validPixmaps( frameB ) && - validPixmaps( frameBR ) ); -} - - -// Resets the theme, and re-clients all twin's wrapped windows. -bool ThemeHandler::reset( unsigned long) -{ - initialized = false; - freePixmaps(); - readConfig(); - initTheme(); - validframe = isFrameValid(); - initialized = true; - - // recreate all clients - return true; -} - -bool ThemeHandler::supports( Ability ability ) -{ - switch( ability ) - { - case AbilityAnnounceButtons: - case AbilityButtonMenu: - case AbilityButtonOnAllDesktops: - case AbilityButtonMinimize: - case AbilityButtonMaximize: - case AbilityButtonClose: - return true; - default: - return false; - }; -} - - -//////////////////////////////////////////////////////////////////////////////////////////// -// IceWM button class -//////////////////////////////////////////////////////////////////////////////////////////// - -IceWMButton::IceWMButton(IceWMClient *parent, const char *name, TQPixmap* (*p)[2], - bool isToggle, const TQString& tip, const int realizeBtns ) - : TQButton(parent->widget(), name) -{ - m_realizeButtons = realizeBtns; - setTipText(tip); - setCursor(ArrowCursor); - // Eliminate any possible background flicker - setBackgroundMode( TQWidget::NoBackground ); - client = parent; - usePixmap( p ); - setFixedSize( tqsizeHint() ); - setToggleButton( isToggle ); -} - - -void IceWMButton::setTipText(const TQString &tip) { - if(KDecoration::options()->showTooltips()) { - TQToolTip::remove(this ); - TQToolTip::add(this, tip ); - } -} - - -TQSize IceWMButton::tqsizeHint() const -{ - // Check for invalid data - if ( validPixmaps( (TQPixmap**) (*pix) ) ) // Cast to avoid dumb warning - { - TQPixmap* p = (*pix)[ client->isActive() ? Active : InActive ]; - return( TQSize(p->width(), titleBarHeight) ); - } else - return( TQSize(0, 0) ); -} - - -void IceWMButton::usePixmap( TQPixmap* (*p)[2] ) -{ - if (validPixmaps( *p )) { - pix = p; - setFixedSize( (*pix)[Active]->width(), titleBarHeight ); - tqrepaint( false ); - } else - pix = NULL; -} - - -void IceWMButton::drawButton(TQPainter *pnt) -{ - if ( pix && validPixmaps(*pix) ) - { - TQPixmap* p = (*pix)[ client->isActive() ? Active : InActive ]; - - if( p && (!p->isNull()) ) - { - int width = p->width(); - - // Only draw the lower pixmap 1/2 for down, and upper 1/2 for up state - if( isDown() || isOn() ) - pnt->drawPixmap(0, 0, *p, 0, titleBarHeight, width, titleBarHeight); - else - pnt->drawPixmap(0, 0, *p, 0, 0, width, titleBarHeight); - } - } else - qWarning("twin-icewm: Can't paint a null pixmap button"); -} - - -void IceWMButton::turnOn( bool isOn ) -{ - if ( isToggleButton() ) - setOn( isOn ); -} - - -void IceWMButton::mousePressEvent( TQMouseEvent* e ) -{ - last_button = e->button(); - TQMouseEvent me ( e->type(), e->pos(), e->globalPos(), - (e->button()&m_realizeButtons)?Qt::LeftButton:Qt::NoButton, e->state() ); - TQButton::mousePressEvent( &me ); -} - - -void IceWMButton::mouseReleaseEvent( TQMouseEvent* e ) -{ - last_button = e->button(); - TQMouseEvent me ( e->type(), e->pos(), e->globalPos(), - (e->button()&m_realizeButtons)?Qt::LeftButton:Qt::NoButton, e->state() ); - TQButton::mouseReleaseEvent( &me ); -} - - - -//////////////////////////////////////////////////////////////////////////////////////////// -// IceWMClient class -//////////////////////////////////////////////////////////////////////////////////////////// - -IceWMClient::IceWMClient( KDecorationBridge* bridge, KDecorationFactory* factory ) - : KDecoration (bridge, factory), - m_closing(false) -{ -} - - -IceWMClient::~IceWMClient() -{ - // Free the menu pixmaps if previously allocated - if ( menuButtonWithIconPix[Active] ) - delete menuButtonWithIconPix[Active]; - if ( menuButtonWithIconPix[InActive] ) - delete menuButtonWithIconPix[InActive]; -} - - -void IceWMClient::init() -{ - createMainWidget( WNoAutoErase | WStaticContents ); - widget()->installEventFilter( this ); - - // Set button pointers to null so we can track things - for(int i= IceWMClient::BtnSysMenu; i < IceWMClient::BtnCount; i++) - button[i] = NULL; - - // Make sure we can track the menu pixmaps too. - menuButtonWithIconPix[Active] = NULL; - menuButtonWithIconPix[InActive] = NULL; - - // No flicker thanks - widget()->setBackgroundMode( NoBackground ); - - // Pack the windowWrapper() window within a grid tqlayout - grid = new TQGridLayout(widget(), 0, 0, 0); - grid->setResizeMode(TQLayout::FreeResize); - grid->addRowSpacing(0, borderSizeY); // Top grab bar - - // Do something IceWM can't do :) - if (titleBarOnTop) { - if( isPreview()) - grid->addWidget( new TQLabel( i18n( "<center><b>IceWM preview</b></center>" ), widget() ), 2, 1); - else - grid->addItem( new TQSpacerItem( 0, 0 ), 2, 1); - // no shade flicker - grid->addItem( new TQSpacerItem( 0, 0, TQSizePolicy::Fixed, TQSizePolicy::Expanding ) ); - } - else { - // no shade flicker - grid->addItem( new TQSpacerItem( 0, 0, TQSizePolicy::Fixed, TQSizePolicy::Expanding ) ); - if( isPreview()) - grid->addWidget( new TQLabel( i18n( "<center><b>IceWM preview</b></center>" ), widget() ), 1, 1); - else - grid->addItem( new TQSpacerItem( 0, 0 ), 1, 1); - } - - grid->setRowStretch(1, 10); - grid->setRowStretch(2, 10); - grid->setColStretch(1, 10); - grid->addRowSpacing(3, borderSizeY); - grid->addColSpacing(0, borderSizeX); - grid->addColSpacing(2, borderSizeX); - - // Pack the titlebar with spacers and buttons - hb = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - hb->setResizeMode( TQLayout::FreeResize ); - - titleSpacerJ = addPixmapSpacer( titleJ ); - - addClientButtons( *titleButtonsLeft ); - titleSpacerL = addPixmapSpacer( titleL ); - - // Centre titlebar if required. - TQSizePolicy::SizeType spTitleBar; - spTitleBar = titleBarCentered ? TQSizePolicy::Expanding : TQSizePolicy::Maximum; - titleSpacerS = addPixmapSpacer( titleS, spTitleBar, 1 ); - titleSpacerP = addPixmapSpacer( titleP ); - - titlebar = new TQSpacerItem( titleTextWidth(caption()), titleBarHeight, - TQSizePolicy::Preferred, TQSizePolicy::Fixed ); - hb->addItem(titlebar); - - titleSpacerM = addPixmapSpacer( titleM ); - titleSpacerB = addPixmapSpacer( titleB, TQSizePolicy::Expanding, 1 ); - titleSpacerR = addPixmapSpacer( titleR ); - - addClientButtons( *titleButtonsRight ); - - titleSpacerQ = addPixmapSpacer( titleQ ); - - if (titleBarOnTop) - grid->addLayout ( hb, 1, 1 ); - else - grid->addLayout ( hb, 2, 1 ); -} - - -// Adds the buttons to the hbox tqlayout as per the buttons specified -// in the button string 's' -void IceWMClient::addClientButtons( const TQString& s ) -{ - if (!s.isEmpty()) - for(unsigned int i = 0; i < s.length(); i++) - { - switch ( s[i].latin1() ) - { - case 's': - // Create the menu icons, and render with the current mini-icon - // if explicitly requested by the theme. - if ( (validPixmaps(menuButtonPix) || showMenuButtonIcon) && !button[BtnSysMenu]) - { - if (showMenuButtonIcon) { - renderMenuIcons(); - button[BtnSysMenu] = new IceWMButton(this, "menu", - &menuButtonWithIconPix, false, i18n("Menu"), Qt::LeftButton|Qt::RightButton); - } - else - button[BtnSysMenu] = new IceWMButton(this, "menu", - &menuButtonPix, false, i18n("Menu")); - - connect( button[BtnSysMenu], TQT_SIGNAL(pressed()), - this, TQT_SLOT(menuButtonPressed())); - connect( button[BtnSysMenu], TQT_SIGNAL(released()), - this, TQT_SLOT(menuButtonReleased())); - hb->addWidget( button[BtnSysMenu] ); - } - break; - - case 'x': - if ( validPixmaps(closePix) && !button[BtnClose] && isCloseable()) - { - button[BtnClose] = new IceWMButton(this, "close", - &closePix, false, i18n("Close")); - hb->addWidget( button[BtnClose] ); - connect( button[BtnClose], TQT_SIGNAL(clicked()), - this, TQT_SLOT(closeWindow())); - } - break; - - case 'm': - if ( validPixmaps(maximizePix) && !button[BtnMaximize] && isMaximizable() ) - { - button[BtnMaximize] = new IceWMButton(this, "maximize", - &maximizePix, false, i18n("Maximize"), Qt::LeftButton|Qt::MidButton|Qt::RightButton); - hb->addWidget( button[BtnMaximize] ); - connect( button[BtnMaximize], TQT_SIGNAL(clicked()), - this, TQT_SLOT(slotMaximize())); - } - break; - - case 'i': - if ( validPixmaps(minimizePix) && !button[BtnMinimize] && - isMinimizable() ) - { - button[BtnMinimize] = new IceWMButton(this, "minimize", - &minimizePix, false, i18n("Minimize")); - hb->addWidget( button[BtnMinimize] ); - connect( button[BtnMinimize], TQT_SIGNAL(clicked()), - this, TQT_SLOT(minimize())); - } - break; - - /* Not yet implemented - how's hide useful anyway? - case 'h': - if ( button[BtnHide] && !button[BtnHide] ) - hb->addWidget( button[BtnHide] ); - break; */ - - case 'r': - // NOTE: twin doesn't have toggleShade() in clients.h ! - if ( validPixmaps(rollupPix) && !button[BtnRollup] ) - { - button[BtnRollup] = new IceWMButton(this, "shade", - isSetShade() ? &rolldownPix : &rollupPix, - false, i18n("Rollup")); - hb->addWidget( button[BtnRollup] ); - connect( button[BtnRollup], TQT_SIGNAL(clicked()), - this, TQT_SLOT(toggleShade())); - } - break; - - case 'd': - // Make depth == on all desktops - if ( validPixmaps(depthPix) && !button[BtnDepth] ) - { - button[BtnDepth] = new IceWMButton(this, "on_all_desktops", - &depthPix, true, isOnAllDesktops()?i18n("Not on all desktops"):i18n("On all desktops")); - button[BtnDepth]->turnOn( isOnAllDesktops() ); - hb->addWidget( button[BtnDepth] ); - connect( button[BtnDepth], TQT_SIGNAL(clicked()), - this, TQT_SLOT(toggleOnAllDesktops())); - } - break; - } - } -} - - -// Adds a pixmap to the titlebar tqlayout via the use of a nice TQSpacerItem -TQSpacerItem* IceWMClient::addPixmapSpacer( TQPixmap* p[], TQSizePolicy::SizeType s, int hsize ) -{ - TQSpacerItem* sp; - - // Add a null spacer for zero image - if ( p && p[Active] ) - { - int w = (hsize == -1) ? p[Active]->width(): hsize; - sp = new TQSpacerItem( w, titleBarHeight, s, TQSizePolicy::Fixed ); - } - else - sp = new TQSpacerItem(0, 0, TQSizePolicy::Maximum, TQSizePolicy::Fixed ); - - hb->addItem( sp ); - return sp; -} - - -void IceWMClient::renderMenuIcons() -{ - TQPixmap miniIcon( icon().pixmap( TQIconSet::Small, TQIconSet::Normal) ); - - if (!miniIcon.isNull()) - for(int i = 0; i < 2; i++) { - if ( menuButtonWithIconPix[i] ) - delete menuButtonWithIconPix[i]; - - // Try to be more friendly to dodgy themes - icewm assumes a square menu button - // but some pixmap themes don't provide a square menu button. - int w = titleBarHeight; - if (validPixmaps(menuButtonPix) && menuButtonPix[i]->width() > w) - w = menuButtonPix[i]->width(); - menuButtonWithIconPix[i] = new TQPixmap(w, 2*titleBarHeight ); - if (themeLook != WIN95) - menuButtonWithIconPix[i] -> fill((i==0) ? *colorInActiveButton : *colorActiveButton); - else - menuButtonWithIconPix[i] -> fill((i==0) ? *colorInActiveTitleBar : *colorActiveTitleBar); - TQPainter pnt( menuButtonWithIconPix[i] ); - - if (themeLook > 0 && themeLook != WIN95 && themeLook != WARP4) { - draw3DRect(pnt, *colorActiveButton, 0, 0, - w-1, titleBarHeight-1, true); - draw3DRect(pnt, *colorActiveButton, 0, titleBarHeight, - w-1, 2*titleBarHeight-1, false); - } - if (validPixmaps(menuButtonPix)) { - pnt.drawPixmap(0, 0, *menuButtonPix[i]); - } - int offset = (titleBarHeight - miniIcon.width())/2; - if (offset<0) offset = 0; - // Paint the mini icon over the menu pixmap in the centre - pnt.drawPixmap( offset, offset, miniIcon ); - pnt.drawPixmap( offset, titleBarHeight+offset, miniIcon ); - pnt.end(); - } - -} - - -void IceWMClient::slotMaximize() -{ - maximize(button[BtnMaximize]->last_button); -} - -void IceWMClient::toggleShade() -{ - setShade(!isSetShade()); -} - -int IceWMClient::titleTextWidth( const TQString& s ) -{ - // Obtains the actual width of the text, using the titlebar font - TQSize size; - TQFontMetrics fm( options()->font(true) ); - size = fm.size( 0, s ); - return size.width(); -} - - -void IceWMClient::borders(int& left, int& right, int& top, int& bottom) const -{ - left = borderSizeX; - right = borderSizeX; - if( titleBarOnTop ) { - top = titleBarHeight + borderSizeY; - bottom = borderSizeY; - } else { - top = borderSizeY; - bottom = titleBarHeight + borderSizeY; - } -} - - -void IceWMClient::resize( const TQSize& s ) -{ - widget()->resize( s ); -} - - -TQSize IceWMClient::tqminimumSize() const -{ - return widget()->tqminimumSize(); -} - - -// Repaint nicely upon resize to minimise flicker. -void IceWMClient::resizeEvent( TQResizeEvent* e ) -{ - calcHiddenButtons(); - - if (widget()->isVisibleToTLW()) - { - widget()->update(widget()->rect()); - int dx = 0; - int dy = 0; - - if ( e->oldSize().width() != widget()->width() ) - dx = 32 + TQABS( e->oldSize().width() - width() ); - - if ( e->oldSize().height() != height() ) - dy = 8 + TQABS( e->oldSize().height() - height() ); - - if ( dy ) - widget()->update( 0, height() - dy + 1, width(), dy ); - - if ( dx ) - { - widget()->update( width() - dx + 1, 0, dx, height() ); - widget()->update( TQRect( TQPoint(4,4), titlebar->tqgeometry().bottomLeft() - TQPoint(1,0) ) ); - widget()->update( TQRect( titlebar->tqgeometry().topRight(), TQPoint( width() - 4, titlebar->tqgeometry().bottom() ) ) ); - widget()->tqrepaint(titlebar->tqgeometry(), false); - } - } -} - - -// IceWM Paint magic goes here. -void IceWMClient::paintEvent( TQPaintEvent* ) -{ - TQColor colorTitleShadow; - TQColor colorTitle; - TQColor c1; - int rx, rw; - - TQPainter p( widget() ); - int act = isActive() ? Active: InActive; - - // Determine titlebar shadow colors - bool useShadow = isActive() ? useActiveShadow : useInActiveShadow; - if ( useShadow ) - colorTitleShadow = isActive() ? *colorActiveTitleTextShadow : *colorInActiveTitleTextShadow; - - if ( themeTitleTextColors ) - colorTitle = isActive()? *colorActiveTitleBarText : *colorInActiveTitleBarText; - else - colorTitle = options()->color(ColorFont, isActive()); - - // Obtain widget bounds. - TQRect r; - r = widget()->rect(); - int fillWidth = r.width() - 2*borderSizeX; - int y = r.y(); - int x = r.x(); - int w = r.width(); - int h = r.height(); - - // Do we have pixmaps for the frame? - if (validframe) - { - // Top corner - p.drawPixmap(0, 0, *frameTL[ act ], 0, 0, cornerSizeX, borderSizeY); - p.drawPixmap(0, 0, *frameTL[ act ], 0, 0, borderSizeX, cornerSizeY); - - // Top right corner - p.drawPixmap(w-cornerSizeX, 0, *frameTR[ act ], - frameTR[act]->width()-cornerSizeX, 0, cornerSizeX, borderSizeY); - p.drawPixmap(w-borderSizeX, 0, *frameTR[ act ], - frameTR[act]->width()-borderSizeX, 0, borderSizeX, cornerSizeY); - - // Top bar - p.drawTiledPixmap( cornerSizeX, 0, w-(2*cornerSizeX), borderSizeY, *frameT[ act ] ); - - // Left bar - p.drawTiledPixmap( 0, cornerSizeY, borderSizeX, h-(2*cornerSizeY), *frameL[ act ] ); - - // Right bar - p.drawTiledPixmap( w-borderSizeX, cornerSizeY, borderSizeX, h-(2*cornerSizeY), - *frameR[ act ],frameR[act]->width()-borderSizeX ); - - // Bottom left corner - p.drawPixmap(0, h-borderSizeY, *frameBL[ act ], - 0, frameBL[act]->height()-borderSizeY, cornerSizeX, borderSizeY); - p.drawPixmap(0, h-cornerSizeY, *frameBL[ act ], - 0, frameBL[act]->height()-cornerSizeY, borderSizeX, cornerSizeY); - - // Bottom right corner - p.drawPixmap(w-cornerSizeX, h-borderSizeY, *frameBR[ act ], - frameBR[act]->width()-cornerSizeX, frameBR[act]->height()-borderSizeY, - cornerSizeX, borderSizeY); - - p.drawPixmap(w-borderSizeX, h-cornerSizeY, *frameBR[ act ], - frameBR[act]->width()-borderSizeX, frameBR[act]->height()-cornerSizeY, - borderSizeX, cornerSizeY); - - // Bottom bar - p.drawTiledPixmap(cornerSizeX, h-borderSizeY, w-(2*cornerSizeX), borderSizeY, - *frameB[ act ], 0, frameB[ act ]->height()-borderSizeY ); - - // Ensure uncovered areas during shading are painted with something - p.setPen( *colorInActiveBorder ); - if (titleBarOnTop) - p.drawLine( x+borderSizeX, y+h-borderSizeY-1, - x+w-borderSizeX-1, y+h-borderSizeY-1); - else - p.drawLine( x+borderSizeX, y+borderSizeY, - x+w-borderSizeX-1, y+borderSizeY); - - } else - { - // Draw a stock IceWM frame instead of a pixmap frame - c1 = isActive() ? *colorActiveBorder : *colorInActiveBorder; - - if (themeLook == WARP3 || themeLook == MOTIF) { - draw3DRect(p, c1, x, y, w-1, h-1, true); - p.setPen(c1); - p.drawRect(x+1, y+1, w-2, h-2); - } else { - p.setPen( c1.light(135) ); - p.drawLine(0, 0, w-2, 0); - p.drawLine(0, 0, 0, h-2); - - p.setPen(c1); - p.drawLine(1, 1, w-3, 1); - p.drawLine(1, 1, 1, h-3); - - p.setPen( c1.dark(140) ); - p.drawLine(1, h-2, w-2, h-2); - p.drawLine(w-2, 1, w-2, h-2); - - p.setPen( TQt::black ); - p.drawLine(w-1, 0, w-1, h-1); - p.drawLine(0, h-1, w-1, h-1); - } - - - // Fill frame border if required - if (borderSizeX > 2) - { - // FillQt::Vertical sizes - p.fillRect( x+2, y+2, borderSizeX-2, h-4, c1); - p.fillRect( w-borderSizeX, y+2, borderSizeX-2, h-4, c1); - } - - if (borderSizeY > 2) - { - // Fill horizontal frame parts - p.fillRect( x+borderSizeX, y+2, fillWidth, borderSizeY-2, c1); - p.fillRect( x+borderSizeX, h-borderSizeY, fillWidth, borderSizeY-2, c1); - } - - if (themeLook == WARP3 || themeLook == MOTIF) { - draw3DRect(p, c1, x+borderSizeX-1, y+borderSizeY-1, - w+1-2*borderSizeX, h+1-2*borderSizeY, false); - } - if (themeLook == MOTIF && !isShade()) { - int xext = titleBarHeight + borderSizeX - 1; - int yext = titleBarHeight + borderSizeY - 1; - - int xext2 = w-xext-2; - int yext2 = h-yext-2; - - int bX = w - borderSizeX-1; - int bY = h - borderSizeY-1; - - p.setPen( c1.dark(140) ); - p.drawLine(xext, 0, xext, borderSizeY); - p.drawLine(xext2, 0, xext2, borderSizeY); - p.drawLine(xext, bY, xext, h-1); - p.drawLine(xext2, bY, xext2, h-1); - - p.drawLine(0, yext, borderSizeX, yext); - p.drawLine(0, yext2, borderSizeX, yext2); - p.drawLine(bX, yext, w-1, yext); - p.drawLine(bX, yext2, w-1, yext2); - - p.setPen( c1.light(135) ); - - ++xext; ++yext; ++xext2; ++yext2; - - p.drawLine(xext, 0, xext, borderSizeY); - p.drawLine(xext2, 0, xext2, borderSizeY); - p.drawLine(xext, bY, xext, h-1); - p.drawLine(xext2, bY, xext2, h-1); - - p.drawLine(0, yext, borderSizeX, yext); - p.drawLine(0, yext2, borderSizeX, yext2); - p.drawLine(bX, yext, w-1, yext); - p.drawLine(bX, yext2, w-1, yext2); - - - } - - // Ensure uncovered areas during shading are painted with something - p.setPen( *colorInActiveBorder ); - if (titleBarOnTop) - p.drawLine( x+borderSizeX, y+h-borderSizeY-1, - x+w-borderSizeX-1, y+h-borderSizeY-1); - else - p.drawLine( x+borderSizeX, y+borderSizeY, - x+w-borderSizeX-1, y+borderSizeY); - } - - // Draw the title elements, if we need to draw a titlebar. - if (titleBarHeight > 0) - { - TQPixmap* titleBuffer = new TQPixmap( width()-(2*borderSizeX), titleBarHeight ); - TQPainter p2( titleBuffer, this ); - titleBuffer->fill( act ? *colorActiveTitleBar : *colorInActiveTitleBar ); - - r = titleSpacerJ->tqgeometry(); - if (!r.isEmpty() && titleJ[ act ]) - p2.drawPixmap( r.x()-borderSizeX, 0, *titleJ[ act ]); - - r = titleSpacerL->tqgeometry(); - if (!r.isEmpty() && titleL[ act ]) - p2.drawPixmap( r.x()-borderSizeX, 0, *titleL[ act ]); - - r = titleSpacerS->tqgeometry(); - if (!r.isEmpty() && titleS[ act ]) - p2.drawTiledPixmap( r.x()-borderSizeX, 0, r.width(), titleBarHeight, *titleS[ act ]); - - r = titleSpacerP->tqgeometry(); - if (!r.isEmpty() && titleP[ act ]) - p2.drawPixmap( r.x()-borderSizeX, 0, *titleP[ act ]); - - r = titlebar->tqgeometry(); - if (!r.isEmpty() && titleT[ act ] ) - p2.drawTiledPixmap( r.x()-borderSizeX, 0, r.width(), titleBarHeight, *titleT[ act ]); - - r = titleSpacerM->tqgeometry(); - if (!r.isEmpty() && titleM[ act ]) - p2.drawPixmap( r.x()-borderSizeX, 0, *titleM[ act ], 0, 0, r.width(), r.height()); - - r = titleSpacerB->tqgeometry(); - if (!r.isEmpty() && titleB[ act ]) - p2.drawTiledPixmap( r.x()-borderSizeX, 0, r.width(), titleBarHeight, *titleB[ act ]); - - r = titleSpacerR->tqgeometry(); - if (!r.isEmpty() && titleR[ act ]) - p2.drawPixmap( r.x()-borderSizeX, 0, *titleR[ act ], 0, 0, r.width(), r.height()); - - r = titleSpacerQ->tqgeometry(); - if (!r.isEmpty() && titleQ[ act ]) - p2.drawPixmap( r.x()-borderSizeX, 0, *titleQ[ act ], 0, 0, r.width(), r.height()); - - p2.setFont( options()->font(true) ); - - // Pre-compute as much as possible - r = titlebar->tqgeometry(); - rx = r.x() - borderSizeX; - rw = width()-(2*borderSizeX)-r.x(); - - // Paint a title text shadow if requested - if ( useShadow ) - { - p2.setPen( colorTitleShadow ); - p2.drawText(rx+1, 1, rw, titleBarHeight, AlignLeft|AlignVCenter, caption()); - } - - // Draw the title text - p2.setPen( colorTitle ); - p2.drawText(rx, 0, rw, titleBarHeight, AlignLeft|AlignVCenter, caption()); - p2.end(); - - bitBlt( widget(), borderSizeX, hb->tqgeometry().y(), titleBuffer ); - - delete titleBuffer; - } -} - - -void IceWMClient::showEvent(TQShowEvent *ev) -{ - calcHiddenButtons(); - - titlebar->changeSize( titleTextWidth(caption()), titleBarHeight, - TQSizePolicy::Preferred, TQSizePolicy::Fixed ); - grid->activate(); - widget()->show(); - IceWMClient::showEvent(ev); -} - - -void IceWMClient::mouseDoubleClickEvent( TQMouseEvent * e ) -{ - if( e->button() != Qt::LeftButton ) - return; - - TQRect r; - if (titleBarOnTop) - r.setRect( borderSizeX, borderSizeY, width()-(2*borderSizeX), titleBarHeight); - else - r.setRect( borderSizeX, height()-borderSizeY-titleBarHeight, - width()-(2*borderSizeX), titleBarHeight); - - if (r.contains( e->pos() ) ) - titlebarDblClickOperation(); - -} - - -void IceWMClient::wheelEvent(TQWheelEvent *e) -{ - if (isSetShade() || TQRect( 0, 0, width(), titleBarHeight ).contains( e->pos() ) ) - titlebarMouseWheelOperation( e->delta()); -} - - -// Called via Client class when the miniIcon() changes -void IceWMClient::iconChange() -{ - if (validPixmaps(menuButtonPix) && showMenuButtonIcon) - { - if (button[BtnSysMenu]) - { - renderMenuIcons(); - button[BtnSysMenu]->usePixmap( &menuButtonWithIconPix ); - if (button[BtnSysMenu]->isVisible()) - button[BtnSysMenu]->tqrepaint(false); - } - } -} - - -void IceWMClient::desktopChange() -{ - if (button[BtnDepth]) - { - button[BtnDepth]->turnOn( isOnAllDesktops() ); - button[BtnDepth]->tqrepaint(false); - button[BtnDepth]->setTipText(isOnAllDesktops() ? i18n("Not on all desktops") : i18n("On all desktops")); - } -} - - -// Please don't modify the following unless you want tqlayout problems -void IceWMClient::captionChange() -{ - TQRect r( 0, borderSizeY, geometry().width(), titleBarHeight); - - titlebar->changeSize( titleTextWidth( caption() ), titleBarHeight, - TQSizePolicy::Preferred, TQSizePolicy::Fixed ); - titlebar->invalidate(); - grid->activate(); - widget()->tqrepaint( r, false ); -} - - -void IceWMClient::maximizeChange() -{ - // Change the button pixmap to restore if required - if (button[BtnMaximize] && validPixmaps(restorePix)) - { - button[BtnMaximize]->usePixmap( (maximizeMode()==MaximizeFull) ? &restorePix : &maximizePix ); - button[BtnMaximize]->setTipText( (maximizeMode()==MaximizeFull) ? i18n("Restore") : i18n("Maximize")); - } -} - - -void IceWMClient::shadeChange() -{ - // Change the button pixmap to rolldown if required - if (button[BtnRollup] && validPixmaps(rolldownPix)) - { - button[BtnRollup]->usePixmap( isSetShade() ? &rolldownPix : &rollupPix ); - button[BtnRollup]->setTipText( isSetShade() ? i18n("Rolldown") : i18n("Rollup")); - } - -} - - -void IceWMClient::activeChange() -{ - widget()->tqrepaint(false); - - // Reset the button pixmaps. - for(int i= IceWMClient::BtnSysMenu; i < IceWMClient::BtnCount; i++) - if(button[i]) - button[i]->tqrepaint( false ); -} - - -// This does the showing / hiding button magic -// for variable positioned buttons. -void IceWMClient::calcHiddenButtons() -{ - const int minwidth = 220; // Minimum width where all buttons are shown - const int btn_width = 20; // Average width - - // Show/Hide buttons in this order - OnAllDesktops, Maximize, Menu, Rollup, Minimize, Close. - IceWMButton* btnArray[] = { button[BtnDepth], button[BtnMaximize], button[BtnSysMenu], - button[BtnRollup], button[BtnMinimize], button[BtnClose] }; - - int current_width = width(); - int count = 0; - int i; - - // Find out how many buttons we have to hide. - while (current_width < minwidth) - { - current_width += btn_width; - count++; - } - - // Bound the number of buttons to hide - if (count > 6) count = 6; - - // Hide the required buttons... - for(i = 0; i < count; i++) - { - if (btnArray[i] && btnArray[i]->isVisible() ) - btnArray[i]->hide(); - } - - // Show the rest of the buttons... - for(i = count; i < 6; i++) - { - if (btnArray[i] && (!btnArray[i]->isVisible()) ) - btnArray[i]->show(); - } -} - - -// Mouse position code modified from that in workspace.cpp -IceWMClient::Position IceWMClient::mousePosition( const TQPoint& p ) const -{ - int rangeX = cornerSizeX; - int rangeY = cornerSizeY; - int borderX = borderSizeX; - int borderY = borderSizeY; - - Position m = PositionCenter; - - if ((p.x() > borderX && p.x() < width() - borderX) && - ( p.y() > borderY && p.y() < height() - borderY)) - return PositionCenter; - - if ( p.y() <= rangeY && p.x() <= rangeX) - m = PositionTopLeft; - else if ( p.y() >= height()-rangeY && p.x() >= width()-rangeX) - m = PositionBottomRight; - else if ( p.y() >= height()-rangeX && p.x() <= rangeX) - m = PositionBottomLeft; - else if ( p.y() <= rangeY && p.x() >= width()-rangeX) - m = PositionTopRight; - else if ( p.y() <= borderY ) - m = PositionTop; - else if ( p.y() >= height()-borderY ) - m = PositionBottom; - else if ( p.x() <= borderX ) - m = PositionLeft; - else if ( p.x() >= width()-borderX ) - m = PositionRight; - else - m = PositionCenter; - return m; -} - - -void IceWMClient::menuButtonPressed() -{ - static TQTime t; - static IceWMClient* lastClient = NULL; - bool dbl = ( lastClient == this && t.elapsed() <= TQApplication::doubleClickInterval()); - lastClient = this; - t.start(); - - if (dbl) - { - m_closing = true; - return; - } - - TQPoint menuPoint ( button[BtnSysMenu]->rect().bottomLeft() ); - - // Move to right if menu on rhs, otherwise on left - // and make this depend on windowWrapper(), not button. - - KDecorationFactory* f = factory(); - showWindowMenu( button[BtnSysMenu]->mapToGlobal(menuPoint) ); - if( !f->exists( this )) // 'this' was deleted - return; - button[BtnSysMenu]->setDown(false); -} - -void IceWMClient::menuButtonReleased() -{ - if (m_closing) - closeWindow(); -} - -bool IceWMClient::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; -} - -} - -extern "C" -{ - KDE_EXPORT KDecorationFactory *create_factory() - { - IceWM::clientHandler = new IceWM::ThemeHandler; - return IceWM::clientHandler; - } -} - - -#include "icewm.moc" - -// vim: ts=4 diff --git a/kwin-styles/icewm/icewm.desktop b/kwin-styles/icewm/icewm.desktop deleted file mode 100644 index eeffdcc0..00000000 --- a/kwin-styles/icewm/icewm.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Name=IceWM -Name[cy]=RhewWM -Name[hi]=आइस-डबल्यूएम -Name[sv]=Ice-fönsterhanterare -Name[ta]=பனிக்கட்டிWM -Name[th]=ตัวจัดการหน้าต่าง IceWM -Name[vi]=Nước đá WM -Name[xh]=UmkhenkceWM -Name[zu]=Iqhwa leWM -X-KDE-Library=twin3_icewm diff --git a/kwin-styles/icewm/icewm.h b/kwin-styles/icewm/icewm.h deleted file mode 100644 index f343912c..00000000 --- a/kwin-styles/icewm/icewm.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - $Id$ - - Gallium-IceWM themeable KWin client - - Copyright 2001 - Karol Szwed <gallium@kde.org> - http://gallium.n3.net/ - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. - - ----------------------------------------------------------------------------- - This client loads most icewm 1.0.X pixmap themes, without taking into account - specific font settings for clients, or coloured mouse cursors. Titlebar - fonts can be changed via the kde control center. Bi-colour mouse cursors - may be added in future if requested by users, as well as theme font support. - Any styles using inbuilt icewm titlebar drawing without using pixmaps (e.g. - Warp4, win95 etc.) are not fully supported, and may cause drawing errors, - as these themes use in-built icewm drawing mechanisms. - - When a pixmap theme is not present (or a corrupt one is present) then very - plain title decorations are painted instead, so that users don't see - non-painted window areas where possible ;) - - At a later date, frame shaping may be added if really requested, and an - update to support the latest icewm 1.1.X theme format may be made. -*/ - -#ifndef __KDEGALLIUM_ICEWM_H -#define __KDEGALLIUM_ICEWM_H - -#include <tqbutton.h> -#include <tqlayout.h> -#include <kpixmap.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> -#include <tqbutton.h> -class TQLabel; -class TQSpacerItem; -class TQBoxLayout; -class TQGridLayout; - -namespace IceWM { - -class IceWMClient; - -// Pixmap group -enum { InActive=0, Active }; -// Pixmap stretching mode -enum { Vertical=0, Horizontal=1 }; - - -// Handles the resetClients() signal from the Options class, -// and manages the dynamic pixmaps, configuration and theme changing -class ThemeHandler: public KDecorationFactory -{ - public: - ThemeHandler(); - ~ThemeHandler(); - - virtual KDecoration* createDecoration( KDecorationBridge* ); - virtual bool reset( unsigned long changed ); - virtual bool supports( Ability ability ); - - private: - bool initialized; - TQString themeName; - - void readConfig(); - TQColor decodeColor( TQString& s ); - bool isFrameValid(); - void initTheme(); - void freePixmaps(); - void freePixmapGroup( TQPixmap* p[] ); - void setPixmap( TQPixmap* p[], TQString s1, TQString s2, bool - stretch=false, bool stretchHoriz=true ); - void setPixmapButton( TQPixmap* p[], TQString s1, TQString s2); - TQPixmap* stretchPixmap( TQPixmap* src, bool stretchHoriz=true, - int stretchSize=-1); - TQPixmap* duplicateValidPixmap( bool act, int size = -1 ); - void convertButtons( TQString& s ); - TQString reverseString( TQString s ); -}; - - -class IceWMButton : public TQButton -{ - public: - IceWMButton( IceWMClient *parent=0, const char *name=0, - TQPixmap* (*p)[2]=0L, bool isToggle=false, - const TQString& tip=NULL, const int realizeBtns = Qt::LeftButton ); - void setTipText(const TQString &tip); - void usePixmap( TQPixmap* (*p)[2] ); - TQSize tqsizeHint() const; - void turnOn( bool isOn ); - ButtonState last_button; - - protected: - void mousePressEvent( TQMouseEvent* e ); - void mouseReleaseEvent( TQMouseEvent* e ); - - void drawButton( TQPainter *p ); - void drawButtonLabel( TQPainter * ) {;} - - private: - int m_realizeButtons; - IceWMClient* client; - TQPixmap* (*pix)[2]; // Points to active/inactive pixmap array -}; - - -class IceWMClient : public KDecoration -{ - Q_OBJECT - TQ_OBJECT - public: - IceWMClient( KDecorationBridge* bridge, KDecorationFactory* factory ); - ~IceWMClient(); - - virtual void init(); - virtual void resize(const TQSize&); - virtual bool eventFilter( TQObject* o, TQEvent* e ); - - protected: - void resizeEvent( TQResizeEvent* ); - void paintEvent( TQPaintEvent* ); - void showEvent( TQShowEvent* ); - void mouseDoubleClickEvent( TQMouseEvent * ); - void wheelEvent( TQWheelEvent * ); - virtual void captionChange(); - virtual void maximizeChange(); - virtual void shadeChange(); - virtual void activeChange(); - // void shadeChange(bool); /* KWin Client class doesn't provide this yet */ - Position mousePosition( const TQPoint& ) const; - void renderMenuIcons(); - void iconChange(); - virtual void desktopChange( ); - virtual void borders(int&, int&, int&, int&) const; - virtual TQSize tqminimumSize() const; - - protected slots: - void slotMaximize(); - void menuButtonPressed(); - void menuButtonReleased(); - void toggleShade(); - - private: - // These are all the icewm button types :) - enum Buttons{ BtnSysMenu=0, BtnClose, BtnMaximize, BtnMinimize, - BtnHide, BtnRollup, BtnDepth, BtnCount }; - - TQString shortenCaption( const TQString* s ); - void calcHiddenButtons(); - int titleTextWidth( const TQString& s ); - void addClientButtons( const TQString& s ); - TQSpacerItem* addPixmapSpacer( TQPixmap* p[], - TQSizePolicy::SizeType = TQSizePolicy::Maximum, int hsize = -1 ); - - IceWMButton* button[ IceWMClient::BtnCount ]; - TQPixmap* menuButtonWithIconPix[2]; - TQSpacerItem* titleSpacerJ; - TQSpacerItem* titleSpacerL; - TQSpacerItem* titleSpacerS; - TQSpacerItem* titleSpacerP; - TQSpacerItem* titlebar; - TQSpacerItem* titleSpacerM; - TQSpacerItem* titleSpacerB; - TQSpacerItem* titleSpacerR; - TQSpacerItem* titleSpacerQ; - TQBoxLayout* hb; - TQGridLayout* grid; - bool m_closing; -}; - -} - -#endif - -// vim: ts=4 diff --git a/kwin-styles/kde1/CMakeLists.txt b/kwin-styles/kde1/CMakeLists.txt deleted file mode 100644 index 2cbae1eb..00000000 --- a/kwin-styles/kde1/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 kde1.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_cde ################################## - -tde_add_kpart( twin3_kde1 AUTOMOC - SOURCES kde1client.cpp - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/kde1/Makefile.am b/kwin-styles/kde1/Makefile.am deleted file mode 100644 index 131b71a4..00000000 --- a/kwin-styles/kde1/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ - -INCLUDES = $(all_includes) - -kde_module_LTLIBRARIES = twin3_kde1.la - -twin3_kde1_la_SOURCES = kde1client.cpp -twin3_kde1_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin3_kde1_la_LIBADD = -ltdecorations - -METASOURCES = AUTO -noinst_HEADERS = kde1client.h - -lnkdir = $(kde_datadir)/twin/ -lnk_DATA = kde1.desktop -EXTRA_DIST = $(lnk_DATA) - diff --git a/kwin-styles/kde1/kde1.desktop b/kwin-styles/kde1/kde1.desktop deleted file mode 100644 index e0a1ffad..00000000 --- a/kwin-styles/kde1/kde1.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Name=KDE 1 -Name[fa]=KDE ۱ -Name[hi]=केडीई 1 -Name[ne]=केडीई १ -Name[th]=โปรแกรมจัดการหน้าต่าง KDE 1 -X-KDE-Library=twin3_kde1 diff --git a/kwin-styles/kde1/kde1client.cpp b/kwin-styles/kde1/kde1client.cpp deleted file mode 100644 index c6a7db98..00000000 --- a/kwin-styles/kde1/kde1client.cpp +++ /dev/null @@ -1,809 +0,0 @@ -/***************************************************************** -twin - the KDE window manager - -Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org> -******************************************************************/ -#include "kde1client.h" -#include <tqcursor.h> -#include <tqlayout.h> -#include <tqtoolbutton.h> -#include <tqlabel.h> -#include <tqdrawutil.h> -#include <tqbitmap.h> -#include <kdrawutil.h> -#include <klocale.h> -#include <kpixmap.h> -#include <tqdatetime.h> -#include <tqimage.h> -#include <tqtooltip.h> - -#include "kde1client_bitmaps.h" - -// Default button tqlayout -const char default_left[] = "MS"; -const char default_right[] = "H_IAX"; - -namespace KDE1 -{ - -TQPixmap* close_pix = 0; -TQPixmap* maximize_pix = 0; -TQPixmap* minimize_pix = 0; -TQPixmap* normalize_pix = 0; -TQPixmap* pinup_pix = 0; -TQPixmap* pindown_pix = 0; -TQPixmap* menu_pix = 0; -TQPixmap* question_mark_pix = 0; - -TQPixmap* dis_close_pix = 0; -TQPixmap* dis_maximize_pix = 0; -TQPixmap* dis_minimize_pix = 0; -TQPixmap* dis_normalize_pix = 0; -TQPixmap* dis_pinup_pix = 0; -TQPixmap* dis_pindown_pix = 0; -TQPixmap* dis_menu_pix = 0; -TQPixmap* dis_question_mark_pix = 0; - -TQPixmap* titleBuffer = 0; - -bool pixmaps_created = FALSE; - -inline const KDecorationOptions* options() { return KDecoration::options(); } - -void create_pixmaps() -{ - if ( pixmaps_created ) - return; - pixmaps_created = true; - TQColorGroup aGrp = options()->tqcolorGroup(KDecorationOptions::ColorButtonBg, true); - TQColorGroup iGrp = options()->tqcolorGroup(KDecorationOptions::ColorButtonBg, false); - - TQPainter aPainter, iPainter; - close_pix = new TQPixmap(16, 16); - dis_close_pix = new TQPixmap(16, 16); - aPainter.begin(close_pix); iPainter.begin(dis_close_pix); - kColorBitmaps(&aPainter, aGrp, 0, 0, 16, 16, true, close_white_bits, - NULL, NULL, close_dgray_bits, NULL, NULL); - kColorBitmaps(&iPainter, iGrp, 0, 0, 16, 16, true, close_white_bits, - NULL, NULL, close_dgray_bits, NULL, NULL); - aPainter.end(); iPainter.end(); - close_pix->setMask(TQBitmap(16, 16, close_mask_bits, true)); - dis_close_pix->setMask(*close_pix->mask()); - - minimize_pix = new TQPixmap(16, 16); - dis_minimize_pix = new TQPixmap(16, 16); - aPainter.begin(minimize_pix); iPainter.begin(dis_minimize_pix); - kColorBitmaps(&aPainter, aGrp, 0, 0, 16, 16, true, iconify_white_bits, - NULL, NULL, iconify_dgray_bits, NULL, NULL); - kColorBitmaps(&iPainter, iGrp, 0, 0, 16, 16, true, iconify_white_bits, - NULL, NULL, iconify_dgray_bits, NULL, NULL); - aPainter.end(); iPainter.end(); - minimize_pix->setMask(TQBitmap(16, 16, iconify_mask_bits, true)); - dis_minimize_pix->setMask(*minimize_pix->mask()); - - maximize_pix = new TQPixmap(16, 16); - dis_maximize_pix = new TQPixmap(16, 16); - aPainter.begin(maximize_pix); iPainter.begin(dis_maximize_pix); - kColorBitmaps(&aPainter, aGrp, 0, 0, 16, 16, true, maximize_white_bits, - NULL, NULL, maximize_dgray_bits, NULL, NULL); - kColorBitmaps(&iPainter, iGrp, 0, 0, 16, 16, true, maximize_white_bits, - NULL, NULL, maximize_dgray_bits, NULL, NULL); - aPainter.end(); iPainter.end(); - maximize_pix->setMask(TQBitmap(16, 16, maximize_mask_bits, true)); - dis_maximize_pix->setMask(*maximize_pix->mask()); - - normalize_pix = new TQPixmap(16, 16); - dis_normalize_pix = new TQPixmap(16, 16); - aPainter.begin(normalize_pix); iPainter.begin(dis_normalize_pix); - kColorBitmaps(&aPainter, aGrp, 0, 0, 16, 16, true, maximizedown_white_bits, - NULL, NULL, maximizedown_dgray_bits, NULL, NULL); - kColorBitmaps(&iPainter, iGrp, 0, 0, 16, 16, true, maximizedown_white_bits, - NULL, NULL, maximizedown_dgray_bits, NULL, NULL); - aPainter.end(); iPainter.end(); - normalize_pix->setMask(TQBitmap(16, 16, maximizedown_mask_bits, true)); - dis_normalize_pix->setMask(*normalize_pix->mask()); - - menu_pix = new TQPixmap(16, 16); - dis_menu_pix = new TQPixmap(16, 16); - aPainter.begin(menu_pix); iPainter.begin(dis_menu_pix); - kColorBitmaps(&aPainter, aGrp, 0, 0, 16, 16, true, menu_white_bits, - NULL, NULL, menu_dgray_bits, NULL, NULL); - kColorBitmaps(&iPainter, iGrp, 0, 0, 16, 16, true, menu_white_bits, - NULL, NULL, menu_dgray_bits, NULL, NULL); - aPainter.end(); iPainter.end(); - menu_pix->setMask(TQBitmap(16, 16, menu_mask_bits, true)); - dis_menu_pix->setMask(*menu_pix->mask()); - - pinup_pix = new TQPixmap(16, 16); - dis_pinup_pix = new TQPixmap(16, 16); - aPainter.begin(pinup_pix); iPainter.begin(dis_pinup_pix); - kColorBitmaps(&aPainter, aGrp, 0, 0, 16, 16, true, pinup_white_bits, - pinup_gray_bits, NULL, pinup_dgray_bits, NULL, NULL); - kColorBitmaps(&iPainter, iGrp, 0, 0, 16, 16, true, pinup_white_bits, - pinup_gray_bits, NULL, pinup_dgray_bits, NULL, NULL); - aPainter.end(); iPainter.end(); - pinup_pix->setMask(TQBitmap(16, 16, pinup_mask_bits, true)); - dis_pinup_pix->setMask(*pinup_pix->mask()); - - pindown_pix = new TQPixmap(16, 16); - dis_pindown_pix = new TQPixmap(16, 16); - aPainter.begin(pindown_pix); iPainter.begin(dis_pindown_pix); - kColorBitmaps(&aPainter, aGrp, 0, 0, 16, 16, true, pindown_white_bits, - pindown_gray_bits, NULL, pindown_dgray_bits, NULL, NULL); - kColorBitmaps(&iPainter, iGrp, 0, 0, 16, 16, true, pindown_white_bits, - pindown_gray_bits, NULL, pindown_dgray_bits, NULL, NULL); - aPainter.end(); iPainter.end(); - pindown_pix->setMask(TQBitmap(16, 16, pindown_mask_bits, true)); - dis_pindown_pix->setMask(*pindown_pix->mask()); - - question_mark_pix = new TQPixmap(16, 16); - dis_question_mark_pix = new TQPixmap(16, 16); - aPainter.begin(question_mark_pix); iPainter.begin(dis_question_mark_pix); - kColorBitmaps(&aPainter, aGrp, 0, 0, 16, 16, true, help_light_bits, - NULL, NULL, help_dark_bits, NULL, NULL); - kColorBitmaps(&iPainter, iGrp, 0, 0, 16, 16, true, help_light_bits, - NULL, NULL, help_dark_bits, NULL, NULL); - aPainter.end(); iPainter.end(); - question_mark_pix->setMask(TQBitmap(16, 16, help_mask_bits, true)); - dis_question_mark_pix->setMask(*question_mark_pix->mask()); - - titleBuffer = new KPixmap; -} - -void delete_pixmaps() -{ - delete close_pix; - delete maximize_pix; - delete minimize_pix; - delete normalize_pix; - delete pinup_pix; - delete pindown_pix; - delete menu_pix; - delete question_mark_pix; - delete dis_close_pix; - delete dis_maximize_pix; - delete dis_minimize_pix; - delete dis_normalize_pix; - delete dis_pinup_pix; - delete dis_pindown_pix; - delete dis_menu_pix; - delete dis_question_mark_pix; - delete titleBuffer; - pixmaps_created = false; -} - -void drawGradient -( - TQPainter & p, - const TQRect & t, - const TQColor & c1, - const TQColor & c2 -) -{ - // Don't draw a million vertical lines if we don't need to. - - if (c1 == c2 || TQPixmap::defaultDepth() <= 8) - { - p.fillRect(t, c1); - return; - } - - // rikkus: Adapted from KPixmapEffect::gradient(). - - int rca = c1.red(); - int gca = c1.green(); - int bca = c1.blue(); - - int rDiff = c2.red() - rca; - int gDiff = c2.green() - gca; - int bDiff = c2.blue() - bca; - - int rl = rca << 16; - int gl = gca << 16; - int bl = bca << 16; - - int rcdelta = ((1 << 16) / t.width()) * rDiff; - int gcdelta = ((1 << 16) / t.width()) * gDiff; - int bcdelta = ((1 << 16) / t.width()) * bDiff; - - for (int x = 0; x < t.width(); x++) - { - rl += rcdelta; - gl += gcdelta; - bl += bcdelta; - - p.setPen(TQColor(rl >> 16, gl >> 16, bl >> 16)); - - p.drawLine(t.x() + x, 0, t.x() + x, t.y() + t.height() - 1); - } -} - - -void StdClient::reset( unsigned long ) -{ - if (button[ButtonMenu] && (icon().pixmap( TQIconSet::Small, TQIconSet::Normal ).isNull())) - button[ButtonMenu]->setIconSet(isActive() ? *menu_pix : *dis_menu_pix); - if (button[ButtonSticky]) - button[ButtonSticky]->setIconSet(isOnAllDesktops() ? isActive() ? *pindown_pix : *dis_pindown_pix : - isActive() ? *pinup_pix : *dis_pinup_pix ); - if (button[ButtonMinimize]) - button[ButtonMinimize]->setIconSet(isActive() ? *minimize_pix : *dis_minimize_pix); - if (button[ButtonMaximize]) - button[ButtonMaximize]->setIconSet(isActive() ? *maximize_pix : *dis_maximize_pix); - if (button[ButtonClose]) - button[ButtonClose]->setIconSet(isActive() ? *close_pix : *dis_close_pix); - if (button[ButtonHelp]) - button[ButtonHelp]->setIconSet(isActive() ? *question_mark_pix : *dis_question_mark_pix); - - widget()->setFont(options()->font(true)); -} - - -StdClient::StdClient( KDecorationBridge* b, KDecorationFactory* f ) - : KDecoration( b, f ) -{ -} - -void StdClient::init() -{ - createMainWidget(); - widget()->installEventFilter( this ); - - widget()->setFont(options()->font(isActive() )); - - TQGridLayout* g = new TQGridLayout( widget(), 0, 0, 3, 2 ); - g->setRowStretch( 1, 10 ); - if( isPreview()) - g->addWidget( new TQLabel( i18n( "<center><b>KDE 1 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->addColSpacing(0, 1); - g->addColSpacing(2, 1); - g->addRowSpacing(2, 1); - - int fh = widget()->fontMetrics().lineSpacing(); - titlebar = new TQSpacerItem(10, fh, TQSizePolicy::Expanding, - TQSizePolicy::Minimum ); - - TQBoxLayout* hb = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - g->addLayout( hb, 0, 1 ); - - // setup titlebar buttons - for (int n=0; n<ButtonTypeCount; n++) button[n] = 0; - addButtons(hb, options()->customButtonPositions() ? options()->titleButtonsLeft() : TQString(default_left)); - hb->addItem(titlebar); - addButtons(hb, options()->customButtonPositions() ? options()->titleButtonsRight() : TQString(default_right)); - - for (int n=0; n<ButtonTypeCount; n++) { - if ( !button[n] ) - continue; - button[n]->setBackgroundMode( PaletteBackground ); - button[n]->setMouseTracking( FALSE ); - button[n]->setAutoRaise( TRUE ); - button[n]->setFocusPolicy( TQ_NoFocus ); - button[n]->setFixedSize( 20, 20 ); - } - -#if 0 // not sure what this is supposed to mean (and why) - if ( isTransient() ) { - // lighter decoration for transient windows - button[1]->hide(); -// button[2]->hide(); - button[3]->hide(); - button[4]->hide(); - } -#endif -} - -void StdClient::addButtons(TQBoxLayout *hb, const TQString& s) -{ - if (s.length() > 0) { - for (unsigned n=0; n < s.length(); n++) { - switch (s[n]) { - case 'M': // Menu button - if (!button[ButtonMenu]) { - button[ButtonMenu] = new TQToolButton( widget(), 0 ); - TQToolTip::add( button[ButtonMenu], i18n("Menu") ); - button[ButtonMenu]->setCursor(ArrowCursor); - if( icon().pixmap( TQIconSet::Small, TQIconSet::Normal ).isNull()) - button[ButtonMenu]->setIconSet(isActive() ? *menu_pix : *dis_menu_pix); - else - button[ButtonMenu]->setIconSet( icon().pixmap( TQIconSet::Small, TQIconSet::Normal )); - connect( button[0], TQT_SIGNAL( pressed() ), this, TQT_SLOT( menuButtonPressed() ) ); - hb->addWidget(button[ButtonMenu]); - } - break; - - case 'S': // Sticky button - if (!button[ButtonSticky]) { - button[ButtonSticky] = new TQToolButton( widget(), 0 ); - button[ButtonSticky]->setIconSet( isOnAllDesktops()?*pindown_pix:*pinup_pix ); - TQToolTip::add( button[ButtonSticky], isOnAllDesktops()?i18n("Not On All Desktops"):i18n("On All Desktops") ); - button[ButtonSticky]->setCursor(ArrowCursor); - button[ButtonSticky]->setIconSet(isOnAllDesktops() ? isActive() ? *pindown_pix : *dis_pindown_pix : - isActive() ? *pinup_pix : *dis_pinup_pix ); - connect( button[ButtonSticky], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( toggleOnAllDesktops() ) ) ); - hb->addWidget(button[ButtonSticky]); - } - break; - - case 'H': // Help button - if ((!button[ButtonHelp]) && providesContextHelp()) { - button[ButtonHelp] = new TQToolButton( widget(), 0 ); - TQToolTip::add( button[ButtonHelp], i18n("Help") ); - button[ButtonHelp]->setIconSet( isActive() ? *question_mark_pix : *dis_question_mark_pix); - connect( button[ButtonHelp], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( showContextHelp() ) ) ); - button[ButtonHelp]->setCursor(ArrowCursor); - hb->addWidget(button[ButtonHelp]); - } - break; - - case 'I': // Minimize button - if ((!button[ButtonMinimize]) && isMinimizable()) { - button[ButtonMinimize] = new TQToolButton( widget(), 0 ); - TQToolTip::add( button[ButtonMinimize], i18n("Minimize") ); - button[ButtonMinimize]->setCursor(ArrowCursor); - button[ButtonMinimize]->setIconSet(isActive() ? *minimize_pix : *dis_minimize_pix); - connect( button[ButtonMinimize], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( minimize() ) ) ); - hb->addWidget(button[ButtonMinimize]); - } - break; - - case 'A': // Maximize button - if ((!button[ButtonMaximize]) && isMaximizable()) { - const bool max = maximizeMode()!=MaximizeRestore; - button[ButtonMaximize] = new ThreeButtonButton( widget(), 0 ); - TQToolTip::add( button[ButtonMaximize], max?i18n("Restore"):i18n("Maximize") ); - button[ButtonMaximize]->setCursor(ArrowCursor); - button[ButtonMaximize]->setIconSet( max?(isActive() ? *normalize_pix : *dis_normalize_pix):(isActive() ? *maximize_pix : *dis_maximize_pix) ); - connect( button[ButtonMaximize], TQT_SIGNAL( clicked(ButtonState) ), - this, ( TQT_SLOT( maxButtonClicked(ButtonState) ) ) ); - hb->addWidget(button[ButtonMaximize]); - } - break; - - case 'X': // Close button - if ((!button[ButtonClose]) && isCloseable()) { - button[ButtonClose] = new TQToolButton( widget(), 0 ); - TQToolTip::add( button[ButtonClose], i18n("Close") ); - button[ButtonClose]->setCursor(ArrowCursor); - button[ButtonClose]->setIconSet(isActive() ? *close_pix : *dis_close_pix); - connect( button[ButtonClose], TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( closeWindow() ) ) ); - hb->addWidget(button[ButtonClose]); - } - break; - - case '_': // Spacer item - hb->addItem( new TQSpacerItem( 5, 0, TQSizePolicy::Fixed, TQSizePolicy::Expanding ) ); - } - } - } -} - -void StdClient::activeChange() -{ - bool on = isActive(); - if (button[ButtonMenu] && (icon().pixmap( TQIconSet::Small, TQIconSet::Normal ).isNull())) - button[ButtonMenu]->setIconSet(on ? *menu_pix : *dis_menu_pix); - if (button[ButtonSticky]) - button[ButtonSticky]->setIconSet(isOnAllDesktops() ? on ? *pindown_pix : *dis_pindown_pix : - on ? *pinup_pix : *dis_pinup_pix ); - if (button[ButtonMinimize]) - button[ButtonMinimize]->setIconSet(on ? *minimize_pix : *dis_minimize_pix); - if (button[ButtonMaximize]) - button[ButtonMaximize]->setIconSet(on ? *maximize_pix : *dis_maximize_pix); - if (button[ButtonClose]) - button[ButtonClose]->setIconSet(on ? *close_pix : *dis_close_pix); - if (button[ButtonHelp]) - button[ButtonHelp]->setIconSet(on ? *question_mark_pix : *dis_question_mark_pix); - widget()->tqrepaint( titlebar->tqgeometry(), false ); -} - - -StdClient::~StdClient() -{ - for (int n=0; n<ButtonTypeCount; n++) { - if (button[n]) delete button[n]; - } -} - - -void StdClient::resizeEvent( TQResizeEvent* ) -{ - TQRegion rr = widget()->rect(); - TQRect t = titlebar->tqgeometry(); -// t.setTop( 0 ); -// TQRegion r = rr.subtract( TQRect( t.x()+1, 0, t.width()-2, 1 ) ); -// setMask( r ); - - if ( widget()->isVisibleToTLW() && !widget()->testWFlags( WStaticContents )) { - // manual clearing without the titlebar (we selected WResizeNoErase ) - TQRect cr( 2, 2, width()-4, height()- 4 ); - widget()->erase( TQRegion( cr ).subtract( t ) ); - } -} - -/*!\reimp - */ -void StdClient::captionChange() -{ - widget()->tqrepaint( titlebar->tqgeometry(), FALSE ); -} - - -/*!\reimp - */ -void StdClient::maximizeChange() -{ - bool m = maximizeMode() == MaximizeFull; - if (button[ButtonMaximize]) { - button[ButtonMaximize]->setIconSet( m?*normalize_pix:*maximize_pix ); - TQToolTip::remove( button[ButtonMaximize] ); - TQToolTip::add( button[ButtonMaximize], m ? i18n("Restore") : i18n("Maximize") ); - } -} - - -/*!\reimp - */ -void StdClient::desktopChange() -{ - bool s = isOnAllDesktops(); - if (button[ButtonSticky]) { - button[ButtonSticky]->setIconSet( s?*pindown_pix:*pinup_pix ); - TQToolTip::remove( button[ButtonSticky] ); - TQToolTip::add( button[ButtonSticky], s ? i18n("Not On All Desktops") : i18n("On All Desktops") ); - } -} - -void StdClient::paintEvent( TQPaintEvent* ) -{ - TQPainter p( widget() ); - TQRect t = titlebar->tqgeometry(); - TQRegion r = widget()->rect(); - r = r.subtract( t ); - p.setClipRegion( r ); - qDrawWinPanel( &p, widget()->rect(), widget()->tqcolorGroup() ); -// t.setTop( 1 ); -// p.setClipRegion( t ); -// t.setTop( 0 ); - - TQRect titleRect( 0, 0, t.width(), t.height() ); - titleBuffer->resize( titleRect.width(), titleRect.height() ); - TQPainter p2( titleBuffer ); - - drawGradient(p2, titleRect, options()->color(KDecorationOptions::ColorTitleBar, isActive()), - options()->color(KDecorationOptions::ColorTitleBlend, isActive())); -// p.setPen( options()->color(KDecorationOptions::ColorTitleBar, isActive()).light() ); -// p.drawLine(t.left(), t.top()+1, t.right(), t.top()+1); - if ( isActive() ) - qDrawShadePanel( &p2, 0, 0, titleRect.width(), titleRect.height(), - widget()->tqcolorGroup(), true, 1 ); - titleRect.setLeft( 4 ); - titleRect.setWidth( titleRect.width() - 2 ); - p2.setPen(options()->color(KDecorationOptions::ColorFont, isActive())); - p2.setFont(options()->font(isActive())); - p2.drawText( titleRect, AlignLeft|AlignVCenter|SingleLine, caption() ); - p2.end(); - p.end(); - bitBlt( widget(), t.topLeft(), titleBuffer ); -} - - -void StdClient::mouseDoubleClickEvent( TQMouseEvent * e ) -{ - if ( e->button() == Qt::LeftButton && titlebar->tqgeometry().contains( e->pos() ) ) - titlebarDblClickOperation(); -} - - -void StdClient::wheelEvent( TQWheelEvent * e ) -{ - if (isSetShade() || TQRect( 0, 0, width(), titlebar->tqgeometry().height() ).contains( e->pos() ) ) - titlebarMouseWheelOperation( e->delta()); -} - - -void StdClient::iconChange() -{ - if (button[ButtonMenu]) { - if ( icon().pixmap( TQIconSet::Small, TQIconSet::Normal ).isNull()) - button[ButtonMenu]->setIconSet(isActive() ? *menu_pix : *dis_menu_pix); - else - button[ButtonMenu]->setIconSet( icon().pixmap( TQIconSet::Small, TQIconSet::Normal ) ); - button[ButtonMenu]->tqrepaint( FALSE ); - } -} - - -/*! - Indicates that the menu button has been clicked. One press shows - the window operation menu, a double click closes the window. - */ -void StdClient::menuButtonPressed() -{ - TQRect menuRect = button[ButtonMenu]->rect(); - menuRect.addCoords(-1, 0, +1, +2); - TQPoint menuTop = button[ButtonMenu]->mapToGlobal(menuRect.topLeft()); - TQPoint menuBottom = button[ButtonMenu]->mapToGlobal(menuRect.bottomRight()); - KDecorationFactory* f = factory(); // needs to be saved before - showWindowMenu( TQRect(menuTop, menuBottom) ); - if( !f->exists( this )) // destroyed, return immediately - return; - button[ButtonMenu]->setDown(false); -} - - -void StdClient::maxButtonClicked( ButtonState button ) -{ - maximize( button ); -} - -bool StdClient::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: - return false; - } -} - -TQSize StdClient::tqminimumSize() const -{ - return widget()->tqminimumSize().expandedTo( TQSize( 100, 50 )); -} - -void StdClient::borders( int& left, int& right, int& top, int& bottom ) const -{ - left = right = bottom = 6; - top = 6 + widget()->fontMetrics().lineSpacing()+2; -} - -void StdClient::resize( const TQSize& s ) -{ - widget()->resize( s ); -} - -StdToolClient::StdToolClient( KDecorationBridge* b, KDecorationFactory* f ) - : KDecoration( b, f ) -{ -} - -void StdToolClient::init() -{ - createMainWidget(); - widget()->installEventFilter( this ); - - widget()->setFont(options()->font(isActive(), true )); - - TQGridLayout* g = new TQGridLayout( widget(), 0, 0, 2 ); - g->setRowStretch( 1, 10 ); - if( isPreview()) - g->addWidget( new TQLabel( i18n( "<center><b>KDE 1 decoration</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->addColSpacing(0, 1); - g->addColSpacing(2, 1); - g->addRowSpacing(2, 1); - - closeBtn = new TQToolButton( widget(), 0 ); - TQToolTip::add( closeBtn, i18n("Close") ); - connect( closeBtn, TQT_SIGNAL( clicked() ), this, ( TQT_SLOT( closeWindow() ) ) ); - closeBtn->setFixedSize( 13, 13); - reset( -1U ); - - TQHBoxLayout* hb = new TQHBoxLayout; - g->addLayout( hb, 0, 1 ); - - int fh = widget()->fontMetrics().lineSpacing()+2; - - titlebar = new TQSpacerItem(10, fh, TQSizePolicy::Expanding, - TQSizePolicy::Minimum ); - hb->addItem( titlebar ); - hb->addWidget( closeBtn ); -} - -StdToolClient::~StdToolClient() -{ -} - -void StdToolClient::resizeEvent( TQResizeEvent* ) -{ -// TQRegion r = rect(); -// TQRect t = titlebar->tqgeometry(); -// t.setTop( 0 ); -// r = r.subtract( TQRect(0, 0, width(), 1) ); -// r = r.subtract (TQRect( 0, 0, 1, t.height() ) ); -// r = r.subtract (TQRect( width()-1, 0, 1, t.height() ) ); -// setMask( r ); -} - -void StdToolClient::paintEvent( TQPaintEvent* ) -{ - TQPainter p( widget() ); - TQRect t = titlebar->tqgeometry(); - TQRect r = widget()->rect(); - qDrawWinPanel( &p, r, widget()->tqcolorGroup() ); - r.setTop( t.bottom()+1 ); - qDrawWinPanel( &p, r, widget()->tqcolorGroup() ); - p.fillRect( TQRect( TQPoint(t.topLeft() ), TQPoint( width() - t.left(), t.bottom() ) ), - options()->color(KDecorationOptions::ColorTitleBar, isActive())); - p.setPen( options()->color(KDecorationOptions::ColorTitleBar, isActive()).light() ); - t.setLeft( t.left() + 4 ); - t.setRight( t.right() - 2 ); - p.setPen(options()->color(KDecorationOptions::ColorFont, isActive())); - p.setFont(options()->font(isActive(), true)); - p.drawText( t, AlignLeft|AlignVCenter|SingleLine, caption() ); -} - - -void StdToolClient::mouseDoubleClickEvent( TQMouseEvent * e ) -{ - if ( e->button() == Qt::LeftButton && titlebar->tqgeometry().contains( e->pos() ) ) - titlebarDblClickOperation(); -} - -void StdToolClient::wheelEvent( TQWheelEvent * e ) -{ - if (isSetShade() || TQRect( 0, 0, width(), titlebar->tqgeometry().height() ).contains( e->pos() ) ) - titlebarMouseWheelOperation( e->delta()); -} - -void StdToolClient::captionChange() -{ - widget()->tqrepaint( titlebar->tqgeometry(), FALSE ); -} - -void StdToolClient::reset( unsigned long ) -{ - TQImage img = close_pix->convertToImage(); - img = img.smoothScale( 12, 12 ); - TQPixmap pm; - pm.convertFromImage( img ); - closeBtn->setPixmap( pm ); - widget()->setFont(options()->font(isActive(), true )); -} - -bool StdToolClient::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: - return false; - } -} - -TQSize StdToolClient::tqminimumSize() const -{ - return widget()->tqminimumSize().expandedTo( TQSize( 100, 50 )); -} - -void StdToolClient::borders( int& left, int& right, int& top, int& bottom ) const -{ - left = right = bottom = 6; - top = 6 + widget()->fontMetrics().lineSpacing(); -} - -void StdToolClient::resize( const TQSize& s ) -{ - widget()->resize( s ); -} - -StdFactory::StdFactory() -{ - create_pixmaps(); -} - -StdFactory::~StdFactory() -{ - delete_pixmaps(); -} - -const int SUPPORTED_WINDOW_TYPES_MASK = NET::NormalMask | NET::DesktopMask | NET::DockMask - | NET::ToolbarMask | NET::MenuMask | NET::DialogMask | NET::OverrideMask | NET::TopMenuMask - | NET::UtilityMask | NET::SplashMask; - -KDecoration* StdFactory::createDecoration( KDecorationBridge* b ) -{ - NET::WindowType type = windowType( SUPPORTED_WINDOW_TYPES_MASK, b ); - if( type == NET::Utility || type == NET::Menu || type == NET::Toolbar ) - return new StdToolClient( b, this ); - return new StdClient( b, this ); -} - -bool StdFactory::reset( unsigned long mask ) -{ - bool needHardReset = false; - - // doesn't obey the Border size setting - if( mask & ( SettingFont | SettingButtons )) - needHardReset = true; - - if( mask & ( SettingFont | SettingColors )) { - KDE1::delete_pixmaps(); - KDE1::create_pixmaps(); - } - - if( !needHardReset ) - resetDecorations( mask ); - return needHardReset; -} - -bool StdFactory::supports( Ability ability ) -{ - switch( ability ) - { - case AbilityAnnounceButtons: - case AbilityButtonMenu: - case AbilityButtonOnAllDesktops: - case AbilityButtonHelp: - case AbilityButtonMinimize: - case AbilityButtonMaximize: - case AbilityButtonClose: - case AbilityButtonSpacer: - return true; - default: - return false; - }; -} - - -} - -extern "C" -{ - KDE_EXPORT KDecorationFactory *create_factory() - { - return new KDE1::StdFactory(); - } -} - -#include "kde1client.moc" diff --git a/kwin-styles/kde1/kde1client.h b/kwin-styles/kde1/kde1client.h deleted file mode 100644 index adedfaaf..00000000 --- a/kwin-styles/kde1/kde1client.h +++ /dev/null @@ -1,158 +0,0 @@ -/***************************************************************** -twin - the KDE window manager - -Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org> -******************************************************************/ -#ifndef STDCLIENT_H -#define STDCLIENT_H -#include <tqlayout.h> -#include <tqvariant.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> -#include <tqtoolbutton.h> -class TQLabel; -class TQSpacerItem; - -namespace KDE1 { - -enum ButtonType { - ButtonMenu=0, - ButtonSticky, - ButtonMinimize, - ButtonMaximize, - ButtonClose, - ButtonHelp, - ButtonTypeCount -}; - -class StdClient : public KDecoration -{ - Q_OBJECT - TQ_OBJECT -public: - StdClient( KDecorationBridge* b, KDecorationFactory* f ); - ~StdClient(); - void init(); - TQSize tqminimumSize() const; - void borders( int& left, int& right, int& top, int& bottom ) const; - void reset( unsigned long mask ); - void resize( const TQSize& s ); - void shadeChange() {}; - Position mousePosition( const TQPoint& p ) const { return KDecoration::mousePosition( p ); } -protected: - bool eventFilter( TQObject* o, TQEvent* e ); - void resizeEvent( TQResizeEvent* ); - void paintEvent( TQPaintEvent* ); - - void mouseDoubleClickEvent( TQMouseEvent * ); - void wheelEvent( TQWheelEvent * ); - void captionChange(); - void iconChange(); - void maximizeChange(); - void desktopChange(); - void activeChange(); - -private: - void addButtons(TQBoxLayout* hb, const TQString& buttons); - -private slots: - void menuButtonPressed(); - void maxButtonClicked( ButtonState ); - -private: - TQToolButton* button[ButtonTypeCount]; - TQSpacerItem* titlebar; -}; - -class StdToolClient : public KDecoration -{ - Q_OBJECT - TQ_OBJECT -public: - StdToolClient( KDecorationBridge* b, KDecorationFactory* f ); - ~StdToolClient(); - void init(); - TQSize tqminimumSize() const; - void borders( int& left, int& right, int& top, int& bottom ) const; - void reset( unsigned long mask ); - void resize( const TQSize& s ); - void shadeChange() {}; - void activeChange() {}; - void iconChange() {}; - void maximizeChange() {}; - void desktopChange() {}; - Position mousePosition( const TQPoint& p ) const { return KDecoration::mousePosition( p ); } -protected: - bool eventFilter( TQObject* o, TQEvent* e ); - void resizeEvent( TQResizeEvent* ); - void paintEvent( TQPaintEvent* ); - - void mouseDoubleClickEvent( TQMouseEvent * ); - void wheelEvent( TQWheelEvent * ); - void captionChange(); - -private: - TQToolButton* closeBtn; - TQSpacerItem* titlebar; -}; - - - -/* - Like TQToolButton, but provides a clicked(ButtonState) signals that - has the last pressed mouse button as argument - */ -class ThreeButtonButton: public TQToolButton -{ - Q_OBJECT - TQ_OBJECT -public: - ThreeButtonButton ( TQWidget *parent = 0, const char* name = 0 ) - : TQToolButton( parent, name ) - { - connect( this, TQT_SIGNAL( clicked() ), this, TQT_SLOT( handleClicked() ) ); - setCursor( arrowCursor ); - } - ~ThreeButtonButton () {} - -signals: - void clicked( ButtonState ); - -protected: - void mousePressEvent( TQMouseEvent* e ) - { - last_button = e->button(); - TQMouseEvent me ( e->type(), e->pos(), e->globalPos(), Qt::LeftButton, e->state() ); - TQToolButton::mousePressEvent( &me ); - } - - void mouseReleaseEvent( TQMouseEvent* e ) - { - TQMouseEvent me ( e->type(), e->pos(), e->globalPos(), Qt::LeftButton, e->state() ); - TQToolButton::mouseReleaseEvent( &me ); - } - -private slots: - void handleClicked() - { - emit clicked( last_button ); - } - -private: - ButtonState last_button; - -}; - -class StdFactory : public KDecorationFactory -{ -public: - StdFactory(); - ~StdFactory(); - KDecoration* createDecoration( KDecorationBridge* b ); - bool reset( unsigned long mask ); - virtual bool supports( Ability ability ); -}; - -} - -#endif diff --git a/kwin-styles/kde1/kde1client_bitmaps.h b/kwin-styles/kde1/kde1client_bitmaps.h deleted file mode 100644 index 8b1cb377..00000000 --- a/kwin-styles/kde1/kde1client_bitmaps.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef __STDCLIENT_BITMAPS_H -#define __STDCLIENT_BITMAPS_H - -/** - * The standard client has the capability to color it's titlebar buttons - * according to the new color scheme. In order to do this it needs a bitmap - * for each shade which it draws into a pixmap with the appropriate color. - * These are all the bitmaps. - */ - -static const unsigned char close_white_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x04, 0x10, 0x04, 0x08, 0x08, 0x04, 0x10, 0x02, - 0x20, 0x01, 0x40, 0x00, 0x40, 0x00, 0x20, 0x01, 0x10, 0x02, 0x08, 0x04, - 0x04, 0x08, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char close_dgray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x18, 0x30, 0x30, 0x18, 0x60, 0x0c, - 0xc0, 0x06, 0x80, 0x03, 0x80, 0x03, 0xc0, 0x06, 0x60, 0x0c, 0x30, 0x18, - 0x18, 0x30, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char close_mask_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x1c, 0x38, 0x38, 0x1c, 0x70, 0x0e, - 0xe0, 0x07, 0xc0, 0x03, 0xc0, 0x03, 0xe0, 0x07, 0x70, 0x0e, 0x38, 0x1c, - 0x1c, 0x38, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char iconify_white_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x03, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char iconify_dgray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - - -static const unsigned char iconify_mask_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x03, 0x80, 0x02, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char maximize_white_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x04, 0x00, 0x04, 0x08, 0x04, 0x08, - 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0xf4, 0x0f, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char maximize_dgray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x08, 0x10, 0x08, 0x10, - 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, - 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char maximize_mask_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0xfc, 0x1f, 0x0c, 0x18, 0x0c, 0x18, - 0x0c, 0x18, 0x0c, 0x18, 0x0c, 0x18, 0x0c, 0x18, 0x0c, 0x18, 0xfc, 0x1f, - 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char maximizedown_white_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x08, 0x10, - 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, 0x08, 0x10, - 0x08, 0x10, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char maximizedown_dgray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x04, 0x00, 0x04, 0x08, - 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, - 0xf4, 0x0f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char maximizedown_mask_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0xfc, 0x1f, 0x0c, 0x18, - 0x0c, 0x18, 0x0c, 0x18, 0x0c, 0x18, 0x0c, 0x18, 0x0c, 0x18, 0x0c, 0x18, - 0xfc, 0x1f, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char menu_white_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfc, 0x3f, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char menu_dgray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char menu_mask_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfc, 0x3f, 0x04, 0x20, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char pindown_white_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x1f, 0xa0, 0x03, - 0xb0, 0x01, 0x30, 0x01, 0xf0, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char pindown_gray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, - 0x00, 0x0e, 0x00, 0x06, 0x00, 0x00, 0x80, 0x07, 0xc0, 0x03, 0xe0, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char pindown_dgray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x10, 0x70, 0x20, 0x50, 0x20, - 0x48, 0x30, 0xc8, 0x38, 0x08, 0x1f, 0x08, 0x18, 0x10, 0x1c, 0x10, 0x0e, - 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char pindown_mask_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x1f, 0xf0, 0x3f, 0xf0, 0x3f, - 0xf8, 0x3f, 0xf8, 0x3f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf0, 0x1f, 0xf0, 0x0f, - 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char pinup_white_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x11, - 0x3f, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char pinup_gray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x0a, 0xbf, 0x0a, 0x80, 0x15, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char pinup_dgray_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x40, 0x31, 0x40, 0x2e, - 0x40, 0x20, 0x40, 0x20, 0x7f, 0x2a, 0x40, 0x3f, 0xc0, 0x31, 0xc0, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char pinup_mask_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xc0, 0x31, 0xc0, 0x3f, - 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x3f, 0xc0, 0x3f, 0xc0, 0x31, 0xc0, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - -static const unsigned char help_mask_bits[] = { - 0x00,0x00,0x00,0x00,0xe0,0x03,0xf0,0x07,0x70,0x0e,0x60,0x0e,0x00,0x0f,0x80, - 0x07,0xc0,0x03,0xc0,0x01,0x80,0x01,0xc0,0x00,0xc0,0x01,0x80,0x01,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x4c,0x0b,0x08,0x58,0x65,0x09,0x08,0x90,0x00,0x00, - 0x00,0x09,0x04,0x00,0x00,0x72,0x6f,0x6f,0x74,0x00,0x24,0x31,0x24,0x47,0x6b, - 0x65,0x44,0x78,0x63 }; - -static const unsigned char help_dark_bits[] = { - 0x00,0x00,0x00,0x00,0xe0,0x03,0x30,0x06,0x30,0x06,0x00,0x06,0x00,0x03,0x80, - 0x01,0xc0,0x00,0xc0,0x00,0x00,0x00,0xc0,0x00,0xc0,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x65,0x64,0x28,0x29,0x00,0x00,0x00,0x00,0x90,0x00,0x00, - 0x00,0x21,0x00,0x00,0x00,0x34,0xfe,0x12,0x2b,0x00,0x00,0xff,0xff,0x58,0xc0, - 0x01,0x2b,0x45,0xfe }; - -static const unsigned char help_light_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x01,0x40,0x08,0x60,0x08,0x00,0x0c,0x00, - 0x06,0x00,0x03,0x00,0x01,0x80,0x01,0x00,0x00,0x00,0x01,0x80,0x01,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x4c,0x0b,0x08,0x58,0x65,0x09,0x08,0x90,0x00,0x00, - 0x00,0x09,0x04,0x00,0x00,0x72,0x6f,0x6f,0x74,0x00,0x24,0x31,0x24,0x47,0x6b, - 0x65,0x44,0x78,0x63 }; - -#endif - diff --git a/kwin-styles/kstep/CMakeLists.txt b/kwin-styles/kstep/CMakeLists.txt deleted file mode 100644 index 4d55aa77..00000000 --- a/kwin-styles/kstep/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 kstep.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_kstep ############################### - -tde_add_kpart( twin3_kstep AUTOMOC - SOURCES nextclient.cpp - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/kstep/Makefile.am b/kwin-styles/kstep/Makefile.am deleted file mode 100644 index 3fff6355..00000000 --- a/kwin-styles/kstep/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ - -INCLUDES = $(all_includes) - -kde_module_LTLIBRARIES = twin3_kstep.la - -twin3_kstep_la_SOURCES = nextclient.cpp -twin3_kstep_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -#twin_kstep_la_LDFLAGS = $(all_libraries) -avoid-version -module $(KDE_RPATH) $(KDE_MT_LDFLAGS) -twin3_kstep_la_LIBADD = $(LIB_TDEUI) -ltdecorations - -METASOURCES = AUTO -noinst_HEADERS = nextclient.h - -lnkdir = $(kde_datadir)/twin/ -lnk_DATA = kstep.desktop - -EXTRA_DIST = $(lnk_DATA) - - -###KMAKE-start (don't edit or delete this block) - -###KMAKE-end diff --git a/kwin-styles/kstep/kstep.desktop b/kwin-styles/kstep/kstep.desktop deleted file mode 100644 index 87b9aaae..00000000 --- a/kwin-styles/kstep/kstep.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Name=KStep -Name[cy]=KCam -Name[hi]=के-स्टेप -Name[ne]=केडीई चरण -Name[sv]=Kstep -Name[ta]=Kஅடி -Name[th]=ตัวจัดการหน้าต่างสเต็ป - K -Name[ven]=Tshitepe tsha K -Name[xh]=Inqwanqwa le K -Name[zu]=Izinga le K -X-KDE-Library=twin3_kstep diff --git a/kwin-styles/kstep/nextclient.cpp b/kwin-styles/kstep/nextclient.cpp deleted file mode 100644 index 08867a62..00000000 --- a/kwin-styles/kstep/nextclient.cpp +++ /dev/null @@ -1,987 +0,0 @@ -#include "nextclient.h" -#include <tqdatetime.h> -#include <tqdrawutil.h> -#include <tqlayout.h> -#include <tqpainter.h> -#include <tqbitmap.h> -#include <tqlabel.h> -#include <tqtooltip.h> -#include <kdebug.h> -#include <klocale.h> -#include <kpixmapeffect.h> - -namespace KStep { - -static const 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 const 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 const unsigned char question_bits[] = { - 0x00, 0x00, 0x78, 0x00, 0xcc, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x30, 0x00, - 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00}; - -static const 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 const 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 const unsigned char maximize_bits[] = { - 0x30, 0x00, 0x78, 0x00, 0xfc, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xfe, 0x01, - 0x02, 0x01, 0x84, 0x00, 0x48, 0x00, 0x30, 0x00 }; - -static const unsigned char shade_bits[] = { - 0xff,0x03, - 0xff,0x03, - 0x03,0x03, - 0xff,0x03, - 0xff,0x03, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00 -}; - -static const unsigned char unshade_bits[] = { - 0xff,0x03, - 0xff,0x03, - 0x03,0x03, - 0x03,0x03, - 0x03,0x03, - 0x03,0x03, - 0x03,0x03, - 0x03,0x03, - 0xff,0x03, - 0xff,0x03 -}; - -static const unsigned char keep_above_bits[] = { - 0x30,0x00, - 0x78,0x00, - 0xfc,0x00, - 0x00,0x00, - 0xff,0x03, - 0xff,0x03, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00 -}; - -static const unsigned char from_above_bits[] = { - 0xff,0x03, - 0xff,0x03, - 0x00,0x00, - 0xfc,0x00, - 0x78,0x00, - 0x30,0x00, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00 -}; - -static const unsigned char keep_below_bits[] = { - 0x00,0x00, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00, - 0xff,0x03, - 0xff,0x03, - 0x00,0x00, - 0xfc,0x00, - 0x78,0x00, - 0x30,0x00 -}; - -static const unsigned char from_below_bits[] = { - 0x00,0x00, - 0x00,0x00, - 0x00,0x00, - 0x00,0x00, - 0x30,0x00, - 0x78,0x00, - 0xfc,0x00, - 0x00,0x00, - 0xff,0x03, - 0xff,0x03 -}; - -static const unsigned char resize_bits[] = { - 0xff, 0x03, - 0xff, 0x03, - 0x33, 0x03, - 0x33, 0x03, - 0xf3, 0x03, - 0xf3, 0x03, - 0x03, 0x03, - 0x03, 0x03, - 0xff, 0x03, - 0xff, 0x03 -}; - - -// If the maximize graphic above (which I did quickly in about a -// minute, just so I could have something) doesn't please, maybe one -// of the following would be better. IMO it doesn't matter, as long -// as it's not offensive---people will get used to whatever you use. -// True NeXT fans won't turn on the maximize button anyway. -// -// static const unsigned char maximize_bits[] = { -// 0xcf, 0x03, 0x87, 0x03, 0xcf, 0x03, 0xfd, 0x02, 0x48, 0x00, 0x48, 0x00, -// 0xfd, 0x02, 0xcf, 0x03, 0x87, 0x03, 0xcf, 0x03 }; -// -// static const unsigned char maximize_bits[] = { -// 0xcf, 0x03, 0x87, 0x03, 0x87, 0x03, 0x79, 0x02, 0x48, 0x00, 0x48, 0x00, -// 0x79, 0x02, 0x87, 0x03, 0x87, 0x03, 0xcf, 0x03 }; -// -// static const unsigned char maximize_bits[] = { -// 0x87, 0x03, 0x03, 0x03, 0xfd, 0x02, 0x84, 0x00, 0x84, 0x00, 0x84, 0x00, -// 0x84, 0x00, 0xfd, 0x02, 0x03, 0x03, 0x87, 0x03 }; -// -// static const unsigned char maximize_bits[] = { -// 0x30, 0x00, 0x78, 0x00, 0xcc, 0x00, 0x86, 0x01, 0x33, 0x03, 0x79, 0x02, -// 0xcd, 0x02, 0x87, 0x03, 0x03, 0x03, 0x01, 0x02 }; -// -// static const unsigned char maximize_bits[] = { -// 0x30, 0x00, 0x78, 0x00, 0x78, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfe, 0x01, -// 0xfe, 0x01, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03 }; - - -static KPixmap *aTitlePix; -static KPixmap *iTitlePix; -static KPixmap *aFramePix; -static KPixmap *iFramePix; -static KPixmap *aHandlePix; -static KPixmap *iHandlePix; -static KPixmap *aBtn; -static KPixmap *aBtnDown; -static KPixmap *iBtn; -static KPixmap *iBtnDown; -static TQColor *btnForeground; -static bool pixmaps_created = false; - -static int titleHeight = 16; - -// Precomputed border sizes for accessibility -// The sizes are applied for tiny -> normal -> large -> very large -> huge -> very huge -> oversized -static const int borderSizes[] = { 4, 6, 9, 14, 21, 32, 48 }; - -static int handleSize = 6; // the resize handle size in pixels - -static inline const KDecorationOptions* options() -{ - return KDecoration::options(); -} - -static void create_pixmaps(NextClientFactory *f) -{ - if(pixmaps_created) - return; - pixmaps_created = true; - - // find preferred border size - int i = options()->preferredBorderSize(f); - if (i >= 0 && i <= 6) handleSize = borderSizes[i]; - - titleHeight = TQFontMetrics(options()->font(true)).height() + 4; - if (titleHeight < handleSize) titleHeight = handleSize; - titleHeight &= ~1; // Make title height even - if (titleHeight < 16) titleHeight = 16; - - aTitlePix = new KPixmap(); - aTitlePix->resize(32, titleHeight - 2); - KPixmapEffect::gradient(*aTitlePix, - options()->color(KDecoration::ColorTitleBar, true), - options()->color(KDecoration::ColorTitleBlend, true), - KPixmapEffect::VerticalGradient); - iTitlePix = new KPixmap(); - iTitlePix->resize(32, titleHeight - 2); - KPixmapEffect::gradient(*iTitlePix, - options()->color(KDecoration::ColorTitleBar, false), - options()->color(KDecoration::ColorTitleBlend, false), - KPixmapEffect::VerticalGradient); - // Bottom frame gradient - aFramePix = new KPixmap(); - aFramePix->resize(32, handleSize); - KPixmapEffect::gradient(*aFramePix, - options()->color(KDecoration::ColorFrame, true).light(150), - options()->color(KDecoration::ColorFrame, true).dark(120), - KPixmapEffect::VerticalGradient); - iFramePix = new KPixmap(); - iFramePix->resize(32, handleSize); - KPixmapEffect::gradient(*iFramePix, - options()->color(KDecoration::ColorFrame, false).light(150), - options()->color(KDecoration::ColorFrame, false).dark(120), - KPixmapEffect::VerticalGradient); - - // Handle gradient - aHandlePix = new KPixmap(); - aHandlePix->resize(32, handleSize); - KPixmapEffect::gradient(*aHandlePix, - options()->color(KDecoration::ColorHandle, true).light(150), - options()->color(KDecoration::ColorHandle, true).dark(120), - KPixmapEffect::VerticalGradient); - iHandlePix = new KPixmap(); - iHandlePix->resize(32, handleSize); - KPixmapEffect::gradient(*iHandlePix, - options()->color(KDecoration::ColorHandle, false).light(150), - options()->color(KDecoration::ColorHandle, false).dark(120), - KPixmapEffect::VerticalGradient); - - int btnWidth = titleHeight; - iBtn = new KPixmap; - iBtn->resize(btnWidth, btnWidth); - iBtnDown = new KPixmap; - iBtnDown->resize(btnWidth, btnWidth); - aBtn = new KPixmap; - aBtn->resize(btnWidth, btnWidth); - aBtnDown = new KPixmap; - aBtnDown->resize(btnWidth, btnWidth); - KPixmap internal; - int internalHeight = btnWidth - 6; - internal.resize(internalHeight, internalHeight); - - // inactive buttons - TQColor c(options()->color(KDecoration::ColorButtonBg, false)); - KPixmapEffect::gradient(*iBtn, c.light(120), c.dark(120), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(internal, c.dark(120), c.light(120), - KPixmapEffect::DiagonalGradient); - bitBlt(TQT_TQPAINTDEVICE(iBtn), 3, 3, TQT_TQPAINTDEVICE(&internal), 0, 0, internalHeight, internalHeight, TQt::CopyROP, true); - - KPixmapEffect::gradient(*iBtnDown, c.dark(120), c.light(120), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(internal, c.light(120), c.dark(120), - KPixmapEffect::DiagonalGradient); - bitBlt(TQT_TQPAINTDEVICE(iBtnDown), 3, 3, TQT_TQPAINTDEVICE(&internal), 0, 0, internalHeight, internalHeight, TQt::CopyROP, true); - - // active buttons - c = options()->color(KDecoration::ColorButtonBg, true); - KPixmapEffect::gradient(*aBtn, c.light(120), c.dark(120), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(internal, c.dark(120), c.light(120), - KPixmapEffect::DiagonalGradient); - bitBlt(TQT_TQPAINTDEVICE(aBtn), 3, 3, TQT_TQPAINTDEVICE(&internal), 0, 0, internalHeight, internalHeight, TQt::CopyROP, true); - - KPixmapEffect::gradient(*aBtnDown, c.dark(120), c.light(120), - KPixmapEffect::DiagonalGradient); - KPixmapEffect::gradient(internal, c.light(120), c.dark(120), - KPixmapEffect::DiagonalGradient); - bitBlt(TQT_TQPAINTDEVICE(aBtnDown), 3, 3, TQT_TQPAINTDEVICE(&internal), 0, 0, internalHeight, internalHeight, TQt::CopyROP, true); - - TQPainter p; - p.begin(aBtn); - p.setPen(TQt::black); - p.drawRect(0, 0, btnWidth, btnWidth); - p.end(); - p.begin(iBtn); - p.setPen(TQt::black); - p.drawRect(0, 0, btnWidth, btnWidth); - p.end(); - p.begin(aBtnDown); - p.setPen(TQt::black); - p.drawRect(0, 0, btnWidth, btnWidth); - p.end(); - p.begin(iBtnDown); - p.setPen(TQt::black); - p.drawRect(0, 0, btnWidth, btnWidth); - p.end(); - - if(tqGray(options()->color(KDecoration::ColorButtonBg, true).rgb()) > 128) - btnForeground = new TQColor(TQt::black); - else - btnForeground = new TQColor(TQt::white); -} - -static void delete_pixmaps() -{ - delete aTitlePix; - delete iTitlePix; - delete aFramePix; - delete iFramePix; - delete aHandlePix; - delete iHandlePix; - delete aBtn; - delete iBtn; - delete aBtnDown; - delete iBtnDown; - delete btnForeground; - - pixmaps_created = false; -} - -// ===================================== - -NextButton::NextButton(NextClient *parent, const char *name, - const unsigned char *bitmap, int bw, int bh, - const TQString& tip, const int realizeBtns) - : TQButton(parent->widget(), name), - deco(NULL), client(parent), last_button(Qt::NoButton) -{ - realizeButtons = realizeBtns; - - setBackgroundMode( NoBackground ); - resize(titleHeight, titleHeight); - setFixedSize(titleHeight, titleHeight); - - if(bitmap) - setBitmap(bitmap, bw, bh); - - TQToolTip::add(this, tip); -} - -void NextButton::reset() -{ - tqrepaint(false); -} - -void NextButton::setBitmap(const unsigned char *bitmap, int w, int h) -{ - deco = new TQBitmap(w, h, bitmap, true); - deco->setMask(*deco); - tqrepaint(); -} - -void NextButton::drawButton(TQPainter *p) -{ - if(client->isActive()) - p->drawPixmap(0, 0, isDown() ? *aBtnDown : *aBtn); - else - p->drawPixmap(0, 0, isDown() ? *iBtnDown : *iBtn); - - // If we have a decoration, draw it; otherwise, we have the menu - // button (remember, we set the bitmap to NULL). - int offset; - if (deco) { - offset = (titleHeight - 10) / 2 + (isDown() ? 1 : 0); - p->setPen(*btnForeground); - p->drawPixmap(offset, offset, *deco); - } else { - offset = (titleHeight - 16) / 2; - KPixmap btnpix = client->icon().pixmap(TQIconSet::Small, - client->isActive() ? TQIconSet::Normal : TQIconSet::Disabled); - p->drawPixmap( offset, offset, btnpix ); - } -} - -void NextButton::mousePressEvent( TQMouseEvent* e ) -{ - last_button = e->button(); - TQMouseEvent me( e->type(), e->pos(), e->globalPos(), - (e->button()&realizeButtons)?Qt::LeftButton:Qt::NoButton, e->state() ); - TQButton::mousePressEvent( &me ); -} - -void NextButton::mouseReleaseEvent( TQMouseEvent* e ) -{ - last_button = e->button(); - TQMouseEvent me( e->type(), e->pos(), e->globalPos(), - (e->button()&realizeButtons)?Qt::LeftButton:Qt::NoButton, e->state() ); - TQButton::mouseReleaseEvent( &me ); -} - -// ===================================== - -NextClient::NextClient(KDecorationBridge *b, KDecorationFactory *f) - : KDecoration(b, f) -{ -} - -void NextClient::init() -{ - createMainWidget(WResizeNoErase | WStaticContents); - widget()->installEventFilter(this); - - widget()->setBackgroundMode( NoBackground ); - - TQVBoxLayout *mainLayout = new TQVBoxLayout(widget()); - TQBoxLayout *titleLayout = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - TQHBoxLayout *windowLayout = new TQHBoxLayout(); - mainLayout->addLayout(titleLayout); - mainLayout->addLayout(windowLayout, 1); - mainLayout->addSpacing(mustDrawHandle() ? handleSize : 1); - - windowLayout->addSpacing(1); - if (isPreview()) - windowLayout->addWidget(new TQLabel(i18n( - "<center><b>KStep preview</b></center>"), widget())); - else - windowLayout->addItem(new TQSpacerItem( 0, 0 )); - - windowLayout->addSpacing(1); - - initializeButtonsAndTitlebar(titleLayout); -} - -/** - Preconditions: - + button is an array of length MAX_NUM_BUTTONS - - Postconditions: - + Title bar and buttons have been initialized and laid out - + for all i in 0..(MAX_NUM_BUTTONS-1), button[i] points to - either (1) a valid NextButton instance, if the corresponding - button is selected in the current button scheme, or (2) null - otherwise. - */ -void NextClient::initializeButtonsAndTitlebar(TQBoxLayout* titleLayout) -{ - // Null the buttons to begin with (they are not guaranteed to be null). - for (int i=0; i<MAX_NUM_BUTTONS; i++) { - button[i] = NULL; - } - - // The default button positions for other styles do not match the - // behavior of older versions of KStep, so we have to set these - // manually when customButtonPositions isn't enabled. - TQString left, right; - if (options()->customButtonPositions()) { - left = options()->titleButtonsLeft(); - right = options()->titleButtonsRight(); - } else { - left = TQString("I"); - right = TQString("SX"); - } - - // Do actual creation and addition to titleLayout - addButtons(titleLayout, left); - - titlebar = new TQSpacerItem(10, titleHeight, TQSizePolicy::Expanding, - TQSizePolicy::Minimum ); - titleLayout->addItem(titlebar); - addButtons(titleLayout, right); - - // Finally, activate all live buttons - for ( int i = 0; i < MAX_NUM_BUTTONS; i++) { - if (button[i]) { - button[i]->setMouseTracking( TRUE ); - } - } -} - -/** Adds the buttons for one side of the title bar, based on the spec - * string; see the KWinInternal::KDecoration class, methods - * titleButtonsLeft and titleBUttonsRight. */ -void NextClient::addButtons(TQBoxLayout* titleLayout, const TQString& spec) -{ - for (unsigned int i=0; i<spec.length(); i++) { - switch (spec[i].latin1()) { - case 'A': - if (isMaximizable()) { - button[MAXIMIZE_IDX] = - new NextButton(this, "maximize", maximize_bits, 10, 10, - i18n("Maximize"), Qt::LeftButton|Qt::MidButton|Qt::RightButton); - titleLayout->addWidget( button[MAXIMIZE_IDX] ); - connect( button[MAXIMIZE_IDX], TQT_SIGNAL(clicked()), - this, TQT_SLOT(maximizeButtonClicked()) ); - } - break; - - case 'H': - if (providesContextHelp()) { - button[HELP_IDX] = new NextButton(this, - "help", question_bits, 10, 10, i18n("Help")); - titleLayout->addWidget( button[HELP_IDX] ); - connect( button[HELP_IDX], TQT_SIGNAL(clicked()), - this, TQT_SLOT(showContextHelp()) ); - } - break; - - case 'I': - if (isMinimizable()) { - button[ICONIFY_IDX] = - new NextButton(this, "iconify", iconify_bits, 10, 10, - i18n("Minimize")); - titleLayout->addWidget( button[ICONIFY_IDX] ); - connect( button[ICONIFY_IDX], TQT_SIGNAL(clicked()), - this, TQT_SLOT(minimize()) ); - } - break; - - case 'M': - button[MENU_IDX] = - new NextButton(this, "menu", NULL, 10, 10, i18n("Menu"), Qt::LeftButton|Qt::RightButton); - titleLayout->addWidget( button[MENU_IDX] ); - // NOTE DIFFERENCE: capture pressed(), not clicked() - connect( button[MENU_IDX], TQT_SIGNAL(pressed()), - this, TQT_SLOT(menuButtonPressed()) ); - break; - - case 'L': - button[SHADE_IDX] = - new NextButton(this, "shade", NULL, 0, 0, i18n("Shade")); - titleLayout->addWidget( button[SHADE_IDX] ); - connect( button[SHADE_IDX], TQT_SIGNAL(clicked()), - this, TQT_SLOT(shadeClicked()) ); - // NOTE DIFFERENCE: set the pixmap separately (2 states) - shadeChange(); - break; - - case 'S': - button[STICKY_IDX] = - new NextButton(this, "sticky", NULL, 0, 0, i18n("On all desktops")); - titleLayout->addWidget( button[STICKY_IDX] ); - connect( button[STICKY_IDX], TQT_SIGNAL(clicked()), - this, TQT_SLOT(toggleOnAllDesktops()) ); - // NOTE DIFFERENCE: set the pixmap separately (2 states) - desktopChange(); - break; - - case 'F': - button[ABOVE_IDX] = new NextButton(this, "above", NULL, 0, 0, ""); - titleLayout->addWidget( button[ABOVE_IDX] ); - connect( button[ABOVE_IDX], TQT_SIGNAL(clicked()), - this, TQT_SLOT(aboveClicked()) ); - connect(this, TQT_SIGNAL(keepAboveChanged(bool)), - TQT_SLOT(keepAboveChange(bool))); - keepAboveChange(keepAbove()); - break; - - case 'B': - button[BELOW_IDX] = new NextButton(this, "below", NULL, 0, 0, ""); - titleLayout->addWidget( button[BELOW_IDX] ); - connect( button[BELOW_IDX], TQT_SIGNAL(clicked()), - this, TQT_SLOT(belowClicked()) ); - connect(this, TQT_SIGNAL(keepBelowChanged(bool)), - TQT_SLOT(keepBelowChange(bool))); - keepBelowChange(keepBelow()); - break; - - case 'X': - if (isCloseable()) { - button[CLOSE_IDX] = - new NextButton(this, "close", close_bits, 10, 10, - i18n("Close")); - titleLayout->addWidget(button[CLOSE_IDX]); - connect(button[CLOSE_IDX], TQT_SIGNAL(clicked()), - this, TQT_SLOT(closeWindow())); - } - break; - - case 'R': - if (mustDrawHandle()) { - button[RESIZE_IDX] = - new NextButton(this, "resize", resize_bits, 10, 10, - i18n("Resize")); - titleLayout->addWidget(button[RESIZE_IDX]); - // NOTE DIFFERENCE: capture pressed(), not clicked() - connect(button[RESIZE_IDX], TQT_SIGNAL(pressed()), - this, TQT_SLOT(resizePressed())); - } - break; - case '_': - // TODO: Add spacer handling - break; - - default: - kdDebug() << " Can't happen: unknown button code " - << TQString(spec[i]); - break; - } - } -} - -bool NextClient::mustDrawHandle() const -{ - bool drawSmallBorders = !options()->moveResizeMaximizedWindows(); - if (drawSmallBorders && (maximizeMode() & MaximizeVertical)) { - return false; - } else { - return isResizable(); - } -} - -void NextClient::iconChange() -{ - if (button[MENU_IDX] && button[MENU_IDX]->isVisible()) - button[MENU_IDX]->tqrepaint(false); -} - -void NextClient::menuButtonPressed() -{ - // Probably don't need this null check, but we might as well. - if (button[MENU_IDX]) { - TQRect menuRect = button[MENU_IDX]->rect(); - TQPoint menuTop = button[MENU_IDX]->mapToGlobal(menuRect.topLeft()); - TQPoint menuBottom = button[MENU_IDX]->mapToGlobal(menuRect.bottomRight()); - menuTop += TQPoint(1, 1); - menuBottom += TQPoint(1, 1); - KDecorationFactory* f = factory(); - showWindowMenu(TQRect(menuTop, menuBottom)); - if( !f->exists( this )) // 'this' was deleted - return; - button[MENU_IDX]->setDown(false); - } -} - -// Copied, with minor edits, from KDEDefaultClient::slotMaximize() -void NextClient::maximizeButtonClicked() -{ - if (button[MAXIMIZE_IDX]) { - maximize(button[MAXIMIZE_IDX]->lastButton()); - } -} - -void NextClient::shadeClicked() -{ - setShade(!isSetShade()); -} - -void NextClient::aboveClicked() -{ - setKeepAbove(!keepAbove()); -} - -void NextClient::belowClicked() -{ - setKeepBelow(!keepBelow()); - keepAboveChange(keepAbove()); - keepBelowChange(keepBelow()); -} - -void NextClient::resizePressed() -{ - performWindowOperation(ResizeOp); -} - -void NextClient::resizeEvent(TQResizeEvent *) -{ - if (widget()->isVisible()) { - // TODO ? update border area only? - widget()->update(); -#if 0 - widget()->update(titlebar->tqgeometry()); - TQPainter p(widget()); - TQRect t = titlebar->tqgeometry(); - t.setTop( 0 ); - TQRegion r = widget()->rect(); - r = r.subtract( t ); - p.setClipRegion( r ); - p.eraseRect(widget()->rect()); -#endif - } -} - -void NextClient::captionChange() -{ - widget()->tqrepaint(titlebar->tqgeometry(), false); -} - - -void NextClient::paintEvent( TQPaintEvent* ) -{ - TQPainter p(widget()); - - // Draw black frame - TQRect fr = widget()->rect(); - p.setPen(TQt::black); - p.drawRect(fr); - - // Draw title bar - TQRect t = titlebar->tqgeometry(); - 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()->tqcolorGroup(KDecoration::ColorTitleBar, isActive())); - p.drawLine(t.x(), t.bottom(), t.right(), t.bottom()); - -#if 0 - // Why setting up a clipping region if it is not used? (setClipping(false)) - TQRegion r = fr; - r = r.subtract( t ); - p.setClipRegion( r ); - p.setClipping(false); -#endif - - t.setTop( 1 ); - t.setHeight(t.height()-2); - t.setLeft( t.left() + 4 ); - t.setRight( t.right() - 2 ); - - p.setPen(options()->color(KDecoration::ColorFont, isActive())); - p.setFont(options()->font(isActive())); - p.drawText( t, AlignCenter | AlignVCenter, caption() ); - - // Draw resize handle - if (mustDrawHandle()) { - int corner = 16 + 3*handleSize/2; - qDrawShadePanel(&p, - fr.x() + 1, fr.bottom() - handleSize, corner-1, handleSize, - options()->tqcolorGroup(KDecoration::ColorHandle, isActive()), - false); - p.drawTiledPixmap(fr.x() + 2, fr.bottom() - handleSize + 1, - corner - 3, handleSize - 2, isActive() ? *aHandlePix : *iHandlePix); - - qDrawShadePanel(&p, - fr.x() + corner, fr.bottom() - handleSize, - fr.width() - 2*corner, handleSize, - options()->tqcolorGroup(KDecoration::ColorFrame, isActive()), - false); - p.drawTiledPixmap(fr.x() + corner + 1, fr.bottom() - handleSize + 1, - fr.width() - 2*corner - 2, handleSize - 2, - isActive() ? *aFramePix : *iFramePix); - - qDrawShadePanel(&p, - fr.right() - corner + 1, fr.bottom() - handleSize, corner - 1, handleSize, - options()->tqcolorGroup(KDecoration::ColorHandle, isActive()), - false); - p.drawTiledPixmap(fr.right() - corner + 2, fr.bottom() - handleSize + 1, - corner - 3, handleSize - 2, isActive() ? *aHandlePix : *iHandlePix); - } -} - -void NextClient::mouseDoubleClickEvent( TQMouseEvent * e ) -{ - if (e->button() == Qt::LeftButton && titlebar->tqgeometry().contains( e->pos() ) ) - titlebarDblClickOperation(); -} - -void NextClient::wheelEvent( TQWheelEvent * e ) -{ - if (isSetShade() || TQRect( 0, 0, width(), titleHeight ).contains( e->pos() ) ) - titlebarMouseWheelOperation( e->delta()); -} - -void NextClient::showEvent(TQShowEvent *) -{ - widget()->tqrepaint(); -} - -void NextClient::desktopChange() -{ - bool on = isOnAllDesktops(); - if (NextButton * b = button[STICKY_IDX]) { - b->setBitmap( on ? unsticky_bits : sticky_bits, 10, 10); - TQToolTip::remove(b); - TQToolTip::add(b, on ? i18n("Not on all desktops") : i18n("On all desktops")); - } -} - -void NextClient::maximizeChange() -{ - if (button[MAXIMIZE_IDX]) { - bool m = maximizeMode() == MaximizeFull; - //button[MAXIMIZE_IDX]->setBitmap(m ? minmax_bits : maximize_bits); - TQToolTip::remove(button[MAXIMIZE_IDX]); - TQToolTip::add(button[MAXIMIZE_IDX], - m ? i18n("Restore") : i18n("Maximize")); - } - //spacer->changeSize(10, mustDrawHandle() ? handleSize : 1, - // TQSizePolicy::Expanding, TQSizePolicy::Minimum); - //mainLayout->activate(); -} - -void NextClient::activeChange() -{ - widget()->tqrepaint(false); - slotReset(); -} - -void NextClient::slotReset() -{ - for (int i=0; i<MAX_NUM_BUTTONS; i++) { - if (button[i]) { - button[i]->reset(); - } - } -} - -KDecoration::Position -NextClient::mousePosition( const TQPoint& p ) const -{ - Position m = PositionCenter; - - if (p.y() < (height() - handleSize)) - m = KDecoration::mousePosition(p); - - else { - int corner = 16 + 3*handleSize/2; - if (p.x() >= (width() - corner)) - m = PositionBottomRight; - else if (p.x() <= corner) - m = PositionBottomLeft; - else - m = PositionBottom; - } - - return m; -} - -void NextClient::borders(int &left, int &right, int &top, int &bottom) const -{ - left = right = 1; - top = titleHeight; // FRAME is this ok? - bottom = mustDrawHandle() ? handleSize : 1; -} - -void NextClient::shadeChange() -{ - if (NextButton *b = button[SHADE_IDX]) { - b->setBitmap(isSetShade() ? unshade_bits : shade_bits, 10, 10); - TQToolTip::remove(b); - TQToolTip::add(b, isSetShade() ? i18n("Unshade") : i18n("Shade")); - } -} - -void NextClient::keepAboveChange(bool above) -{ - if (NextButton *b = button[ABOVE_IDX]) { - b->setBitmap(above ? from_above_bits : keep_above_bits, 10, 10); - TQToolTip::remove(b); - TQToolTip::add(b, above ? - i18n("Do not keep above others") : i18n("Keep above others")); - b->tqrepaint(false); - } -} - -void NextClient::keepBelowChange(bool below) -{ - if (NextButton *b = button[BELOW_IDX]) { - b->setBitmap(below ? from_below_bits : keep_below_bits, 10, 10); - TQToolTip::remove(b); - TQToolTip::add(b, below ? - i18n("Do not keep below others") : i18n("Keep below others")); - b->tqrepaint(false); - } -} - -TQSize NextClient::tqminimumSize() const -{ - return TQSize(titleHeight * 6 + 2, titleHeight + handleSize + 2); -} - -void NextClient::resize(const TQSize& s) -{ - widget()->resize(s); -} - -void NextClient::reset(unsigned long) -{ - for (int i = 0; i < MAX_NUM_BUTTONS; ++i) { - if (button[i]) - button[i]->reset(); - } - widget()->tqrepaint(); -} - -bool NextClient::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::Wheel: - wheelEvent( TQT_TQWHEELEVENT( e )); - return true; - case TQEvent::MouseButtonPress: - processMousePressEvent(TQT_TQMOUSEEVENT( e )); - return true; - case TQEvent::Show: - showEvent(TQT_TQSHOWEVENT( e )); - return true; - default: - break; - } - return false; -} - -bool NextClient::drawbound(const TQRect& geom, bool /* clear */) -{ - TQPainter p(workspaceWidget()); - p.setPen(TQPen(TQt::white, 3)); - p.setRasterOp(TQt::XorROP); - p.drawRect(geom); - int leftMargin = geom.left() + 2; - p.fillRect(leftMargin, geom.top() + titleHeight - 1, - geom.width() - 4, 3, TQt::white); - if (mustDrawHandle()) { - p.fillRect(leftMargin, geom.bottom() - handleSize - 1, - geom.width() - 4, 3, TQt::white); - } - return true; -} - -// ===================================== - -NextClientFactory::NextClientFactory() -{ - create_pixmaps(this); -} - -NextClientFactory::~NextClientFactory() -{ - delete_pixmaps(); -} - -KDecoration *NextClientFactory::createDecoration(KDecorationBridge *b) -{ - return new NextClient(b, this); -} - -bool NextClientFactory::reset(unsigned long /*changed*/) -{ - // TODO Do not recreate decorations if it is not needed. Look at - // ModernSystem for how to do that - delete_pixmaps(); - create_pixmaps(this); - // For now just return true. - return true; -} - -bool NextClientFactory::supports( Ability ability ) -{ - switch( ability ) - { - case AbilityAnnounceButtons: - case AbilityButtonMenu: - case AbilityButtonOnAllDesktops: - case AbilityButtonHelp: - case AbilityButtonMinimize: - case AbilityButtonMaximize: - case AbilityButtonClose: - case AbilityButtonAboveOthers: - case AbilityButtonBelowOthers: - case AbilityButtonShade: - case AbilityButtonResize: - return true; - default: - return false; - }; -} - -TQValueList< NextClientFactory::BorderSize > -NextClientFactory::borderSizes() const -{ - // the list must be sorted - return TQValueList< BorderSize >() << BorderTiny << BorderNormal << - BorderLarge << BorderVeryLarge << BorderHuge << - BorderVeryHuge << BorderOversized; -} - -} // KStep namespace - -extern "C" KDE_EXPORT KDecorationFactory* create_factory() -{ - return new KStep::NextClientFactory(); -} - -#include "nextclient.moc" - -// vim: sw=4 diff --git a/kwin-styles/kstep/nextclient.h b/kwin-styles/kstep/nextclient.h deleted file mode 100644 index b24da66d..00000000 --- a/kwin-styles/kstep/nextclient.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef __NEXTCLIENT_H -#define __NEXTCLIENT_H - -#include <tqvariant.h> -#include <tqbitmap.h> -#include <kpixmap.h> -#include <tqlayout.h> -#include <tqbutton.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> - -class TQLabel; -class TQSpacerItem; - -namespace KStep { - -class NextClient; - -class NextButton : public TQButton -{ -public: - NextButton(NextClient *parent=0, const char *name=0, - const unsigned char *bitmap=NULL, int bw=0, int bh=0, - const TQString& tip=NULL, const int realizeBtns = Qt::LeftButton); - void setBitmap(const unsigned char *bitmap, int bw, int bh); - void reset(); - ButtonState lastButton() { return last_button; } - -protected: - void mousePressEvent( TQMouseEvent* e ); - void mouseReleaseEvent( TQMouseEvent* e ); - virtual void drawButton(TQPainter *p); - void drawButtonLabel(TQPainter *){;} - - KPixmap aBackground, iBackground; - TQBitmap* deco; - NextClient *client; - ButtonState last_button; - int realizeButtons; -}; - -class NextClient : public KDecoration -{ - Q_OBJECT - TQ_OBJECT -public: - NextClient(KDecorationBridge *b, KDecorationFactory *f); - ~NextClient() {;} - void init(); - virtual bool drawbound(const TQRect& geom, bool clear); -protected: - bool eventFilter(TQObject *o, TQEvent *e); - void resizeEvent( TQResizeEvent* ); - void paintEvent( TQPaintEvent* ); - void showEvent( TQShowEvent* ); - - void mouseDoubleClickEvent( TQMouseEvent * ); - void wheelEvent( TQWheelEvent * ); - void captionChange(); - void desktopChange(); - void activeChange(); - void shadeChange(); - void iconChange(); - TQSize tqminimumSize() const; - void resize(const TQSize &size); - void borders(int &left, int &right, int &top, int &bottom) const; - void reset(unsigned long changed); - void calcHiddenButtons(); - void updateActiveBuffer(); - - Position mousePosition(const TQPoint &) const; - void maximizeChange(); - -protected slots: - void slotReset(); - void menuButtonPressed(); - void maximizeButtonClicked(); - void shadeClicked(); - void aboveClicked(); - void belowClicked(); - void resizePressed(); - - void keepAboveChange(bool above); - void keepBelowChange(bool below); - -private: - void initializeButtonsAndTitlebar(TQBoxLayout* titleLayout); - void addButtons(TQBoxLayout* titleLayout, const TQString& buttons); - bool mustDrawHandle() const; - - TQSpacerItem* titlebar; - - // Helpful constants for buttons in array - enum { CLOSE_IDX = 0, - HELP_IDX, - ICONIFY_IDX, - MAXIMIZE_IDX, - MENU_IDX, - SHADE_IDX, - ABOVE_IDX, - BELOW_IDX, - RESIZE_IDX, - STICKY_IDX, - MAX_NUM_BUTTONS = STICKY_IDX + 1 }; - - // WARNING: button[i] may be null for any given i. Make sure you - // always check for null before doing button[i]->foo(). - NextButton* button[MAX_NUM_BUTTONS]; -}; - -class NextClientFactory: public TQObject, public KDecorationFactory -{ -public: - NextClientFactory(); - virtual ~NextClientFactory(); - virtual KDecoration *createDecoration(KDecorationBridge *); - virtual bool reset(unsigned long changed); - virtual bool supports( Ability ability ); - - TQValueList< NextClientFactory::BorderSize > borderSizes() const; - -}; - -} - -#endif diff --git a/kwin-styles/openlook/CMakeLists.txt b/kwin-styles/openlook/CMakeLists.txt deleted file mode 100644 index 061dd697..00000000 --- a/kwin-styles/openlook/CMakeLists.txt +++ /dev/null @@ -1,33 +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} - ${CMAKE_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - -##### other data ################################ - -install( FILES openlook.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_openlook ############################ - -tde_add_kpart( twin3_openlook AUTOMOC - SOURCES OpenLook.cpp - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/openlook/Makefile.am b/kwin-styles/openlook/Makefile.am deleted file mode 100644 index 32b41684..00000000 --- a/kwin-styles/openlook/Makefile.am +++ /dev/null @@ -1,16 +0,0 @@ -INCLUDES = $(all_includes) - -kde_module_LTLIBRARIES = twin3_openlook.la - -twin3_openlook_la_SOURCES = OpenLook.cpp -twin3_openlook_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin3_openlook_la_LIBADD = -ltdecorations - -noinst_HEADERS = OpenLook.h -METASOURCES = AUTO - -linkdir = $(kde_datadir)/twin/ -link_DATA = openlook.desktop - -EXTRA_DIST = $(link_DATA) - diff --git a/kwin-styles/openlook/OpenLook.cpp b/kwin-styles/openlook/OpenLook.cpp deleted file mode 100644 index 46398e30..00000000 --- a/kwin-styles/openlook/OpenLook.cpp +++ /dev/null @@ -1,728 +0,0 @@ -/* - 'OpenLook' twin client - - Porting to trinity.2 API - Copyright 2003 Luciano Montanaro <mikelima@cirulla.net> - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#include "config.h" -#include <unistd.h> // for usleep -#include <math.h> - -#include <tqlayout.h> -#include <tqpainter.h> -#include <tqdrawutil.h> -#include <tqtoolbutton.h> -#include <tqimage.h> -#include <tqlabel.h> -#include <tqpixmap.h> - -#include <kapplication.h> -#include <klocale.h> - -#include "OpenLook.h" - -extern "C" KDE_EXPORT KDecorationFactory* create_factory() -{ - return new OpenLook::DecorationFactory(); -} - -namespace OpenLook { - -static uint openLookCornerSize = 11; -static uint openLookMargin = 5; -static const uint openLookTextVMargin = 1; -static uint titleHeight; - -// --------------------------------------- - -DecorationFactory::DecorationFactory() -{ -} - -DecorationFactory::~DecorationFactory() -{ -} - -KDecoration *DecorationFactory::createDecoration(KDecorationBridge *b) -{ - return new OpenLook(b, this); -} - -bool DecorationFactory::reset(unsigned long /*changed*/) -{ - // TODO Do not recreate decorations if it is not needed. Look at - // ModernSystem for how to do that - // For now just return true. - return true; -} - -bool DecorationFactory::supports( Ability ability ) -{ - switch( ability ) - { - case AbilityAnnounceButtons: - case AbilityButtonMinimize: - return true; - default: - return false; - }; -} - -TQValueList< DecorationFactory::BorderSize > -DecorationFactory::borderSizes() const -{ - // the list must be sorted - return TQValueList< BorderSize >() << BorderNormal << - BorderLarge << BorderVeryLarge << BorderHuge << - BorderVeryHuge << BorderOversized; -} - -// --------------------------------------- - -static inline const KDecorationOptions* options() -{ - return KDecoration::options(); -} - -// --------------------------------------- - -OpenLook::OpenLook(KDecorationBridge *b, KDecorationFactory *f) : - KDecoration(b, f), - titleSpacer_ (0), - mousePressPoint_(0, 0), // Anywhere outside button rect. - buttonDown_ (false) -{ -} - -void OpenLook::init() -{ - static const int SUPPORTED_WINDOW_TYPES_MASK = NET::NormalMask | - NET::DesktopMask | NET::DockMask | NET::ToolbarMask | NET::MenuMask | - NET::DialogMask | NET::OverrideMask | NET::TopMenuMask | - NET::UtilityMask | NET::SplashMask; - - createMainWidget(WStaticContents | WResizeNoErase | WRepaintNoErase); - widget()->installEventFilter(this); - widget()->setBackgroundMode(NoBackground); - NET::WindowType type = windowType(SUPPORTED_WINDOW_TYPES_MASK); - tool_ = (type == NET::Toolbar || type == NET::Utility || type == NET::Menu); - TQFontMetrics fm(options()->font(isActive(), tool_)); - - titleHeight = fm.height() + openLookTextVMargin * 2; - - switch(KDecoration::options()->preferredBorderSize(factory())) { - case KDecoration::BorderLarge: - openLookMargin = 9; - break; - case KDecoration::BorderVeryLarge: - openLookMargin = 13; - break; - case KDecoration::BorderHuge: - openLookMargin = 18; - break; - case KDecoration::BorderVeryHuge: - openLookMargin = 27; - break; - case KDecoration::BorderOversized: - openLookMargin = 40; - break; - case KDecoration::BorderNormal: - default: - openLookMargin = 5; - } - openLookCornerSize = 2*openLookMargin + 1; - if (titleHeight <= openLookMargin) - titleHeight = openLookMargin+1; - - doLayout(); -} - -OpenLook::~OpenLook() -{ - // Empty. -} - -bool OpenLook::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::Wheel: - wheelEvent( TQT_TQWHEELEVENT( e )); - return true; - case TQEvent::MouseButtonPress: - if (!isButtonPress(TQT_TQMOUSEEVENT(e))) { - processMousePressEvent(TQT_TQMOUSEEVENT(e)); - } - return true; - case TQEvent::MouseButtonRelease: - if (isButtonRelease(TQT_TQMOUSEEVENT(e))) { - return true; - } else { - return false; - } - case TQEvent::Show: - showEvent(TQT_TQSHOWEVENT(e)); - return true; - default: - break; - } - return false; -} - - void -OpenLook::borders(int &left, int &right, int &top, int &bottom) const -{ - // FRAME XXX Check - left = right = bottom = openLookMargin; - top = titleHeight + openLookMargin; -} - - void -OpenLook::captionChange() -{ - widget()->update(titleRect()); -} - - void -OpenLook::shadeChange() -{ -} - -TQSize OpenLook::tqminimumSize() const -{ - int left, right, top, bottom; - borders(left, right, top, bottom); - return TQSize(left + right + 2 * titleHeight, top + bottom); -} - - void -OpenLook::resize(const TQSize& s) -{ - widget()->resize(s); - widget()->tqrepaint(); //there is some strange wrong tqrepaint of the frame without -} - - void -OpenLook::paintEvent(TQPaintEvent * pe) -{ - TQRect tr(titleRect()); - - TQPainter p(widget()); - - TQRegion clipRegion(pe->region()); - - p.setClipRegion(clipRegion); - - paintBorder(p); - - paintTopLeftRect(p); - paintTopRightRect(p); - paintBottomLeftRect(p); - paintBottomRightRect(p); - - p.setClipRegion(clipRegion + buttonRect()); - - TQBrush titleBackground(options()->color(KDecoration::ColorTitleBar, true)); - - if (isActive()) - qDrawShadePanel(&p, tr, widget()->tqcolorGroup(), true, 1, &titleBackground); - else - p.fillRect(tr, widget()->tqcolorGroup().brush(TQColorGroup::Background)); - - p.setClipRegion(clipRegion); - - paintButton(p); - - p.setFont(options()->font(isActive(), tool_)); - - p.setPen(options()->color(KDecoration::ColorFont, isActive())); - - tr.setLeft(openLookCornerSize + 3 + buttonRect().width() + 2); - - p.drawText(tr, AlignCenter, caption()); -} - - void -OpenLook::showEvent(TQShowEvent *) -{ - widget()->tqrepaint(); -} - - void -OpenLook::mouseDoubleClickEvent(TQMouseEvent * e) -{ - if (e->button() == Qt::LeftButton && titleRect().contains(e->pos())) - { - titlebarDblClickOperation(); - } -} - - void -OpenLook::wheelEvent(TQWheelEvent *e) -{ - if (isSetShade() || titleRect().contains(e->pos())) - { - titlebarMouseWheelOperation( e->delta()); - } -} - - void -OpenLook::resizeEvent(TQResizeEvent* e) -{ - widget()->update(); -} - - void -OpenLook::activeChange() -{ - widget()->tqrepaint(); -} - - KDecoration::Position -OpenLook::mousePosition(const TQPoint & p) const -{ - if (topLeftRect().contains(p)) - return PositionTopLeft; - else if (topRightRect().contains(p)) - return PositionTopRight; - else if (bottomLeftRect().contains(p)) - return PositionBottomLeft; - else if (bottomRightRect().contains(p)) - return PositionBottomRight; - else - return PositionCenter; -} - - void -OpenLook::iconChange() -{ -} - - void -OpenLook::desktopChange() -{ -} - - void -OpenLook::maximizeChange() -{ - widget()->tqrepaint(false); -} - - void -OpenLook::doLayout() -{ - TQVBoxLayout * tqlayout = new TQVBoxLayout(widget(), openLookMargin); - - titleSpacer_ = - new TQSpacerItem - ( - 0, - titleHeight, - TQSizePolicy::Expanding, - TQSizePolicy::Fixed - ); - - tqlayout->addItem(titleSpacer_); - - tqlayout->addSpacing(2); - - TQBoxLayout * midLayout = - new TQBoxLayout(tqlayout, TQBoxLayout::LeftToRight, 0, 0); - - if (isPreview()) { - midLayout->addWidget(new TQLabel( - i18n("<center><b>OpenLook preview</b></center>"), - widget()), - 1); - } else { - midLayout->addItem( new TQSpacerItem( 0, 0 )); - } - -} - - bool -OpenLook::animateMinimize(bool /*iconify*/) -{ -#if 0 - TQRect icongeom(iconGeometry()); - - if (!icongeom.isValid()) - return false; - - TQRect wingeom(tqgeometry()); - - TQPainter p(workspaceWidget()); - - p.setRasterOp(TQt::NotROP); - -#if 0 - if (iconify) - p.setClipRegion( - TQRegion(workspace()->desktopWidget()->rect()) - wingeom - ); -#endif - - for (uint count = 0; count < 4; count++) - { - grabXServer(); - - p.drawLine(wingeom.bottomRight(), icongeom.bottomRight()); - p.drawLine(wingeom.bottomLeft(), icongeom.bottomLeft()); - p.drawLine(wingeom.topLeft(), icongeom.topLeft()); - p.drawLine(wingeom.topRight(), icongeom.topRight()); - - p.flush(); - - kapp->syncX(); - - usleep(10000); - - p.drawLine(wingeom.bottomRight(), icongeom.bottomRight()); - p.drawLine(wingeom.bottomLeft(), icongeom.bottomLeft()); - p.drawLine(wingeom.topLeft(), icongeom.topLeft()); - p.drawLine(wingeom.topRight(), icongeom.topRight()); - - p.flush(); - - kapp->syncX(); - - usleep(10000); - - ungrabXServer(); - } -#endif - return true; -} - - TQRect -OpenLook::topLeftRect() const -{ - return TQRect - ( - 0, - 0, - openLookCornerSize, - openLookCornerSize - ); -} - - TQRect -OpenLook::topRightRect() const -{ - return TQRect - ( - width() - openLookCornerSize, - 0, - openLookCornerSize, - openLookCornerSize - ); -} - - TQRect -OpenLook::bottomLeftRect() const -{ - return TQRect - ( - 0, - height() - openLookCornerSize, - openLookCornerSize, - openLookCornerSize - ); -} - - TQRect -OpenLook::bottomRightRect() const -{ - return TQRect - ( - width() - openLookCornerSize, - height() - openLookCornerSize, - openLookCornerSize, - openLookCornerSize - ); -} - - void -OpenLook::paintTopLeftRect(TQPainter & p) const -{ - TQColor handleColour(options()->color(KDecoration::ColorHandle, isActive())); - - TQRect r(topLeftRect()); - - int x1(r.left()); - int y1(r.top()); - int x2(r.right()); - int y2(r.bottom()); - - p.setPen(widget()->tqcolorGroup().light()); - - p.drawLine(x1, y1, x2, y1); - p.drawLine(x1, y1 + 1, x1, y2); - - p.fillRect(x1 + 1, y1 + 1, r.width()-2, openLookMargin-2, handleColour); - p.fillRect(x1 + 1, y1 + 1, openLookMargin-2, r.height()-2, handleColour); - - p.setPen(widget()->tqcolorGroup().dark()); - - p.drawLine(x2, y1 + 1, x2, y1 + openLookMargin-1); - - p.drawLine(x1 + openLookMargin-1, y1 + openLookMargin-1, x2 - 1, y1 + openLookMargin-1); - - p.drawLine(x1 + openLookMargin-1, y1 + openLookMargin, x1 + openLookMargin-1, y2 - 1); - - p.drawLine(x1 + 1, y2, x1 + openLookMargin-1, y2); -} - - void -OpenLook::paintTopRightRect(TQPainter & p) const -{ - TQColor handleColour(options()->color(KDecoration::ColorHandle, isActive())); - - TQRect r(topRightRect()); - - int x1(r.left()); - int y1(r.top()); - int x2(r.right()); - int y2(r.bottom()); - - p.setPen(widget()->tqcolorGroup().light()); - - p.drawLine(x1, y1, x2, y1); - p.drawLine(x1, y1 + 1, x1, y1 + openLookMargin-1); - p.drawLine(x2 - openLookMargin+1, y1 + openLookMargin, x2 - openLookMargin+1, y2); - - p.fillRect(x1 + 1, y1 + 1, r.width()-2, openLookMargin-2, handleColour); - p.fillRect(x2 - openLookMargin + 2, y1 + 1, openLookMargin-2, r.height()-2, handleColour); - - p.setPen(widget()->tqcolorGroup().dark()); - - p.drawLine(x1 + 1, y1 + openLookMargin-1, x2 - openLookMargin+1, y1 + openLookMargin-1); - p.drawLine(x2, y1 + 1, x2, y2); - p.drawLine(x2 - openLookMargin+1, y2, x2 - 1, y2); -} - - void -OpenLook::paintBottomLeftRect(TQPainter & p) const -{ - TQColor handleColour(options()->color(KDecoration::ColorHandle, isActive())); - - TQRect r(bottomLeftRect()); - - int x1(r.left()); - int y1(r.top()); - int x2(r.right()); - int y2(r.bottom()); - - p.setPen(widget()->tqcolorGroup().light()); - - p.drawLine(x1, y1, x1 + openLookMargin-1, y1); - p.drawLine(x1, y1 + 1, x1, y2); - p.drawLine(x1 + openLookMargin, y2 - openLookMargin+1, x2, y2 - openLookMargin+1); - - p.fillRect(x1 + 1, y2 - openLookMargin + 2, r.width()-2, openLookMargin-2, handleColour); - p.fillRect(x1 + 1, y1 + 1, openLookMargin-2, r.height()-2, handleColour); - - p.setPen(widget()->tqcolorGroup().dark()); - - p.drawLine(x1 + openLookMargin-1, y1 + 1, x1 + openLookMargin-1, y2 - openLookMargin); - p.drawLine(x1 + 1, y2, x2, y2); - p.drawLine(x2, y2 - openLookMargin+2, x2, y2 - 1); -} - - void -OpenLook::paintBottomRightRect(TQPainter & p) const -{ - TQColor handleColour(options()->color(KDecoration::ColorHandle, isActive())); - - TQRect r(bottomRightRect()); - - int x1(r.left()); - int y1(r.top()); - int x2(r.right()); - int y2(r.bottom()); - - p.setPen(widget()->tqcolorGroup().light()); - - p.drawLine(x1, y2 - openLookMargin+1, x1, y2); - p.drawLine(x1 + 1, y2 - openLookMargin+1, x2 - openLookMargin+1, y2 - openLookMargin+1); - p.drawLine(x2 - openLookMargin+1, y1 + 1, x2 - openLookMargin+1, y2 - openLookMargin); - p.drawLine(x2 - openLookMargin+1, y1, x2, y1); - - p.fillRect(x1 + 1, y2 - openLookMargin + 2, r.width()-2, openLookMargin-2, handleColour); - p.fillRect(x2 - openLookMargin + 2, y1 + 1, openLookMargin-2, r.height()-2, handleColour); - - p.setPen(widget()->tqcolorGroup().dark()); - - p.drawLine(x1 + 1, y2, x2, y2); - p.drawLine(x2, y1 + 1, x2, y2 - 1); -} - - TQRect -OpenLook::buttonRect() const -{ - return TQRect - ( - openLookCornerSize + 3, - titleRect().top(), - titleRect().height(), - titleRect().height() - ); -} - - void -OpenLook::paintButton(TQPainter & p) const -{ - TQRect r(buttonRect()); - - p.fillRect - ( - r.left() + 1, - r.top() + 1, - r.width() - 2, - r.height() - 2, - buttonDown_ - ? widget()->tqcolorGroup().dark() - : options()->color(KDecoration::ColorButtonBg, isActive()) - ); - - p.setPen(buttonDown_ ? widget()->tqcolorGroup().dark() : widget()->tqcolorGroup().light()); - - p.drawLine(r.left() + 1, r.top(), r.right() - 1, r.top()); - p.drawLine(r.left(), r.top() + 1, r.left(), r.bottom() - 1); - - p.setPen(buttonDown_ ? widget()->tqcolorGroup().light() : widget()->tqcolorGroup().dark()); - - p.drawLine(r.right(), r.top() + 1, r.right(), r.bottom() - 1); - p.drawLine(r.left() + 1, r.bottom(), r.right() - 1, r.bottom()); - - paintArrow(p); -} - - void -OpenLook::paintArrow(TQPainter & p) const -{ - TQRect br(buttonRect()); - - int x = br.left() + 5; - int y = br.top() + 5; - int w = br.width() - 10; - int h = br.height() - 10; - - TQPointArray poly(3); - - p.setBrush(widget()->tqcolorGroup().mid()); - - poly.setPoint(0, x, y); - poly.setPoint(1, x + w - 1, y); - poly.setPoint(2, x + (w / 2), y + h - 1); - - p.drawPolygon(poly); - - p.setPen(widget()->tqcolorGroup().dark()); - - p.drawLine(x, y, x + w - 1, y); - - p.drawLine(x, y, x + (w / 2), y + h - 1); - - p.setPen(widget()->tqcolorGroup().light()); - - p.drawLine(x + (w / 2), y + h - 1, x + w - 1, y); -} - - void -OpenLook::paintBorder(TQPainter & p) const -{ - const uint cs(openLookCornerSize); - - uint x = widget()->rect().left(); - uint y = widget()->rect().top(); - uint w = widget()->rect().width(); - uint h = widget()->rect().height(); - uint r = widget()->rect().right(); - uint b = widget()->rect().bottom(); - - p.fillRect(x + cs, y, w - cs - cs, 2, widget()->tqcolorGroup().shadow()); - p.fillRect(x + cs, b - 1, w - cs - cs, 2, widget()->tqcolorGroup().shadow()); - p.fillRect(x, y + cs, 2, h - cs - cs, widget()->tqcolorGroup().shadow()); - p.fillRect(r - 1, y + cs, 2, h - cs - cs, widget()->tqcolorGroup().shadow()); - - TQColor frameColour(options()->color(KDecoration::ColorFrame, isActive())); - - p.fillRect(x + cs, y + 2, w - cs - cs, openLookMargin-2, frameColour); - p.fillRect(x + cs, b - openLookMargin + 1, w - cs - cs, openLookMargin-2, frameColour); - p.fillRect(x + 2, y + cs, openLookMargin-2, h - cs - cs, frameColour); - p.fillRect(r - openLookMargin + 1, y + cs, openLookMargin-2, h - cs - cs, frameColour); - - p.fillRect - ( - openLookMargin, - titleRect().bottom() + 1, - width() - 2 * openLookMargin, - 2, - widget()->tqcolorGroup().background() - ); -} - - TQRect -OpenLook::titleRect() const -{ - return titleSpacer_->tqgeometry(); -} - - bool -OpenLook::isButtonPress(TQMouseEvent * e) -{ - mousePressPoint_ = e->pos(); - - buttonDown_ = buttonRect().contains(mousePressPoint_); - - widget()->tqrepaint(buttonRect()); - return buttonDown_; -} - - bool -OpenLook::isButtonRelease(TQMouseEvent * e) -{ - if (buttonDown_ && buttonRect().contains(e->pos())) - { - minimize(); - return true; - } - buttonDown_ = false; - widget()->tqrepaint(buttonRect()); - - return false; -} - -} - -#include "OpenLook.moc" -// vim:ts=2:sw=2:tw=78:set et: diff --git a/kwin-styles/openlook/OpenLook.h b/kwin-styles/openlook/OpenLook.h deleted file mode 100644 index 98db37af..00000000 --- a/kwin-styles/openlook/OpenLook.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - 'OpenLook' twin client - - Porting to trinity.2 API - Copyright 2003 Luciano Montanaro <mikelima@cirulla.net> - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef KWIN_WEB_H -#define KWIN_WEB_H - -#include <tqptrlist.h> -#include <tqbutton.h> - -#include <kdecoration.h> -#include <kdecorationfactory.h> - -class TQSpacerItem; - -namespace OpenLook -{ - class OpenLookButton; - - class OpenLook : public KDecoration - { - Q_OBJECT - TQ_OBJECT - public: - - OpenLook(KDecorationBridge *b, KDecorationFactory *f); - ~OpenLook(); - void init(); - - protected: - bool eventFilter(TQObject *o, TQEvent *e); - void resizeEvent(TQResizeEvent *e); - void paintEvent(TQPaintEvent *e); - void showEvent(TQShowEvent *e); - - virtual void captionChange(); - void desktopChange(); - void activeChange(); - void shadeChange(); - void iconChange(); - void maximizeChange(); - void borders(int &left, int &right, int &top, int &bottom) const; - TQSize tqminimumSize() const; - void resize( const TQSize& ); - virtual void mouseDoubleClickEvent(TQMouseEvent *); - virtual void wheelEvent(TQWheelEvent *e); - - virtual Position mousePosition(const TQPoint &) const; - virtual bool animateMinimize(bool); - - private: - - void doLayout(); - - TQRect titleRect() const; - - TQRect topLeftRect() const; - TQRect topRightRect() const; - TQRect bottomLeftRect() const; - TQRect bottomRightRect() const; - - TQRect buttonRect() const; - - void paintBorder(TQPainter &) const; - - void paintTopLeftRect(TQPainter &) const; - void paintTopRightRect(TQPainter &) const; - void paintBottomLeftRect(TQPainter &) const; - void paintBottomRightRect(TQPainter &) const; - - void paintButton(TQPainter &) const; - void paintArrow(TQPainter &) const; - - bool isButtonPress(TQMouseEvent *); - bool isButtonRelease(TQMouseEvent *); - - TQSpacerItem * titleSpacer_; - TQPoint mousePressPoint_; - bool tool_; - bool buttonDown_; - }; - - class DecorationFactory: public TQObject, public KDecorationFactory - { - public: - DecorationFactory(); - virtual ~DecorationFactory(); - virtual KDecoration *createDecoration(KDecorationBridge *); - virtual bool reset(unsigned long changed); - virtual bool supports( Ability ability ); - TQValueList< DecorationFactory::BorderSize > borderSizes() const; - }; -} - -#endif -// vim:ts=2:sw=2:tw=78:set et: diff --git a/kwin-styles/openlook/openlook.desktop b/kwin-styles/openlook/openlook.desktop deleted file mode 100644 index 0ed25dcb..00000000 --- a/kwin-styles/openlook/openlook.desktop +++ /dev/null @@ -1,14 +0,0 @@ -[Desktop Entry] -Name=OpenLook -Name[af]=Openlook -Name[cy]=GolwgAgored -Name[fa]=نگاهباز -Name[hi]=ओपन-लुक -Name[lt]=Open išvaizda -Name[lv]=AtvērtsSkats -Name[ne]=ओपन लूक -Name[ta]=திறந்தபார்வை -Name[ven]=Vula wo sedza -Name[vi]=Hình thức mở -Name[zu]=Vula Ubone -X-KDE-Library=twin3_openlook diff --git a/kwin-styles/riscos/AboveButton.cpp b/kwin-styles/riscos/AboveButton.cpp deleted file mode 100644 index 7b66e3ba..00000000 --- a/kwin-styles/riscos/AboveButton.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2004 - Carsten Clever <clushkou@gmx.net> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "AboveButton.h" - -namespace RiscOS -{ - -/* XPM */ -static const char * const above_xpm[] = { -"12 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" ", -" ..... ", -".+++++. ", -".+++++. ", -".+++++..... ", -".+++++.++++.", -".+++++.++++.", -" .....+++++.", -" .+++++.", -" .+++++.", -" ..... ", -" "}; - -AboveButton::AboveButton(TQWidget *parent) - : Button(parent, i18n("Keep above others")) -{ - setPixmap(TQPixmap((const char **)above_xpm)); -} - -void AboveButton::mouseReleaseEvent(TQMouseEvent *e) -{ - Button::mouseReleaseEvent(e); - - if (!rect().contains(e->pos())) - return; - - emit(above()); -} - -} // End namespace - -#include "AboveButton.moc" diff --git a/kwin-styles/riscos/AboveButton.h b/kwin-styles/riscos/AboveButton.h deleted file mode 100644 index 86fbb0a7..00000000 --- a/kwin-styles/riscos/AboveButton.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2004 - Carsten Clever <clushkou@gmx.net> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_ABOVE_BUTTON_H -#define RISC_OS_ABOVE_BUTTON_H - -#include "Button.h" - -namespace RiscOS -{ - -class AboveButton : public Button -{ - Q_OBJECT - TQ_OBJECT - - public: - - AboveButton(TQWidget *parent); - - signals: - - void above(); - - protected: - - void mouseReleaseEvent(TQMouseEvent*); -}; - -} // End namespace - -#endif diff --git a/kwin-styles/riscos/Button.cpp b/kwin-styles/riscos/Button.cpp deleted file mode 100644 index 7bf4f477..00000000 --- a/kwin-styles/riscos/Button.cpp +++ /dev/null @@ -1,153 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include <tqtooltip.h> -#include "Button.h" -#include "Static.h" - -namespace RiscOS -{ - -Button::Button(TQWidget *parent, const TQString& tip, - const ButtonState realizeButtons) - : TQWidget(parent, "Button", 0), - realizeButtons_(realizeButtons), - lastButton_(Qt::NoButton), - alignment_(Left), - down_ (false), - active_ (false) -{ - TQToolTip::add(this, tip); - setBackgroundColor(TQt::black); - - setFixedSize(Static::instance()->titleHeight() - 1, - Static::instance()->titleHeight()); -} - -Button::~Button() -{ - // Empty. -} - -void Button::tqsetAlignment(Alignment a) -{ - alignment_ = a; - tqrepaint(); -} - -void Button::setActive(bool b) -{ - active_ = b; - tqrepaint(); -} - -Button::Alignment Button::tqalignment() const -{ - return alignment_; -} - -void Button::mousePressEvent(TQMouseEvent *e) -{ - down_ = true; - lastButton_ = e->button(); - tqrepaint(); - - TQMouseEvent me(e->type(), e->pos(), e->globalPos(), - (e->button()&realizeButtons_) ? Qt::LeftButton : Qt::NoButton, - e->state()); - TQWidget::mousePressEvent(&me); -} - -void Button::mouseReleaseEvent(TQMouseEvent *e) -{ - down_ = false; - lastButton_ = e->button(); - tqrepaint(); - TQMouseEvent me(e->type(), e->pos(), e->globalPos(), - (e->button()&realizeButtons_) ? Qt::LeftButton : Qt::NoButton, - e->state()); - TQWidget::mouseReleaseEvent(&me); -} - -void Button::setPixmap(const TQPixmap &p) -{ - if (TQPixmap::defaultDepth() <= 8) - aPixmap_ = iPixmap_ = p; - else - { - TQRgb light; - TQRgb* data = NULL; - TQRgb w = tqRgb(255, 255, 255); - - TQImage aTx(p.convertToImage()); - TQImage iTx(aTx.copy()); - - const KDecorationOptions* options = KDecoration::options(); - light = options->color(KDecoration::ColorButtonBg, true).light(150).rgb(); - - if (light == tqRgb(0, 0, 0)) - light = tqRgb(228, 228, 228); - - data = (TQRgb *)aTx.bits(); - - for (int x = 0; x < 144; x++) - if (data[x] == w) - data[x] = light; - - light = options->color(KDecoration::ColorButtonBg, false).light(150).rgb(); - - if (light == tqRgb(0, 0, 0)) - light = tqRgb(228, 228, 228); - - data = (TQRgb *)iTx.bits(); - - for (int x = 0; x < 144; x++) - if (data[x] == w) - data[x] = light; - - aPixmap_.convertFromImage(aTx); - iPixmap_.convertFromImage(iTx); - - if (0 != p.mask()) - { - aPixmap_.setMask(*p.mask()); - iPixmap_.setMask(*p.mask()); - } - } - tqrepaint(); -} - -void Button::paintEvent(TQPaintEvent *) -{ - bitBlt(this, alignment_ == Left ? 1 : 0, 0, - &Static::instance()->buttonBase(active_, down_)); - - int i = width() / 2 - 6; - - bitBlt(this, alignment_ == Left ? i + 1 : i, - i + 1, active_ ? &aPixmap_ : &iPixmap_); -} - -} // End namespace - -// vim:ts=2:sw=2:tw=78 -#include "Button.moc" diff --git a/kwin-styles/riscos/Button.h b/kwin-styles/riscos/Button.h deleted file mode 100644 index 0c7c66c5..00000000 --- a/kwin-styles/riscos/Button.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_BUTTON_H -#define RISC_OS_BUTTON_H - -#include <tqpixmap.h> -#include <tqwidget.h> -#include <klocale.h> -#include <kdecoration.h> - -namespace RiscOS -{ - -class Button : public TQWidget -{ - Q_OBJECT - TQ_OBJECT - - public: - - enum Type { Lower, Close, Iconify, Maximise, Sticky, Help }; - - enum Alignment { Left, Right }; - - Button(TQWidget *parent, const TQString &tip, - const ButtonState realizeButton = Qt::LeftButton); - virtual ~Button(); - - void tqsetAlignment(Alignment); - - Alignment tqalignment() const; - - protected slots: - - void setActive(bool); - - protected: - - void paintEvent(TQPaintEvent *); - - void mousePressEvent(TQMouseEvent *); - void mouseReleaseEvent(TQMouseEvent *); - void mouseMoveEvent(TQMouseEvent *) { /* Empty. */ } - - void setPixmap(const TQPixmap &); - - ButtonState realizeButtons_; - ButtonState lastButton_; - - private: - - Alignment alignment_; - bool down_; - bool active_; - TQPixmap aPixmap_, iPixmap_; -}; - -} // End namespace - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/CMakeLists.txt b/kwin-styles/riscos/CMakeLists.txt deleted file mode 100644 index 5b0e6d54..00000000 --- a/kwin-styles/riscos/CMakeLists.txt +++ /dev/null @@ -1,52 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_definitions( - -DQT_PLUGIN -) - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - -##### other data ################################ - -install( FILES riscos.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_riscos ############################### - - -set( target twin3_riscos ) - -set( ${target}_SRCS - AboveButton.cpp Button.cpp - CloseButton.cpp - HelpButton.cpp - IconifyButton.cpp - LowerButton.cpp - Manager.cpp - MaximiseButton.cpp - Static.cpp - StickyButton.cpp -) - -tde_add_kpart( ${target} AUTOMOC - SOURCES ${${target}_SRCS} - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/riscos/CloseButton.cpp b/kwin-styles/riscos/CloseButton.cpp deleted file mode 100644 index 1a4c06b5..00000000 --- a/kwin-styles/riscos/CloseButton.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "CloseButton.h" - -namespace RiscOS -{ - -/* XPM */ -static const char * const close_xpm[] = { -"12 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" . . ", -" .+. .+. ", -".+++. .+++.", -" .+++..+++. ", -" .++++++. ", -" .++++. ", -" .++++. ", -" .++++++. ", -" .+++..+++. ", -".+++. .+++.", -" .+. .+. ", -" . . "}; - -CloseButton::CloseButton(TQWidget *parent) - : Button(parent, i18n("Close")) -{ - setPixmap(TQPixmap((const char **)close_xpm)); -} - -void CloseButton::mouseReleaseEvent(TQMouseEvent *e) -{ - Button::mouseReleaseEvent(e); - - if (!rect().contains(e->pos())) - return; - - emit(closeWindow()); -} - -} // End namespace; - -// vim:ts=2:sw=2:tw=78 -#include "CloseButton.moc" diff --git a/kwin-styles/riscos/CloseButton.h b/kwin-styles/riscos/CloseButton.h deleted file mode 100644 index 615ea2ed..00000000 --- a/kwin-styles/riscos/CloseButton.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_CLOSE_BUTTON_H -#define RISC_OS_CLOSE_BUTTON_H - -#include "Button.h" - -namespace RiscOS -{ - -class CloseButton : public Button -{ - Q_OBJECT - TQ_OBJECT - - public: - - CloseButton(TQWidget *parent); - - signals: - - void closeWindow(); - - protected: - - void mouseReleaseEvent(TQMouseEvent *); -}; - -} // End namespace; - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/HelpButton.cpp b/kwin-styles/riscos/HelpButton.cpp deleted file mode 100644 index 936738eb..00000000 --- a/kwin-styles/riscos/HelpButton.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "HelpButton.h" - -namespace RiscOS -{ - -/* XPM */ -static const char * const help_xpm[] = { -"12 12 3 1", -" c None", -". c #FFFFFF", -"+ c #000000", -" . ++++ . ", -" .+....+. ", -" +......+ ", -"..+......+..", -" +......+ ", -" +......+ ", -" .+....+. ", -" . ++ + . ", -" + ++ ", -" ++ + ", -" + ++ ", -" ++ "}; - -HelpButton::HelpButton(TQWidget *parent) - : Button(parent, i18n("Help")) -{ - setPixmap(TQPixmap((const char **)help_xpm)); -} - -void HelpButton::mouseReleaseEvent(TQMouseEvent *e) -{ - Button::mouseReleaseEvent(e); - - if (!rect().contains(e->pos())) - return; - - emit(help()); -} - -} // End namespace; - -// vim:ts=2:sw=2:tw=78 -#include "HelpButton.moc" diff --git a/kwin-styles/riscos/HelpButton.h b/kwin-styles/riscos/HelpButton.h deleted file mode 100644 index d57b91ce..00000000 --- a/kwin-styles/riscos/HelpButton.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_HELP_BUTTON_H -#define RISC_OS_HELP_BUTTON_H - -#include "Button.h" - -namespace RiscOS -{ - -class HelpButton : public Button -{ - Q_OBJECT - TQ_OBJECT - - public: - - HelpButton(TQWidget *parent); - - signals: - - void help(); - - protected: - - void mouseReleaseEvent(TQMouseEvent *); -}; - -} // End namespace; - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/IconifyButton.cpp b/kwin-styles/riscos/IconifyButton.cpp deleted file mode 100644 index b5eef9e5..00000000 --- a/kwin-styles/riscos/IconifyButton.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "IconifyButton.h" - -namespace RiscOS -{ - -/* XPM */ -static const char * const iconify_xpm[] = { -"12 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" ", -" ", -" ", -" ", -" .......... ", -".++++++++++.", -".++++++++++.", -" .......... ", -" ", -" ", -" ", -" "}; - -IconifyButton::IconifyButton(TQWidget *parent) - : Button(parent, i18n("Minimize")) -{ - setPixmap(TQPixmap((const char **)iconify_xpm)); -} - -void IconifyButton::mouseReleaseEvent(TQMouseEvent *e) -{ - Button::mouseReleaseEvent(e); - - if (!rect().contains(e->pos())) - return; - - emit(iconify()); -} - -} // End namespace; - -// vim:ts=2:sw=2:tw=78 -#include "IconifyButton.moc" diff --git a/kwin-styles/riscos/IconifyButton.h b/kwin-styles/riscos/IconifyButton.h deleted file mode 100644 index 54e44aba..00000000 --- a/kwin-styles/riscos/IconifyButton.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_ICONIFY_BUTTON_H -#define RISC_OS_ICONIFY_BUTTON_H - -#include "Button.h" - -namespace RiscOS -{ - -class IconifyButton : public Button -{ - Q_OBJECT - TQ_OBJECT - - public: - - IconifyButton(TQWidget *parent); - - signals: - - void iconify(); - - protected: - - void mouseReleaseEvent(TQMouseEvent *); -}; - -} // End namespace; - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/LowerButton.cpp b/kwin-styles/riscos/LowerButton.cpp deleted file mode 100644 index 7f03e41f..00000000 --- a/kwin-styles/riscos/LowerButton.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "LowerButton.h" - -namespace RiscOS -{ - -/* XPM */ -static const char * const lower_xpm[] = { -"12 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" ", -" ..... ", -".+++++. ", -".+++++. ", -".+++++..... ", -".++++.+++++.", -".++++.+++++.", -" .....+++++.", -" .+++++.", -" .+++++.", -" ..... ", -" "}; - -LowerButton::LowerButton(TQWidget *parent) - : Button(parent, i18n("Keep below others")) -{ - setPixmap(TQPixmap((const char **)lower_xpm)); -} - -void LowerButton::mouseReleaseEvent(TQMouseEvent *e) -{ - Button::mouseReleaseEvent(e); - - if (!rect().contains(e->pos())) - return; - - emit(lower()); -} - -} // End namespace; - -// vim:ts=2:sw=2:tw=78 -#include "LowerButton.moc" diff --git a/kwin-styles/riscos/LowerButton.h b/kwin-styles/riscos/LowerButton.h deleted file mode 100644 index 8616d688..00000000 --- a/kwin-styles/riscos/LowerButton.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_LOWER_BUTTON_H -#define RISC_OS_LOWER_BUTTON_H - -#include "Button.h" - -namespace RiscOS -{ - -class LowerButton : public Button -{ - Q_OBJECT - TQ_OBJECT - - public: - - LowerButton(TQWidget *parent); - - signals: - - void lower(); - - protected: - - void mouseReleaseEvent(TQMouseEvent *); -}; - -} // End namespace; - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/Makefile.am b/kwin-styles/riscos/Makefile.am deleted file mode 100644 index 773c341b..00000000 --- a/kwin-styles/riscos/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -AUTOMAKE_OPTIONS = foreign - -KDE_CXXFLAGS = -DQT_PLUGIN - -INCLUDES = $(all_includes) - -twindir = $(kde_datadir)/twin/ -twin_DATA = riscos.desktop - -noinst_HEADERS = AboveButton.h \ - Button.h \ - CloseButton.h \ - HelpButton.h \ - IconifyButton.h \ - LowerButton.h \ - Manager.h \ - MaximiseButton.h \ - Palette.h \ - Static.h \ - StickyButton.h - -kde_module_LTLIBRARIES = twin3_riscos.la -twin3_riscos_la_SOURCES = AboveButton.cpp \ - Button.cpp \ - CloseButton.cpp \ - HelpButton.cpp \ - IconifyButton.cpp \ - LowerButton.cpp \ - Manager.cpp \ - MaximiseButton.cpp \ - Static.cpp \ - StickyButton.cpp - -twin3_riscos_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin3_riscos_la_LIBADD = $(LIB_TDEUI) -ltdecorations -twin3_riscos_la_METASOURCES = AUTO - -EXTRA_DIST = $(twin_DATA) - diff --git a/kwin-styles/riscos/Manager.cpp b/kwin-styles/riscos/Manager.cpp deleted file mode 100644 index 837bec9c..00000000 --- a/kwin-styles/riscos/Manager.cpp +++ /dev/null @@ -1,767 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include <unistd.h> // for usleep -#include <config.h> // for usleep on non-linux platforms -#include <math.h> // for sin and cos - -#include <tqapplication.h> -#include <tqimage.h> -#include <tqlabel.h> -#include <tqlayout.h> -#include <tqpainter.h> - -#include <netwm.h> - -#include "Manager.h" -#include "Static.h" -#include "AboveButton.h" -#include "CloseButton.h" -#include "HelpButton.h" -#include "IconifyButton.h" -#include "LowerButton.h" -#include "MaximiseButton.h" -#include "StickyButton.h" - -extern "C" -{ - KDE_EXPORT KDecorationFactory* create_factory() - { - return new RiscOS::Factory(); - } -} - - -namespace RiscOS -{ - -Manager::Manager(KDecorationBridge *bridge, - KDecorationFactory *factory) - : KDecoration(bridge, factory), - topLayout_ (NULL), - titleLayout_ (NULL), - titleSpacer_ (NULL) -{ -} - -Manager::~Manager() -{ -} - -void Manager::init() -{ - createMainWidget(WNoAutoErase); - - widget()->installEventFilter(this); - widget()->setBackgroundMode(NoBackground); - - leftButtonList_.setAutoDelete(true); - rightButtonList_.setAutoDelete(true); - - resetLayout(); -} - -bool Manager::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; - case TQEvent::MouseButtonRelease: - return false; - case TQEvent::Show: - return false; - case TQEvent::MouseMove: - return false; - case TQEvent::Enter: - return false; - case TQEvent::Leave: - return false; - case TQEvent::Move: - return false; - default: - return false; - } -} - -void Manager::reset(unsigned long /*changed*/) -{ - resetLayout(); -} - -void Manager::borders(int &left, int &right, int &top, int &bottom) const -{ - left = right = 1; - top = Static::instance()->titleHeight(); - bottom = isResizable() ? Static::instance()->resizeHeight() : 1; -} - -void Manager::resize(const TQSize &s) -{ - widget()->resize(s); -} - -TQSize Manager::tqminimumSize() const -{ - return widget()->tqminimumSize(); -} - -void Manager::activeChange() -{ - updateTitleBuffer(); - widget()->tqrepaint(); - emit(activeChanged(isActive())); -} - -void Manager::captionChange() -{ - updateTitleBuffer(); - widget()->tqrepaint(); -} - -void Manager::iconChange() -{ -} - -void Manager::maximizeChange() -{ - emit(maximizeChanged(maximizeMode() == MaximizeFull)); -} - -void Manager::desktopChange() -{ -} - -void Manager::shadeChange() -{ -} - -void Manager::paintEvent(TQPaintEvent *e) -{ - TQPainter p(widget()); - - TQRect r(e->rect()); - - bool intersectsLeft = r.intersects(TQRect(0, 0, 1, height())); - - bool intersectsRight = - r.intersects(TQRect(width() - 1, 0, width(), height())); - - if (intersectsLeft || intersectsRight) - { - p.setPen(TQt::black); - - if (intersectsLeft) - p.drawLine(0, r.top(), 0, r.bottom()); - - if (intersectsRight) - p.drawLine(width() - 1, r.top(), width() - 1, r.bottom()); - } - - Static * s = Static::instance(); - - bool active = isActive(); - - // Title bar. - - TQRect tr = titleSpacer_->tqgeometry(); - bitBlt(widget(), tr.topLeft(), &titleBuf_); - - // Resize bar. - - if (isResizable()) - { - int rbt = height() - Static::instance()->resizeHeight(); // Resize bar top - - bitBlt(widget(), 0, rbt, &(s->resize(active))); - bitBlt(widget(), 30, rbt, &(s->resizeMidLeft(active))); - - p.drawTiledPixmap(32, rbt, width() - 34, - Static::instance()->resizeHeight(), - s->resizeMidMid(active)); - - bitBlt(widget(), width() - 32, rbt, &(s->resizeMidRight(active))); - bitBlt(widget(), width() - 30, rbt, &(s->resize(active))); - } - else - p.drawLine(1, height() - 1, width() - 2, height() - 1); -} - -void Manager::resizeEvent(TQResizeEvent*) -{ - updateButtonVisibility(); - updateTitleBuffer(); - widget()->tqrepaint(); -} - -void Manager::updateButtonVisibility() -{ -#if 0 - enum SizeProblem = { None, Small, Medium, Big }; - SizeProblem sizeProblem = None; - - if (width() < 80) sizeProblem = Big; - else if (width() < 100) sizeProblem = Medium; - else if (width() < 180) sizeProblem = Small; - - switch (sizeProblem) { - - case Small: - above_ ->hide(); - lower_ ->hide(); - sticky_ ->hide(); - help_ ->hide(); - iconify_ ->show(); - maximise_ ->hide(); - close_ ->show(); - break; - - case Medium: - above_ ->hide(); - lower_ ->hide(); - sticky_ ->hide(); - help_ ->hide(); - iconify_ ->hide(); - maximise_ ->hide(); - close_ ->show(); - break; - - case Big: - above_ ->hide(); - lower_ ->hide(); - sticky_ ->hide(); - help_ ->hide(); - iconify_ ->hide(); - maximise_ ->hide(); - close_ ->hide(); - break; - - case None: - default: - above_ ->show(); - lower_ ->show(); - sticky_ ->show(); - if (providesContextHelp()) - help_->show(); - iconify_ ->show(); - maximise_ ->show(); - close_ ->show(); - break; - } - - tqlayout()->activate(); -#endif -} - -void Manager::updateTitleBuffer() -{ - bool active = isActive(); - - Static * s = Static::instance(); - - TQRect tr = titleSpacer_->tqgeometry(); - - if (tr.width() == 0 || tr.height() == 0) - titleBuf_.resize(8, 8); - else - titleBuf_.resize(tr.size()); - - TQPainter p(&titleBuf_); - - p.drawPixmap(0, 0, s->titleTextLeft(active)); - - p.drawTiledPixmap(3, 0, tr.width() - 6, Static::instance()->titleHeight(), - s->titleTextMid(active)); - - p.setPen(options()->color(KDecorationOptions::ColorFont, active)); - - p.setFont(options()->font(active)); - - p.drawText(4, 2, tr.width() - 8, Static::instance()->titleHeight() - 4, - AlignCenter, caption()); - - p.drawPixmap(tr.width() - 3, 0, s->titleTextRight(active)); -} - -KDecoration::Position Manager::mousePosition(const TQPoint& p) const -{ - Position m = PositionCenter; - - // Look out for off-by-one errors here. - - if (isResizable()) - { - if (p.y() > (height() - (Static::instance()->resizeHeight() + 1))) - { - // Keep order ! - - if (p.x() >= (width() - 30)) - m = PositionBottomRight; - else if (p.x() <= 30) - m = PositionBottomLeft; - else - m = PositionBottom; - } - else - { - m = PositionCenter; - // Client::mousePosition(p); - } - } - else - { - m = PositionCenter; - // Client::mousePosition(p); - } - - return m; -} - -void Manager::mouseDoubleClickEvent(TQMouseEvent *e) -{ - if (e->button() == Qt::LeftButton && titleSpacer_->tqgeometry().contains(e->pos())) - titlebarDblClickOperation(); -} - -void Manager::wheelEvent(TQWheelEvent *e) -{ - if (isSetShade() || titleLayout_->tqgeometry().contains(e->pos()) ) - titlebarMouseWheelOperation( e->delta()); -} - -void Manager::paletteChange(const TQPalette &) -{ - resetLayout(); -} - -void Manager::stickyChange(bool b) -{ - emit(stickyChanged(b)); -} - -void Manager::slotToggleSticky() -{ - toggleOnAllDesktops(); - emit(stickyChanged(isOnAllDesktops())); -} - -void Manager::slotAbove() -{ - setKeepAbove(!keepAbove()); -} - -void Manager::slotLower() -{ - setKeepBelow(!keepBelow()); -} - -void Manager::slotMaximizeClicked(ButtonState state) -{ -#if KDE_IS_VERSION(3, 3, 0) - maximize(state); -#else - switch (state) - { - case RightButton: - maximize(maximizeMode() ^ MaximizeHorizontal); - break; - - case MidButton: - maximize(maximizeMode() ^ MaximizeVertical); - break; - - case LeftButton: - default: - maximize(maximizeMode() == MaximizeFull ? MaximizeRestore - : MaximizeFull); - break; - } -#endif - emit(maximizeChanged(maximizeMode() == MaximizeFull)); -} - -bool Manager::animateMinimize(bool iconify) -{ - int style = Static::instance()->animationStyle(); - - switch (style) - { - case 1: - { - // Double twisting double back, with pike ;) - - if (!iconify) // No animation for restore. - return true; - - // Go away quick. - helperShowHide(false); - tqApp->syncX(); - - TQRect r = iconGeometry(); - - if (!r.isValid()) - return true; - - // Algorithm taken from Window Maker (http://www.windowmaker.org) - - int sx = geometry().x(); - int sy = geometry().y(); - int sw = width(); - int sh = height(); - int dx = r.x(); - int dy = r.y(); - int dw = r.width(); - int dh = r.height(); - - double steps = 12; - - double xstep = double((dx-sx)/steps); - double ystep = double((dy-sy)/steps); - double wstep = double((dw-sw)/steps); - double hstep = double((dh-sh)/steps); - - double cx = sx; - double cy = sy; - double cw = sw; - double ch = sh; - - double finalAngle = 3.14159265358979323846; - - double delta = finalAngle / steps; - - TQPainter p(workspaceWidget()); - p.setRasterOp(TQt::NotROP); - - for (double angle = 0; ; angle += delta) - { - if (angle > finalAngle) - angle = finalAngle; - - double dx = (cw / 10) - ((cw / 5) * sin(angle)); - double dch = (ch / 2) * cos(angle); - double midy = cy + (ch / 2); - - TQPoint p1(int(cx + dx), int(midy - dch)); - TQPoint p2(int(cx + cw - dx), p1.y()); - TQPoint p3(int(cx + dw + dx), int(midy + dch)); - TQPoint p4(int(cx - dx), p3.y()); - - grabXServer(); - - p.drawLine(p1, p2); - p.drawLine(p2, p3); - p.drawLine(p3, p4); - p.drawLine(p4, p1); - - p.flush(); - - usleep(500); - - p.drawLine(p1, p2); - p.drawLine(p2, p3); - p.drawLine(p3, p4); - p.drawLine(p4, p1); - - ungrabXServer(); - - cx += xstep; - cy += ystep; - cw += wstep; - ch += hstep; - - if (angle >= finalAngle) - break; - } - } - break; - - case 2: - { - // KVirc style ? Maybe. For qwertz. - - if (!iconify) // No animation for restore. - return true; - - // Go away quick. - helperShowHide(false); - tqApp->syncX(); - - int stepCount = 12; - - TQRect r(geometry()); - - int dx = r.width() / (stepCount * 2); - int dy = r.height() / (stepCount * 2); - - TQPainter p(workspaceWidget()); - p.setRasterOp(TQt::NotROP); - - for (int step = 0; step < stepCount; step++) - { - r.moveBy(dx, dy); - r.setWidth(r.width() - 2 * dx); - r.setHeight(r.height() - 2 * dy); - - grabXServer(); - - p.drawRect(r); - p.flush(); - usleep(200); - p.drawRect(r); - - ungrabXServer(); - } - } - break; - - - default: - { - TQRect icongeom = iconGeometry(); - - if (!icongeom.isValid()) - return true; - - TQRect wingeom = geometry(); - - TQPainter p(workspaceWidget()); - - p.setRasterOp(TQt::NotROP); -#if 0 - if (iconify) - p.setClipRegion(TQRegion(workspaceWidget()->rect()) - wingeom); -#endif - grabXServer(); - - p.drawLine(wingeom.bottomRight(), icongeom.bottomRight()); - p.drawLine(wingeom.bottomLeft(), icongeom.bottomLeft()); - p.drawLine(wingeom.topLeft(), icongeom.topLeft()); - p.drawLine(wingeom.topRight(), icongeom.topRight()); - - p.flush(); - - tqApp->syncX(); - - usleep(30000); - - p.drawLine(wingeom.bottomRight(), icongeom.bottomRight()); - p.drawLine(wingeom.bottomLeft(), icongeom.bottomLeft()); - p.drawLine(wingeom.topLeft(), icongeom.topLeft()); - p.drawLine(wingeom.topRight(), icongeom.topRight()); - - ungrabXServer(); - } - break; - } - return true; -} - -void Manager::createTitle() -{ - leftButtonList_.clear(); - rightButtonList_.clear(); - - TQString buttons; - - if (options()->customButtonPositions()) - buttons = options()->titleButtonsLeft() + "|" + - options()->titleButtonsRight(); - else - buttons = "XSH|IA"; - - TQPtrList<Button> *buttonList = &leftButtonList_; - - for (unsigned int i = 0; i < buttons.length(); ++i) - { - Button * tb = NULL; - - switch (buttons[i].latin1()) - { - case 'S': // Sticky - tb = new StickyButton(widget()); - connect(this, TQT_SIGNAL(stickyChanged(bool)), - tb, TQT_SLOT(setOn(bool))); - connect(tb, TQT_SIGNAL(toggleSticky()), this, TQT_SLOT(slotToggleSticky())); - emit(stickyChanged(isOnAllDesktops())); - break; - - case 'H': // Help - if (providesContextHelp()) - { - tb = new HelpButton(widget()); - connect(tb, TQT_SIGNAL(help()), this, TQT_SLOT(showContextHelp())); - } - break; - - case 'I': // Minimize - if (isMinimizable()) - { - tb = new IconifyButton(widget()); - connect(tb, TQT_SIGNAL(iconify()), this, TQT_SLOT(minimize())); - } - break; - - case 'A': // Maximize - if (isMaximizable()) - { - tb = new MaximiseButton(widget()); - connect(tb, TQT_SIGNAL(maximizeClicked(ButtonState)), - this, TQT_SLOT(slotMaximizeClicked(ButtonState))); - connect(this, TQT_SIGNAL(maximizeChanged(bool)), - tb, TQT_SLOT(setOn(bool))); - emit(maximizeChanged(maximizeMode() == MaximizeFull)); - } - break; - - case 'F': // Above - tb = new AboveButton(widget()); - connect(tb, TQT_SIGNAL(above()), this, TQT_SLOT(slotAbove())); - break; - - case 'B': // Lower - tb = new LowerButton(widget()); - connect(tb, TQT_SIGNAL(lower()), this, TQT_SLOT(slotLower())); - break; - - case 'X': // Close - if (isCloseable()) - { - tb = new CloseButton(widget()); - connect(tb, TQT_SIGNAL(closeWindow()), this, TQT_SLOT(closeWindow())); - } - break; - - case '|': - buttonList = &rightButtonList_; - break; - } - - if (tb != NULL) - { - connect(this, TQT_SIGNAL(activeChanged(bool)), tb, TQT_SLOT(setActive(bool))); - buttonList->append(tb); - } - } - - for (TQPtrListIterator<Button> it(leftButtonList_); it.current(); ++it) - { - it.current()->tqsetAlignment(Button::Left); - titleLayout_->addWidget(it.current()); - } - - titleSpacer_ = new TQSpacerItem(0, Static::instance()->titleHeight(), - TQSizePolicy::Expanding, TQSizePolicy::Fixed); - - titleLayout_->addItem(titleSpacer_); - - for (TQPtrListIterator<Button> it(rightButtonList_); it.current(); ++it) - { - it.current()->tqsetAlignment(Button::Right); - titleLayout_->addWidget(it.current()); - } -} - -void Manager::resetLayout() -{ - delete topLayout_; - topLayout_ = new TQVBoxLayout(widget(), 0, 0); - topLayout_->setResizeMode(TQLayout::FreeResize); - - titleLayout_ = new TQBoxLayout(topLayout_, TQBoxLayout::LeftToRight, 0, 0); - titleLayout_->setResizeMode(TQLayout::FreeResize); - - createTitle(); - - TQBoxLayout *midLayout = new TQBoxLayout(topLayout_, TQBoxLayout::LeftToRight, - 0, 0); - midLayout->setResizeMode(TQLayout::FreeResize); - midLayout->addSpacing(1); - if (isPreview()) - midLayout->addWidget( - new TQLabel(i18n("<center><b>RiscOS preview</b></center>"), widget())); - midLayout->addSpacing(1); - - if (isResizable()) - topLayout_->addSpacing(Static::instance()->resizeHeight()); - else - topLayout_->addSpacing(1); -} - -// -------------------- - -Factory::Factory() -{ - (void) RiscOS::Static::instance(); -} - -Factory::~Factory() -{ - delete RiscOS::Static::instance(); -} - -bool Factory::reset(unsigned long /*changed*/) -{ - RiscOS::Static::instance()->reset(); - return true; -} - -bool Factory::supports( Ability ability ) -{ - switch( ability ) - { - case AbilityAnnounceButtons: - case AbilityButtonOnAllDesktops: - case AbilityButtonHelp: - case AbilityButtonMinimize: - case AbilityButtonMaximize: - case AbilityButtonClose: - case AbilityButtonAboveOthers: - case AbilityButtonBelowOthers: - return true; - default: - return false; - }; -} - -KDecoration* Factory::createDecoration(KDecorationBridge *bridge) -{ - return new Manager(bridge, this); -} - -} // End namespace - -// vim:ts=2:sw=2:tw=78 -#include "Manager.moc" diff --git a/kwin-styles/riscos/Manager.h b/kwin-styles/riscos/Manager.h deleted file mode 100644 index 5668a7fc..00000000 --- a/kwin-styles/riscos/Manager.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_MANAGER_H -#define RISC_OS_MANAGER_H - -#include <tqdict.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> - -class TQSpacerItem; -class TQVBoxLayout; -class TQBoxLayout; - -namespace RiscOS -{ - -class LowerButton; -class CloseButton; -class IconifyButton; -class MaximiseButton; -class StickyButton; -class HelpButton; -class Button; - -class Manager : public KDecoration -{ - Q_OBJECT - TQ_OBJECT - - public: - - Manager(KDecorationBridge*, KDecorationFactory*); - ~Manager(); - void init(); - bool eventFilter(TQObject*, TQEvent*); - void reset(unsigned long changed); - void borders(int&, int&, int&, int&) const; - void resize(const TQSize&); - TQSize tqminimumSize() const; - void activeChange(); - void captionChange(); - void iconChange(); - void maximizeChange(); - void desktopChange(); - void shadeChange(); - - signals: - - void maximizeChanged(bool); - void stickyChanged(bool); - void activeChanged(bool); - - public slots: - - void slotAbove(); - void slotLower(); - void slotMaximizeClicked(ButtonState); - void slotToggleSticky(); - - protected: - - KDecoration::Position mousePosition(const TQPoint &) const; - void paletteChange(const TQPalette &); - void activeChange(bool); - void stickyChange(bool); - void paintEvent(TQPaintEvent *); - void resizeEvent(TQResizeEvent *); - void mouseDoubleClickEvent(TQMouseEvent *); - void wheelEvent(TQWheelEvent *e); - bool animateMinimize(bool); - void updateButtonVisibility(); - void updateTitleBuffer(); - - void createTitle(); - void resetLayout(); - - private: - - TQVBoxLayout *topLayout_; - TQBoxLayout *titleLayout_; - TQSpacerItem *titleSpacer_; - - TQPixmap titleBuf_; - TQPtrList<Button> leftButtonList_; - TQPtrList<Button> rightButtonList_; -}; - -class Factory : public TQObject, public KDecorationFactory -{ - Q_OBJECT - TQ_OBJECT - - public: - Factory(); - ~Factory(); - virtual bool reset(unsigned long changed); - virtual KDecoration* createDecoration(KDecorationBridge*); - virtual bool supports( Ability ability ); -}; - -} // End namespace - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/MaximiseButton.cpp b/kwin-styles/riscos/MaximiseButton.cpp deleted file mode 100644 index dcc1b52a..00000000 --- a/kwin-styles/riscos/MaximiseButton.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "MaximiseButton.h" - -#include <tqtooltip.h> - -namespace RiscOS -{ - -/* XPM */ -static const char * const maximise_xpm[] = { -"12 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" ", -" ........ ", -" .++++++++. ", -" .++++++++. ", -" .++++++++. ", -" .++++++++. ", -" .++++++++. ", -" .++++++++. ", -" .++++++++. ", -" .++++++++. ", -" ........ ", -" "}; - -/* XPM */ -static const char * const unmaximise_xpm[] = { -"12 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" ", -" ", -" ...... ", -" .++++++. ", -" .++++++. ", -" .++++++. ", -" .++++++. ", -" .++++++. ", -" .++++++. ", -" ...... ", -" ", -" "}; - -MaximiseButton::MaximiseButton(TQWidget * parent) - : Button(parent, i18n("Maximize"), - (ButtonState)(Qt::LeftButton|Qt::MidButton|Qt::RightButton)), - on_(false) -{ - setPixmap(TQPixmap((const char **)maximise_xpm)); -} - -void MaximiseButton::setOn(bool on) -{ - on_ = on; - setPixmap(on_ ? TQPixmap((const char **)unmaximise_xpm) - : TQPixmap((const char **)maximise_xpm)); - tqrepaint(); - TQToolTip::remove(this); - TQToolTip::add(this, on_ ? i18n("Restore") : i18n("Maximize")); -} - -void MaximiseButton::mouseReleaseEvent(TQMouseEvent *e) -{ - Button::mouseReleaseEvent(e); - - if (!rect().contains(e->pos())) - return; - emit(maximizeClicked(lastButton_)); -} - -} // End namespace - -// vim:ts=2:sw=2:tw=78 -#include "MaximiseButton.moc" diff --git a/kwin-styles/riscos/MaximiseButton.h b/kwin-styles/riscos/MaximiseButton.h deleted file mode 100644 index 770c9370..00000000 --- a/kwin-styles/riscos/MaximiseButton.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_MAXIMISE_BUTTON_H -#define RISC_OS_MAXIMISE_BUTTON_H - -#include "Button.h" - -namespace RiscOS -{ - -class MaximiseButton : public Button -{ - Q_OBJECT - TQ_OBJECT - - public: - - MaximiseButton(TQWidget *parent); - - public slots: - - void setOn(bool); - - signals: - - void maximizeClicked(ButtonState); - - protected: - - void mouseReleaseEvent(TQMouseEvent *); - - private: - - bool on_; -}; - -} // End namespace - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/Palette.h b/kwin-styles/riscos/Palette.h deleted file mode 100644 index 3fb71ab0..00000000 --- a/kwin-styles/riscos/Palette.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_PALETTE_H -#define RISC_OS_PALETTE_H - -#include <tqmemarray.h> -#include <tqglobal.h> - -namespace RiscOS -{ - -class Palette -{ - public: - - Palette() - { - data_.resize(8); - - data_[0] = 0xFFFFFFFF; - data_[1] = 0xFFDCDCDC; - data_[2] = 0xFFC3C3C3; - data_[3] = 0xFFA0A0A0; - data_[4] = 0xFF808080; - data_[5] = 0xFF585858; - data_[6] = 0xFF303030; - data_[7] = 0xFF000000; - } - - TQRgb& operator [] (int idx) - { - return data_[idx]; - } - - TQRgb operator [] (int idx) const - { - return data_[idx]; - } - - private: - - TQMemArray<TQRgb> data_; -}; - -} // End namespace - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/README b/kwin-styles/riscos/README deleted file mode 100644 index 39d1d959..00000000 --- a/kwin-styles/riscos/README +++ /dev/null @@ -1,90 +0,0 @@ -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 twin 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 twin 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. - diff --git a/kwin-styles/riscos/Static.cpp b/kwin-styles/riscos/Static.cpp deleted file mode 100644 index 7aac6f5a..00000000 --- a/kwin-styles/riscos/Static.cpp +++ /dev/null @@ -1,540 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -// for enable-final -#ifdef Bool -#undef Bool -#endif - -#include <tqimage.h> -#include <tqpixmap.h> -#include <tqpainter.h> -#include <tqptrlist.h> - -#include <kdecoration.h> - -// #include <ksimpleconfig.h> - -#include "Static.h" - -namespace RiscOS -{ - -/* XPM */ -static const char * const texture_xpm[] = { -"64 12 3 1", -" c None", -"a c #000000", -"b c #FFFFFF", -" b b b b b b b a b ", -" b aa b aaa aaa b a b aab bb a ", -" b b a b b b b aa b b aa ", -" b b b a a b b b b aa ab ab ", -" b b b b b b b ba ", -" aaa aaa aa b b b b b b ", -" b b bb a b aa b a a aaa a b ", -" b b b b b a b b b b b", -" b b b b a a b b aa b baa ", -" a b a bb aa bb aa aaa b aa a ", -" a a aab b b aa aab a b ", -" b a b b aaa a b bb b b b b"}; - -Static* Static::instance_ = NULL; - -Static::Static() -{ - instance_ = this; - _init(); -} - -Static::~Static() -{ - instance_ = NULL; -} - -const TQPixmap& Static::titleTextLeft(bool active) const -{ - return active ? aTitleTextLeft_ : iTitleTextLeft_; -} - -const TQPixmap& Static::titleTextRight(bool active) const -{ - return active ? aTitleTextRight_ : iTitleTextRight_; -} - -const TQPixmap& Static::resizeMidLeft(bool active) const -{ - return active ? aResizeMidLeft_ : iResizeMidLeft_; -} - -const TQPixmap& Static::resizeMidRight(bool active) const -{ - return active ? aResizeMidRight_ : iResizeMidRight_; -} - -const TQPixmap& Static::titleTextMid(bool active) const -{ - return active ? aTitleTextMid_ : iTitleTextMid_; -} - -const TQPixmap& Static::resizeMidMid(bool active) const -{ - return active ? aResizeMid_ : iResizeMid_; -} - -const TQPixmap& Static::resize(bool active) const -{ - return active ? aResize_ : iResize_; -} - -int Static::animationStyle() const -{ - return animationStyle_; -} - -int Static::titleHeight() const -{ - return titleHeight_; -} - -int Static::resizeHeight() const -{ - return resizeHeight_; -} - -void Static::_drawBorder(TQPixmap &pix, int w, int h) -{ - // 0111111113 - // 1122222235 - // 12 46 - // 12 46 - // 12 46 - // 1344444476 - // 3566666667 - - painter_.begin(&pix); - painter_.translate(transx, transy); - - TQColor c0 = down_ ? palette_[7] : palette_[0]; - TQColor c1 = down_ ? palette_[6] : palette_[1]; - TQColor c2 = down_ ? palette_[5] : palette_[2]; - TQColor c3 = down_ ? palette_[4] : palette_[3]; - TQColor c4 = down_ ? palette_[3] : palette_[4]; - TQColor c5 = down_ ? palette_[2] : palette_[5]; - TQColor c6 = down_ ? palette_[2] : palette_[6]; - TQColor 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(); - - painter_.resetXForm(); -} - -void setPalette(Palette &pal, TQColor 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 Static::_init() -{ - hicolour_ = TQPixmap::defaultDepth() > 8; - animationStyle_ = 0; - updatePixmaps(); -} - -void Static::reset() -{ - updatePixmaps(); -// Workspace::self()->slotResetAllClientsDelayed(); -} - -void Static::updatePixmaps() -{ - _initSizes(); - - _resizeAllPixmaps(); - - _blankAllPixmaps(); - - if (hicolour_) - { - _initPalettes(); - _initTextures(); - } - - _drawTitleTextAreaSides(); - - _drawResizeCentralAreaSides(); - - _drawTitleTextAreaBackground(); - - _drawResizeCentralAreaBackground(); - - _drawResizeHandles(); - - _drawButtonBackgrounds(); -} - -void Static::_createTexture(TQPixmap &px, int t, bool active) -{ - const TQImage texture(TQPixmap((const char **)texture_xpm).convertToImage()); - const TQRgb w(tqRgb(255, 255, 255)); - const TQRgb b(tqRgb(0, 0, 0)); - - TQColor c(KDecoration::options()->color(KDecoration::ColorType(t), active)); - - TQRgb mid (c.rgb()); - TQRgb light (c.light(110).rgb()); - TQRgb dark (c.dark(110).rgb()); - - TQRgb* data(reinterpret_cast<TQRgb *>(const_cast<TQImage&>(texture).bits())); - - for (int x = 0; x < 64*12; x++) - if (data[x] == w) - data[x] = light; - else if (data[x] == b) - data[x] = dark; - else - data[x] = mid; - - px.convertFromImage(texture); -} - -const TQPixmap& Static::buttonBase(bool active, bool down) const -{ - if (active) - return down ? aButtonDown_ : aButtonUp_; - else - return down ? iButtonDown_ : iButtonUp_; -} - -void Static::_initSizes() -{ - TQFont f(KDecoration::options()->font(true)); // XXX false doesn't work right at the moment - - TQFontMetrics fm(f); - - int h = fm.height(); - - titleHeight_ = h + 6; - - if (titleHeight_ < 20) - titleHeight_ = 20; - - buttonSize_ = titleHeight_ - 1; - - resizeHeight_ = 10; -} - -void Static::_resizeAllPixmaps() -{ - aResize_ .resize(30, resizeHeight_); - iResize_ .resize(30, resizeHeight_); - aTitleTextLeft_ .resize( 3, titleHeight_); - aTitleTextRight_.resize( 3, titleHeight_); - iTitleTextLeft_ .resize( 3, titleHeight_); - iTitleTextRight_.resize( 3, titleHeight_); - aTitleTextMid_ .resize(64, titleHeight_); - iTitleTextMid_ .resize(64, titleHeight_); - aResizeMidLeft_ .resize( 3, resizeHeight_); - aResizeMidRight_.resize( 3, resizeHeight_); - iResizeMidLeft_ .resize( 3, resizeHeight_); - iResizeMidRight_.resize( 3, resizeHeight_); - aResizeMid_ .resize(64, resizeHeight_); - iResizeMid_ .resize(64, resizeHeight_); - - aButtonUp_ .resize(buttonSize_, buttonSize_); - iButtonUp_ .resize(buttonSize_, buttonSize_); - aButtonDown_ .resize(buttonSize_, buttonSize_); - iButtonDown_ .resize(buttonSize_, buttonSize_); -} - -void Static::_blankAllPixmaps() -{ - aResize_ .fill(TQt::black); - iResize_ .fill(TQt::black); - aTitleTextLeft_ .fill(TQt::black); - aTitleTextRight_.fill(TQt::black); - iTitleTextLeft_ .fill(TQt::black); - iTitleTextRight_.fill(TQt::black); - aTitleTextMid_ .fill(TQt::black); - iTitleTextMid_ .fill(TQt::black); - aResizeMidLeft_ .fill(TQt::black); - aResizeMidRight_.fill(TQt::black); - iResizeMidLeft_ .fill(TQt::black); - iResizeMidRight_.fill(TQt::black); - aResizeMid_ .fill(TQt::black); - iResizeMid_ .fill(TQt::black); - aButtonUp_ .fill(TQt::black); - iButtonUp_ .fill(TQt::black); - aButtonDown_ .fill(TQt::black); - iButtonDown_ .fill(TQt::black); -} - -void Static::_initPalettes() -{ - const KDecorationOptions* options = KDecoration::options(); - setPalette(aButPal_, options->color(KDecoration::ColorButtonBg, true)); - setPalette(iButPal_, options->color(KDecoration::ColorButtonBg, false)); - - setPalette(aTitlePal_, options->color(KDecoration::ColorTitleBar, true)); - setPalette(iTitlePal_, options->color(KDecoration::ColorTitleBar, false)); - - setPalette(aResizePal_, options->color(KDecoration::ColorTitleBar, true)); - setPalette(iResizePal_, options->color(KDecoration::ColorTitleBar, false)); -} - -void Static::_initTextures() -{ - _createTexture(aTexture_, KDecoration::ColorTitleBar, true); - _createTexture(iTexture_, KDecoration::ColorTitleBar, false); - _createTexture(abTexture_, KDecoration::ColorButtonBg, true); - _createTexture(ibTexture_, KDecoration::ColorButtonBg, false); -} - -void Static::_drawTitleTextAreaSides() -{ - TQPixmap temp(4, titleHeight_); - temp.fill(TQt::black); - - transx = transy = 0.0; - - palette_ = aTitlePal_; - down_ = false; - - _drawBorder(temp, 4, titleHeight_ - 2); - - painter_.begin(&aTitleTextLeft_); - painter_.tqdrawPixmap(1, 1, temp, 0, 1); - painter_.end(); - - painter_.begin(&aTitleTextRight_); - painter_.tqdrawPixmap(0, 1, temp, 2, 1); - painter_.end(); - - palette_ = iTitlePal_; - _drawBorder(temp, 4, titleHeight_ - 2); - - painter_.begin(&iTitleTextLeft_); - painter_.tqdrawPixmap(1, 1, temp, 0, 1); - painter_.end(); - - painter_.begin(&iTitleTextRight_); - painter_.tqdrawPixmap(0, 1, temp, 2, 1); - painter_.end(); -} - -void Static::_drawResizeCentralAreaSides() -{ - TQPixmap temp(4, resizeHeight_); - temp.fill(TQt::black); - - transy = 1.0; - - palette_ = aResizePal_; - - _drawBorder(temp, 4, resizeHeight_ - 3); - - painter_.begin(&aResizeMidLeft_); - painter_.tqdrawPixmap(0, 1, temp, 0, 1); - painter_.end(); - - painter_.begin(&aResizeMidRight_); - painter_.tqdrawPixmap(0, 1, temp, 2, 1); - painter_.end(); - - palette_ = iResizePal_; - _drawBorder(temp, 4, resizeHeight_ - 3); - - painter_.begin(&iResizeMidLeft_); - painter_.tqdrawPixmap(0, 1, temp, 0, 1); - painter_.end(); - - painter_.begin(&iResizeMidRight_); - painter_.tqdrawPixmap(0, 1, temp, 2, 1); - painter_.end(); -} - -void Static::_drawTitleTextAreaBackground() -{ - TQPixmap temp(70, titleHeight_); - temp.fill(TQt::black); - - transx = transy = 0.0; - - palette_ = aTitlePal_; - _drawBorder(temp, 70, titleHeight_ - 3); - - painter_.begin(&aTitleTextMid_); - painter_.tqdrawPixmap(0, 1, temp, 2, 0); - if (hicolour_) - painter_.drawTiledPixmap(0, 4, 64, titleHeight_ - 8, aTexture_); - painter_.end(); - - palette_ = iTitlePal_; - _drawBorder(temp, 70, titleHeight_ - 3); - - painter_.begin(&iTitleTextMid_); - painter_.tqdrawPixmap(0, 1, temp, 2, 0); - if (hicolour_) - painter_.drawTiledPixmap(0, 4, 64, titleHeight_ - 8, iTexture_); - painter_.end(); -} - -void Static::_drawResizeCentralAreaBackground() -{ - TQPixmap temp(70, titleHeight_); - temp.fill(TQt::black); - - transy = 1.0; - - palette_ = aResizePal_; - _drawBorder(temp, 70, resizeHeight_ - 3); - - painter_.begin(&aResizeMid_); - painter_.tqdrawPixmap(0, 0, temp, 2, 0); - if (hicolour_) - painter_.drawTiledPixmap(0, 4, 64, resizeHeight_ - 8, aTexture_); - painter_.end(); - - palette_ = iResizePal_; - _drawBorder(temp, 70, 7); - - painter_.begin(&iResizeMid_); - painter_.tqdrawPixmap(0, 0, temp, 2, 0); - if (hicolour_) - painter_.drawTiledPixmap(0, 4, 64, resizeHeight_ - 8, iTexture_); - painter_.end(); -} - -void Static::_drawResizeHandles() -{ - transx = transy = 1.0; - - down_ = false; - - palette_ = aResizePal_; - _drawBorder(aResize_, 28, resizeHeight_ - 3); - - if (hicolour_) - { - painter_.begin(&aResize_); - painter_.drawTiledPixmap(4, 4, 20, resizeHeight_ - 8, aTexture_); - painter_.end(); - } - - palette_ = iResizePal_; - _drawBorder(iResize_, 28, resizeHeight_ - 3); - - if (hicolour_) - { - painter_.begin(&iResize_); - painter_.drawTiledPixmap(4, 4, 20, resizeHeight_ - 8, iTexture_); - painter_.end(); - } -} - -void Static::_drawButtonBackgrounds() -{ - buttonSize_ -= 2; - - down_ = false; - transx = 0.0; - transy = 1.0; - palette_ = aButPal_; - _drawBorder(aButtonUp_, buttonSize_, buttonSize_); - down_ = true; - _drawBorder(aButtonDown_, buttonSize_, buttonSize_); - - palette_ = iButPal_; - _drawBorder(iButtonDown_, buttonSize_, buttonSize_); - down_ = false; - _drawBorder(iButtonUp_, buttonSize_, buttonSize_); - - painter_.begin(&aButtonUp_); - - if (hicolour_) - painter_.drawTiledPixmap(2, 4, buttonSize_ - 4, buttonSize_ - 5, - abTexture_); - - painter_.end(); - - painter_.begin(&iButtonUp_); - if (hicolour_) - painter_.drawTiledPixmap(2, 4, buttonSize_ - 4, buttonSize_ - 5, - ibTexture_); - - painter_.end(); -} - -} // End namespace - -// vim:ts=2:sw=2:tw=78 - diff --git a/kwin-styles/riscos/Static.h b/kwin-styles/riscos/Static.h deleted file mode 100644 index 0a5b4cdb..00000000 --- a/kwin-styles/riscos/Static.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_STATIC_H -#define RISC_OS_STATIC_H - -#include <tqimage.h> -#include <tqpixmap.h> -#include <tqpainter.h> -#include <tqstringlist.h> - -#include "Palette.h" - -namespace RiscOS -{ - -enum SymbolType { Lower, Close, Iconify, Max, Unmax }; - -class Static -{ - public: - - Static(); - - ~Static(); - - static Static* instance() - { - if (instance_ == 0) - new Static; - - return instance_; - } - - void reset(); - void updatePixmaps(); - - const TQPixmap& titleTextLeft(bool active) const; - const TQPixmap& titleTextRight(bool active) const; - const TQPixmap& resizeMidLeft(bool active) const; - const TQPixmap& resizeMidRight(bool active) const; - const TQPixmap& titleTextMid(bool active) const; - const TQPixmap& resizeMidMid(bool active) const; - const TQPixmap& buttonBase(bool active, bool down) const; - const TQPixmap& resize(bool active) const; - - int animationStyle() const; - int titleHeight() const; - int resizeHeight() const; - - private: - - void _init(); - - void _drawBorder(TQPixmap&, int, int); - void _createTexture(TQPixmap&, int, bool); - - void _initSizes(); - - void _resizeAllPixmaps(); - void _blankAllPixmaps(); - - void _initPalettes(); - void _initTextures(); - - void _drawTitleTextAreaSides(); - void _drawResizeCentralAreaSides(); - void _drawTitleTextAreaBackground(); - void _drawResizeCentralAreaBackground(); - void _drawResizeHandles(); - void _drawButtonBackgrounds(); - - static Static *instance_; - - Palette - aTitlePal_, - iTitlePal_, - aResizePal_, - iResizePal_, - aButPal_, - iButPal_; - - TQPixmap - aButtonUp_, iButtonUp_, - aButtonDown_, iButtonDown_, - aResize_, iResize_, - aResizeDown_, iResizeDown_, - aTitleTextLeft_, iTitleTextLeft_, - aTitleTextRight_, iTitleTextRight_, - aTitleTextMid_, iTitleTextMid_, - aResizeMidLeft_, iResizeMidLeft_, - aResizeMidRight_, iResizeMidRight_, - aResizeMid_, iResizeMid_; - - TQPixmap aTexture_, iTexture_, abTexture_, ibTexture_; - - TQPainter painter_; - bool down_; - Palette palette_; - double transx, transy; - - int animationStyle_; - - int titleHeight_; - int buttonSize_; - int resizeHeight_; - - bool hicolour_; -}; - -} // End namespace - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/StickyButton.cpp b/kwin-styles/riscos/StickyButton.cpp deleted file mode 100644 index 2229f915..00000000 --- a/kwin-styles/riscos/StickyButton.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "StickyButton.h" - -#include <tqtooltip.h> - -namespace RiscOS -{ - -/* XPM */ -static const char * const unsticky_xpm[] = { -"12 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" ... ", -" .+++. ", -" .+++. ", -" .+++. ", -" .+++. ", -" .+++++. ", -" .+++++++. ", -".+++++++++. ", -".....+..... ", -" .+. ", -" .+. ", -" . "}; - -/* XPM */ -static const char * const sticky_xpm[] = { -"12 12 3 1", -" c None", -". c #000000", -"+ c #FFFFFF", -" . ", -" .+. ", -" .+++. ", -" .+++++.", -" ....+++++. ", -" .++++++. ", -" .++++. ", -" .+++. ", -" .+..+. ", -" .+. .. ", -".+. . ", -".. "}; - - -StickyButton::StickyButton(TQWidget *parent) - : Button(parent, i18n("On all desktops")), on_(false) -{ - setPixmap(TQPixmap((const char **)sticky_xpm)); -} - -void StickyButton::setOn(bool on) -{ - on_ = on; - setPixmap(on_ ? TQPixmap((const char **)unsticky_xpm) : - TQPixmap((const char **)sticky_xpm)); - tqrepaint(); - TQToolTip::remove(this); - TQToolTip::add(this, on_ ? i18n("Not on all desktops") - : i18n("On all desktops")); -} - -void StickyButton::mouseReleaseEvent(TQMouseEvent *e) -{ - Button::mouseReleaseEvent(e); - - if (!rect().contains(e->pos())) - return; - - emit(toggleSticky()); -} - -} // End namespace - -// vim:ts=2:sw=2:tw=78 -#include "StickyButton.moc" diff --git a/kwin-styles/riscos/StickyButton.h b/kwin-styles/riscos/StickyButton.h deleted file mode 100644 index 26c0428e..00000000 --- a/kwin-styles/riscos/StickyButton.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - RISC OS KWin client - - Copyright 2000 - Rik Hemsley <rik@kde.org> - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef RISC_OS_STICKY_BUTTON_H -#define RISC_OS_STICKY_BUTTON_H - -#include "Button.h" - -namespace RiscOS -{ - -class StickyButton : public Button -{ - Q_OBJECT - TQ_OBJECT - - public: - - StickyButton(TQWidget *parent); - - public slots: - - void setOn(bool); - - signals: - - void toggleSticky(); - - protected: - - void mouseReleaseEvent(TQMouseEvent *); - - private: - - bool on_; -}; - -} // End namespace - -#endif - -// vim:ts=2:sw=2:tw=78 diff --git a/kwin-styles/riscos/riscos.desktop b/kwin-styles/riscos/riscos.desktop deleted file mode 100644 index b58aefda..00000000 --- a/kwin-styles/riscos/riscos.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Name=RISC OS -Name[cs]=Risc OS -Name[cy]= RISC OS -Name[hi]=रिस्क ओएस -Name[ta]=RISC இ.த -Name[th]=ระบบปฏิบัติการบนชิพ RISC -Name[uk]=RISC ОС -Name[xh]=i RISC OS -Name[zu]=IRISC OS -X-KDE-Library=twin3_riscos diff --git a/kwin-styles/smooth-blend/AUTHORS b/kwin-styles/smooth-blend/AUTHORS deleted file mode 100644 index c96228bb..00000000 --- a/kwin-styles/smooth-blend/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Ryan Nickell p0z3r@users.sourceforge.net diff --git a/kwin-styles/smooth-blend/CMakeLists.txt b/kwin-styles/smooth-blend/CMakeLists.txt deleted file mode 100644 index bfd4d79f..00000000 --- a/kwin-styles/smooth-blend/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_subdirectory( client )
\ No newline at end of file diff --git a/kwin-styles/smooth-blend/COPYING b/kwin-styles/smooth-blend/COPYING deleted file mode 100644 index e065ffa0..00000000 --- a/kwin-styles/smooth-blend/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/kwin-styles/smooth-blend/CREDITS b/kwin-styles/smooth-blend/CREDITS deleted file mode 100644 index a4481ec9..00000000 --- a/kwin-styles/smooth-blend/CREDITS +++ /dev/null @@ -1,5 +0,0 @@ -Justin Berstler aka spasemunkie on kdelook.org - spasemunkie at gmail.com : for his buttons! -Rick aka bitwit on kdelook.org - bitwit at digilanti.org : for his twin_template -David Johnson - david at usermode.org : for his example twin tutorial -Thomas Lübking aka thomas12777 on kdelook.org - baghira-style at gmx.net : for answering questions on getting pixmap buttons into code -Scott Grayban aka sgrayban on kdelook.org : for testing and hosting the files to be downloaded diff --git a/kwin-styles/smooth-blend/ChangeLog b/kwin-styles/smooth-blend/ChangeLog deleted file mode 100644 index 7b8fbcf2..00000000 --- a/kwin-styles/smooth-blend/ChangeLog +++ /dev/null @@ -1,22 +0,0 @@ -03.16.2005: (1.0 release) ------------ -Double click actions to maximize now show corresponding buttons -when maximized. -Windows that open maximized show the correct button and restoring -changes the button to the restore button as one would expect. -Removal of the title bar separator line, to complete the feel of -a "smooth blend". - -02.28.2005: (beta2) ------------ -Added kcontrol config option to remove titlebar separator line. -Application icons now resize to match the size of the buttons -instead of being a fixed size 16x16 icon. -Added button animations for mouse hover; configurable in kcontrol -to either Intensify or Fade. -Fixed some title bar drawing that wasn't correctly sectioned off. - - -02.22.2005: (beta1) ------------ -smoothblend-beta1 released. diff --git a/kwin-styles/smooth-blend/INSTALL b/kwin-styles/smooth-blend/INSTALL deleted file mode 100644 index 02a4a074..00000000 --- a/kwin-styles/smooth-blend/INSTALL +++ /dev/null @@ -1,167 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes a while. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Type `make install' to install the programs and any data files and - documentation. - - 4. You can remove the program binaries and object files from the - source code directory by typing `make clean'. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. - diff --git a/kwin-styles/smooth-blend/Makefile.am b/kwin-styles/smooth-blend/Makefile.am deleted file mode 100644 index 44ac1828..00000000 --- a/kwin-styles/smooth-blend/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = client diff --git a/kwin-styles/smooth-blend/NEWS b/kwin-styles/smooth-blend/NEWS deleted file mode 100644 index e69de29b..00000000 --- a/kwin-styles/smooth-blend/NEWS +++ /dev/null diff --git a/kwin-styles/smooth-blend/README b/kwin-styles/smooth-blend/README deleted file mode 100644 index 836fbe5d..00000000 --- a/kwin-styles/smooth-blend/README +++ /dev/null @@ -1,15 +0,0 @@ -Smooth Blend - a smooth blending of the window background color into the titlebar. - -This is my first attempt at a KDE window decoration. -Any comments would be much appreciated and can be sent -to me directly at p0z3r@users.sourceforge.net. - -Limitations: -The Frame Width can not be smaller than 2 pixels because it will lose the top gradient. -The buttonsize can not be larger than the Title Height - Frame Width. - -Known Problems: -The Shade button doesn't work correctly although the code is there for it. -The Resize button is also afflicted with the same problem. -Support for the Shade button and Resize buttons may or may not be supported depending -upon what I find through the kde mailing lists and other documentation. diff --git a/kwin-styles/smooth-blend/TODO b/kwin-styles/smooth-blend/TODO deleted file mode 100644 index 6a7bd0a8..00000000 --- a/kwin-styles/smooth-blend/TODO +++ /dev/null @@ -1,4 +0,0 @@ -TODO ----- -Code cleanup and separation of different classes into individual files. -Use pixmaps instead of images for reducing the drawing impact. diff --git a/kwin-styles/smooth-blend/client/CMakeLists.txt b/kwin-styles/smooth-blend/client/CMakeLists.txt deleted file mode 100644 index d59126f9..00000000 --- a/kwin-styles/smooth-blend/client/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -################################################# -# -# (C) 2011 Golubev Alexander -# fatzer2 (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -add_subdirectory( config ) - -add_definitions( - -DQT_PLUGIN -) - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - -##### other data ################################ - -install( FILES smoothblend.desktop DESTINATION ${DATA_INSTALL_DIR}/twin ) - -##### twin3_smoothblend ########################## - -tde_add_kpart( twin3_smoothblend AUTOMOC - SOURCES smoothblend.cc - LINK tdecorations-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/smooth-blend/client/Makefile.am b/kwin-styles/smooth-blend/client/Makefile.am deleted file mode 100644 index 056765d6..00000000 --- a/kwin-styles/smooth-blend/client/Makefile.am +++ /dev/null @@ -1,20 +0,0 @@ -AUTOMAKE_OPTIONS = foreign - -SUBDIRS = config - -KDE_CXXFLAGS = -DQT_PLUGIN - -INCLUDES = $(all_includes) -I$(kde_includes)/twin - -twindir = $(kde_datadir)/twin/ -twin_DATA = smoothblend.desktop - -noinst_HEADERS = smoothblend.h buttons.h - -kde_module_LTLIBRARIES = twin3_smoothblend.la -twin3_smoothblend_la_SOURCES = smoothblend.cc -twin3_smoothblend_la_LIBADD = -ltdecorations -twin3_smoothblend_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -ltdecore -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin3_smoothblend_la_METASOURCES = AUTO - -DISTCLEANFILES = $(twin3_smoothblend_la_METASOURCES) diff --git a/kwin-styles/smooth-blend/client/buttons.h b/kwin-styles/smooth-blend/client/buttons.h deleted file mode 100644 index 3d777144..00000000 --- a/kwin-styles/smooth-blend/client/buttons.h +++ /dev/null @@ -1,1798 +0,0 @@ -/**************************************************************************** -** Image collection for project 'smoothblend'. -** -** Generated from reading image files: -** circle.png -** close.png -** help.png -** keep_above_lit.png -** keep_above.png -** keep_below_lit.png -** keep_below.png -** maximize.png -** minimize.png -** restore.png -** shade.png -** splat.png -** titlealpha.png -** window_background.png -** window_foreground.png -** -** Created: Sun Jul 31 20:04:32 2005 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include <tqimage.h> -#include <tqdict.h> -#include <tqmime.h> -#include <tqdragobject.h> - -// circle.png -static const unsigned char image_0_data[] = { - 0x00,0x00,0x1a,0x44,0x78,0x9c,0xcd,0x99,0x09,0x4c,0x55,0x47,0x14,0x86, - 0x51,0x2b,0xee,0x28,0x04,0x23,0x31,0x06,0x6d,0x50,0xa3,0x46,0x8d,0x4b, - 0x24,0xae,0x18,0x8c,0xbb,0x56,0x50,0xc1,0x14,0x63,0xb0,0xda,0x52,0x53, - 0x44,0xb1,0xb1,0x35,0x8a,0x8a,0x58,0x82,0x1b,0x45,0x52,0xb0,0x01,0xa9, - 0xb5,0xa4,0x56,0xa0,0xa5,0x54,0x6d,0xc3,0x52,0x89,0xb1,0xd8,0xb2,0xd3, - 0x57,0x40,0x2b,0xc8,0x8e,0xc8,0x0e,0x56,0x11,0x78,0x50,0x1e,0x6f,0xfa, - 0x9f,0xf1,0xde,0x97,0x7b,0xe1,0xdd,0xc7,0x43,0x8b,0x30,0xc9,0x17,0x75, - 0xee,0x3d,0x73,0xfe,0x99,0x3b,0xe7,0x9c,0x99,0xa7,0x89,0x49,0xb7,0x66, - 0x03,0x3e,0x04,0x61,0x20,0x13,0x3c,0xe8,0x63,0xee,0x83,0x78,0x10,0x00, - 0x76,0x81,0xb7,0xba,0x4b,0xd2,0x35,0x2b,0x10,0x0a,0x3a,0x00,0x13,0x31, - 0x33,0x33,0xeb,0xe8,0x4b,0xc6,0x8c,0x19,0x23,0xf3,0x07,0xea,0xc1,0x01, - 0x60,0xda,0x45,0x9f,0xf5,0xa0,0x41,0x83,0x1a,0xe9,0x1d,0x4b,0x4b,0xcb, - 0x8e,0xa0,0xa0,0xa0,0xca,0xb4,0xb4,0xb4,0xe2,0x8e,0x8e,0x8e,0xbf,0x19, - 0x63,0x7d,0x8e,0x5a,0xad,0x7e,0x78,0xfb,0xf6,0xed,0x52,0x1f,0x1f,0x9f, - 0x1a,0x53,0x53,0xd3,0x4e,0x41,0xeb,0xef,0x92,0x35,0x35,0x87,0xbe,0x47, - 0xd4,0x7f,0xfc,0xf8,0xf1,0x5a,0x8d,0x46,0xf3,0x46,0x74,0x29,0xd1,0xd4, - 0xd4,0x94,0x67,0x67,0x67,0xf7,0x42,0xd0,0x19,0x26,0x68,0xfc,0x9c,0xfe, - 0xbd,0x6f,0xdf,0xbe,0x86,0xfe,0xd4,0x26,0xe5,0xf9,0xf3,0xe7,0x79,0x33, - 0x67,0xce,0x54,0x0b,0x3a,0xed,0x40,0x2e,0xad,0x6f,0x4b,0x4b,0xcb,0xc3, - 0xfe,0xd6,0x26,0x25,0x22,0x22,0xe2,0xb1,0xa0,0xd1,0x17,0x68,0x17,0x2f, - 0x5e,0xdc,0xdc,0xdf,0x9a,0xba,0x52,0x5f,0x5f,0x9f,0x3f,0x78,0xf0,0x60, - 0x2d,0xf4,0xfd,0x46,0x5a,0x9d,0x9c,0x9c,0xfe,0x41,0xff,0xfd,0x81,0x06, - 0x62,0x5e,0x23,0xe4,0x26,0xb6,0x6d,0xdb,0xb6,0x46,0xad,0x56,0xab,0x7a, - 0x55,0x10,0xff,0xaa,0x8a,0x8a,0x8a,0xdc,0xc4,0xc4,0xc4,0x47,0x91,0x91, - 0x91,0x45,0xc9,0xc9,0xc9,0x79,0x75,0x75,0x75,0x39,0xaf,0x33,0x26,0x31, - 0x7a,0xf4,0xe8,0x0e,0x51,0xe3,0xd6,0xad,0x5b,0xeb,0xd1,0x97,0xd1,0x5b, - 0x62,0x63,0x63,0xf3,0xf0,0x0d,0xea,0x47,0x8e,0x1c,0xa9,0xe9,0x92,0xe3, - 0x38,0xd3,0xa6,0x4d,0x6b,0x39,0x76,0xec,0x58,0x45,0x71,0x71,0x71,0xf6, - 0xab,0x8c,0x2f,0xd5,0xe8,0xe8,0xe8,0x58,0x87,0xb5,0x4d,0x31,0x96,0x9c, - 0x9c,0x1c,0xd5,0x8a,0x15,0x2b,0x9e,0x8a,0x5a,0x86,0x0d,0x1b,0x46,0xfb, - 0x85,0x1d,0x3e,0x7c,0x98,0x9d,0x3d,0x7b,0x96,0xb9,0xbb,0xbb,0x33,0x07, - 0x07,0x07,0x86,0xfd,0xc4,0x9f,0x23,0x26,0xb5,0x5e,0x5e,0x5e,0x65,0xcd, - 0xcd,0xcd,0x69,0xbd,0xf1,0x23,0xd5,0x88,0xf1,0x6a,0xd0,0x77,0xcf,0x18, - 0x10,0x6f,0x0f,0x46,0x8d,0x1a,0xc5,0xd7,0x6d,0xee,0xdc,0xb9,0x2c,0x21, - 0x21,0x81,0x61,0xce,0x4c,0x5f,0xc3,0x1e,0x60,0xe1,0xe1,0xe1,0xcc,0xc2, - 0xc2,0x82,0x6b,0x9d,0x3d,0x7b,0x76,0x53,0x69,0x69,0x69,0x9a,0xb1,0xbe, - 0xa0,0xf1,0x5f,0x51,0xe3,0x96,0x2d,0x5b,0xaa,0xd0,0x77,0xa7,0x27,0xae, - 0x5e,0xbd,0x9a,0x4b,0xb1,0x86,0x75,0x61,0xd7,0xaf,0x5f,0xd7,0xab,0x4b, - 0x5f,0xc3,0xfa,0xb1,0x0d,0x1b,0x36,0x70,0x9d,0x13,0x26,0x4c,0x50,0xd7, - 0xd6,0xd6,0x26,0x19,0xe3,0x0f,0x6b,0xa1,0xd3,0xb8,0x79,0xf3,0xe6,0x4a, - 0xf4,0xfd,0x6a,0x08,0xd4,0xc6,0xe4,0xe1,0xc3,0x87,0x6b,0x48,0x1f,0xfe, - 0x6e,0xb4,0x3e,0x69,0xf3,0xf0,0xf0,0xe0,0x3a,0x91,0x9f,0x9f,0xa1,0xfe, - 0x25,0xf6,0xe4,0x53,0xaa,0x71,0xd3,0xa6,0x4d,0x15,0xe8,0x8b,0x55,0xa2, - 0xb3,0xb3,0x33,0x76,0xfa,0xf4,0xe9,0xcf,0x50,0x33,0xd9,0xcd,0x9b,0x37, - 0xbb,0xf9,0xbe,0x7b,0xf7,0x2e,0x73,0x73,0x73,0x63,0xf3,0xe6,0xcd,0x63, - 0xe6,0xe6,0xe6,0x6c,0xd5,0xaa,0x55,0xec,0xc4,0x89,0x13,0xac,0xb2,0xb2, - 0x52,0xf6,0x1e,0xed,0x09,0xda,0xa7,0xe4,0xf3,0xc8,0x91,0x23,0x0f,0x0d, - 0xf9,0x24,0xa4,0x1a,0x37,0x6e,0xdc,0xf8,0x18,0x7d,0xb7,0x94,0xc0,0x19, - 0x83,0xce,0x68,0xcc,0xd9,0xd9,0x59,0xe6,0xb3,0xb5,0xb5,0x95,0xed,0xdf, - 0xbf,0x9f,0x91,0x76,0x7a,0x4e,0x7f,0x4e,0x9e,0x3c,0xb9,0x49,0x8c,0xa5, - 0xb1,0x63,0xc7,0xb2,0x98,0x98,0x18,0x99,0x4d,0x43,0x43,0x03,0xef,0xa7, - 0xbd,0x86,0xfc,0x14,0x67,0xc8,0x2f,0x34,0xb6,0x8b,0x1a,0xb1,0x57,0xca, - 0x31,0xc7,0x18,0x25,0xe6,0xcc,0x99,0x53,0x4f,0xfe,0x0b,0x0a,0x0a,0x64, - 0xfe,0x76,0xee,0xdc,0x29,0xee,0xb1,0x96,0xa8,0xa8,0xa8,0x7b,0x38,0x8f, - 0xf0,0xf7,0xdb,0xdb,0xdb,0x7f,0xf2,0xf3,0xf3,0xcb,0xc2,0xbe,0xe0,0xb1, - 0x15,0x1d,0x1d,0x2d,0xb3,0xf3,0xf5,0xf5,0xe5,0x76,0xde,0xde,0xde,0x2a, - 0x43,0x7e,0xa5,0x1a,0xd7,0xaf,0x5f,0x5f,0x0a,0xd3,0x28,0x7d,0x94,0x97, - 0x97,0xdf,0xa0,0x38,0x41,0xbd,0x94,0xf9,0x41,0x6e,0xe4,0x7e,0xb0,0x07, - 0x1a,0xa1,0xed,0x7b,0x7d,0xb6,0xc8,0xe5,0x71,0x43,0x87,0x0e,0xed,0xa4, - 0xb8,0xc6,0x9a,0xe9,0x6c,0x4b,0x4a,0x4a,0xb8,0xed,0xa2,0x45,0x8b,0xaa, - 0x94,0xfc,0x12,0xc8,0xbb,0x3a,0x8d,0x6b,0xd7,0xae,0x2d,0x46,0xdf,0x77, - 0xfa,0x08,0x09,0x09,0xe1,0xf5,0xf2,0xf4,0xe9,0xd3,0x32,0x8d,0xcb,0x96, - 0x2d,0xa3,0xfc,0xa7,0x45,0xae,0xbc,0xa1,0x64,0x4b,0x1c,0x3c,0x78,0x50, - 0x45,0xf6,0xe7,0xce,0x9d,0x93,0xd9,0xcf,0x98,0x31,0x83,0xf2,0xaa,0xc6, - 0x90,0xad,0x54,0xe3,0x9a,0x35,0x6b,0x8a,0xd0,0x17,0xae,0x8f,0xa3,0x47, - 0x8f,0xa6,0xd2,0x3b,0xd7,0xae,0x5d,0xd3,0x8d,0x8f,0x75,0x63,0xb0,0x67, - 0xd6,0xd6,0xd6,0x4f,0x95,0xec,0x44,0xb2,0xb3,0xb3,0x7f,0x24,0xfb,0xed, - 0xdb,0xb7,0xcb,0x34,0x22,0x06,0xf8,0x5a,0x56,0x55,0x55,0x45,0x28,0xd9, - 0xc2,0x47,0x9b,0xa8,0x71,0xf5,0xea,0xd5,0x05,0xf8,0xfe,0x57,0xf4,0xb1, - 0x67,0xcf,0x9e,0x3f,0xe9,0x1d,0xca,0xd5,0x62,0x43,0x6d,0xe3,0xe3,0xa3, - 0xd6,0x14,0x2b,0xd9,0x49,0xa1,0x7d,0x89,0x7c,0x23,0xd3,0xb8,0x7b,0xf7, - 0x6e,0x3e,0x46,0x4a,0x4a,0x4a,0xb4,0x92,0x9d,0x54,0x23,0x72,0x45,0x3e, - 0xcc,0x42,0xf4,0x71,0xe8,0xd0,0xa1,0x3f,0xe8,0x1d,0xc4,0x84,0x6e,0x7c, - 0xe4,0x36,0x86,0x7d,0xc6,0x6c,0x6c,0x6c,0x6a,0x95,0xec,0x44,0x0a,0x0b, - 0x0b,0xc3,0x85,0xb8,0x94,0x69,0x14,0x73,0x10,0xe6,0x1b,0xae,0x64,0x3b, - 0x62,0xc4,0x08,0x9d,0x46,0x7b,0x7b,0xfb,0x3c,0xf4,0x05,0xeb,0xe3,0xfc, - 0xf9,0xf3,0x74,0x67,0x63,0xfe,0xfe,0xfe,0x32,0x1f,0xf3,0xe7,0xcf,0x27, - 0x9d,0x9a,0x9a,0x9a,0x9a,0xcb,0x4a,0xb6,0xc4,0xa9,0x53,0xa7,0x12,0xc9, - 0xfe,0xe4,0xc9,0x93,0x32,0xfb,0x05,0x0b,0x16,0xb0,0x21,0x43,0x86,0x74, - 0x62,0xdf,0x5c,0x52,0xb2,0x95,0x6a,0x5c,0xb9,0x72,0x25,0x9d,0x2b,0x03, - 0xf5,0xa1,0x52,0xa9,0xae,0xd0,0x3b,0xeb,0xd6,0xad,0x93,0xf9,0x08,0x0e, - 0x0e,0xe6,0xeb,0xb0,0x70,0xe1,0xc2,0x62,0x25,0x5b,0xe4,0xaa,0xcb,0xc8, - 0x83,0x6a,0xaa,0x4d,0x45,0x45,0x45,0x3a,0x5b,0x8a,0x71,0xe8,0x63,0x53, - 0xa7,0x4e,0xad,0x52,0xb2,0x25,0xa0,0x51,0x2d,0x6a,0xc4,0x1d,0xe7,0x01, - 0xfa,0xfc,0x95,0x98,0x34,0x69,0x52,0x1d,0x8d,0x89,0xb3,0xb1,0xce,0x0f, - 0x6a,0x0f,0xcd,0x8d,0xeb,0x9c,0x35,0x6b,0x56,0x19,0x62,0x23,0x54,0x6a, - 0x13,0x1a,0x1a,0xfa,0xc3,0xb8,0x71,0xe3,0x78,0x3e,0x0f,0x08,0x08,0x90, - 0xcd,0x0f,0xcf,0xb8,0xdd,0xde,0xbd,0x7b,0x93,0x0c,0xf9,0x95,0x6a,0x5c, - 0xbe,0x7c,0x79,0x2e,0xfa,0xce,0x28,0x81,0xfb,0x18,0xff,0x5e,0x9e,0x9e, - 0x9e,0x32,0x5f,0xd5,0xd5,0xd5,0xbc,0xfe,0x89,0x75,0x65,0xfc,0xf8,0xf1, - 0x8d,0x38,0x0b,0x15,0x62,0x3e,0x3c,0x77,0xd3,0xbc,0x68,0x8f,0xd0,0x7c, - 0xc4,0x46,0x7b,0x19,0xf9,0x80,0x7f,0x67,0xe4,0xad,0x60,0x43,0x7e,0x71, - 0x3e,0xd0,0x69,0x44,0xae,0xcb,0x41,0xdf,0x67,0x4a,0xe0,0x9e,0xe6,0x87, - 0x3c,0xfc,0x8c,0xbe,0x59,0x7e,0x7e,0x3e,0xeb,0xda,0x2e,0x5c,0xb8,0x40, - 0x7b,0x9a,0xc7,0x11,0x8d,0x87,0x7a,0xc8,0x5c,0x5c,0x5c,0x58,0x56,0x56, - 0x56,0xb7,0x77,0x91,0xcb,0x98,0x50,0x7f,0x53,0x0d,0xf9,0x24,0xa4,0x1a, - 0x97,0x2e,0x5d,0xfa,0x17,0xfa,0xbc,0x0d,0x81,0xef,0xf3,0x0d,0xea,0xa1, - 0xd6,0xd2,0xd2,0x92,0x3d,0x79,0xf2,0xa4,0x9b,0x6f,0xb1,0x61,0x3e,0x8a, - 0xcf,0xe8,0x3c,0x42,0xfe,0x70,0x4f,0x79,0x51,0x56,0x56,0x76,0xa6,0x27, - 0x9f,0xd0,0xd8,0x2a,0x6a,0x44,0x9d,0x53,0xa1,0xcf,0xab,0x27,0xb0,0x36, - 0x09,0xf4,0xfe,0xc4,0x89,0x13,0x59,0x66,0x66,0xa6,0xa2,0x16,0x7d,0x8d, - 0xd6,0x9a,0xce,0xe5,0xa8,0x2d,0xed,0x71,0x71,0x71,0x81,0xc6,0xf8,0x93, - 0x6a,0xb4,0xb5,0xb5,0xa5,0x8f,0xf2,0xa9,0x31,0xb8,0xba,0xba,0xfe,0x4c, - 0xeb,0x49,0xdf,0x15,0x75,0x4e,0x16,0x47,0xfa,0x5a,0x46,0x46,0x06,0x5b, - 0xb2,0x64,0x09,0x5f,0x3f,0xc4,0x78,0x13,0xce,0xc6,0x5f,0x18,0xeb,0x0b, - 0xf3,0xd1,0x69,0x44,0x6d,0xcf,0x40,0xdf,0xc7,0xc6,0x82,0x3b,0xcb,0x65, - 0x61,0x8e,0x7c,0x6d,0x50,0xa7,0xf8,0x59,0x86,0xea,0x65,0x7c,0x7c,0x3c, - 0x0b,0x0b,0x0b,0xe3,0xe7,0x47,0xaa,0x2d,0x62,0x3c,0x41,0x67,0x6a,0x7a, - 0x7a,0xba,0x4f,0x6f,0xfc,0x48,0x35,0x22,0xc7,0xa5,0xa3,0xef,0x40,0x6f, - 0x40,0x7c,0x7a,0xe2,0xae,0xf6,0x8b,0x95,0x95,0x55,0x85,0xbe,0x3b,0xa1, - 0xa0,0xbf,0x93,0xc6,0xbe,0x78,0xf1,0x62,0x50,0x6f,0xc7,0x27,0xa0,0xb1, - 0x45,0xd4,0x88,0x9c,0x4f,0x31,0xf6,0xd1,0xab,0x92,0x94,0x94,0xe4,0x85, - 0xf3,0x62,0x10,0xf6,0x41,0x24,0xee,0x46,0xb7,0x90,0xab,0xbe,0x45,0xce, - 0x09,0xc4,0x39,0xd2,0xfd,0x75,0xc6,0x95,0x6a,0x44,0x8e,0xa3,0xbb,0xa2, - 0xdb,0x40,0x03,0xb9,0x4e,0xa7,0x11,0x67,0x83,0x6c,0xf4,0xbd,0x37,0x90, - 0x68,0x6c,0x6c,0xfc,0x00,0x7b,0x85,0x6a,0x41,0x1a,0x28,0x41,0x8c,0xb6, - 0x60,0x7f,0xb9,0xe2,0xd9,0xae,0x81,0x02,0xce,0xd4,0x67,0x84,0x7d,0x1d, - 0x08,0xf8,0x99,0x61,0xc7,0x8e,0x1d,0x5f,0xe1,0xd9,0xbb,0x03,0x01,0xec, - 0x63,0x17,0x9c,0x11,0xee,0x0b,0x1a,0xdf,0x01,0x6f,0x03,0xba,0x97,0x6a, - 0x90,0x2f,0x28,0x37,0x38,0xf5,0x27,0x38,0xab,0x39,0x23,0x86,0xe3,0x04, - 0x7d,0x74,0x07,0x10,0x7f,0x6f,0xb6,0x07,0x74,0x97,0x65,0x53,0xa6,0x4c, - 0x49,0x45,0x4d,0xf8,0x04,0xef,0x3a,0xc2,0xc6,0xe1,0x4d,0xd1,0xd6,0xd6, - 0xe6,0xe8,0xe1,0xe1,0xe1,0x8b,0x3c,0x5f,0x2d,0xe8,0x2b,0x00,0x16,0x26, - 0xf2,0x66,0x2b,0xc6,0x90,0x80,0xd6,0xcc,0xcc,0xac,0x1c,0xf7,0xd2,0x9c, - 0x3e,0x26,0x17,0x67,0xb0,0x3a,0x89,0x5f,0xfa,0xcd,0xfe,0x6b,0x93,0x97, - 0xff,0xcf,0xa1,0xd4,0xde,0x07,0x5f,0x82,0x0c,0xd0,0xae,0x94,0x9f,0xff, - 0x67,0xaa,0xc0,0x1d,0x93,0x97,0xbf,0xcd,0x5b,0x76,0x15,0xf4,0x1f,0x5e, - 0xdb,0x58,0x54 -}; - -// close.png -static const unsigned char image_1_data[] = { - 0x00,0x00,0x1a,0x44,0x78,0x9c,0xcd,0x98,0x6b,0x4c,0x14,0x57,0x14,0xc7, - 0x51,0x09,0xf8,0xc4,0x67,0x51,0x8b,0x60,0xd0,0xc4,0x0f,0x46,0xa2,0xe2, - 0x5b,0x8c,0xaf,0x88,0x6f,0x03,0x1f,0x68,0x2c,0x49,0x51,0x2c,0x42,0x42, - 0x02,0x18,0x24,0x88,0xa9,0x48,0x52,0x2a,0xa8,0x10,0x4b,0xb0,0xb6,0xb5, - 0x49,0xdb,0x14,0x53,0x28,0x6b,0x40,0x62,0x08,0x5a,0x1f,0x60,0xd2,0x92, - 0x15,0x57,0x58,0x1f,0x6b,0x17,0x90,0xa7,0x02,0x45,0x8b,0x08,0x08,0x08, - 0xfb,0xbc,0xfd,0x9f,0xc9,0x0c,0x9d,0x0e,0x33,0xbb,0x53,0x13,0x8a,0x37, - 0xf9,0x7f,0xd8,0xbb,0x73,0xee,0xf9,0xcd,0x7d,0x9c,0x73,0xee,0xb8,0xb8, - 0x0c,0x6b,0xbe,0x50,0x24,0xf4,0x1d,0xa4,0x83,0x9e,0x8c,0xb0,0x0c,0xd0, - 0xaf,0xd0,0x97,0x50,0x18,0xe4,0x3a,0x1c,0x69,0xa8,0x79,0x42,0x17,0x20, - 0x33,0xc4,0x04,0x79,0x78,0x78,0x58,0x46,0x5a,0x62,0x7f,0x50,0x27,0x14, - 0x0f,0xb9,0x4b,0xf8,0xbc,0xc6,0x8c,0x19,0xd3,0x41,0xcf,0xcc,0x9c,0x39, - 0xd3,0x92,0x9d,0x9d,0xdd,0x76,0xf7,0xee,0xdd,0x06,0x8b,0xc5,0x62,0x64, - 0x8c,0xfd,0x31,0xd2,0x1a,0x18,0x18,0x30,0xde,0xbe,0x7d,0xbb,0x29,0x35, - 0x35,0xf5,0x85,0xbb,0xbb,0xbb,0x8d,0x67,0xad,0x80,0xdc,0x78,0x3e,0x0f, - 0xf0,0xd1,0x9c,0xb3,0xe3,0xc7,0x8f,0xbf,0x04,0xd7,0x88,0x33,0x39,0x52, - 0x5f,0x5f,0x9f,0x71,0xeb,0xd6,0xad,0xbd,0x3c,0x67,0x0e,0xcf,0x98,0x46, - 0xbf,0xc3,0xc3,0xc3,0x3b,0x47,0x93,0x4d,0xc2,0x59,0xed,0xe7,0xe7,0xf7, - 0x96,0xe7,0x0c,0xa4,0x73,0xe1,0xea,0xea,0x6a,0xef,0xe9,0xe9,0xa9,0x1e, - 0x6d,0x36,0xb1,0xae,0x5c,0xb9,0xf2,0x8c,0x67,0xcc,0x80,0x6c,0xcb,0x97, - 0x2f,0x7f,0x3b,0xda,0x4c,0x52,0xd1,0x9c,0x8d,0x1b,0x37,0xce,0xce,0xef, - 0x4b,0xb6,0x6f,0xdf,0xbe,0x6e,0xf4,0x1b,0xe4,0x64,0xb3,0xd9,0x0c,0x67, - 0xce,0x9c,0x69,0x0b,0x0a,0x0a,0xea,0xda,0xbc,0x79,0xf3,0x9b,0x93,0x27, - 0x4f,0xb6,0xdf,0xba,0x75,0xab,0x41,0xe9,0x79,0x25,0x99,0xcd,0xe6,0x27, - 0x79,0x79,0x79,0xcd,0xc1,0xc1,0xc1,0x5d,0x7b,0xf7,0xee,0xed,0x0e,0x0d, - 0x0d,0x7d,0x5d,0x57,0x57,0x57,0xe3,0xc8,0x86,0xce,0x2f,0xf8,0x9e,0x12, - 0xe3,0x9e,0x3d,0x7b,0x5e,0xdb,0xed,0x76,0xbd,0x54,0x26,0x93,0xe9,0xc1, - 0xd2,0xa5,0x4b,0xfb,0x24,0xb1,0x81,0xd3,0xae,0x5d,0xbb,0xba,0xda,0xdb, - 0xdb,0x1f,0xcb,0xd9,0x49,0x75,0xf3,0xe6,0xcd,0x5a,0x4f,0x4f,0x4f,0xb3, - 0x74,0x0c,0x9c,0x55,0x96,0x9c,0x9c,0xdc,0xaa,0x64,0x07,0x46,0xb3,0xc0, - 0xb8,0x7b,0xf7,0xee,0x4e,0xf4,0xe9,0xa4,0x82,0xfd,0x73,0xfa,0x7f,0xe3, - 0xc6,0x8d,0x4c,0xa7,0xd3,0xb1,0x8e,0x8e,0x0e,0x96,0x9f,0x9f,0xcf,0xd6, - 0xaf,0x5f,0xcf,0xf9,0x98,0x38,0x71,0xa2,0x0d,0x73,0x6a,0x94,0xb3,0x15, - 0x74,0xf6,0xec,0xd9,0xa6,0xb1,0x63,0xc7,0x72,0x3c,0x51,0x51,0x51,0xcc, - 0x68,0x34,0xb2,0xd6,0xd6,0x56,0xa6,0xd5,0x6a,0xd9,0xbc,0x79,0xf3,0x18, - 0xad,0x67,0x45,0x45,0x85,0x41,0xce,0x76,0xc6,0x8c,0x19,0x62,0xc6,0x0e, - 0xcc,0xad,0x56,0x2a,0x1f,0x1f,0x9f,0x01,0x70,0x30,0xec,0x0d,0x26,0x6e, - 0x56,0xab,0x95,0xa5,0xa5,0xa5,0x31,0x9c,0x35,0xe2,0xb4,0x5e,0xbf,0x7e, - 0xdd,0x20,0x67,0x9f,0x94,0x94,0xc4,0xed,0xfb,0x39,0x73,0xe6,0xb0,0xfb, - 0xf7,0xef,0x33,0x69,0x2b,0x28,0x28,0x60,0x7c,0x4c,0xf9,0x53,0xce,0x1e, - 0x8c,0x26,0x81,0x71,0xe7,0xce,0x9d,0x7f,0xa1,0xef,0x37,0xa9,0x66,0xcd, - 0x9a,0x65,0x5a,0xb0,0x60,0xc1,0xb0,0xb1,0x85,0x76,0xf9,0xf2,0x65,0x31, - 0xe7,0x43,0xb1,0x6d,0x62,0x62,0x62,0x13,0x8d,0xed,0xed,0xed,0xcd,0xea, - 0xeb,0xeb,0x65,0xed,0xab,0xab,0xab,0x39,0xc6,0x90,0x90,0x90,0x76,0x39, - 0xff,0x62,0xc6,0x1d,0x3b,0x76,0xbc,0x40,0x5f,0xa9,0x54,0x18,0xbf,0x7f, - 0xd2,0xa4,0x49,0xac,0xbf,0xbf,0x5f,0x15,0x67,0x49,0x49,0x49,0x25,0xd9, - 0x25,0x24,0x24,0xd4,0xd3,0xb8,0xb4,0x96,0x4a,0x7c,0xd4,0xae,0x5d,0xbb, - 0xc6,0x31,0x1e,0x38,0x70,0xe0,0xb9,0x9c,0xff,0xe9,0xd3,0xa7,0x0f,0x0a, - 0x8c,0xdb,0xb7,0x6f,0xa7,0xf7,0xb8,0x21,0x55,0x64,0x64,0x64,0x23,0xfd, - 0x9f,0x93,0x93,0xa3,0xe8,0x47,0xcc,0x49,0x79,0x2c,0x3a,0x3a,0xba,0x41, - 0x0d,0x1f,0xb5,0xfd,0xfb,0xf7,0x73,0x8c,0xc5,0xc5,0xc5,0xf7,0xe4,0xfc, - 0x8b,0x19,0x03,0x03,0x03,0x69,0x3f,0x94,0x48,0xa5,0xd7,0xeb,0xef,0xd0, - 0x9e,0xc6,0x9a,0xb3,0x96,0x96,0x16,0x55,0x9c,0x6a,0xf9,0x0a,0x0b,0x0b, - 0xb9,0x67,0xe7,0xcf,0x9f,0xdf,0x8b,0xf8,0x36,0xcc,0x37,0x49,0xcc,0xb8, - 0x6d,0xdb,0xb6,0x56,0xf4,0x5d,0x95,0xd3,0x89,0x13,0x27,0x1e,0xd3,0x33, - 0xcb,0x96,0x2d,0x63,0xc8,0x51,0x4e,0x39,0x7d,0x7d,0x7d,0x9d,0xf2,0xd5, - 0xd6,0xd6,0x52,0x3d,0x45,0xf3,0x6e,0x2d,0x2f,0x2f,0x2f,0x53,0xf2,0x3d, - 0x6d,0xda,0xb4,0x01,0x81,0x11,0x39,0xbc,0x05,0x67,0xbd,0x50,0x49,0xf4, - 0x3f,0x3d,0xb7,0x76,0xed,0x5a,0xd6,0xdd,0xdd,0xed,0xd0,0xff,0xe0,0xe0, - 0xa0,0xc3,0xff,0x2b,0x2b,0x2b,0x19,0xe6,0x87,0x8b,0x45,0x17,0x2f,0x5e, - 0xd4,0x3a,0xf2,0x2b,0x66,0xdc,0xb2,0x65,0xcb,0x33,0x98,0xe7,0x2b,0x09, - 0x39,0x42,0x83,0xb9,0x6e,0x16,0x38,0xa5,0xb1,0x48,0x6d,0xab,0xaa,0xaa, - 0xe2,0xf8,0x10,0x2f,0xed,0xe9,0xe9,0xe9,0xf7,0x1c,0xf9,0x24,0x89,0x19, - 0x91,0xe3,0x9a,0xd1,0xf7,0xb3,0x23,0x81,0x33,0x17,0xf3,0xd9,0xf4,0xae, - 0x9c,0x62,0xbe,0x53,0xa7,0x4e,0x69,0x9d,0xf9,0x23,0x4d,0x9d,0x3a,0xf5, - 0xad,0xc0,0xb8,0x69,0xd3,0xa6,0x46,0xf4,0xfd,0xe4,0x4c,0xe0,0xcc,0xc1, - 0x9c,0x37,0xfc,0x57,0x4e,0x31,0x1f,0xea,0xd8,0x72,0x35,0xbe,0x48,0x62, - 0x46,0xe4,0xba,0x06,0xac,0xff,0xf7,0x6a,0x04,0xce,0x1f,0xe6,0xce,0x9d, - 0xdb,0xcd,0xc7,0x5e,0xa7,0x7c,0xc8,0xf9,0x6c,0xf2,0xe4,0xc9,0xdc,0x19, - 0x46,0x1d,0xf1,0x48,0xad,0x1f,0x12,0xce,0xd5,0x10,0xe3,0x86,0x0d,0x1b, - 0xea,0x30,0xdc,0xb7,0x6a,0x84,0x9c,0x5b,0xa1,0x36,0xbe,0x08,0x4d,0xa3, - 0xd1,0x70,0x71,0x69,0xc2,0x84,0x09,0x66,0x9c,0xfd,0x22,0xb5,0xbe,0xc0, - 0xd8,0x2f,0x30,0x06,0x04,0x04,0x3c,0x45,0xdf,0x57,0xce,0x74,0xf8,0xf0, - 0x61,0xed,0x7f,0xe5,0x93,0x72,0x8e,0x1f,0x3f,0xde,0x8c,0xba,0xa4,0x40, - 0x8d,0x3f,0x31,0x23,0xea,0x98,0x5a,0xf4,0x65,0x39,0x52,0x44,0x44,0x44, - 0xf9,0xbb,0xf2,0xc9,0x71,0xa2,0x96,0xd4,0x38,0xf3,0x39,0x65,0xca,0x94, - 0x3e,0x81,0x71,0xdd,0xba,0x75,0x74,0x4f,0xc8,0x54,0xd2,0xd1,0xa3,0x47, - 0x6f,0xf0,0x7c,0xf6,0x77,0xe5,0x93,0x72,0xba,0xb9,0xb9,0x59,0x8a,0x8a, - 0x8a,0x2e,0x39,0xf2,0x2b,0x66,0x5c,0xb3,0x66,0x0d,0xd5,0xe7,0xe9,0x72, - 0xca,0xca,0xca,0xd2,0x50,0xbc,0xf5,0xf2,0xf2,0x62,0x8d,0x8d,0x8d,0x0e, - 0xfd,0x23,0x77,0x52,0xed,0xeb,0xf4,0xbc,0x83,0x8d,0xe3,0xc4,0x5a,0xf6, - 0xa1,0x9e,0xcc,0x56,0xf2,0x2d,0x66,0x5c,0xbd,0x7a,0xf5,0x13,0xf4,0xa5, - 0x4a,0x85,0xda,0xe9,0x1c,0xd6,0xc5,0x84,0x9c,0xc5,0xc5,0x0f,0x47,0x4d, - 0x88,0x2f,0x6a,0xe3,0x12,0x6a,0x5f,0xee,0xd9,0xc5,0x8b,0x17,0xd7,0xcb, - 0xf9,0x26,0x21,0x1e,0xf4,0x0a,0x8c,0x2b,0x57,0xae,0xa4,0x1a,0x35,0x45, - 0xaa,0xb0,0xb0,0x30,0x6e,0x8d,0x71,0x9f,0x51,0xc3,0x67,0xa7,0xf9,0x5e, - 0xb4,0x68,0x91,0xaa,0xf8,0x89,0xd8,0x42,0xeb,0xc7,0x71,0xa2,0xa6,0xbb, - 0x20,0xe7,0x5f,0xcc,0xb8,0x62,0xc5,0x8a,0x47,0xe8,0xfb,0x4c,0x2a,0xac, - 0x6f,0x1b,0xad,0x09,0xdd,0x11,0x54,0xf0,0xd9,0xe3,0xe3,0xe3,0x0b,0x90, - 0xaf,0x93,0x57,0xad,0x5a,0xf5,0x50,0x0d,0x67,0x6e,0x6e,0x2e,0xc7,0x88, - 0x7b,0x58,0x99,0x9c,0x7f,0xd4,0xae,0x43,0x8c,0xb8,0xbb,0x52,0x0d,0x9d, - 0x28,0x15,0xde,0xe3,0xcd,0xc2,0x85,0x0b,0x55,0xf1,0xc5,0xc5,0xc5,0x69, - 0x04,0x3b,0x70,0x26,0xe1,0xbd,0xf5,0xce,0x38,0x6b,0x6a,0x6a,0x18,0x7f, - 0x66,0x75,0x72,0xfe,0xc1,0xf8,0x46,0x60,0x44,0xdd,0xa5,0x47,0x5f,0xbc, - 0x54,0xc8,0x45,0x9d,0x10,0xb3,0x58,0x2c,0xc3,0xc6,0x37,0x18,0x0c,0x43, - 0x7c,0x31,0x31,0x31,0x79,0x52,0x5b,0x70,0x26,0xf8,0xfb,0xfb,0x57,0xf1, - 0x73,0xc0,0x5e,0xbd,0x7a,0x35,0x6c,0x8c,0xd2,0xd2,0x52,0xc6,0xe7,0xb9, - 0xdf,0xe5,0xfc,0x8b,0x19,0x71,0x3f,0xa5,0x03,0x11,0x2b,0x15,0x6a,0x8d, - 0x32,0xfa,0xff,0xe0,0xc1,0x83,0x0c,0x39,0x90,0x1b,0x97,0x6a,0xb3,0x94, - 0x94,0x14,0xae,0xb6,0x22,0xbe,0xd8,0xd8,0xd8,0x4b,0x72,0xb6,0x24,0xd8, - 0xc4,0x2d,0x59,0xb2,0xe4,0x01,0x7f,0x87,0x64,0xe7,0xcf,0x9f,0x1f,0xaa, - 0xdd,0xba,0xba,0xba,0x18,0xde,0x81,0x63,0xcc,0xc8,0xc8,0xb8,0x20,0x67, - 0x0f,0x9b,0x1e,0x81,0xd1,0xcf,0xcf,0x8f,0x2e,0x6d,0xd1,0x52,0x35,0x37, - 0x37,0xd3,0xbb,0xd0,0x73,0x14,0x77,0x19,0xf2,0xb4,0xf8,0x9b,0x5f,0x27, - 0xea,0xbf,0x0c,0x39,0x3b,0xa9,0x70,0xf6,0x7e,0xc1,0xbe,0xe6,0xbe,0xe1, - 0x51,0x8c,0xa0,0xba,0x5e,0xa8,0xd9,0x71,0xae,0xf5,0x4a,0x76,0x62,0x46, - 0xbc,0x2b,0xed,0x87,0x48,0x39,0xe1,0x8e,0x10,0x83,0xf3,0x77,0x07,0xe3, - 0xb6,0xa2,0x9e,0x7b,0x89,0x73,0x54,0x7f,0xe8,0xd0,0xa1,0x1c,0xf0,0xc7, - 0x2a,0xd9,0xc8,0xa9,0xac,0xac,0x2c,0x09,0x77,0xe4,0xab,0xb8,0xd7,0xb7, - 0x61,0x8f,0xb4,0xe3,0x3e,0xdb,0x84,0xdc,0xff,0x23,0xf6,0x51,0x94,0x92, - 0x8d,0x98,0x11,0x77,0x0a,0x8a,0xe1,0xe1,0xef,0x93,0x7a,0x7b,0x7b,0x23, - 0x70,0x97,0xa2,0x6f,0x00,0x14,0x23,0x8c,0x98,0xf7,0x41,0xec,0x33,0xfa, - 0xef,0x93,0xf7,0x45,0x99,0x99,0x99,0xa9,0xfc,0xbe,0xfa,0x06,0xfa,0x9a, - 0x8f,0x51,0x54,0x57,0x7e,0xfc,0x3e,0xc8,0x6a,0xb5,0x86,0x62,0x6d,0x1f, - 0xf0,0x8c,0x1f,0x41,0xde,0x50,0x27,0xce,0xa8,0xed,0xd8,0xb1,0x63,0x5f, - 0xe0,0x99,0x90,0xd1,0x14,0xee,0xb1,0x21,0xc8,0xcd,0xc5,0x3c,0x5f,0xa5, - 0xcb,0x3f,0xdf,0x9b,0x03,0x20,0xba,0xcb,0x32,0x1f,0x1f,0x1f,0xdd,0xe9, - 0xd3,0xa7,0x13,0xf1,0x2e,0xc1,0xb0,0x09,0xfa,0xbf,0x84,0x7a,0x3d,0xf8, - 0xc8,0x91,0x23,0x9f,0xa3,0x8e,0x68,0xe3,0xf9,0xe8,0xfb,0xc3,0x07,0x2e, - 0xff,0x6e,0xfe,0xfc,0xfe,0x14,0xe2,0x8b,0x1d,0xf1,0xe5,0xf9,0xec,0xd9, - 0xb3,0x1f,0x8d,0xb0,0x1e,0xe3,0xfc,0xbe,0x14,0xf9,0xa5,0x6f,0xf6,0xf4, - 0x1d,0xfc,0x43,0x17,0xe5,0xf6,0x29,0xbf,0x47,0xef,0x41,0x26,0x91,0xed, - 0x48,0xea,0x05,0x44,0xf9,0xe2,0x9c,0xcc,0xdc,0xb9,0xfc,0x0d,0x45,0xac, - 0x59,0xc3 -}; - -// help.png -static const unsigned char image_2_data[] = { - 0x00,0x00,0x1a,0x44,0x78,0x9c,0xcd,0x98,0x79,0x4c,0x54,0x57,0x14,0xc6, - 0x87,0x45,0x45,0x21,0x4a,0x88,0x62,0x70,0xa9,0x31,0x11,0x81,0x49,0xf9, - 0x03,0x35,0x51,0x13,0xa8,0x46,0x0c,0x51,0x5c,0x80,0x88,0x0a,0x14,0x65, - 0x73,0x90,0x56,0x6b,0x42,0x6b,0x95,0x42,0x5a,0x1a,0xda,0x50,0x81,0xa6, - 0x18,0xa0,0x6c,0x51,0x94,0x68,0x59,0x9a,0x94,0x06,0x2d,0x20,0x18,0x62, - 0xa1,0x4a,0x0c,0x1d,0xb0,0xa0,0xa3,0x50,0x36,0xab,0x23,0x3b,0x8a,0xd0, - 0x11,0xcb,0x00,0xb7,0xdf,0x7d,0x1d,0xc8,0xcc,0xe5,0xbd,0x99,0x37,0x29, - 0x88,0x37,0xf9,0x65,0xc8,0xe1,0xcd,0x39,0xdf,0x9c,0x77,0xee,0xb9,0xe7, - 0x3d,0x89,0x64,0xda,0x32,0x03,0xfe,0x20,0x11,0xfc,0x02,0xee,0x83,0x07, - 0xb3,0x8c,0x1c,0x5c,0x04,0x9f,0x80,0x77,0xa7,0x4b,0xd2,0xd1,0x16,0x06, - 0x9e,0x01,0x32,0x89,0xa5,0xa5,0xe5,0xd8,0xe2,0xc5,0x8b,0xd5,0xb3,0x89, - 0x99,0x99,0xd9,0x84,0x56,0xcc,0x71,0x90,0x0b,0xde,0x61,0xf4,0x99,0x82, - 0x32,0x7a,0x8d,0xb9,0xb9,0xf9,0x44,0x4c,0x4c,0x4c,0x4f,0x59,0x59,0x59, - 0x47,0x67,0x67,0x67,0x13,0x21,0x44,0x31,0xdb,0x8c,0x8d,0x8d,0x29,0xe4, - 0x72,0x79,0x6b,0x7a,0x7a,0xfa,0x33,0x3b,0x3b,0xbb,0x51,0xaa,0xc3,0xc4, - 0xc4,0x64,0x18,0x9f,0x0e,0x5a,0x1a,0xcf,0x51,0xfb,0xa6,0x4d,0x9b,0x54, - 0x83,0x83,0x83,0x8f,0xde,0x84,0x2e,0x21,0x26,0x26,0x26,0x14,0x71,0x71, - 0x71,0xdd,0xd0,0x48,0x75,0x3e,0x85,0x2e,0x3b,0xe0,0x48,0xf5,0xad,0x59, - 0xb3,0xe6,0x9f,0xee,0xee,0xee,0x37,0x92,0x37,0x31,0x44,0x45,0x45,0xf5, - 0x68,0xee,0x7d,0x0e,0x88,0xa4,0x7f,0xa7,0xa5,0xa5,0x3d,0x9b,0x6b,0x5d, - 0xec,0xfd,0xb7,0xb6,0xb6,0x56,0x23,0x97,0x4a,0xe8,0xfb,0x99,0x6a,0x6c, - 0x6e,0x6e,0xfe,0x73,0xae,0x75,0xb1,0xec,0xda,0xb5,0xeb,0xa5,0x26,0x97, - 0x55,0xf4,0x13,0xba,0xef,0xc3,0xae,0x43,0x76,0x76,0xf6,0xd3,0xe5,0xcb, - 0x97,0x8f,0xd2,0x7d,0x34,0x53,0x2c,0x5c,0xb8,0x70,0x7c,0xc3,0x86,0x0d, - 0xaa,0xa3,0x47,0x8f,0x0e,0xa4,0xa4,0xa4,0x28,0xd5,0x6a,0xf5,0xb4,0xb8, - 0x93,0xc8,0x64,0xb2,0x7e,0x46,0x63,0x3d,0xea,0x55,0x07,0xa9,0x54,0xaa, - 0x32,0x35,0x35,0x25,0x9b,0x37,0x6f,0x9e,0x31,0xb0,0x2f,0xe9,0x5e,0x98, - 0xea,0x6d,0x4b,0x97,0x2e,0x1d,0xbd,0x71,0xe3,0x46,0x33,0x1b,0x9b,0x12, - 0x16,0x16,0xd6,0xc3,0x68,0xac,0x85,0x5d,0x07,0x07,0x07,0x07,0x95,0x95, - 0x95,0x15,0x99,0xe9,0x85,0x58,0xa4,0xb6,0xb6,0x96,0xc4,0xc7,0xc7,0x13, - 0xf4,0x46,0xb2,0x72,0xe5,0xca,0xd7,0xc8,0xe7,0xb4,0xf8,0xa1,0xa1,0xa1, - 0xdd,0x8c,0xc6,0x1a,0x7c,0x5d,0x07,0x68,0xfc,0x7b,0x36,0x34,0x6a,0xaf, - 0xc0,0xc0,0x40,0x2e,0x9f,0x55,0x55,0x55,0x0d,0x6c,0xfc,0x90,0x90,0x90, - 0x4e,0x6d,0x8d,0xe3,0xe3,0xe3,0xd5,0xb0,0xeb,0xb0,0x7e,0xfd,0xfa,0x59, - 0xd7,0x78,0xfa,0xf4,0x69,0x4e,0x63,0x45,0x45,0xc5,0x3d,0x36,0x7e,0x70, - 0x70,0xb0,0x92,0xd1,0x58,0x09,0xbb,0x0e,0xce,0xce,0xce,0x83,0xf4,0x7f, - 0x8b,0x16,0x2d,0x32,0x1a,0xfa,0xdb,0x4e,0x9d,0x3a,0x25,0x5a,0x23,0x6a, - 0x52,0xce,0xc6,0xc7,0xbe,0x7a,0xc2,0xdc,0xeb,0x72,0xd8,0x75,0xb8,0x76, - 0xed,0x5a,0xed,0xd6,0xad,0x5b,0xfb,0x90,0xcf,0x97,0xc6,0x02,0x8d,0x6a, - 0xea,0x17,0xe7,0x82,0x28,0x8d,0x38,0x7b,0xef,0xb2,0xf1,0x8f,0x1c,0x39, - 0xf2,0x98,0xc9,0x63,0x09,0xec,0x33,0xc6,0xce,0x9d,0x3b,0xb9,0x5a,0x52, - 0x2a,0x95,0xa2,0x34,0x96,0x96,0x96,0xde,0x61,0x7d,0xa0,0x56,0xdb,0x99, - 0x3c,0x16,0xc3,0x3e,0x63,0xb8,0xbb,0xbb,0x2b,0x8d,0xd1,0x58,0x52,0x52, - 0x52,0xcd,0xfa,0x08,0x08,0x08,0x68,0xd3,0xd6,0x88,0xbd,0x5f,0x84,0xfd, - 0xfe,0x93,0x21,0xca,0xcb,0xcb,0x2b,0xcf,0x9e,0x3d,0xdb,0xb0,0x67,0xcf, - 0x9e,0x8e,0xb5,0x6b,0xd7,0x0e,0xae,0x58,0xb1,0x62,0x98,0x0f,0x0b,0x0b, - 0x0b,0xee,0x5e,0xf7,0xf4,0xf4,0x88,0xd2,0x78,0xfd,0xfa,0xf5,0x5b,0x6c, - 0x2c,0x7f,0x7f,0xff,0x16,0x26,0x8f,0x85,0xf8,0x4a,0x81,0x3e,0xb0,0xcf, - 0x14,0xda,0xb3,0xe5,0xfc,0xf9,0xf3,0x89,0xad,0xad,0x2d,0x2f,0x98,0xb1, - 0x48,0x74,0x74,0xb4,0x5e,0x7d,0xda,0x1a,0x51,0xfb,0x37,0xd9,0x78,0x87, - 0x0f,0x1f,0x6e,0x66,0x34,0xfe,0x00,0xfb,0x55,0x21,0x12,0x13,0x13,0x6f, - 0x6b,0xe6,0x23,0x92,0x99,0x99,0x49,0x1a,0x1b,0x1b,0x69,0x0d,0x1b,0xd4, - 0x60,0x68,0xed,0xd8,0xb1,0x83,0xfe,0xd6,0x71,0xd4,0xc4,0x8f,0x6c,0xcc, - 0x43,0x87,0x0e,0x3d,0x62,0x34,0xe6,0xc2,0x7e,0x59,0x08,0x9c,0xb1,0xdc, - 0x7c,0xde,0xda,0xda,0x6a,0x30,0x2e,0xd5,0x3e,0x32,0x32,0xc2,0xcb,0x8b, - 0x17,0x2f,0x68,0x2f,0x24,0x49,0x49,0x49,0x64,0xe3,0xc6,0x8d,0x5c,0x0e, - 0x71,0x56,0xf4,0xf2,0xc5,0xf4,0xf5,0xf5,0x55,0x30,0xf5,0x78,0x11,0x35, - 0x70,0x81,0x8f,0x57,0xaf,0x5e,0xe5,0xcc,0x9b,0x37,0x6f,0xcc,0xc9,0xc9, - 0xc9,0xa0,0xbe,0xd8,0xd8,0x58,0x42,0xcf,0x78,0xed,0x9a,0xd0,0xc7,0xb6, - 0x6d,0xdb,0x5a,0x1f,0x3e,0x7c,0x98,0xc7,0x17,0xf7,0xc0,0x81,0x03,0xf7, - 0x99,0x3c,0x66,0x22,0x44,0x06,0x1f,0xe8,0x71,0xf4,0x79,0x88,0x78,0x7a, - 0x7a,0x1a,0xd4,0x88,0x99,0x8f,0xde,0x3b,0x35,0xfa,0xff,0x53,0x3e,0x5c, - 0x5c,0x5c,0xfe,0xc2,0x5e,0xa8,0x4b,0x48,0x48,0xa8,0xa8,0xaf,0xaf,0xbf, - 0x2a,0x14,0x93,0xe2,0xe3,0xe3,0xd3,0xc0,0x68,0x4c,0x83,0x3d,0x95,0x0f, - 0x68,0xcc,0x12,0xab,0x71,0xc9,0x92,0x25,0x64,0xd5,0xaa,0x55,0xfd,0x42, - 0xbe,0x8c,0xc1,0xdb,0xdb,0xfb,0x1e,0xa3,0xf1,0x3c,0xec,0xc9,0x7c,0x74, - 0x75,0x75,0x7d,0x4f,0xaf,0xa1,0xf5,0xd3,0xd4,0xd4,0xa4,0x17,0x7a,0x06, - 0x62,0x8e,0xe9,0x13,0xf2,0x65,0x0c,0xfb,0xf7,0xef,0xaf,0x67,0x34,0x7e, - 0x0b,0x7b,0x12,0x1f,0x43,0x43,0x43,0xdf,0xa1,0x1e,0xd5,0x62,0x6b,0x0c, - 0x75,0xfb,0x58,0xc8,0x97,0x31,0xec,0xdb,0xb7,0x4f,0xce,0x68,0xfc,0x06, - 0xf6,0x78,0x21,0x2e,0x5d,0xba,0x74,0x05,0x7d,0xe2,0xde,0x96,0x2d,0x5b, - 0x14,0xeb,0xd6,0xad,0x7b,0x82,0x1e,0x38,0x80,0xf9,0xf4,0xf9,0xb2,0x65, - 0xcb,0x9e,0xaf,0x5e,0xbd,0xba,0xdb,0xd1,0xd1,0xb1,0x63,0xfb,0xf6,0xed, - 0x7f,0xe0,0x7c,0xa9,0xc7,0x9c,0x95,0xa1,0xcf,0x97,0x58,0x70,0x4e,0xd4, - 0x32,0x1a,0xbf,0x82,0x3d,0x4e,0x08,0xec,0xb3,0x38,0xd4,0xc7,0x6d,0xec, - 0xd9,0x09,0xa1,0xfc,0xe1,0x6c,0x79,0x9d,0x93,0x93,0x73,0x59,0x9f,0x1f, - 0x63,0xd8,0xbd,0x7b,0xf7,0x5d,0xa6,0xf7,0xc4,0xc2,0xfe,0x85,0x10,0x7b, - 0xf7,0xee,0xfd,0x8d,0x5e,0x87,0xe7,0x1b,0x92,0x95,0x95,0x45,0x6a,0x6a, - 0x6a,0x48,0x7b,0x7b,0x3b,0x69,0x6b,0x6b,0x23,0x85,0x85,0x85,0xe4,0xd8, - 0xb1,0x63,0xf4,0xfd,0x01,0xa1,0x35,0x81,0x19,0x26,0x55,0x9f,0x2f,0xb1, - 0xe0,0x99,0xab,0x86,0xc9,0x63,0x0c,0xec,0xd1,0x7c,0x60,0xcf,0x7c,0x89, - 0x99,0x7e,0x0c,0xf7,0x94,0xa0,0x36,0x89,0xd0,0xca,0xcd,0xcd,0xe5,0xf2, - 0xe9,0xea,0xea,0xfa,0xbb,0x90,0x2f,0x63,0xf0,0xf0,0xf0,0xb8,0xcd,0xe4, - 0xf1,0x0c,0xec,0x9f,0xf2,0x91,0x91,0x91,0x91,0x4e,0xaf,0x89,0x8c,0x8c, - 0x14,0xd4,0x47,0x17,0x3d,0x5f,0xe8,0x7c,0x8b,0x5a,0xed,0x12,0xf2,0x65, - 0x0c,0x98,0xef,0xaa,0x19,0x8d,0x1f,0xc3,0x1e,0xc9,0x47,0x71,0x71,0x31, - 0xf7,0xae,0xe5,0xe0,0xc1,0x83,0x7a,0x35,0xf6,0xf6,0xf6,0x72,0xcf,0x7c, - 0x98,0x87,0x5a,0x84,0x7c,0x19,0x03,0xf6,0xe8,0xaf,0x8c,0x46,0x3a,0xd8, - 0x7f,0x24,0x04,0x7a,0xf3,0x00,0x8d,0x9f,0x9a,0x9a,0x4a,0xb0,0x7f,0xa6, - 0xe9,0x53,0xa9,0x54,0xdc,0x7c,0x40,0x7d,0xf9,0xf9,0xf9,0x15,0xe9,0xf3, - 0x25,0x16,0xf4,0x89,0x5b,0x8c,0xc6,0x0f,0x61,0xff,0x40,0x88,0xfc,0xfc, - 0xfc,0xaf,0x17,0x2c,0x58,0x30,0x42,0xaf,0x45,0x8f,0x26,0x5e,0x5e,0x5e, - 0xe4,0xf8,0xf1,0xe3,0x24,0x3c,0x3c,0x9c,0x60,0xde,0x98,0x7a,0x66,0x46, - 0x5f,0x7a,0x00,0xbd,0x27,0xf4,0xf9,0x12,0x0b,0xce,0xf2,0x4a,0x46,0x63, - 0x38,0xec,0x32,0x7d,0x54,0x57,0x57,0x9f,0x41,0x7f,0x96,0xe3,0x3c,0x1e, - 0x61,0xfb,0x8e,0x8d,0x8d,0x4d,0x57,0x50,0x50,0xd0,0x95,0xe1,0xe1,0xe1, - 0x08,0x43,0x7e,0xc4,0xe2,0xe6,0xe6,0x76,0x53,0xe3,0x9f,0x7b,0xef,0x58, - 0x57,0x57,0x47,0xf3,0x1b,0x2c,0x96,0xa2,0xa2,0xa2,0xa8,0xbc,0xbc,0xbc, - 0x98,0x82,0x82,0x82,0x68,0xfc,0xbe,0x10,0x63,0xbe,0x2b,0x16,0xcc,0x20, - 0x77,0x34,0x1a,0x3f,0xa7,0x9f,0x27,0x4f,0x9e,0x4c,0x81,0x3d,0xf0,0x6d, - 0x02,0x67,0x7f,0x1f,0xb4,0x0d,0x00,0x57,0xaa,0x11,0xfd,0xa2,0x05,0xbd, - 0xef,0x7d,0xfc,0xcf,0xef,0x6d,0x20,0x22,0x22,0xe2,0xbc,0x26,0x87,0x45, - 0x92,0xff,0x16,0xf7,0x7e,0x4f,0x2a,0x95,0xde,0x1a,0x1d,0x1d,0xa5,0x0d, - 0xc6,0x77,0x2e,0xc1,0x8c,0xfe,0x19,0xce,0x5c,0xfa,0xce,0x59,0x05,0xa4, - 0x1a,0x8d,0x96,0x80,0x9b,0xd5,0xd0,0x83,0xfb,0x64,0x32,0xd9,0x39,0xcc, - 0xf5,0x3e,0xb8,0xde,0xeb,0x4d,0x81,0xfe,0xef,0x95,0x9c,0x9c,0x1c,0x69, - 0x6f,0x6f,0x4f,0x7b,0x22,0x9d,0x09,0xe8,0xbb,0x7b,0x2f,0x89,0xee,0xb2, - 0x01,0xa9,0x60,0x6a,0x06,0xc3,0x8c,0xd0,0x8f,0xf3,0xb9,0x11,0x34,0xcc, - 0x26,0x98,0x9d,0x14,0x1a,0x5d,0x93,0x7d,0x82,0x3e,0x0f,0xbe,0x27,0x11, - 0x5e,0xd6,0x20,0x01,0x54,0x00,0xa5,0x44,0x22,0x6e,0x66,0xfc,0x9f,0xd0, - 0xfb,0x5a,0x07,0xae,0x80,0x13,0xc0,0x44,0x5b,0xd0,0xbf,0x6f,0xf5,0xde, - 0xd4 -}; - -// keep_above_lit.png -static const unsigned char image_3_data[] = { - 0x00,0x00,0x1a,0xe8,0x78,0x9c,0xcd,0x98,0x79,0x4c,0x15,0x57,0x14,0xc6, - 0x11,0x31,0xa2,0x28,0xae,0xb8,0xc7,0xdd,0x58,0x97,0x18,0xe3,0x82,0x1a, - 0x71,0x89,0x26,0xfd,0x83,0x54,0x6b,0x5d,0x08,0x1a,0xb4,0xb8,0xa0,0x52, - 0x45,0x2c,0x2e,0x68,0x5d,0x2a,0xc6,0x82,0x40,0x28,0x34,0x48,0x31,0x96, - 0x96,0x1a,0xaa,0x88,0xd5,0x82,0x28,0x60,0x01,0x2b,0x8b,0x20,0x8b,0xec, - 0xfb,0xe2,0x82,0x28,0x22,0xa4,0x96,0x36,0x61,0x7f,0xbc,0xe9,0x77,0xa6, - 0x33,0xe9,0xf5,0xf0,0xa0,0x56,0xfa,0x8a,0x37,0xf9,0x85,0x97,0xf9,0x66, - 0xe6,0x7c,0x33,0x73,0xef,0x39,0xe7,0x62,0x60,0xd0,0x6e,0xf4,0x00,0x1b, - 0x80,0x2b,0x08,0x05,0xb9,0x20,0x5f,0xcf,0x64,0x82,0x8b,0xe0,0x08,0x30, - 0x6f,0x6f,0xa9,0x9d,0xbf,0xf5,0xa0,0x0c,0x48,0x2a,0x7d,0xfa,0xf4,0x69, - 0x33,0x35,0x35,0x6d,0xd5,0x27,0x46,0x46,0x46,0x5a,0x31,0x26,0x08,0x03, - 0xd3,0x3a,0xf0,0x49,0xcf,0x23,0x19,0x1a,0x1a,0x6a,0x9d,0x9c,0x9c,0x6a, - 0xc2,0xc3,0xc3,0x9f,0x54,0x54,0x54,0x94,0x48,0x92,0x54,0xa0,0x6f,0x34, - 0x1a,0x4d,0x41,0x4e,0x4e,0x4e,0xf9,0x85,0x0b,0x17,0x9e,0x8d,0x1f,0x3f, - 0xbe,0x99,0x7c,0xf4,0xe8,0xd1,0xa3,0x05,0x7f,0x17,0x32,0x8f,0x0e,0xa4, - 0x4d,0x99,0x32,0xa5,0xb1,0xa6,0xa6,0xa6,0xf8,0xff,0xf0,0xd6,0x19,0x5e, - 0x5e,0x5e,0x55,0x3d,0x7b,0xf6,0xd4,0xc2,0x6b,0x1d,0x7c,0xbd,0xa7,0x78, - 0x34,0x03,0x6d,0x83,0x07,0x0f,0x6e,0x2d,0x29,0x29,0x29,0xed,0x6e,0x8f, - 0x2a,0x7e,0x7e,0x7e,0xcf,0x95,0x39,0x10,0xad,0xf8,0xa4,0x35,0x23,0x39, - 0x3b,0x3b,0xbf,0xec,0x6e,0x6f,0x9c,0xa9,0x53,0xa7,0x36,0xe2,0x9d,0x36, - 0xc1,0x9f,0x31,0xf0,0x25,0x9f,0xd1,0xd1,0xd1,0x8f,0xbb,0xdb,0x17,0x67, - 0xfb,0xf6,0xed,0xbf,0x2a,0xef,0x74,0x29,0xb8,0x4c,0xbf,0xcb,0xcb,0xcb, - 0x69,0x5e,0xe6,0xe9,0xa2,0xb5,0xb5,0x35,0xcf,0xd2,0xd2,0xb2,0x6e,0xf4, - 0xe8,0xd1,0xcd,0xbd,0x7a,0xf5,0xd2,0xd2,0xfa,0xec,0x0a,0xfd,0xfb,0xf7, - 0xd7,0x4c,0x9f,0x3e,0xbd,0x01,0xeb,0xa6,0xb2,0xa3,0x98,0xc4,0xa9,0x53, - 0xa7,0x5e,0x28,0x3e,0xd7,0xa8,0x3e,0xcb,0xca,0xca,0xf2,0xb5,0x5a,0x6d, - 0x26,0x27,0x26,0x26,0xa6,0xa4,0x77,0xef,0xde,0x6d,0x6a,0xce,0xc0,0x6f, - 0x69,0xd8,0xb0,0x61,0x5d,0x42,0xcc,0x41,0xd3,0xa6,0x4d,0xab,0xc7,0x7a, - 0x6f,0x17,0x97,0x38,0x79,0xf2,0xe4,0x33,0xee,0xb3,0xb4,0xb4,0x34,0x1b, - 0x5a,0x9a,0xc8,0x8b,0x17,0x2f,0x32,0xe9,0xfd,0x91,0xbe,0x62,0xc5,0x0a, - 0xe9,0xc1,0x83,0x07,0x12,0x8e,0x4b,0x5d,0x1d,0xf0,0x25,0x45,0x46,0x46, - 0x4a,0x63,0xc6,0x8c,0x91,0xbd,0xce,0x9f,0x3f,0xff,0x0f,0x1e,0x9b,0x38, - 0x71,0xe2,0xc4,0x53,0x1d,0x3e,0x33,0x70,0x8b,0x64,0x11,0x6b,0x6b,0xeb, - 0x6a,0xd2,0x56,0xaf,0x5e,0xdd,0x65,0x6f,0xba,0x46,0x55,0x55,0x95,0x84, - 0x3c,0x43,0xb9,0x52,0xaa,0xae,0xae,0x4e,0xe3,0xf1,0x8f,0x1f,0x3f,0xfe, - 0x84,0xfb,0x44,0x4e,0x4a,0x85,0x96,0x20,0x82,0x9c,0xdb,0x40,0xda,0xfd, - 0xfb,0xf7,0xf5,0xe2,0x93,0xc6,0xae,0x5d,0xbb,0xe4,0x77,0x8a,0x6f,0x5c, - 0xce,0xe3,0x1f,0x3b,0x76,0xec,0x21,0xf7,0x59,0x5c,0x5c,0x9c,0x04,0xed, - 0x8e,0xc8,0xd0,0xa1,0x43,0x29,0x27,0x48,0xb5,0xb5,0xb5,0x7a,0xf3,0xe9, - 0xe9,0xe9,0x29,0xfb,0xdc,0xba,0x75,0x6b,0x05,0x8f,0x7f,0xf4,0xe8,0xd1, - 0x32,0x1d,0x3e,0xe3,0xa1,0xfd,0x2c,0xa2,0xfa,0x7c,0xf9,0xf2,0xa5,0xde, - 0x7c,0xba,0xbb,0xbb,0xcb,0x3e,0xb7,0x6d,0xdb,0xf6,0x88,0xc7,0x3f,0x72, - 0xe4,0x48,0x31,0xf7,0x59,0x54,0x54,0xf4,0x0b,0xb4,0x08,0x11,0xf8,0x6c, - 0x24,0x0d,0xeb,0x49,0x6f,0x3e,0xcf,0x9e,0x3d,0xab,0xfa,0x7c,0xc8,0xe3, - 0x1f,0x3e,0x7c,0xb8,0x90,0xfb,0x2c,0x2c,0x2c,0x8c,0x86,0x76,0x43,0x04, - 0x3e,0xe5,0xf9,0x39,0x61,0xc2,0x04,0xaa,0xfd,0x7a,0x61,0xc8,0x90,0x21, - 0xaa,0xcf,0x52,0x1e,0xff,0xd0,0xa1,0x43,0xf9,0xdc,0x67,0x41,0x41,0x41, - 0x24,0x72,0xc1,0x75,0x11,0xd4,0xad,0x57,0xa4,0x0d,0x18,0x30,0xa0,0x69, - 0xd0,0xa0,0x41,0x7a,0xa1,0x6f,0xdf,0xbe,0xad,0xca,0x3a,0xca,0xe2,0xf1, - 0x0f,0x1c,0x38,0x90,0xab,0xc3,0x67,0x38,0x9e,0xe1,0x8a,0xc8,0xd2,0xa5, - 0x4b,0x9f,0x2a,0xb5,0x2a,0x8c,0x6b,0x1d,0x51,0x5f,0x5f,0x7f,0xb5,0xa9, - 0xa9,0x29,0xe4,0x4d,0xcf,0x47,0x5f,0x91,0x41,0x31,0x7c,0x7c,0x7c,0x92, - 0xb8,0x86,0xfe,0x32,0x8b,0xfb,0xcc,0xcf,0xcf,0x0f,0x85,0xf6,0x83,0xc8, - 0x92,0x25,0x4b,0x2a,0x94,0x5a,0x75,0x9d,0x6b,0xba,0xf0,0xf5,0xf5,0x8d, - 0x47,0xbd,0xd2,0xa0,0xb7,0x6e,0x09,0x0a,0x0a,0x8a,0x7d,0x93,0x6b,0xf0, - 0x6d,0xd3,0x29,0x86,0xb7,0xb7,0x77,0x22,0xd7,0xf6,0xef,0xdf,0x9f,0xc1, - 0x7d,0xe6,0xe5,0xe5,0xfd,0x08,0xed,0x7b,0x11,0x0b,0x0b,0x8b,0x27,0x4a, - 0x0d,0x08,0xe1,0x1a,0x27,0x22,0x22,0xe2,0x26,0xf5,0xd8,0xa8,0xdd,0xd4, - 0x6b,0x53,0x7d,0x6d,0x45,0xef,0xdb,0xee,0x9e,0x9c,0x83,0x07,0x0f,0xa6, - 0x52,0x0c,0xf4,0x9c,0x71,0x5c,0x73,0x74,0x74,0x4c,0xe7,0x3e,0x71,0xcf, - 0x60,0xcc,0x89,0x00,0x91,0xc5,0x8b,0x17,0x3f,0x52,0x6a,0xc0,0x25,0xae, - 0x89,0xb4,0xb5,0xb5,0x05,0x8c,0x1b,0x37,0x4e,0xee,0x6d,0xd0,0x0f,0x48, - 0x81,0x81,0x81,0xf2,0xda,0xa0,0xeb,0x3b,0xbb,0x8e,0xc0,0xb7,0x4d,0xa6, - 0x73,0x91,0x47,0xef,0x70,0xcd,0xc1,0xc1,0x21,0x85,0xfb,0xcc,0xce,0xce, - 0x0e,0xc2,0x33,0xf8,0x8b,0x2c,0x5a,0xb4,0xe8,0xa1,0xe2,0xf3,0x22,0xd7, - 0x44,0xdc,0xdc,0xdc,0x62,0xe8,0xbc,0x8d,0x1b,0x37,0xca,0xb9,0x86,0x7a, - 0x80,0xd9,0xb3,0x67,0xcb,0xf5,0x30,0x36,0x36,0x36,0xa4,0xb3,0x6b,0xf1, - 0x6d,0xef,0xd1,0xb5,0xc8,0xa3,0xd1,0x5c,0xdb,0xb3,0x67,0x4f,0xb2,0x0e, - 0x9f,0x81,0xd0,0x7c,0x45,0x16,0x2e,0x5c,0x58,0xa6,0xd4,0x80,0x6f,0xb9, - 0xa6,0xd2,0xd2,0xd2,0x72,0x6e,0xe4,0xc8,0x91,0xaf,0xd0,0xaf,0xd1,0xfc, - 0x90,0xd4,0x11,0x1a,0x1a,0x2a,0xbf,0x53,0xac,0xc5,0xe2,0x8e,0xae,0x25, - 0xf0,0x6d,0xe3,0xe9,0x3c,0xe4,0xd1,0x28,0xae,0xd9,0xdb,0xdb,0xdf,0xe3, - 0x3e,0xb3,0xb2,0xb2,0x02,0xa0,0x79,0x8b,0x2c,0x58,0xb0,0xa0,0x54,0xa9, - 0x01,0x17,0xb8,0xa6,0x82,0xf5,0x1a,0xa3,0xd4,0x3d,0x49,0x1c,0x98,0x0b, - 0xd2,0x8c,0x19,0x33,0xe4,0x7d,0x61,0x6a,0x6a,0xea,0x77,0x1d,0x5d,0x8f, - 0x6f,0x7b,0x97,0xae,0x77,0x75,0x75,0x8d,0xe0,0xda,0xee,0xdd,0xbb,0xe3, - 0xb9,0xcf,0x8c,0x8c,0x8c,0xf3,0xd0,0x3c,0x45,0xcc,0xcd,0xcd,0x4b,0x94, - 0x1a,0xf0,0x35,0xd7,0x88,0xcb,0x97,0x2f,0x5f,0x42,0xdf,0xa7,0xe9,0xd7, - 0xaf,0x9f,0x84,0xbd,0xa9,0xc4,0x47,0x70,0x70,0xb0,0xfc,0x4e,0xd1,0xbf, - 0xd5,0xa0,0x47,0xf0,0xd1,0x75,0x0f,0x7c,0xdb,0x3b,0x74,0xce,0x99,0x33, - 0x67,0xc2,0xb9,0xb6,0x73,0xe7,0xce,0xbb,0xdc,0x27,0x7a,0xcb,0x73,0xd0, - 0x5c,0x45,0xe6,0xcd,0x9b,0x57,0xa4,0xe4,0xd6,0xaf,0xb8,0x96,0x90,0x90, - 0xe0,0x0f,0x7f,0x0d,0xd8,0x17,0x4a,0x58,0xeb,0xed,0x3c,0xaa,0x03,0xb1, - 0x64,0xaf,0xb8,0x57,0x31,0xde,0xb1,0x1b,0xbf,0x0f,0xbe,0x2d,0xed,0xd3, - 0xa4,0xd3,0xa7,0x4f,0x87,0x72,0x6d,0xc7,0x8e,0x1d,0xb1,0xdc,0x67,0x7a, - 0x7a,0x3a,0x3d,0xef,0x69,0x91,0xb9,0x73,0xe7,0x16,0x2a,0x39,0xeb,0x4b, - 0xf1,0x78,0x5d,0x5d,0x9d,0xab,0x99,0x99,0x99,0xbc,0xbe,0xfd,0xfd,0xfd, - 0x3b,0xf4,0x48,0xa3,0xb9,0xb9,0x59,0x42,0x1e,0x96,0xbd,0x6e,0xde,0xbc, - 0xf9,0x0e,0x8f,0x81,0xbe,0xee,0x36,0x69,0xd8,0x63,0x5c,0xe3,0x1a,0x6a, - 0x69,0x34,0xf7,0x89,0x39,0xe4,0x05,0xed,0xa4,0xc8,0x9c,0x39,0x73,0xe4, - 0xfa,0x9a,0x9b,0x9b,0xeb,0x21,0x1e,0x5f,0xb6,0x6c,0x99,0x9c,0xd7,0xf6, - 0xee,0xdd,0xdb,0xa9,0x47,0x75,0xa0,0x46,0x49,0x58,0x6b,0x5a,0xbc,0x7b, - 0x4d,0x58,0x58,0x98,0x9f,0x78,0x2f,0x3b,0x3b,0xbb,0x08,0xa5,0x6e,0x86, - 0xf0,0xf8,0xb6,0xb6,0xb6,0xb7,0xb9,0xcf,0x94,0x94,0x14,0x77,0x68,0x9f, - 0x89,0x20,0xb7,0xe4,0x29,0xb9,0xd5,0x4d,0x3d,0x56,0x59,0x59,0xe9,0xa2, - 0xf6,0x26,0xf4,0xae,0x68,0x50,0x1e,0xa2,0x9e,0x0a,0x39,0x43,0xde,0x4f, - 0x24,0x27,0x27,0x4b,0x38,0xef,0xb5,0x3d,0x4a,0x78,0x78,0xb8,0xfa,0xfd, - 0x73,0xc4,0x18,0xd8,0x53,0xde,0xa4,0xe3,0xe8,0xdd,0x83,0x79,0xfc,0x2d, - 0x5b,0xb6,0x44,0x72,0x9f,0xb8,0xf7,0x17,0xd0,0x0e,0x89,0xe0,0x9e,0xf4, - 0xff,0x29,0x29,0x2a,0x2a,0xca,0x43,0x3d,0x86,0x35,0x75,0x0a,0x6b,0x58, - 0xde,0xd7,0x0d,0x1c,0x38,0x50,0x6b,0x62,0x62,0xf2,0xda,0xbe,0x4c,0x84, - 0xf2,0xe7,0xc4,0x89,0x13,0xe5,0x75,0x3f,0x73,0xe6,0x4c,0xf9,0xd8,0xe4, - 0xc9,0x93,0x4b,0xc5,0x18,0xeb,0xd6,0xad,0x93,0xdf,0x99,0x8b,0x8b,0x4b, - 0x20,0x8f,0x6f,0x63,0x63,0x73,0x93,0xfb,0x4c,0x4a,0x4a,0x72,0x81,0xf6, - 0xa9,0x08,0x9e,0xe7,0x27,0xd2,0x36,0x6c,0xd8,0x70,0x4b,0x3c,0xee,0xe1, - 0xe1,0x71,0x7e,0xec,0xd8,0xb1,0x8f,0xb0,0x77,0xac,0x1a,0x31,0x62,0xc4, - 0xb3,0x51,0xa3,0x46,0x3d,0x85,0x8f,0x1c,0xd4,0xd9,0xa4,0xb5,0x6b,0xd7, - 0x46,0xae,0x5c,0xb9,0xf2,0xee,0xac,0x59,0xb3,0xb2,0xb1,0xce,0x9f,0xa0, - 0x8e,0xd6,0x19,0x1b,0x1b,0xd3,0x7a,0xd3,0x60,0x2f,0x54,0x8b,0xba,0xef, - 0xa5,0xde,0x07,0xfb,0x6d,0x27,0xba,0x5e,0xc9,0x37,0x9f,0xf3,0xf8,0x9b, - 0x36,0x6d,0xba,0xc1,0x7d,0x26,0x26,0x26,0xd2,0x9c,0x70,0x10,0x49,0x4b, - 0x4b,0x3b,0x8e,0xbc,0xd3,0x8c,0xf7,0xa2,0x5d,0xb5,0x6a,0x55,0x64,0x63, - 0x63,0xa3,0x23,0x3f,0xe7,0x6d,0x41,0x0f,0x76,0x18,0x7b,0x62,0xb9,0x6f, - 0xa3,0xbf,0xba,0xce,0xc1,0x3e,0x32,0x94,0xfb,0x8c,0x8f,0x8f,0xa7,0x39, - 0x61,0xcf,0x41,0xbf,0xe5,0x45,0x5e,0xe9,0x1c,0xd4,0x9c,0x96,0x49,0x93, - 0x26,0x15,0xa0,0xbf,0xcd,0xeb,0x0a,0xe8,0xbf,0x9f,0xab,0x73,0x07,0xdf, - 0xa4,0x12,0xfb,0x1a,0x47,0x5d,0xb1,0xad,0xac,0xac,0xae,0x71,0x9f,0x71, - 0x71,0x71,0xce,0xd0,0xec,0x74,0x81,0xbe,0x6e,0x1f,0xe6,0x6a,0x22,0xfa, - 0x5a,0xda,0x27,0xf3,0xff,0x55,0xfe,0x6b,0xf0,0x7d,0xda,0x30,0x27,0xca, - 0x2c,0x2d,0x2d,0x6f,0xa0,0x57,0xdd,0xd5,0x51,0x5c,0xcc,0xdd,0xab,0x82, - 0xcf,0x6f,0xe8,0x77,0x40,0x40,0x00,0xcd,0x0f,0xdb,0x7f,0x02,0xb9,0x73, - 0x07,0xea,0xf8,0x27,0x6f,0x0b,0x9e,0xd9,0xfe,0x4d,0xe2,0x10,0xcb,0x97, - 0x2f,0xbf,0xa5,0xf8,0x7c,0x1f,0x6c,0xa5,0xdf,0x6b,0xd6,0xac,0xa1,0x7e, - 0xc9,0xe6,0x5d,0x02,0x6b,0x8c,0xfa,0x0b,0x0d,0x18,0x00,0xc6,0x93,0x4f, - 0x53,0x53,0xd3,0x2a,0xd4,0xe8,0x8f,0xa1,0x5b,0xbf,0x0b,0xf8,0xf9,0xf9, - 0x1d,0xc5,0xfc,0x20,0x8f,0x69,0x06,0x7f,0x8f,0x73,0xe4,0x15,0xb9,0x26, - 0xb3,0xa1,0xa1,0xc1,0x0a,0xe7,0xad,0xef,0x4e,0x90,0xbb,0x1c,0xb1,0x76, - 0xeb,0xe1,0x89,0xf6,0x78,0x16,0x82,0x4f,0x23,0x83,0xbf,0xfe,0x6f,0x4b, - 0xfb,0x85,0xdf,0xd1,0xef,0x7a,0xa3,0xd6,0x7d,0x84,0x6b,0x3e,0xfc,0x3f, - 0x41,0xaf,0xb0,0x0f,0x79,0x37,0x52,0x79,0x8f,0x34,0x2f,0xed,0x0d,0xda, - 0x0f,0x13,0x70,0x06,0x34,0xaa,0xeb,0x12,0x9e,0x7f,0x1b,0x3e,0x7c,0x78, - 0x2e,0xc8,0xd1,0x27,0xc8,0x4d,0xf9,0x94,0x03,0x84,0x9c,0x50,0x09,0x3e, - 0xd0,0xe1,0x51,0x1c,0xfd,0x14,0xbf,0x54,0x5b,0x1f,0xff,0x17,0x79,0xe8, - 0x0d,0xa0,0xf7,0x97,0x03,0xae,0x00,0x27,0x60,0xc8,0x4d,0xfd,0x09,0xc2, - 0x58,0x25,0x81 -}; - -// keep_above.png -static const unsigned char image_4_data[] = { - 0x00,0x00,0x1a,0x44,0x78,0x9c,0xcd,0x99,0x6b,0x4c,0x54,0x47,0x14,0xc7, - 0x57,0xf1,0x81,0xe2,0x03,0x71,0xf1,0x85,0x8a,0xf8,0x16,0xc5,0xf7,0x03, - 0xe5,0x83,0xb1,0xfa,0xc5,0x17,0x35,0xda,0x0f,0x0d,0x41,0xd3,0x10,0x5a, - 0x62,0x93,0x26,0x6d,0x08,0x58,0x8c,0xb5,0xd4,0x3e,0x68,0x81,0x60,0xb4, - 0xa8,0x24,0x85,0x56,0xa2,0xb5,0x08,0x02,0xb1,0x46,0x2d,0x52,0x8b,0x0a, - 0xc5,0xb4,0xe9,0x23,0xed,0xea,0x56,0x40,0x40,0x11,0x76,0x81,0x5d,0x40, - 0x14,0x5c,0xd8,0x95,0xbd,0xfd,0x9f,0x75,0x86,0x4e,0x67,0xef,0x22,0xa5, - 0xae,0x78,0x93,0x5f,0x80,0x73,0xee,0xcc,0xfc,0x77,0xe6,0x9c,0x33,0x33, - 0x8b,0x46,0xe3,0xf4,0xf8,0x81,0x48,0x70,0x04,0xfc,0x04,0x6e,0x3c,0x07, - 0x0a,0xc1,0x61,0x10,0x01,0x7c,0x9d,0x25,0x75,0x3f,0xde,0xe0,0x33,0x60, - 0x01,0x0a,0x67,0xd4,0xa8,0x51,0x36,0x77,0x23,0x8e,0x07,0x1e,0x80,0x7d, - 0xc0,0x4b,0xd2,0xe7,0x33,0x60,0xc0,0x80,0xbb,0x4c,0xd3,0xe3,0xe4,0xe4, - 0x64,0x43,0x71,0x71,0x71,0xa5,0xd5,0x6a,0xd5,0x2b,0x8a,0x72,0xd3,0xdd, - 0x74,0x76,0x76,0xea,0x8b,0x8a,0x8a,0xaa,0x12,0x12,0x12,0x8c,0xc3,0x87, - 0x0f,0x7f,0xcc,0xb4,0xde,0x14,0x74,0x7a,0x82,0x52,0xb2,0x87,0x87,0x87, - 0x37,0x3f,0x2f,0x5d,0xae,0xb0,0x58,0x2c,0xfa,0xd0,0xd0,0xd0,0xfb,0x4c, - 0xe7,0x39,0xe0,0x01,0xde,0xa6,0xbf,0xb7,0x6e,0xdd,0xda,0x6a,0xb7,0xdb, - 0xfb,0x4d,0x9b,0x08,0xcd,0x53,0x48,0x48,0x48,0x1b,0xd3,0x19,0x06,0x2e, - 0xd0,0xef,0x55,0x55,0x55,0x65,0xfd,0xad,0x4d,0xa4,0xa4,0xa4,0xa4,0x92, - 0x69,0xfc,0x8a,0x72,0xc4,0xdf,0xdf,0xbf,0xb3,0xbf,0x35,0xc9,0xd8,0x6c, - 0xb6,0x9b,0x23,0x47,0x8e,0xa4,0xd8,0x74,0x68,0x5d,0xb3,0x66,0xcd,0x43, - 0xd8,0x75,0xae,0x30,0x1a,0x8d,0xfa,0x15,0x2b,0x56,0xb4,0xf9,0xf8,0xf8, - 0xd8,0x06,0x0d,0x1a,0x64,0xff,0x3f,0x0c,0x1e,0x3c,0xd8,0xae,0xd5,0x6a, - 0x6d,0x34,0x66,0x4b,0x4b,0x8b,0xbe,0xa7,0x71,0x67,0xcd,0x9a,0x65,0x41, - 0x2e,0x3b,0x62,0x73,0xf5,0xea,0xd5,0x0f,0x10,0x8b,0xbf,0xa9,0xb1,0x73, - 0xe7,0x4e,0x93,0x58,0x1b,0x46,0x8f,0x1e,0xad,0x8c,0x1b,0x37,0xae,0xcf, - 0x8c,0x18,0x31,0x42,0xac,0x33,0x4a,0x4c,0x4c,0x8c,0xc1,0xd5,0xd8,0xa2, - 0xc6,0xe0,0xe0,0x60,0xca,0x97,0x9f,0x65,0x92,0x92,0x92,0xaa,0xf1,0x8e, - 0xe2,0xe5,0xe5,0xa5,0x64,0x66,0x66,0x2a,0x98,0x4f,0xe5,0x59,0x3c,0x3a, - 0x9d,0x4e,0x89,0x8b,0x8b,0x53,0x30,0xa7,0x0a,0xf5,0x7f,0xfa,0xf4,0xe9, - 0x32,0xb5,0xf1,0x67,0xce,0x9c,0xf9,0x88,0x6b,0x5c,0xb5,0x6a,0xd5,0x7d, - 0x34,0x2d,0x95,0x41,0x3c,0xd8,0xa8,0x8f,0xab,0x57,0xaf,0x3e,0x13,0x6d, - 0xf2,0x73,0xf4,0xe8,0x51,0xc7,0x5c,0xfa,0xf9,0xf9,0x59,0xd4,0xc6,0x87, - 0xc6,0x76,0xae,0x71,0xe5,0xca,0x95,0x2d,0xb0,0x5d,0x13,0x69,0x6b,0x6b, - 0x2b,0x21,0x7d,0x73,0xe7,0xce,0x75,0x8b,0x3e,0x7a,0x50,0x63,0x14,0xd4, - 0x6c,0xc5,0xc3,0xc3,0xc3,0x2e,0x8f,0x4f,0xcc,0x98,0x31,0xa3,0x8d,0x6b, - 0x44,0x3e,0x34,0xc3,0xf6,0x83,0x48,0x79,0x79,0xf9,0x8f,0xe4,0xdb,0xb2, - 0x65,0x8b,0xdb,0x34,0xd2,0x33,0x7f,0xfe,0x7c,0xc7,0x7a,0xe3,0xb9,0x2c, - 0x33,0x7d,0xfa,0xf4,0x6e,0x8d,0xcb,0x97,0x2f,0x6f,0x82,0xad,0x40,0xa4, - 0xa2,0xa2,0xe2,0x0a,0xf9,0x36,0x6f,0xde,0xec,0x56,0x8d,0xf3,0xe6,0xcd, - 0xe3,0x1a,0x0b,0x64,0x02,0x02,0x02,0x1e,0x72,0x8d,0xcb,0x96,0x2d,0x33, - 0xc3,0x76,0x5e,0x04,0x35,0xfd,0x7b,0xf2,0x6d,0xdc,0xb8,0xd1,0xad,0x1a, - 0xe7,0xcc,0x99,0xc3,0x35,0x9e,0x97,0x81,0xc6,0x07,0x82,0x46,0x13,0x6c, - 0x67,0x45,0xaa,0xab,0xab,0xbf,0x23,0x1f,0xc5,0x0b,0x6a,0x80,0xdb,0xe0, - 0xb9,0x2d,0x8f,0x4f,0x4c,0x9b,0x36,0xad,0x5b,0xe3,0x92,0x25,0x4b,0x1a, - 0x90,0xeb,0xb9,0x22,0x26,0x93,0xe9,0x2c,0xf9,0xd0,0x47,0xd7,0x98,0x31, - 0x63,0x3a,0xdc,0x05,0xd5,0x75,0xca,0x19,0x79,0x7c,0x02,0xfb,0x5f,0x2b, - 0xd7,0xb8,0x78,0xf1,0xe2,0x7a,0xe8,0xce,0x12,0x31,0x9b,0xcd,0x67,0x58, - 0x3e,0x19,0x64,0x5f,0x4f,0x60,0xef,0x38,0xd3,0xd5,0xd5,0xd5,0xeb,0xf7, - 0x91,0xbb,0xcd,0x43,0x87,0x0e,0xb5,0xa9,0xf9,0xa0,0xf1,0x3e,0xd7,0xb8, - 0x68,0xd1,0x22,0x2a,0xce,0x27,0x45,0xa0,0x31,0x8b,0xe5,0x53,0x9d,0xec, - 0x53,0xa3,0xbd,0xbd,0xfd,0x54,0x58,0x58,0x18,0x9d,0xf9,0x94,0xa9,0x53, - 0xa7,0xb6,0x54,0x56,0x56,0x9e,0xe9,0x4d,0x3b,0xe4,0x6e,0x13,0xd3,0xe8, - 0xe4,0xa3,0x7e,0xb8,0xc6,0x85,0x0b,0x17,0xd2,0x5c,0x1d,0x17,0x81,0xc6, - 0xaf,0x59,0xac,0xd6,0xca,0x3e,0x35,0x76,0xec,0xd8,0xa1,0x67,0x67,0x64, - 0x0b,0x9b,0xff,0x7b,0xbd,0x69,0x87,0xbc,0xe0,0x1a,0x9d,0x7c,0x53,0xa6, - 0x4c,0xe9,0xd6,0x18,0x14,0x14,0x54,0x87,0xf5,0x4f,0x17,0x69,0x6c,0x6c, - 0xcc,0x64,0xb1,0x7a,0x4f,0xf6,0xc9,0x5c,0xba,0x74,0x29,0x0f,0x7d,0xd9, - 0xc7,0x8f,0x1f,0xdf,0x8a,0xb5,0x3e,0x8e,0x7a,0x62,0xa4,0xb6,0x69,0x69, - 0x69,0x05,0x4f,0x6b,0x8b,0xbc,0x30,0x93,0x46,0x35,0x1f,0x34,0x36,0x73, - 0x8d,0x0b,0x16,0x2c,0xa0,0xb9,0x3a,0x26,0x02,0x8d,0xe9,0x2c,0x56,0xef, - 0xca,0x3e,0x19,0xc4,0x4a,0x0d,0xbd,0x9b,0x9e,0x9e,0x7e,0x8e,0xfe,0xc6, - 0xb9,0xdf,0x11,0x27,0x88,0xb5,0x86,0xa7,0xb5,0x45,0xcc,0x99,0xd8,0x3c, - 0x3a,0xf9,0x26,0x4f,0x9e,0xdc,0xc4,0x35,0xa2,0xd6,0xd3,0xba,0x7c,0x2e, - 0x02,0x8d,0x69,0x2c,0x56,0xef,0xc8,0x3e,0x91,0xac,0xac,0x2c,0x47,0x6e, - 0x61,0xee,0x6a,0x45,0x3b,0xe2,0xb8,0x8a,0xec,0x19,0x19,0x19,0xf9,0x3d, - 0xb5,0x87,0xc6,0xc6,0x21,0x43,0x86,0x58,0xd5,0x7c,0xd8,0xc7,0xcd,0x5c, - 0x63,0x60,0x60,0x60,0x0d,0x6c,0x07,0x45,0xa0,0x31,0x95,0xc5,0x6a,0xb5, - 0xec,0xe3,0x20,0x7f,0x0f,0x62,0xdf,0x37,0xd0,0x7b,0x27,0x4e,0x9c,0xc8, - 0x16,0x7d,0xd9,0xd9,0xd9,0xdf,0x90,0x7d,0xf6,0xec,0xd9,0xb5,0xae,0xda, - 0x13,0xc8,0x8b,0x06,0xa6,0xd1,0xc9,0x27,0x6a,0xc4,0x1c,0xd0,0x7a,0x26, - 0x89,0x34,0x34,0x34,0x1c,0x62,0xb1,0x5a,0x25,0xfb,0x38,0x9b,0x36,0x6d, - 0xfa,0x95,0xc5,0xc3,0x6d,0x35,0x3f,0x62,0xa8,0x9a,0xfc,0xbb,0x76,0xed, - 0x2a,0x76,0xd5,0x07,0x62,0x8e,0x6b,0x74,0xf2,0x4d,0x9a,0x34,0xc9,0xc4, - 0x35,0xe2,0x6c,0x43,0x73,0xf5,0x89,0x48,0x7d,0x7d,0x7d,0x32,0x8b,0xd5, - 0x4a,0xd9,0x47,0x44,0x45,0x45,0xd1,0xbd,0x5d,0x99,0x30,0x61,0x82,0xa9, - 0xa6,0xa6,0x26,0x45,0xed,0x1d,0xbd,0x5e,0x7f,0xc8,0xdb,0xdb,0x9b,0xea, - 0xb0,0x3d,0x31,0x31,0x31,0x47,0xed,0x1d,0xc4,0x5c,0x3d,0xd3,0xe8,0xe4, - 0x9b,0x38,0x71,0x62,0x23,0xc6,0x68,0xa1,0x71,0xb0,0x67,0xd2,0x5c,0x1d, - 0x10,0xc1,0x79,0xf6,0x53,0x16,0xab,0xb7,0x65,0x5f,0x6a,0x6a,0xea,0x49, - 0xf2,0xe1,0x7c,0xf9,0xf0,0xfa,0xf5,0xeb,0x87,0x65,0xbf,0x48,0x4e,0x4e, - 0xce,0x17,0xd8,0xab,0xac,0xd8,0x4b,0xba,0x90,0x4b,0xa9,0xb2,0x1f,0x1a, - 0x8d,0x4c,0xa3,0x53,0x5b,0x7c,0xfe,0x06,0xae,0x11,0x31,0x43,0x73,0xb5, - 0x5f,0x04,0x1a,0x3f,0x62,0xb1,0x5a,0x2e,0xda,0x51,0x9b,0x13,0x70,0x2e, - 0x6f,0x1b,0x38,0x70,0x60,0x17,0x62,0xee,0x98,0xdc,0x4e,0x8d,0xd8,0xd8, - 0xd8,0x5c,0xea,0x0b,0xb5,0xf0,0x2e,0xee,0xfb,0xef,0x8b,0x3e,0xc4,0x9c, - 0x01,0x9f,0xa1,0x53,0xad,0x9d,0xa8,0x11,0x7b,0x3b,0xcd,0xd5,0x5e,0x11, - 0x83,0xc1,0x10,0xcf,0x62,0xb5,0x4c,0xb4,0x47,0x46,0x46,0x7e,0x4b,0xf6, - 0xed,0xdb,0xb7,0x5f,0xe6,0x36,0x8c,0xbb,0xaf,0xb8,0xb8,0x38,0x09,0xf7, - 0x89,0x63,0xb8,0x5f,0x1c,0xcf,0xcb,0xcb,0x3b,0x8c,0xcf,0xf2,0xa1,0xd8, - 0x8e,0xfa,0xa1,0x76,0x29,0x29,0x29,0x5f,0x8a,0x76,0xc4,0x5c,0x1d,0xd3, - 0xb8,0x57,0x06,0xf5,0xb6,0x9e,0x6b,0x44,0x6e,0x56,0xc0,0x16,0x23,0x82, - 0x5a,0x1c,0xc7,0xf6,0xb5,0x3b,0xa2,0x1d,0x77,0x30,0x87,0x46,0xac,0x9d, - 0x0d,0x75,0xcd,0x42,0xfd,0x4b,0xdf,0xd7,0x74,0x43,0x71,0x88,0xbb,0xa4, - 0x19,0x63,0x19,0x70,0xd7,0xa2,0xef,0x71,0x94,0xe8,0xe8,0xe8,0x53,0x62, - 0x7f,0x38,0x57,0x98,0x87,0x0d,0x1b,0xd6,0x2e,0x8f,0x4f,0xe0,0x8e,0x66, - 0xe4,0x1a,0x51,0x6b,0x69,0x3d,0xdf,0x91,0xc1,0x5c,0xd7,0x62,0x9c,0x2e, - 0xdc,0xc7,0x0f,0x70,0x1b,0xce,0x43,0xb1,0xc8,0xe7,0x42,0xf2,0xa1,0x0f, - 0x03,0xfd,0x44,0xfb,0xb2,0xa5,0x4b,0x97,0xfe,0xb2,0x7e,0xfd,0xfa,0x2b, - 0x98,0xdf,0x0b,0x21,0x21,0x21,0xa5,0x88,0x71,0x3d,0xf9,0xa1,0xad,0x15, - 0xf1,0x66,0xc1,0xe7,0x79,0xb4,0x61,0xc3,0x86,0xa2,0x8e,0x8e,0x8e,0x68, - 0xde,0x57,0x6e,0x6e,0x6e,0x22,0x8b,0xb5,0xbf,0xd4,0xc6,0xa7,0xf6,0x5c, - 0x23,0xf6,0x75,0x5a,0xcf,0xb7,0x64,0x22,0x22,0x22,0x1c,0xfb,0xc5,0xd8, - 0xb1,0x63,0x8d,0x85,0x85,0x85,0x1f,0xa8,0xbd,0xd3,0x57,0xf2,0xf3,0xf3, - 0x3f,0xc6,0xde,0xde,0x44,0xfd,0x27,0x24,0x24,0x1c,0x51,0x7b,0xc7,0xd7, - 0xd7,0xb7,0x5b,0x23,0x62,0xf9,0x16,0x6c,0xbb,0xd5,0xc0,0x7e,0x51,0xca, - 0xd7,0x0e,0x7d,0x9a,0x11,0xbb,0x37,0x80,0xae,0xaf,0x20,0xae,0x6e,0xd0, - 0xbc,0xf2,0x3e,0x43,0x43,0x43,0xcf,0xba,0x1a,0x5b,0xab,0xd5,0xd6,0x71, - 0x8d,0xd8,0xd7,0x69,0xae,0x5f,0x77,0x05,0xf2,0x77,0x3f,0xfa,0xfe,0x13, - 0x71,0xd3,0xea,0x2a,0xf6,0xfe,0x0b,0xa8,0x0b,0x2d,0x88,0x85,0xdf,0x2f, - 0x5e,0xbc,0xb8,0xb7,0xa7,0x71,0xb1,0x7e,0xb5,0x4c,0xe3,0x63,0xe8,0xa5, - 0xbd,0xf0,0xb5,0xde,0x80,0x7a,0x1d,0x85,0x3b,0xe3,0x9b,0x7d,0xa5,0xae, - 0xae,0xee,0x8d,0xde,0x8e,0xe5,0xe9,0xe9,0x49,0x79,0x46,0x3a,0xaf,0x51, - 0xfe,0xe9,0x74,0xba,0x28,0xd8,0xc3,0x5f,0x14,0x50,0xfb,0x63,0xd8,0xbc, - 0xe7,0x00,0x47,0x1d,0x5c,0xbb,0x76,0x6d,0x2e,0x7c,0xaf,0xbe,0x28,0x60, - 0x7f,0x2e,0x61,0x1a,0x77,0x03,0x2d,0x9b,0x4f,0x3b,0xce,0xfa,0xb4,0x57, - 0xbd,0xd2,0xdf,0xac,0x5b,0xb7,0x2e,0x8b,0xe9,0xbb,0xa5,0xf9,0xe7,0xfb, - 0xe6,0x20,0xcd,0x93,0xef,0xca,0x15,0xc4,0x66,0x59,0x7c,0x7c,0xfc,0xbb, - 0x36,0x9b,0x6d,0x1b,0xde,0x7f,0xf9,0x79,0x61,0xb5,0x5a,0xb7,0xed,0xd9, - 0xb3,0xe7,0x3d,0x9c,0x41,0xee,0x30,0x7d,0xb4,0x0f,0xfa,0x6b,0xfe,0xfd, - 0x04,0x82,0x02,0x21,0xff,0xec,0xa8,0xbf,0xb5,0xd8,0x23,0xfe,0x70,0x37, - 0xc8,0x73,0xa3,0x38,0x2e,0xa0,0x73,0x73,0x80,0xc6,0xf5,0xf3,0x12,0xa0, - 0xf3,0x2d,0x7d,0xdf,0xd3,0xf1,0x2c,0x6a,0x4d,0x2f,0x78,0x44,0xb9,0xab, - 0x79,0xf2,0x3f,0x9a,0x60,0x59,0xd0,0xdf,0x12,0xee,0x16,0x45 -}; - -// keep_below_lit.png -static const unsigned char image_5_data[] = { - 0x00,0x00,0x1a,0x44,0x78,0x9c,0xcd,0x98,0x79,0x4c,0x54,0x57,0x14,0xc6, - 0xc1,0x05,0x51,0x5c,0x41,0x05,0x94,0x62,0xdc,0x77,0x5c,0xc0,0x7d,0x01, - 0x97,0x3f,0x30,0xc6,0x96,0xc4,0xaa,0x98,0x34,0x15,0x1b,0x68,0xda,0x26, - 0x35,0x69,0x4c,0x0d,0x45,0x5b,0x1b,0x44,0x25,0xb4,0x0d,0x18,0x0b,0x88, - 0x69,0x6d,0x69,0xdd,0xab,0x2d,0x26,0x4a,0x34,0xed,0x34,0x20,0x55,0x42, - 0x01,0xed,0x80,0x33,0x30,0x2c,0xca,0x32,0x3a,0x53,0x06,0x65,0x44,0x66, - 0x86,0x6d,0xe6,0xf6,0x3b,0xcf,0xf7,0xcc,0xf3,0xf2,0x06,0x0d,0x74,0x94, - 0x97,0xfc,0x32,0x70,0xcf,0xbd,0xf7,0x7c,0x73,0xef,0xb9,0xe7,0x9e,0x37, - 0x6e,0x6e,0x5d,0x1e,0x6f,0xb0,0x13,0xa4,0x80,0x6b,0xe0,0xce,0x2b,0xa0, - 0x00,0xa4,0x83,0x68,0x10,0xd8,0x55,0xd2,0xb3,0xc7,0x13,0xec,0x01,0x4d, - 0x80,0x49,0x0c,0x1f,0x3e,0xbc,0xc3,0xd5,0xc8,0xfd,0x81,0x36,0x90,0x0c, - 0x7c,0x14,0xf4,0xdd,0xa2,0x3e,0x83,0x07,0x0f,0xb6,0x27,0x24,0x24,0x18, - 0x54,0x2a,0xd5,0x5d,0x9b,0xcd,0xa6,0x65,0x8c,0x69,0x5c,0x4d,0x7b,0x7b, - 0xbb,0xf6,0xc6,0x8d,0x1b,0xd5,0xc9,0xc9,0xc9,0x0f,0x46,0x8d,0x1a,0x25, - 0x68,0x76,0x77,0x77,0x37,0xe0,0xd3,0x57,0xd4,0xe7,0x0e,0xce,0x53,0x7b, - 0x78,0x78,0x78,0xb3,0xc5,0x62,0x79,0x25,0xba,0x9c,0xd1,0xd1,0xd1,0xa1, - 0x8d,0x8e,0x8e,0x7e,0x28,0xae,0x29,0xad,0x9b,0x17,0x78,0x93,0xfe,0x0f, - 0x0e,0x0e,0xb6,0x58,0xad,0xd6,0xd7,0xaa,0x4f,0xce,0xb6,0x6d,0xdb,0xa4, - 0x98,0xdb,0x07,0x8e,0xd2,0xdf,0x57,0xaf,0x5e,0xbd,0xf7,0xba,0x75,0xc9, - 0x69,0x68,0x68,0x28,0xc7,0x7e,0x3b,0xa0,0x2d,0x17,0xa8,0x07,0x0d,0x1a, - 0x64,0xef,0x4b,0x6b,0x28,0x31,0x73,0xe6,0x4c,0x1b,0xf4,0x51,0x7c,0xea, - 0x03,0x02,0x02,0xda,0xd0,0x56,0xea,0x0c,0xb3,0xd9,0xac,0x59,0xb9,0x72, - 0xe5,0x93,0x31,0x63,0xc6,0x74,0x0c,0x1c,0x38,0xd0,0x31,0x60,0xc0,0x80, - 0x5e,0x41,0xe7,0x22,0x24,0x24,0xa4,0x45,0xaf,0xd7,0x6b,0xbb,0xf3,0xbb, - 0x7e,0xfd,0xfa,0xc7,0xe2,0x7e,0xeb,0xc7,0x8f,0x1f,0xdf,0xe6,0x70,0x38, - 0x6e,0x29,0xb1,0x77,0xef,0x5e,0x3d,0xd6,0xfc,0x59,0x6e,0x18,0x3a,0x74, - 0x28,0x1b,0x3b,0x76,0x6c,0x8f,0x19,0x31,0x62,0x84,0x3c,0xcf,0x30,0xc4, - 0x9d,0xc9,0x99,0xef,0x75,0xeb,0xd6,0x99,0x25,0x8d,0xe3,0xc6,0x8d,0x6b, - 0x45,0xdb,0xdf,0x3c,0x59,0x59,0x59,0x14,0x13,0x0c,0x6b,0xc7,0x62,0x63, - 0x63,0x59,0x69,0x29,0x7d,0xbd,0xde,0x3f,0x46,0xa3,0x91,0x65,0x66,0x66, - 0x32,0x2f,0x2f,0x2f,0xca,0x31,0x0c,0xb9,0xae,0x56,0xc9,0xff,0xda,0xb5, - 0x6b,0x9b,0xe4,0x1a,0x31,0xf4,0x26,0xcf,0x84,0x09,0x13,0xac,0xd4,0x27, - 0x35,0x35,0xf5,0x7f,0xd1,0xc6,0x3f,0xb9,0xb9,0xb9,0x82,0x46,0x68,0xed, - 0x54,0xf2,0xbf,0x66,0xcd,0x9a,0x87,0x32,0x8d,0x36,0xb4,0x5d,0xe7,0xc1, - 0xfa,0xd9,0x87,0x0c,0x19,0xc2,0x90,0x63,0x5d,0xa2,0x91,0x1e,0x9c,0x0b, - 0x41,0xa7,0xc9,0x64,0xba,0xc9,0xfb,0x0f,0x0b,0x0b,0x6b,0x94,0x34,0xfa, - 0xfb,0xfb,0x93,0x46,0x15,0x4f,0xbf,0x7e,0xfd,0xd8,0xac,0x59,0xb3,0x5c, - 0xa6,0x8f,0x9e,0x4d,0x9b,0x36,0x09,0x71,0x59,0x54,0x54,0x94,0xcf,0xfb, - 0x0f,0x0d,0x0d,0x35,0xc9,0x34,0x5a,0xd1,0x76,0x8d,0x87,0x34,0xce,0x98, - 0x31,0xc3,0xa5,0x1a,0x37,0x6e,0xdc,0x28,0x68,0x2c,0x2e,0x2e,0xce,0xe3, - 0xfd,0xaf,0x5e,0xbd,0xba,0x41,0xd2,0xe8,0xe7,0xe7,0x47,0x1a,0xaf,0xf0, - 0x40,0xa3,0x63,0xda,0xb4,0x69,0x2e,0xd5,0xb8,0x61,0xc3,0x06,0x41,0xe3, - 0xed,0xdb,0xb7,0x73,0x78,0xff,0xab,0x56,0xad,0x32,0xca,0x34,0x5a,0xd0, - 0x76,0x89,0x87,0x34,0xd2,0x99,0x9e,0x3a,0x75,0xaa,0xcb,0xa0,0x78,0x27, - 0x1d,0x6a,0xb5,0xfa,0x77,0xde,0x3f,0x72,0xb2,0x41,0xd2,0xe8,0xeb,0xeb, - 0xdb,0x82,0xb3,0x7e,0x91,0xc7,0xc3,0xc3,0xa3,0xb3,0x7f,0xff,0xfe,0x94, - 0x73,0x5b,0x5d,0x05,0x7c,0xd8,0x49,0x47,0x55,0x55,0xd5,0x15,0xde,0xff, - 0x8a,0x15,0x2b,0x1e,0x48,0x1a,0x91,0x5b,0x5b,0xa0,0xfb,0x2c,0x0f,0xf2, - 0x6d,0x2b,0xce,0x7c,0xb3,0x92,0xad,0xad,0xad,0xed,0x1c,0xee,0xcf,0xf3, - 0xa8,0x53,0xce,0x29,0xd9,0x25,0x2a,0x2a,0x2a,0x2e,0x15,0x16,0x16,0x5e, - 0xce,0xcf,0xcf,0xcf,0x56,0xb2,0x23,0xe6,0xea,0x49,0x47,0x75,0x75,0x75, - 0x16,0x6f,0x5b,0xb6,0x6c,0x99,0x5e,0xa6,0xf1,0x09,0xda,0x4e,0xf2,0x40, - 0xa3,0x0d,0x1a,0x1f,0xcb,0xdb,0xa0,0xed,0x54,0x44,0x44,0x84,0x8e,0xd6, - 0x57,0xba,0x2b,0x50,0x73,0xb6,0xe3,0xdc,0x35,0x23,0x07,0x34,0xe0,0xbb, - 0xd7,0x4d,0x9f,0x3e,0xdd,0xe4,0xed,0xed,0x6d,0x91,0xdf,0x4f,0x04,0xf9, - 0xd1,0xe9,0x74,0x17,0xe5,0xf3,0x21,0xe6,0x6a,0xc5,0x75,0xbc,0xc0,0xfb, - 0x5f,0xba,0x74,0x69,0xbd,0xa4,0x11,0xf7,0x30,0x69,0xfc,0x91,0x07,0x35, - 0xb2,0x0d,0xbe,0x1f,0xcb,0xdb,0x0e,0x1f,0x3e,0x7c,0x9d,0xc6,0x4d,0x9c, - 0x38,0x91,0xe1,0x1e,0x60,0xc8,0x0f,0x6c,0xce,0x9c,0x39,0x0c,0x73,0x30, - 0x49,0x13,0x7d,0x06,0x06,0x06,0x32,0xe8,0x65,0x5b,0xb7,0x6e,0x65,0x51, - 0x51,0x51,0x0c,0xf7,0x9a,0x60,0xdb,0xb1,0x63,0x87,0x5a,0x3e,0x1f,0x62, - 0xae,0x86,0xda,0x2b,0x2b,0x2b,0xcf,0xf1,0xfe,0x97,0x2c,0x59,0x52,0x27, - 0xd3,0xd8,0x8c,0xfd,0xff,0x8e,0x07,0x1a,0xad,0xd0,0x68,0x96,0xb7,0x9d, - 0x39,0x73,0xe6,0x32,0x8d,0xc3,0xdc,0xcc,0x6e,0xb7,0x77,0x39,0xa7,0x74, - 0xcf,0x29,0x3d,0x9b,0x37,0x6f,0x16,0x34,0x26,0x26,0x26,0xfe,0x29,0x9f, - 0x6f,0xf9,0xf2,0xe5,0xf7,0xa8,0x1d,0x31,0x71,0x8a,0xf7,0xbf,0x78,0xf1, - 0xe2,0x5a,0x49,0xe3,0xe8,0xd1,0xa3,0x29,0xe6,0xd2,0x79,0x86,0x0d,0x1b, - 0x66,0xc5,0x99,0x6f,0x92,0xb7,0x41,0x57,0x3a,0xea,0x61,0xe1,0xbb,0xc7, - 0xc7,0xc7,0x2b,0xea,0xe1,0x9f,0x13,0x27,0x4e,0x08,0xfa,0x10,0x03,0x06, - 0xdc,0x59,0xc7,0xe4,0xf3,0x21,0xe6,0xaa,0x45,0x8d,0x99,0xbc,0xff,0x45, - 0x8b,0x16,0xdd,0x93,0x69,0xa4,0xfd,0x3c,0xca,0x43,0x1a,0x71,0xe6,0x9b, - 0xf8,0xf6,0xc6,0xc6,0xc6,0x63,0x88,0xb7,0x27,0xb4,0xa7,0x58,0xd7,0x6e, - 0xf5,0xe1,0xac,0x30,0xd4,0xa7,0x0c,0xe7,0xb7,0xa3,0xa0,0xa0,0xe0,0x27, - 0x7e,0x2e,0xc4,0x5c,0x15,0xe9,0x40,0x9c,0x7e,0xcf,0xdb,0x50,0xbf,0xdd, - 0x95,0x34,0xfa,0xf8,0xf8,0x90,0xc6,0x64,0x1e,0x68,0xb4,0x40,0xe3,0x23, - 0x25,0x5b,0x76,0x76,0xf6,0xcf,0x9e,0x9e,0x9e,0xed,0xe4,0x3f,0x2f,0x2f, - 0x4f,0x51,0x1f,0xea,0x43,0x86,0x58,0x61,0x94,0x67,0xd3,0xd2,0xd2,0x7e, - 0x53,0x9a,0x07,0xfb,0x59,0x41,0x3a,0xca,0xcb,0xcb,0x33,0x78,0x1b,0xf6, - 0xab,0x5a,0xa6,0xd1,0x8c,0xb6,0xaf,0x78,0x50,0x2b,0x5a,0x70,0x16,0x1f, - 0x29,0xd9,0x08,0xd4,0x43,0xbf,0xe0,0x7c,0xdb,0x11,0xcf,0x0e,0xe4,0xa1, - 0x2e,0x1a,0xa5,0xbb,0x38,0x26,0x26,0x26,0xc7,0xd9,0x1c,0xd8,0x4f,0x1d, - 0xf5,0x29,0x2b,0x2b,0x4b,0xe3,0x6d,0x0b,0x17,0x2e,0xac,0x94,0x34,0x62, - 0xdf,0x68,0x3f,0x0f,0xf1,0x90,0x46,0xf8,0x7f,0xa8,0x64,0x93,0xd8,0xb2, - 0x65,0xcb,0x5f,0x34,0xcf,0xc1,0x83,0x07,0x9f,0xd3,0x87,0x7b,0x43,0x38, - 0xdf,0x93,0x26,0x4d,0xd2,0x77,0x37,0x1e,0xfb,0x59,0x46,0xe3,0xb5,0x5a, - 0xed,0x11,0xde,0x36,0x7f,0xfe,0xfc,0x0a,0x4e,0x63,0x3c,0x0f,0x34,0xb6, - 0x40,0x63,0xa3,0x92,0x4d,0xa2,0xae,0xae,0x2e,0x09,0xf9,0xd1,0x86,0x3b, - 0xc3,0x81,0x77,0x8a,0x67,0x1a,0xb7,0x6f,0xdf,0x2e,0xac,0x61,0x52,0x52, - 0xd2,0xd9,0xee,0xc6,0x63,0x3f,0xb5,0xd4,0x4f,0xa3,0xd1,0x7c,0xc3,0xdb, - 0xe6,0xcd,0x9b,0xa7,0x93,0x34,0x62,0x7e,0xda,0xcf,0x2f,0x78,0x50,0x7b, - 0xb6,0xe0,0x3c,0x35,0x2a,0xd9,0xe4,0x44,0x46,0x46,0xfe,0x41,0x73,0xc5, - 0xc5,0xc5,0x09,0xfa,0xe0,0x4f,0x58,0x43,0xe4,0x04,0x63,0x67,0x67,0xe7, - 0xfe,0xee,0xc6,0x2e,0x58,0xb0,0x40,0x43,0x63,0x51,0xe3,0x27,0xf1,0xb6, - 0xa0,0xa0,0xa0,0x32,0x4e,0x63,0x1c,0x8f,0xa8,0xd1,0xa4,0x64,0x93,0x63, - 0x30,0x18,0xbe,0x44,0x5f,0x0b,0xde,0xa7,0x58,0x49,0x49,0x09,0x43,0xfd, - 0x2c,0xac,0xe1,0x81,0x03,0x07,0x4e,0xbe,0x68,0x2c,0xf6,0xb3,0x94,0xfa, - 0x62,0xdc,0x21,0xde,0x36,0x77,0xee,0x5c,0xad,0xa4,0x71,0xe4,0xc8,0x91, - 0x14,0x73,0x9f,0xf2,0x20,0x87,0x37,0xa1,0x2e,0x69,0x51,0xb2,0xf1,0x40, - 0xcf,0x0f,0xd2,0x1d,0x43,0x9f,0x93,0x27,0x4f,0xae,0x7a,0x99,0x71,0xa8, - 0x7d,0x84,0x98,0xab,0xa9,0xa9,0xf9,0x9c,0xb7,0xcd,0x9e,0x3d,0x5b,0xc3, - 0x69,0xfc,0x84,0x07,0xdf,0x43,0x4d,0x7d,0x8e,0x1f,0x3f,0x7e,0x44,0xc9, - 0xce,0x83,0x3b,0x24,0x03,0x79,0xc0,0x88,0xb9,0x4b,0x10,0xa7,0x9f,0xbd, - 0xa8,0x3f,0x72,0x53,0x2c,0x6a,0xbf,0x56,0x9c,0x87,0x06,0x25,0x3b,0xee, - 0xff,0x52,0x49,0x23,0x6a,0x07,0x8a,0xb9,0x8f,0x79,0x52,0x52,0x52,0x8e, - 0xc0,0xee,0xc0,0xd9,0x31,0x63,0x9d,0xd2,0x95,0xfa,0xf4,0x94,0x9c,0x9c, - 0x9c,0xfd,0xf8,0x3e,0x42,0x5d,0x83,0x78,0xfe,0x55,0xa9,0x0f,0xde,0x75, - 0x4a,0x38,0x8d,0x1f,0x2a,0x81,0x9a,0xe0,0x82,0x54,0xb7,0xe0,0xae,0xb0, - 0x4d,0x99,0x32,0xe5,0x0e,0xf6,0xa7,0xb4,0x37,0xc0,0x1f,0xbd,0xa7,0x08, - 0x75,0x13,0xea,0x91,0x22,0x67,0xbe,0x71,0x77,0xaa,0x25,0x8d,0x88,0x3b, - 0x3a,0x17,0x31,0xce,0x50,0xa9,0x54,0xb1,0x78,0xaf,0xb9,0x85,0xf5,0x7c, - 0x24,0xaf,0xb5,0x7a,0x0a,0x72,0x55,0x33,0xf2,0xe6,0x1d,0xec,0x4d,0x72, - 0x77,0x7e,0xf1,0x9e,0xf2,0x8f,0x38,0x46,0x87,0x98,0xb0,0xe2,0xae,0xdf, - 0x89,0xf6,0xa8,0x17,0x81,0x33,0xfc,0x3e,0xee,0xff,0x8f,0x7a,0x4a,0x6d, - 0x6d,0xed,0x07,0x2f,0xe3,0x87,0x40,0xed,0x5a,0x29,0xae,0xb7,0x70,0x1e, - 0x33,0x32,0x32,0xf6,0xa1,0xfd,0x9d,0xbe,0xc2,0xfd,0xfb,0xf7,0xdf,0xc3, - 0x3d,0x4f,0xbf,0x47,0x15,0x83,0x77,0xc5,0x5c,0x51,0x08,0x5b,0x64,0x5f, - 0x21,0x3c,0x3c,0xfc,0xb4,0xb8,0xcf,0x5f,0xbb,0x3d,0xfd,0x9d,0x59,0x38, - 0x3f,0xa8,0x9b,0xe9,0x7c,0xbd,0xfd,0xba,0xd9,0xb5,0x6b,0x57,0xa2,0xb8, - 0xc7,0xff,0x02,0x3f,0xb7,0xa7,0x8f,0x3f,0x10,0xde,0x1d,0x70,0x7e,0xea, - 0x77,0xef,0xde,0xbd,0x1f,0xef,0x2d,0x11,0xe8,0xff,0xd6,0xab,0x02,0xef, - 0x6e,0x11,0x09,0x09,0x09,0x7b,0x02,0x02,0x02,0x8a,0xc5,0xf5,0xa3,0xdf, - 0x9a,0x42,0xdc,0x9e,0x7f,0xde,0x00,0xa7,0xa5,0x9c,0x40,0xe0,0x8e,0x31, - 0xa2,0x7e,0x54,0xbb,0x1a,0xd4,0xa9,0xf5,0x72,0xbf,0xa0,0x08,0x04,0xb9, - 0x39,0x7f,0x82,0x01,0xe5,0xee,0x1c,0x71,0xad,0x7b,0x9d,0x6b,0x5e,0x82, - 0x56,0x90,0x0f,0xbe,0x05,0x51,0xbc,0xa0,0xff,0x00,0xbc,0x45,0x33,0x49 -}; - -// keep_below.png -static const unsigned char image_6_data[] = { - 0x00,0x00,0x1a,0x44,0x78,0x9c,0xcd,0x99,0x09,0x4c,0x94,0x47,0x14,0xc7, - 0x11,0x0f,0x3c,0x22,0xde,0xe2,0x81,0x07,0xb1,0x1a,0xf1,0x46,0x25,0x31, - 0x6a,0x34,0x31,0xda,0x18,0xa3,0x62,0x0d,0xa1,0x78,0x21,0x31,0x80,0x82, - 0x80,0x10,0x0b,0x12,0x49,0x94,0x6a,0xe5,0x56,0x42,0x01,0x29,0x02,0x1e, - 0xad,0x56,0x4b,0x0a,0x96,0xa2,0x80,0xd6,0x03,0xa1,0x55,0x39,0x5c,0x15, - 0xe4,0x58,0xce,0xe5,0x5c,0x0e,0x2b,0x28,0x16,0x58,0x60,0xf7,0xeb,0xff, - 0x6d,0xbf,0x35,0xe3,0xb8,0xa8,0x91,0xae,0xfa,0x25,0xbf,0x00,0xef,0xcd, - 0x7c,0xf3,0xdf,0x99,0x37,0x6f,0xde,0x2c,0x7a,0x7a,0x6f,0x3c,0x0b,0x81, - 0x27,0x38,0x03,0x1e,0x80,0x27,0x3a,0x26,0x17,0x24,0x02,0x7f,0xf0,0x35, - 0xd0,0x7f,0x53,0xd2,0xab,0xe7,0x0b,0x10,0x07,0x54,0x40,0x20,0xfa,0xf5, - 0xeb,0xa7,0x32,0x34,0x34,0xec,0xd2,0x25,0x83,0x07,0x0f,0xee,0xd6,0x8c, - 0x27,0x52,0x01,0xb6,0x6a,0xd1,0x6a,0xd6,0xa7,0x4f,0x9f,0x76,0x6a,0x33, - 0x69,0xd2,0x24,0x45,0x54,0x54,0x54,0x8d,0x44,0x22,0x29,0xed,0xee,0xee, - 0xce,0x17,0x04,0x41,0xe7,0x54,0x55,0x55,0x49,0xaf,0x5c,0xb9,0x22,0xf3, - 0xf0,0xf0,0x68,0xec,0xdb,0xb7,0xaf,0x66,0x8e,0xe2,0x18,0x7d,0x26,0xd0, - 0xd7,0xa4,0xaf,0xaf,0xaf,0x0a,0x08,0x08,0x90,0x7f,0x0c,0x4d,0x6f,0xe3, - 0xe9,0xd3,0xa7,0x45,0xb3,0x67,0xcf,0x6e,0x13,0x75,0x7a,0x89,0x1a,0x2f, - 0xd3,0xdf,0x9f,0x83,0x3e,0x0d,0x32,0x99,0x4c,0x6a,0x64,0x64,0xd4,0x29, - 0xc6,0x9d,0x31,0xe6,0xf0,0x39,0xad,0xef,0xa7,0xd6,0xc5,0x73,0xf4,0xe8, - 0xd1,0x7a,0x71,0x2e,0x6d,0xe9,0xa7,0xb5,0xb5,0x75,0xf3,0xa7,0xd6,0xc4, - 0x73,0xef,0xde,0xbd,0x32,0x51,0xe3,0x69,0xfa,0x89,0x58,0x6d,0x80,0x3d, - 0xaf,0x27,0x52,0x52,0x52,0xca,0xe7,0xcc,0x99,0xd3,0x36,0x74,0xe8,0xd0, - 0x6e,0xda,0xeb,0xbd,0xa1,0x7f,0xff,0xfe,0xaa,0x09,0x13,0x26,0x74,0xae, - 0x5d,0xbb,0xf6,0x79,0x57,0x57,0x57,0x8f,0x63,0x36,0x34,0x34,0x14,0x88, - 0x1a,0x29,0x2f,0x09,0xfb,0xf7,0xef,0xaf,0x53,0xa9,0x54,0x12,0x1e,0xa5, - 0x52,0x29,0x81,0xb6,0x7f,0xd8,0xdc,0x30,0x76,0xec,0xd8,0x5e,0x61,0x60, - 0x60,0xf0,0xea,0x5d,0x03,0x06,0x0c,0x50,0x25,0x27,0x27,0x17,0x6b,0x1b, - 0xbb,0xbe,0xbe,0xfe,0x31,0xab,0xd1,0xdd,0xdd,0xbd,0x06,0xf6,0x2c,0x9e, - 0x65,0xcb,0x96,0xb5,0x90,0xdf,0xd8,0xd8,0x58,0xc0,0xbb,0x04,0xe4,0x22, - 0xa1,0xb7,0x0f,0xde,0x2b,0xe4,0xe4,0xe4,0x08,0xab,0x56,0xad,0x7a,0x95, - 0x83,0x91,0x7b,0x24,0xfc,0xd8,0xd0,0x28,0xe1,0x34,0x56,0xa1,0xfb,0x5d, - 0x96,0x96,0x96,0x96,0x4c,0xec,0x27,0x61,0xe4,0xc8,0x91,0x42,0x5d,0x5d, - 0x5d,0xaf,0xb5,0x69,0x7b,0x2c,0x2c,0x2c,0xd4,0x3a,0x37,0x6d,0xda,0xd4, - 0xc8,0x8f,0x0f,0x8d,0x59,0xac,0x46,0x37,0x37,0x37,0x19,0xec,0xe9,0x2c, - 0xfe,0xfe,0xfe,0x25,0xe4,0x73,0x70,0x70,0xd0,0x89,0x3e,0x7a,0xb0,0x2f, - 0x04,0x71,0x9d,0xda,0xf8,0xf1,0xe5,0x72,0xf9,0x5d,0x56,0xa3,0xab,0xab, - 0x6b,0x39,0xec,0x37,0x59,0x9c,0x9c,0x9c,0xe8,0x4c,0x12,0x02,0x03,0x03, - 0x75,0xa6,0xb1,0xa9,0xa9,0x49,0xad,0x71,0xc4,0x88,0x11,0x0a,0x7e,0x7c, - 0x68,0x4c,0x67,0x35,0xba,0xb8,0xb8,0x94,0xc2,0x7e,0x8d,0xc5,0xd1,0xd1, - 0xb1,0x54,0xcc,0xed,0x3a,0xd3,0xd8,0xd8,0xd8,0xc8,0x6a,0x7c,0x6d,0x7c, - 0xc4,0xd7,0x2d,0x56,0xe3,0xde,0xbd,0x7b,0x8b,0x61,0xbf,0xca,0x82,0x79, - 0x2c,0x26,0x9f,0x9f,0x9f,0x9f,0xce,0x34,0x22,0xe6,0xd4,0x1a,0x11,0xf3, - 0x1d,0xfc,0xf8,0xd0,0x78,0x9d,0xd5,0x08,0x3d,0x45,0xb0,0x27,0xb2,0x90, - 0x8d,0x7c,0xa3,0x46,0x8d,0x12,0xa6,0x4f,0x9f,0xae,0x13,0x4c,0x4c,0x4c, - 0x34,0xf3,0xd8,0xc1,0x8f,0x0f,0x8d,0x29,0xac,0xc6,0x3d,0x7b,0xf6,0xe4, - 0x63,0xbf,0xc7,0xb3,0x60,0x8d,0xb3,0xc9,0x37,0x68,0xd0,0xa0,0x2e,0x7a, - 0x87,0x2e,0x18,0x3e,0x7c,0x78,0x07,0x8d,0x01,0xad,0x2d,0xfc,0xf8,0x35, - 0x35,0x35,0x49,0xac,0xc6,0xdd,0xbb,0x77,0x53,0x6e,0xbf,0xc4,0x12,0x1b, - 0x1b,0x7b,0x87,0x7c,0xce,0xce,0xce,0x8f,0x79,0x1f,0xf1,0xf2,0xe5,0xcb, - 0xb8,0xf6,0xf6,0xf6,0x38,0xe4,0xf9,0x37,0x7c,0x1a,0x50,0xc3,0xfc,0x9a, - 0x97,0x97,0xf7,0x3b,0xf6,0x6f,0x72,0x45,0x45,0xc5,0x65,0x6d,0x7e,0x1a, - 0xc3,0xdc,0xdc,0xbc,0x8e,0xf7,0x41,0x63,0x02,0xab,0xd1,0xde,0xde,0x9e, - 0x74,0x9c,0x67,0x89,0x8e,0x8e,0xbe,0x2d,0xc6,0xea,0x43,0xd6,0x9e,0x98, - 0x98,0x98,0x8a,0x39,0xd0,0xd4,0x4e,0x02,0xe5,0xd0,0x61,0xc3,0x86,0xb5, - 0x4f,0x99,0x32,0xa5,0x79,0xc1,0x82,0x05,0xf2,0xa5,0x4b,0x97,0x56,0xd1, - 0xef,0x43,0x86,0x0c,0x51,0x70,0xb5,0xab,0xb0,0x7a,0xf5,0xea,0x72,0xf6, - 0x5d,0xd8,0xd7,0xbf,0x90,0x7d,0xf1,0xe2,0xc5,0xb5,0xfc,0xf8,0xd0,0x18, - 0xc7,0x6a,0xb4,0xb3,0xb3,0x23,0x1d,0x67,0x59,0x4e,0x9d,0x3a,0x75,0x83, - 0x7c,0xd8,0xdf,0x0f,0x58,0xfb,0xfc,0xf9,0xf3,0xeb,0xc8,0x3e,0x73,0xe6, - 0xcc,0x86,0xb9,0x73,0xe7,0xca,0x67,0xcd,0x9a,0x55,0x3f,0x6e,0xdc,0xb8, - 0x17,0x03,0x07,0x0e,0xec,0xd4,0x68,0x41,0x9d,0xaa,0x9c,0x38,0x71,0x62, - 0x8b,0x99,0x99,0x59,0xed,0x8a,0x15,0x2b,0x2a,0xd6,0xaf,0x5f,0x2f,0xc5, - 0xe7,0x50,0x7f,0xae,0xec,0xec,0xec,0x78,0xcd,0xbb,0xa0,0xf1,0x02,0xd9, - 0x16,0x2d,0x5a,0x54,0xc3,0x8f,0x5f,0x5d,0x5d,0x7d,0x91,0xd5,0xb8,0x6b, - 0xd7,0xae,0x07,0x88,0x81,0x18,0x96,0xc8,0xc8,0xc8,0x6b,0x62,0x1c,0x64, - 0xb3,0xf6,0x35,0x6b,0xd6,0x48,0xc9,0xee,0xe3,0xe3,0x73,0x87,0xef,0x83, - 0xb3,0x32,0xa6,0xa4,0xa4,0xe4,0x02,0x6f,0xcf,0xcd,0xcd,0xbd,0x88,0xb8, - 0x56,0xd0,0xe7,0x68,0x6d,0x6d,0x3d,0xa3,0xb1,0xa3,0x6e,0x38,0x47,0xef, - 0x5a,0xb8,0x70,0x61,0x35,0xdf,0xa7,0xb2,0xb2,0xf2,0x27,0x56,0xa3,0xad, - 0xad,0x6d,0x16,0xb4,0x47,0xb2,0x9c,0x3c,0x79,0xf2,0xaa,0x18,0x07,0xf7, - 0x59,0x7b,0x56,0x56,0xd6,0x05,0x8c,0xa5,0xc0,0x39,0xab,0x4c,0x4b,0x4b, - 0xbb,0xc4,0xf7,0xe3,0xe9,0xec,0xec,0xfc,0x61,0xc6,0x8c,0x19,0x72,0x7a, - 0x97,0x97,0x97,0xd7,0x1d,0xd6,0x87,0xfc,0x18,0x43,0x76,0xcc,0x77,0x25, - 0xdf,0x0f,0x67,0xf8,0x69,0x56,0xe3,0xce,0x9d,0x3b,0x49,0x47,0x18,0x4b, - 0x44,0x44,0x44,0x92,0x18,0x07,0x77,0x79,0x5f,0x70,0x70,0x70,0x32,0xf9, - 0x46,0x8f,0x1e,0xfd,0xbc,0xb8,0xb8,0x38,0x96,0xf7,0xb3,0x6c,0xd8,0xb0, - 0xe1,0x11,0xb5,0x45,0xac,0xca,0x78,0x1f,0xe6,0x31,0xaa,0x27,0x1f,0xe6, - 0x31,0x9a,0xd5,0xb8,0x63,0xc7,0x0e,0xd2,0x11,0xc2,0x12,0x16,0x16,0xf6, - 0x9b,0x18,0x07,0x7f,0xf2,0x3e,0x62,0xeb,0xd6,0xad,0xf7,0xc5,0xbc,0x21, - 0x7f,0xf6,0xec,0x59,0x98,0xb6,0x36,0x98,0x37,0x75,0x1e,0x1e,0x3f,0x7e, - 0xfc,0xdf,0xc8,0x77,0x11,0xbc,0x1f,0x1a,0x23,0xc8,0x8f,0x18,0xaf,0xe0, - 0x7d,0xb8,0x2f,0x44,0xb2,0x1a,0xb7,0x6d,0xdb,0x46,0x3a,0x82,0x58,0x42, - 0x43,0x43,0xe3,0xc5,0x38,0x48,0xe7,0x7d,0x04,0x72,0x4e,0xd0,0xf2,0xe5, - 0xcb,0xf3,0xa9,0x0d,0xea,0x55,0x09,0xef,0x47,0x5c,0x86,0x23,0x1e,0xba, - 0x71,0x37,0x6d,0xcf,0xc8,0xc8,0x88,0xd1,0xf6,0x0e,0x9c,0x33,0xa1,0xd4, - 0x7f,0xde,0xbc,0x79,0xe5,0xbc,0x0f,0xb9,0x2a,0x8c,0xd5,0xb8,0x65,0xcb, - 0x16,0xd2,0xe1,0xcb,0x72,0xe2,0xc4,0x09,0x75,0x5e,0xb0,0xb1,0xb1,0xb9, - 0xcd,0xfb,0x34,0x20,0xfe,0x03,0xb0,0x5f,0x5f,0x60,0x1f,0x77,0x67,0x66, - 0x66,0x46,0xb0,0x3e,0xec,0xe5,0x4c,0xb1,0xa6,0x4a,0xee,0xa9,0x3f,0xea, - 0x86,0x60,0x6a,0x83,0x3a,0xba,0x94,0xf7,0x95,0x97,0x97,0x87,0xb0,0x1a, - 0x71,0x9f,0x49,0x83,0xfd,0x08,0xcb,0xf1,0xe3,0xc7,0xd5,0x7b,0x7f,0xfb, - 0xf6,0xed,0x37,0x79,0x1f,0x8b,0xa7,0xa7,0xa7,0xfa,0x1d,0x2b,0x57,0xae, - 0x94,0x68,0x6c,0xa5,0xa5,0xa5,0x41,0xa8,0xb1,0x15,0xb8,0xe3,0xbf,0xc0, - 0x73,0xac,0xa7,0xbe,0x58,0x7f,0xfa,0x6e,0x42,0xc0,0x5d,0xb5,0x84,0xf7, - 0x41,0x63,0x10,0xab,0xd1,0xca,0xca,0xea,0x16,0xec,0x87,0x58,0x82,0x82, - 0x82,0xce,0x93,0x0f,0x71,0xf7,0x07,0xef,0x63,0xe9,0xe8,0xe8,0xf0,0x19, - 0x33,0x66,0x4c,0x13,0x72,0xb9,0x0a,0xf7,0x1e,0x8a,0xcb,0x43,0x1b,0x37, - 0x6e,0x4c,0x17,0xe3,0x24,0xf5,0x6d,0x7d,0xa1,0xf1,0x18,0xb5,0x43,0x8e, - 0x2d,0xe6,0x7d,0x65,0x65,0x65,0x7e,0xac,0x46,0x4b,0x4b,0xcb,0x1b,0xb0, - 0x1f,0x64,0xc1,0x79,0x7d,0x4e,0x8c,0x83,0x6b,0xbc,0x8f,0xe7,0xc8,0x91, - 0x23,0xea,0xcf,0x33,0x75,0xea,0x54,0x59,0x6a,0x6a,0x6a,0x08,0xad,0x3d, - 0xce,0x99,0x56,0xec,0x09,0x9f,0xb7,0xf5,0xab,0xad,0xad,0xfd,0x96,0xfa, - 0x99,0x9a,0x9a,0x4a,0x79,0x1f,0xd6,0xe2,0x28,0xab,0x71,0xf3,0xe6,0xcd, - 0xa4,0xc3,0x83,0x25,0x24,0x24,0x44,0x9d,0x17,0xd6,0xad,0x5b,0x77,0x8b, - 0xf7,0x69,0x03,0xe7,0x4e,0x21,0x7b,0xee,0x79,0x7b,0x7b,0xff,0xf8,0xae, - 0x3e,0x88,0xe1,0xef,0xc4,0x78,0x7c,0xc2,0xfb,0x90,0xd3,0x0e,0xb3,0x1a, - 0x71,0x9f,0x48,0x81,0xdd,0x9d,0x05,0x73,0x7d,0x10,0xeb,0xa7,0x44,0x0e, - 0xac,0xc7,0x7a,0xee,0xe7,0xfd,0x3c,0x58,0xb7,0x03,0x38,0x1b,0x1f,0xe1, - 0xee,0x57,0x87,0x33,0x28,0xe6,0x5d,0xed,0x09,0xe4,0xe5,0x78,0x71,0x1d, - 0xaf,0xf0,0x3e,0xa9,0x54,0xea,0xcd,0x6a,0x44,0xfc,0x50,0x5d,0xe9,0xc2, - 0x83,0xdc,0x9a,0x43,0x7e,0xd4,0x7a,0xf9,0x45,0x45,0x45,0x07,0xb4,0xb5, - 0xf9,0x10,0x14,0x0a,0x85,0x2b,0xe6,0x25,0x89,0xe6,0x00,0xf9,0xa9,0x13, - 0xe7,0xd5,0x61,0xbe,0x0d,0x8d,0xc7,0x6a,0x44,0x9e,0x48,0x82,0xdd,0x91, - 0xa7,0xb9,0xb9,0xd9,0x05,0xf9,0x57,0x26,0xd6,0x37,0x4a,0xd4,0xbb,0x72, - 0xe8,0xcd,0xeb,0x0d,0xd3,0xa6,0x4d,0xcb,0x87,0x2e,0x75,0x4d,0x44,0xfa, - 0x7c,0x7d,0x7d,0xbf,0xd7,0x36,0x76,0x61,0x61,0xe1,0x37,0xac,0x46,0xc4, - 0x1c,0xd5,0xbe,0xf6,0xda,0xc0,0x79,0xeb,0x80,0xf3,0xf0,0xec,0xe4,0xc9, - 0x93,0xa5,0xa4,0x93,0xaf,0xb7,0x3e,0x04,0xd4,0xb6,0x0d,0x38,0xa3,0xff, - 0x2a,0x28,0x28,0x70,0xeb,0x69,0xdc,0xfc,0xfc,0x7c,0x37,0x56,0xe3,0x92, - 0x25,0x4b,0x28,0xbf,0xd8,0xbe,0x0f,0x38,0x3f,0x1c,0x11,0xcf,0x4e,0x1f, - 0x0a,0xce,0x4d,0xbb,0xf7,0x19,0x27,0x21,0x21,0xc1,0x4b,0xd4,0xf8,0x33, - 0xe8,0xc0,0x1a,0x52,0xdd,0xb1,0xfd,0x73,0x02,0xe7,0x73,0x8c,0xa8,0xd1, - 0x19,0xd0,0x1d,0x51,0x85,0x7b,0x34,0xe5,0x4e,0xeb,0xcf,0x01,0x9c,0xe3, - 0x3b,0x50,0xeb,0x57,0x89,0x1a,0x4d,0x81,0x39,0xa0,0x7a,0xb0,0x3d,0x2a, - 0x2a,0x8a,0x72,0x8c,0xe5,0xa7,0x04,0x79,0xce,0x0a,0xfb,0xea,0xbe,0xa8, - 0x8f,0xfe,0x6f,0xa0,0x79,0x6c,0x34,0x7b,0x17,0xe7,0xd2,0xf5,0xf0,0xf0, - 0xf0,0x7d,0x68,0x6f,0xf1,0x31,0x69,0x6b,0x6b,0xfb,0x0a,0xf5,0x4b,0x30, - 0xea,0xe7,0x67,0xa2,0xbe,0x0c,0x60,0xa0,0xf7,0xfa,0xf3,0xa5,0xde,0x7f, - 0xdf,0xe9,0x6b,0xee,0x52,0x4a,0x9c,0xc3,0x4f,0x8c,0x8c,0x8c,0x1e,0xeb, - 0x98,0x5c,0x03,0x03,0x03,0x8d,0x2e,0x82,0xf2,0x52,0x20,0x30,0xd4,0xd3, - 0xfe,0xd0,0xff,0x1b,0xf6,0x89,0x7b,0xe9,0x21,0xe8,0xfa,0x3f,0x72,0xcd, - 0x7b,0x50,0x09,0x52,0x81,0xaf,0x36,0x6d,0xff,0x02,0x1b,0x15,0xfd,0xbb -}; - -// maximize.png -static const unsigned char image_7_data[] = { - 0x00,0x00,0x1a,0xe8,0x78,0x9c,0xcd,0x99,0x7b,0x2c,0x64,0x57,0x1c,0xc7, - 0xbd,0x0d,0x4d,0xf8,0x83,0xec,0x56,0x42,0xb2,0x7f,0x14,0xf1,0xb7,0x84, - 0x15,0x99,0x0d,0x09,0xa5,0x95,0xd5,0x6d,0x42,0x23,0x22,0xed,0x24,0xd2, - 0x04,0x29,0xeb,0x55,0x15,0xef,0xd7,0xaa,0xdd,0x7a,0x84,0x7a,0xac,0x32, - 0x35,0x63,0xad,0xf7,0x60,0xbc,0x16,0xeb,0x51,0xb2,0x6b,0xcb,0x5a,0x16, - 0xab,0xb6,0x96,0xb4,0xdb,0xe9,0x23,0xdd,0x86,0x8a,0x46,0x83,0xce,0xce, - 0xed,0xf7,0x4c,0x46,0x7b,0x7a,0x66,0xd6,0x1f,0xe5,0x5e,0x4e,0xf2,0x49, - 0x46,0x7e,0x67,0xe6,0xfb,0xb9,0x77,0xee,0xef,0xb8,0xe7,0x8e,0x91,0x91, - 0xde,0x30,0x06,0xef,0x82,0x3c,0xd0,0x01,0x16,0xc1,0x13,0x9e,0x59,0x00, - 0xb7,0x41,0x06,0x78,0x5b,0x5f,0x49,0x6f,0xbc,0xa9,0xf3,0xe2,0x0e,0x11, - 0x89,0x44,0x2f,0x6d,0x6c,0x6c,0xfe,0xe2,0x13,0x0b,0x0b,0x8b,0x97,0x74, - 0x26,0x98,0x00,0xee,0xaf,0x70,0x24,0xc7,0xc2,0x19,0x1b,0x1b,0x73,0x57, - 0xae,0x5c,0xd9,0x96,0xcb,0xe5,0xaa,0xf5,0xf5,0xf5,0x35,0x8e,0xe3,0x56, - 0xf8,0x46,0xa3,0xd1,0xac,0x60,0x3c,0x93,0x4a,0xa5,0xaa,0x4b,0x97,0x2e, - 0xfd,0x41,0xf9,0x86,0x31,0x8e,0xef,0x01,0x0d,0x8e,0x4d,0x3d,0x3d,0x3d, - 0xbd,0x21,0x84,0xdb,0x51,0xf4,0xf6,0xf6,0x7e,0x4f,0xce,0x31,0xce,0xd9, - 0x1e,0xbc,0x2e,0xea,0x1c,0xcd,0xf0,0xf7,0x8e,0xb5,0xb5,0xb5,0x7a,0x66, - 0x66,0xe6,0xd4,0x1d,0x0f,0xe9,0xe8,0xe8,0x78,0x6e,0x62,0x62,0xa2,0x81, - 0xdf,0x92,0xce,0x53,0x4c,0xce,0xb1,0x44,0x22,0xd9,0x3c,0x6d,0x37,0x16, - 0xb1,0x58,0x7c,0x78,0x0d,0xbc,0x0e,0xd2,0xc9,0x6b,0x99,0x4c,0xa6,0x3a, - 0x6d,0x2f,0x96,0xb4,0xb4,0xb4,0x5f,0x75,0x9e,0xe4,0xba,0x2c,0x25,0xaf, - 0x27,0x27,0x27,0xd7,0x51,0x5b,0x7e,0x15,0xa3,0xa3,0xa3,0x1b,0x61,0x61, - 0x61,0x5b,0x4e,0x4e,0x4e,0xfb,0x0e,0x0e,0x0e,0x07,0xc7,0xc1,0xcd,0xcd, - 0xed,0xcf,0x88,0x88,0x88,0x4d,0xf4,0xce,0xb7,0x47,0x65,0xd6,0xd6,0xd6, - 0xaa,0x74,0x9e,0x51,0x87,0x9e,0x13,0x13,0x13,0x4f,0xd1,0x77,0xf3,0x2c, - 0x6a,0xb5,0x7a,0xde,0xdb,0xdb,0x7b,0x07,0xd7,0x0a,0x47,0xf0,0xf5,0xf5, - 0xe5,0x02,0x03,0x03,0x8f,0x85,0xab,0xab,0xab,0x76,0x5d,0x21,0x9f,0x17, - 0x1e,0x1e,0xfe,0x9b,0xa1,0x5c,0x42,0x4d,0x4d,0xcd,0x77,0xac,0xe7,0xf8, - 0xf8,0x38,0x59,0x1f,0x66,0x59,0xdc,0xdd,0xdd,0x77,0x48,0x3d,0x21,0x21, - 0x81,0xdb,0xdb,0xdb,0xe3,0x4e,0x6a,0x6c,0x6f,0x6f,0x73,0xa1,0xa1,0xa1, - 0x5a,0xdf,0xe8,0xe8,0xe8,0x9f,0x0d,0x65,0x57,0x57,0x57,0x6f,0x18,0xf0, - 0x5c,0xc2,0xdb,0xa7,0x69,0xe6,0x31,0xc8,0xe7,0x64,0x65,0x65,0x9d,0x98, - 0x1f,0x3d,0xe0,0xc2,0xf9,0xf9,0xf9,0x71,0x96,0x96,0x96,0xe4,0xf5,0x7f, - 0xb2,0x09,0x55,0x55,0x55,0x6b,0xac,0xe7,0xd8,0xd8,0xd8,0x02,0x6a,0x53, - 0x34,0x51,0x51,0x51,0x3f,0x90,0x9a,0x4a,0xa5,0xe2,0xc5,0x93,0x8c,0xfe, - 0xfe,0x7e,0xed,0x9a,0x3e,0x30,0x30,0xb0,0xc8,0xe6,0x57,0x56,0x56,0x3e, - 0x65,0x3d,0xd1,0x27,0x0f,0x51,0x1b,0xa3,0x09,0x0e,0x0e,0xfe,0xc5,0xdc, - 0xdc,0x9c,0x37,0x47,0x32,0x56,0x57,0x57,0xb5,0x9e,0x25,0x25,0x25,0xdf, - 0xb0,0xf9,0x15,0x15,0x15,0x4f,0x58,0xcf,0x91,0x91,0x91,0xaf,0x51,0x1b, - 0xa6,0x81,0xe7,0x8f,0x66,0x66,0x66,0xbc,0x7a,0xa2,0xe7,0x0f,0x3d,0x97, - 0xd9,0xfc,0xf2,0xf2,0xf2,0x25,0xd6,0x73,0x78,0x78,0xf8,0x1e,0x6a,0x03, - 0x34,0xf0,0x54,0x99,0x9a,0x9a,0xf2,0xea,0xb9,0xbc,0xbc,0x7c,0xe8,0xf9, - 0x98,0xcd,0x2f,0x2b,0x2b,0x5b,0x60,0x3d,0x87,0x86,0x86,0x26,0x51,0x53, - 0xd2,0x5c,0xbe,0x7c,0xf9,0x39,0xe9,0x23,0xac,0x9b,0xbc,0x41,0xd6,0x29, - 0x9d,0xe7,0x23,0x36,0xbf,0xb4,0xb4,0xf4,0x11,0xeb,0x39,0x38,0x38,0x38, - 0x8e,0x9e,0x53,0xd0,0xe0,0xff,0xc1,0x63,0x72,0x3e,0x83,0x82,0x82,0x78, - 0xc3,0xc7,0xc7,0x47,0xbb,0x36,0x29,0x95,0xca,0xaf,0xd8,0xfc,0xe2,0xe2, - 0xe2,0x59,0x03,0x9e,0x23,0x38,0x86,0x56,0x9a,0xbc,0xbc,0xbc,0x59,0xdc, - 0xb7,0x68,0xf8,0xfc,0xde,0xd7,0xd6,0xd6,0xb4,0xe7,0x13,0x7d,0x7f,0x97, - 0xcd,0xbf,0x71,0xe3,0xc6,0x03,0xd6,0x13,0xf3,0xee,0xa0,0xd6,0x44,0x93, - 0x9b,0x9b,0xfb,0x40,0x28,0xcf,0xbe,0xbe,0xbe,0x21,0x36,0xff,0xfa,0xf5, - 0xeb,0xf7,0x58,0x4f,0xcc,0xeb,0x47,0x4d,0x46,0x93,0x9d,0x9d,0x7d,0x5f, - 0x28,0x4f,0x7c,0xef,0x7a,0xf9,0x45,0x45,0x45,0x53,0xac,0x27,0xe6,0x29, - 0x71,0x4d,0xd4,0xd3,0x64,0x66,0x66,0x4e,0x09,0xe5,0xd9,0xdd,0xdd,0xad, - 0x97,0x5f,0x58,0x58,0x38,0xc1,0x7a,0xf6,0xf4,0xf4,0x28,0xf0,0xb6,0x1a, - 0x9a,0xf4,0xf4,0xf4,0x09,0xa1,0x3c,0xbb,0xba,0xba,0xf4,0xf2,0x0b,0x0a, - 0x0a,0x46,0x59,0x4f,0x1c,0x4f,0x3b,0x6a,0x9f,0xd3,0xa0,0xdf,0xc7,0x84, - 0xf2,0xec,0xec,0xec,0xd4,0xcb,0x47,0x1f,0x0f,0xb3,0x9e,0x0a,0x85,0xa2, - 0x19,0xb5,0x32,0x9a,0xd4,0xd4,0xd4,0x11,0xa1,0x3c,0xb1,0xcf,0x68,0x61, - 0xf3,0x73,0x72,0x72,0xee,0xb0,0x9e,0x38,0x9e,0x5b,0xa8,0x7d,0x46,0x93, - 0x92,0x92,0x32,0x24,0x94,0x67,0x5b,0x5b,0x5b,0x13,0x9b,0x8f,0x3e,0xee, - 0x67,0x3d,0x31,0xaf,0x01,0xb5,0x42,0x9a,0xe4,0xe4,0xe4,0x01,0xa1,0x3c, - 0x5b,0x5a,0x5a,0x64,0x6c,0x7e,0x46,0x46,0x86,0x92,0xf5,0x6c,0x6d,0x6d, - 0xad,0x47,0x2d,0x8f,0x26,0x31,0x31,0xb1,0x57,0x28,0xcf,0xe6,0xe6,0x66, - 0x29,0x9b,0x8f,0xfe,0xe8,0x62,0x3d,0x31,0xaf,0x16,0xb5,0x2c,0x9a,0xf8, - 0xf8,0xf8,0x1e,0xa1,0x3c,0x9b,0x9a,0x9a,0xbe,0x60,0xf3,0xd1,0x1f,0x9d, - 0xac,0x27,0xe6,0x55,0xa3,0x96,0x46,0x13,0x17,0x17,0xa7,0x10,0xca,0xb3, - 0xb1,0xb1,0xb1,0x86,0xcd,0x47,0x7f,0xb4,0xb1,0x9e,0x72,0xb9,0xbc,0x02, - 0xb5,0x8f,0x69,0x92,0x92,0x92,0x9a,0xc9,0x5e,0x6b,0x7f,0x7f,0x9f,0x37, - 0xcf,0xb9,0xb9,0x39,0xad,0x67,0x7b,0x7b,0x7b,0x19,0x9b,0x8f,0xfe,0x68, - 0x66,0x3d,0x1b,0x1a,0x1a,0xc8,0xbc,0x04,0x1a,0xdc,0x3b,0x5f,0xd3,0xad, - 0xc1,0xbc,0x79,0xe6,0xe7,0xe7,0x93,0xfd,0xd1,0xc1,0xee,0xee,0x6e,0x32, - 0x9b,0x8f,0x71,0x8b,0xf5,0x94,0x4a,0xa5,0xc5,0xa8,0xc5,0xb2,0x60,0x0f, - 0xbb,0x6a,0x6d,0x6d,0xad,0x99,0x9a,0x9a,0x3a,0x71,0x47,0xec,0x27,0xc9, - 0xde,0x58,0x13,0x10,0x10,0x70,0xd7,0x50,0xf6,0xd5,0xab,0x57,0xe5,0xac, - 0x67,0x5d,0x5d,0x5d,0x11,0x6a,0xd1,0x2c,0x5b,0x5b,0x5b,0xb1,0x17,0x2e, - 0x5c,0x58,0x27,0x73,0xbc,0xbc,0xbc,0x5e,0xc6,0xc4,0xc4,0x70,0x58,0xd7, - 0x8e,0x45,0x64,0x64,0x24,0xe7,0xe2,0xe2,0xa2,0x26,0x9f,0xe9,0xe9,0xe9, - 0x79,0x5f,0xad,0x56,0xc7,0x18,0xca,0x8e,0x8d,0x8d,0xfd,0x92,0xf5,0xbc, - 0x79,0xf3,0xe6,0x35,0xd4,0x3e,0x7c,0x15,0x12,0x89,0xa4,0x11,0x9e,0xe3, - 0xe7,0xcf,0x9f,0x7f,0x61,0x67,0x67,0xb7,0xf9,0x7f,0xb1,0xb7,0xb7,0xdf, - 0x74,0x74,0x74,0x5c,0xf7,0xf6,0xf6,0x1e,0xc3,0x7e,0xf2,0xd3,0xa3,0x32, - 0x71,0x4e,0xea,0x29,0x4f,0xf2,0xdc,0x98,0xc3,0x3d,0x47,0x29,0x6a,0x92, - 0xb3,0x44,0x48,0x48,0xc8,0x6d,0x9d,0xe7,0xfb,0xe0,0x2d,0xf2,0x5a,0x2c, - 0x16,0xf7,0xa1,0x16,0x71,0x96,0x70,0x76,0x76,0x7e,0xa8,0xf3,0x7c,0x03, - 0xbc,0x06,0x0e,0xac,0xac,0xac,0xb6,0xe6,0xe7,0xe7,0xc9,0xf9,0x0e,0x3b, - 0x0b,0xe0,0xbe,0x24,0x1e,0x7b,0x33,0xf2,0x9c,0xf6,0x27,0xa3,0x7f,0x87, - 0xf6,0x99,0xb7,0xad,0xad,0xad,0x6a,0x71,0x71,0xf1,0x03,0xcc,0x0b,0x39, - 0x4d,0xb0,0x57,0x8b,0x12,0x89,0x44,0xbf,0xc3,0x89,0x3c,0xa7,0x0d,0xa6, - 0x3c,0xc9,0x6f,0x1c,0xda,0x6b,0xc1,0xdc,0xdc,0x7c,0xd7,0xdf,0xdf,0xbf, - 0x41,0x26,0x93,0x91,0x1e,0x7c,0x47,0x48,0xea,0xeb,0xeb,0x3f,0xf2,0xf0, - 0xf0,0x50,0x60,0xad,0x3a,0xd0,0x7d,0xdf,0xb9,0x46,0xfa,0x83,0xb8,0x46, - 0x83,0x7f,0x9e,0xe3,0x63,0xbf,0xaa,0x3e,0x77,0xee,0xdc,0x32,0x7a,0x7c, - 0x91,0x4f,0x48,0x06,0xb2,0xe8,0xdf,0x3c,0x5e,0x80,0x70,0x03,0x8e,0xf4, - 0x10,0x81,0x1c,0xd0,0x0b,0x9e,0xe9,0xce,0x3d,0xc7,0x33,0xc4,0x71,0x05, - 0x90,0xfb,0x8e,0x4f,0x80,0x19,0x2b,0xf5,0x37,0x31,0x12,0xfd,0x45 -}; - -// minimize.png -static const unsigned char image_8_data[] = { - 0x00,0x00,0x1a,0xe8,0x78,0x9c,0xcd,0x99,0x6b,0x48,0x5b,0x67,0x18,0xc7, - 0xe3,0x25,0xd3,0xa9,0x28,0xec,0x83,0x37,0x10,0x11,0xc9,0x27,0x15,0xe6, - 0x05,0x3f,0x08,0xfa,0x45,0x14,0x41,0x71,0x4c,0xc5,0xe5,0xc3,0x06,0x1b, - 0xe2,0xc2,0x82,0x73,0x88,0x6e,0x5a,0x75,0x5e,0x9a,0x60,0xd4,0x7a,0x99, - 0x8e,0x20,0x95,0xc0,0x0c,0xcd,0x24,0x8b,0x76,0xa6,0xce,0x4b,0xaa,0x8d, - 0x51,0x51,0x43,0x2a,0xd5,0x45,0xd3,0x6e,0xb3,0x71,0x32,0x5b,0xdd,0xd8, - 0x84,0x52,0x5c,0xa4,0x12,0x93,0xb3,0xe7,0x8d,0xe7,0x94,0xec,0x59,0xec, - 0x87,0xc5,0xd4,0xf7,0x85,0x1f,0x1c,0xfc,0x27,0x3e,0xbf,0xf7,0xf5,0x9c, - 0xf7,0xe2,0xe1,0xf1,0x3c,0xb6,0x6c,0xa0,0x09,0x50,0x01,0x9b,0x80,0xc5, - 0xc7,0x98,0x81,0x71,0x40,0x02,0x94,0x00,0x7e,0x9e,0xb5,0x5e,0xb6,0xb7, - 0x81,0xbb,0x00,0xc3,0xc1,0xe7,0xf3,0x1d,0xe1,0xe1,0xe1,0x76,0x5f,0x12, - 0x1c,0x1c,0xec,0x70,0xaf,0xc9,0xba,0x17,0x5e,0xe0,0x48,0xfa,0xe1,0x24, - 0x9f,0x13,0x08,0x04,0x2f,0x14,0x0a,0xc5,0x93,0xed,0xed,0xed,0xc7,0x4e, - 0xa7,0xf3,0x21,0xc3,0x30,0x3e,0x67,0x77,0x77,0x77,0x47,0xa9,0x54,0x3e, - 0x29,0x2b,0x2b,0x7b,0xe6,0xe7,0xe7,0xc7,0xf9,0x4a,0x91,0x63,0x1a,0x64, - 0x36,0x32,0x76,0x83,0x83,0x83,0x07,0xaf,0xc3,0xeb,0x55,0x1c,0x1e,0x1e, - 0xfe,0x1c,0x17,0x17,0xf7,0x82,0x75,0xfd,0xc0,0xcd,0xf3,0x3e,0x78,0x3a, - 0x55,0x2a,0xd5,0xfe,0x55,0x3b,0x72,0x6c,0x6c,0x6c,0x58,0xc3,0xc2,0xc2, - 0xce,0xc8,0xf8,0x81,0xdf,0x1b,0xc0,0x5b,0x80,0x23,0x33,0x33,0xd3,0x76, - 0xd5,0x6e,0x18,0x91,0x48,0x74,0xc4,0x8e,0x69,0x1e,0x50,0x4c,0xae,0x6b, - 0x6b,0x6b,0xff,0xbc,0x6a,0x2f,0x8c,0x5a,0xad,0xde,0x67,0x3d,0xaf,0x03, - 0x1f,0x91,0xeb,0x81,0x81,0x81,0xa7,0x90,0x6d,0xd3,0x84,0xc9,0x64,0x7a, - 0xcc,0x7a,0xca,0x39,0xcf,0xfe,0xfe,0xfe,0xdf,0xe0,0xd9,0xde,0xa0,0x09, - 0xa3,0xd1,0xf8,0x13,0xf6,0xec,0xeb,0xeb,0xfb,0x15,0xb2,0xfb,0x34,0x01, - 0x9e,0x16,0xec,0xd9,0xdb,0xdb,0x6b,0x85,0xb1,0x5e,0xa3,0x09,0xf0,0xfc, - 0x11,0x7b,0xf6,0xf4,0xf4,0xfc,0x02,0xd9,0x32,0x4d,0xac,0xad,0xad,0x3d, - 0xc0,0x9e,0xdd,0xdd,0xdd,0x8f,0x20,0xd3,0xd3,0xc4,0xca,0xca,0x8a,0x09, - 0x7b,0x76,0x75,0x75,0x59,0x20,0xbb,0x4b,0x13,0xe0,0xb9,0x86,0x3d,0x65, - 0x32,0x99,0x19,0xb2,0x69,0x9a,0x58,0x86,0x86,0x3d,0x3b,0x3a,0x3a,0x36, - 0x21,0xbb,0x43,0x13,0x4b,0x4b,0x4b,0x06,0xec,0x29,0x95,0x4a,0x1f,0xc0, - 0x5c,0x70,0x9b,0x26,0x16,0x17,0x17,0xef,0x61,0x4f,0x89,0x44,0x62,0x82, - 0x3e,0xa8,0x69,0xc2,0x60,0x30,0xe8,0xb0,0x67,0x7b,0x7b,0xbb,0x11,0x32, - 0x15,0x4d,0x2c,0x2c,0x2c,0x4c,0x61,0xcf,0xd6,0xd6,0xd6,0x55,0xc8,0x46, - 0x68,0x42,0xaf,0xd7,0xdf,0xc1,0x9e,0x2d,0x2d,0x2d,0xcb,0x70,0x4f,0x28, - 0x68,0x62,0x7e,0x7e,0xfe,0x7b,0xec,0xd9,0xdc,0xdc,0x6c,0x80,0x3e,0x0c, - 0xd1,0xc4,0xdc,0xdc,0x9c,0x06,0x7b,0x36,0x36,0x36,0x92,0x35,0xe0,0x6b, - 0x9a,0xd0,0xe9,0x74,0xa3,0xd8,0xb3,0xa1,0xa1,0x61,0x0e,0xb2,0x7e,0x9a, - 0x98,0x9d,0x9d,0xbd,0x85,0x3d,0xeb,0xeb,0xeb,0x75,0x90,0xdd,0xb8,0x88, - 0x99,0x99,0x99,0x91,0xf2,0xf2,0x72,0x63,0x42,0x42,0xc2,0x61,0x6c,0x6c, - 0xec,0x5f,0xde,0x10,0x1f,0x1f,0xff,0x7b,0x7e,0x7e,0xfe,0xa6,0x5c,0x2e, - 0x1f,0x7b,0x55,0xcd,0xe9,0xe9,0xe9,0x11,0xec,0x59,0x57,0x57,0x47,0xd6, - 0xaa,0x0e,0x4f,0xc0,0x59,0x75,0x95,0x9c,0xf3,0xd8,0xef,0x30,0x11,0x11, - 0x11,0x5e,0xc1,0xfd,0x1e,0x42,0x4e,0x4e,0x8e,0xf9,0xe0,0xe0,0xa0,0xd7, - 0x53,0xdd,0xa9,0xa9,0x29,0x05,0xf6,0x84,0xf3,0xd1,0x24,0x64,0xd7,0x31, - 0x42,0xa1,0xd0,0xb5,0x76,0xc1,0x18,0x30,0xd0,0x3f,0xc6,0x6e,0xb7,0x33, - 0xde,0x36,0x87,0xc3,0xc1,0xc0,0x9a,0xc8,0xa4,0xa6,0xa6,0xba,0x5c,0x53, - 0x52,0x52,0x76,0xe0,0x67,0x12,0x5c,0x7b,0x72,0x72,0xf2,0x26,0xf6,0xac, - 0xa9,0xa9,0xd1,0x42,0xd6,0xe2,0xce,0xde,0xde,0x9e,0x8c,0x8c,0x23,0xfc, - 0xad,0x98,0xa3,0xa3,0x23,0xaf,0xfd,0x70,0x23,0x7d,0xce,0xca,0xca,0x72, - 0xb9,0x0e,0x0d,0x0d,0x7d,0x83,0xeb,0x6b,0xb5,0x5a,0x39,0xf6,0xac,0xae, - 0xae,0xbe,0x0d,0x59,0xa3,0x3b,0x9d,0x9d,0x9d,0x4a,0x92,0x35,0x35,0x35, - 0x5d,0xba,0x23,0xd7,0x26,0x26,0x26,0x5c,0x9e,0xa5,0xa5,0xa5,0xf7,0x70, - 0x7d,0xc8,0x06,0xb1,0x67,0x55,0x55,0x95,0x06,0xb2,0xcf,0xdd,0x69,0x6b, - 0x6b,0x1b,0x61,0xd7,0x54,0x9f,0x79,0x92,0x7b,0x89,0xd4,0x28,0x2a,0x2a, - 0xd2,0xe3,0xfa,0xe3,0xe3,0xe3,0x7d,0xd8,0x53,0x2c,0x16,0x93,0xb5,0xbf, - 0xc6,0x9d,0xad,0xad,0xad,0x2f,0x49,0x96,0x98,0x98,0xc8,0xd8,0x6c,0xb6, - 0x4b,0x77,0x84,0x35,0x87,0xc9,0xcb,0xcb,0x63,0xd8,0x7d,0xe5,0x4d,0x5c, - 0x5f,0xa3,0xd1,0xdc,0xc0,0x9e,0x22,0x91,0xe8,0x5b,0xc8,0x3e,0xc5,0x64, - 0x67,0x67,0x2f,0x91,0x3c,0x2d,0x2d,0x8d,0x31,0x9b,0xcd,0x97,0xe6,0x68, - 0xb5,0x5a,0x99,0xc2,0xc2,0x42,0x97,0x63,0x4c,0x4c,0xcc,0xfe,0xc9,0xc9, - 0xc9,0x67,0xb8,0xb6,0x5a,0xad,0x96,0x61,0xcf,0xca,0xca,0xca,0x5b,0x90, - 0x7d,0x82,0x39,0x3d,0x3d,0x15,0x67,0x64,0x64,0xac,0x72,0xf3,0x88,0xbf, - 0xbf,0x3f,0x93,0x94,0x94,0xc4,0x24,0x27,0x27,0xff,0x6f,0x02,0x03,0x03, - 0x5f,0xce,0x4b,0x91,0x91,0x91,0x4f,0xd7,0xd7,0xd7,0xeb,0x3d,0xd5,0x1e, - 0x1d,0x1d,0x95,0x62,0xcf,0x8a,0x8a,0x0a,0xb2,0x47,0xa9,0xbc,0x08,0xb8, - 0x47,0xbf,0x82,0x79,0x64,0x35,0x34,0x34,0xf4,0x59,0x50,0x50,0xd0,0x89, - 0x37,0x84,0x84,0x84,0x3c,0x17,0x08,0x04,0xe6,0x92,0x92,0x92,0x31,0x78, - 0xe6,0x3f,0xbe,0xa8,0xa6,0x4a,0xa5,0x6a,0x77,0xf3,0x2c,0x27,0xd7,0xc5, - 0xc5,0xc5,0xdf,0x41,0xf6,0x21,0x4d,0xc0,0x19,0xa3,0x8b,0xf5,0xec,0x06, - 0xe2,0xc8,0x35,0xac,0x87,0xe4,0x7c,0xf4,0x3e,0x4d,0xe4,0xe6,0xe6,0x72, - 0xfb,0xba,0x77,0x79,0xe7,0x6d,0x27,0x20,0x20,0xe0,0x14,0xc6,0xb9,0x16, - 0x72,0x21,0x0d,0x58,0x2c,0x96,0x0a,0xb8,0xc7,0xc8,0xff,0x15,0xcf,0x80, - 0x08,0xd6,0xb3,0x00,0x70,0xc2,0xbd,0xf3,0x1c,0xd6,0x00,0x31,0x7c,0xae, - 0xec,0x2a,0x39,0x3e,0x3e,0x7e,0x2f,0x3a,0x3a,0xfa,0x11,0x3b,0x96,0x12, - 0xde,0xbf,0xdb,0x35,0xf6,0x79,0xb6,0xa7,0xa7,0xa7,0x6b,0x87,0x87,0x87, - 0xc9,0xdc,0xf0,0xce,0xeb,0x44,0xa9,0x54,0x8a,0x0b,0x0a,0x0a,0x14,0x7c, - 0x3e,0xff,0x98,0x75,0x24,0xef,0x40,0xfc,0x79,0xff,0x6d,0x42,0xe0,0x0f, - 0x6e,0xce,0x80,0xb5,0xdd,0x01,0xf3,0x86,0x25,0x2a,0x2a,0xca,0xec,0x4b, - 0xa0,0xc6,0x16,0xd4,0xb2,0xbb,0xed,0xa3,0xfe,0xe6,0x9d,0xbf,0x17,0x0a, - 0xf2,0xe0,0xc8,0xb5,0x40,0xe0,0x0b,0x60,0x8c,0x77,0xfe,0x7e,0xe4,0xcc, - 0xed,0xfb,0xbe,0x82,0xec,0x19,0xad,0xc0,0x0f,0x00,0x99,0x8b,0xde,0xc4, - 0x52,0xff,0x00,0x74,0x7b,0x34,0xdf -}; - -// restore.png -static const unsigned char image_9_data[] = { - 0x00,0x00,0x1a,0x44,0x78,0x9c,0xcd,0x98,0x6b,0x4c,0x54,0x47,0x14,0xc7, - 0xd1,0x8a,0xe2,0xb2,0x2a,0xe1,0xe5,0x03,0x14,0x51,0x41,0x45,0xf0,0x2d, - 0xa0,0xc6,0x57,0xaa,0x89,0xf1,0x03,0xf5,0x43,0x3f,0xb4,0x01,0x03,0x58, - 0x48,0x69,0x42,0x3f,0x68,0x68,0x24,0x84,0x6e,0x00,0x09,0x96,0x20,0x62, - 0x2b,0xa5,0xc1,0x54,0xfa,0x08,0x41,0xb1,0x25,0x69,0x63,0x4c,0xb1,0xd6, - 0x12,0x24,0x42,0x30,0xa9,0xda,0xd4,0xc5,0xfa,0x80,0x6e,0x51,0x60,0x65, - 0x65,0xd1,0x95,0xdd,0x65,0x5f,0x4c,0xff,0x67,0xbb,0xd7,0xdc,0x8e,0x43, - 0x21,0xcb,0x2e,0x7a,0x93,0x5f,0x94,0xb9,0x37,0x73,0x7e,0x3b,0x77,0xce, - 0x99,0x99,0xeb,0xe3,0xf3,0xd2,0x15,0x02,0x0e,0x82,0x4f,0xc1,0x65,0x70, - 0x7b,0x12,0x68,0x07,0x55,0x20,0x03,0x84,0xbd,0xac,0xf4,0xe2,0x52,0x80, - 0x7c,0x60,0x00,0x4c,0x62,0xf6,0xec,0xd9,0x36,0x6f,0x23,0x8f,0x07,0xcc, - 0xa0,0x14,0x04,0x08,0xfc,0xe8,0xf7,0x30,0x85,0x42,0x61,0x3f,0x76,0xec, - 0x58,0x5f,0x53,0x53,0x53,0x97,0xc5,0x62,0xe9,0x60,0x8c,0xa9,0xbd,0x8d, - 0xd5,0x6a,0xed,0x68,0x69,0x69,0xe9,0x2c,0x2f,0x2f,0xef,0x9d,0x33,0x67, - 0x8e,0x9d,0x3c,0xa6,0x4c,0x99,0xd2,0x8d,0x7f,0x83,0x5c,0x7e,0x6f,0x80, - 0x0b,0xd4,0x9e,0x94,0x94,0xf4,0xcc,0x64,0x32,0x4d,0x8a,0xd7,0xff,0xf9, - 0x1e,0x38,0x70,0x40,0xef,0x1a,0xd3,0x56,0xe0,0x07,0xde,0xa5,0xbf,0xb7, - 0x6e,0xdd,0x3a,0x34,0x59,0xe3,0x36,0x16,0x23,0x23,0x23,0x6a,0x8c,0xd7, - 0x53,0x97,0xe7,0x21,0x50,0x43,0xff,0xa7,0xb1,0x7e,0xd5,0x6e,0x72,0x34, - 0x1a,0xcd,0x5d,0x97,0xe3,0x4f,0xe0,0x81,0x52,0xa9,0xb4,0xdb,0x6c,0xb6, - 0x57,0xee,0xc5,0xb3,0x78,0xf1,0x62,0x0b,0xe5,0x10,0xe6,0xe6,0x60,0x54, - 0x54,0xd4,0x30,0xda,0xfe,0x18,0x0b,0xcc,0x85,0xdb,0xd5,0xd5,0xd5,0x0f, - 0xab,0xaa,0xaa,0xdc,0xa6,0xa6,0xa6,0xa6,0xdb,0xe1,0x70,0x8c,0x19,0x8b, - 0xc0,0xfc,0x7b,0xee,0xca,0x9f,0xc1,0x65,0xcb,0x96,0x99,0x31,0x07,0x6e, - 0x88,0xb0,0xdb,0xed,0x37,0x0e,0x1f,0x3e,0xdc,0x3b,0x7d,0xfa,0x74,0x07, - 0x57,0x23,0x26,0x44,0x48,0x48,0x88,0xb5,0xb9,0xb9,0xf9,0xce,0x68,0x71, - 0x89,0xcd,0x9b,0x37,0x1b,0x24,0xc7,0xa5,0x4b,0x97,0x9a,0xd0,0x76,0x5d, - 0xc4,0xda,0xb5,0x6b,0x9d,0xbf,0x25,0x3a,0x3a,0xda,0x98,0x9e,0x9e,0xae, - 0xad,0xad,0xad,0xbd,0x77,0xf6,0xec,0x59,0xb7,0x39,0x73,0xe6,0xcc,0xfd, - 0xdd,0xbb,0x77,0xeb,0x11,0xd7,0xe9,0x5a,0x5f,0x5f,0x7f,0x77,0xb4,0xd8, - 0x70,0x7c,0x26,0x73,0x34,0x62,0x6c,0x5b,0x79,0x8e,0x1e,0x3d,0xda,0x45, - 0xcf,0xec,0xdb,0xb7,0x4f,0x27,0xba,0x3f,0x11,0xb4,0x5a,0xed,0xf5,0x19, - 0x33,0x66,0x38,0xa6,0x4d,0x9b,0x36,0x82,0x77,0x25,0x7c,0x26,0x31,0x31, - 0xf1,0xa9,0xe4,0xb8,0x64,0xc9,0x12,0x72,0xbc,0xca,0x83,0x79,0x3a,0xe4, - 0xeb,0xeb,0xeb,0x10,0xdd,0xf3,0x04,0xc5,0xc5,0xc5,0xf7,0xc9,0x01,0x63, - 0xab,0x16,0xdd,0x4f,0x48,0x48,0x18,0x94,0x1c,0x23,0x23,0x23,0x87,0xd0, - 0x76,0x85,0x07,0xeb,0x94,0x75,0xfe,0xfc,0xf9,0x66,0xd1,0x3d,0x4f,0xd0, - 0xd3,0xd3,0x73,0x95,0x1c,0x52,0x53,0x53,0xbb,0x45,0xf7,0xe3,0xe3,0xe3, - 0x07,0x64,0x8e,0xcf,0xd1,0x76,0x89,0x67,0xd6,0xac,0x59,0xd6,0x05,0x0b, - 0x16,0x18,0x0b,0x0b,0x0b,0x3b,0xd6,0xad,0x5b,0xa7,0x0f,0x0b,0x0b,0x33, - 0xe2,0x6f,0xd3,0x78,0xa1,0xe7,0x31,0x16,0x4f,0x4e,0x9f,0x3e,0x7d,0x53, - 0xd4,0xff,0xc0,0xc0,0xc0,0x2f,0xe4,0x80,0x75,0x45,0x23,0xba,0xbf,0x69, - 0xd3,0xa6,0x27,0x92,0x23,0xea,0x10,0x39,0x5e,0xe4,0x81,0xa3,0x85,0xe6, - 0x0c,0x3d,0x87,0x1a,0xca,0x76,0xec,0xd8,0xc1,0x76,0xee,0xdc,0x39,0x6e, - 0xb6,0x6f,0xdf,0xce,0x66,0xce,0x9c,0x49,0x31,0x58,0x6c,0x6c,0xec,0x20, - 0xdf,0x7f,0x7f,0x7f,0xff,0x25,0x97,0x63,0x97,0x28,0xfe,0xc6,0x8d,0x1b, - 0x75,0x92,0x63,0x44,0x44,0x84,0x01,0x6d,0x3f,0xf2,0x60,0x3e,0x3b,0xa8, - 0xff,0xca,0xca,0x4a,0xe6,0xee,0x85,0x5a,0xc8,0x30,0xef,0x9c,0x39,0x8c, - 0x3c,0xd5,0x9e,0x38,0x71,0xe2,0x37,0x09,0xe4,0xe4,0x2d,0x6a,0x4f,0x49, - 0x49,0x79,0x20,0x8a,0xbf,0x61,0xc3,0x86,0x7e,0x99,0xe3,0x33,0xe4,0x7a, - 0x03,0x0f,0xc6,0x90,0x65,0x64,0x64,0xb8,0xed,0x27,0xbf,0xb6,0x6c,0xd9, - 0xc2,0xa6,0x4e,0x9d,0x2a,0xac,0x95,0xb9,0xb9,0xb9,0xb7,0x44,0xf1,0xd7, - 0xaf,0x5f,0xff,0x58,0x72,0x5c,0xb4,0x68,0xd1,0x53,0x74,0x73,0x8e,0x07, - 0x39,0xcd,0x2a,0x2a,0x2a,0x3c,0xe2,0x98,0x95,0x95,0xc5,0x30,0x77,0x50, - 0x66,0xec,0xf5,0x12,0x46,0xa3,0xf1,0x3b,0x72,0xc0,0x98,0xb6,0x8a,0xe2, - 0x23,0x07,0xb4,0x92,0xe3,0xc2,0x85,0x0b,0xc9,0xb1,0x96,0xc7,0x0b,0x8e, - 0x36,0x79,0xff,0xc3,0xc3,0xc3,0x75,0xe4,0x80,0x7d,0x63,0x8b,0x28,0x3e, - 0xd6,0x8f,0x3e,0x99,0x23,0xcd,0xe7,0xaf,0x79,0xb0,0xfe,0xb1,0xbd,0x7b, - 0xf7,0x32,0xe4,0xf5,0x84,0xc1,0xfc,0x97,0x1c,0x5f,0xf4,0x0f,0xc7,0x6f, - 0xc9,0xa1,0xac,0xac,0xac,0x59,0x14,0x7f,0xcd,0x9a,0x35,0xbd,0x92,0x63, - 0x78,0x78,0xb8,0x1e,0xef,0xff,0x4b,0x1e,0x3f,0x3f,0x3f,0x16,0x1a,0x1a, - 0xca,0x50,0xe3,0x27,0x4c,0x60,0x60,0x20,0x9b,0x3b,0x77,0xee,0x90,0xbc, - 0x7f,0xb3,0xd9,0xec,0xdc,0x17,0x96,0x96,0x96,0xfe,0x2a,0x8a,0xbf,0x7a, - 0xf5,0xea,0x1e,0xc9,0x11,0x75,0x6c,0x00,0xde,0x5f,0xf0,0x50,0xdd,0x39, - 0x79,0xf2,0xa4,0x47,0xde,0x75,0x76,0x76,0x36,0xad,0xf9,0x3a,0x79,0xff, - 0x70,0xac,0x26,0x07,0x9c,0x4d,0x2e,0x8b,0xe2,0xc7,0xc5,0xc5,0x3d,0xe4, - 0x1c,0x4f,0xf1,0x78,0xda,0x11,0x6b,0x6b,0xbf,0xbc,0x7f,0x38,0x7e,0x4e, - 0x0e,0x25,0x25,0x25,0x8d,0xa2,0xf8,0xa8,0xa9,0xdd,0xae,0xdc,0xd7,0x63, - 0x4d,0x78,0x82,0xb6,0x0a,0x1e,0x2f,0x38,0x3e,0x96,0xf7,0x0f,0x47,0x3a, - 0x1f,0x53,0xfd,0xbc,0x28,0x8a,0xbf,0x6a,0xd5,0xaa,0xbf,0x25,0x47,0xac, - 0xc9,0xf4,0x0e,0xca,0x78,0x3c,0xed,0x88,0x7d,0xea,0x63,0x79,0xff,0x38, - 0xdf,0x95,0x93,0x43,0x51,0x51,0xd1,0x05,0x51,0xfc,0x98,0x98,0x18,0x0d, - 0xe7,0x58,0xc2,0xe3,0x69,0x47,0xec,0x01,0xfb,0xe4,0xfd,0xc3,0xf1,0x13, - 0x72,0x28,0x28,0x28,0xf8,0x41,0x14,0x7f,0xe5,0xca,0x95,0x7f,0x49,0x8e, - 0xf3,0xe6,0xcd,0xa3,0x79,0x52,0xc4,0xe3,0x69,0x47,0xe4,0x77,0x9f,0xbc, - 0x7f,0x38,0x16,0x93,0x83,0x4a,0xa5,0x6a,0x10,0xc5,0x5f,0xb1,0x62,0x45, - 0x97,0xe4,0x88,0x9a,0x40,0xef,0x40,0xc5,0xe3,0x69,0x47,0xec,0xaf,0x7a, - 0xe5,0xfd,0xc3,0xb1,0x80,0x1c,0xf2,0xf3,0xf3,0xcf,0x8b,0xe2,0x2f,0x5f, - 0xbe,0xbc,0x93,0x73,0xcc,0xe3,0xf1,0x82,0x63,0x8f,0xbc,0x7f,0xac,0x85, - 0xf4,0xed,0x86,0xe5,0xe5,0xe5,0x9d,0x13,0xc5,0x47,0xad,0x7a,0x20,0x39, - 0xa2,0x4e,0x6b,0xd1,0xf6,0x11,0x8f,0xa7,0x1d,0xb1,0x07,0x7c,0x24,0xef, - 0xbf,0xb3,0xb3,0x53,0xe5,0x7a,0xd7,0xdf,0x88,0xe2,0x23,0xc7,0xee,0x49, - 0x8e,0x38,0xa3,0xd1,0x3c,0x39,0xc4,0xa3,0x50,0x28,0x2c,0xb4,0xaf,0xf2, - 0xc4,0x95,0x96,0x96,0x46,0xf3,0xb1,0x4b,0xde,0x7f,0x4e,0x4e,0x8e,0x73, - 0x2d,0x6c,0x6f,0x6f,0x2f,0x10,0xc5,0x47,0x8e,0x49,0xdf,0x01,0xf4,0xc1, - 0xc1,0xc1,0x34,0x4f,0x3e,0xe4,0x41,0x3d,0xeb,0xa0,0x75,0x0c,0xf3,0x66, - 0x42,0x7e,0x3a,0x9d,0x8e,0xd6,0x42,0xc7,0x9e,0x3d,0x7b,0x2e,0x4b,0x7d, - 0x1f,0x3f,0x7e,0xfc,0x14,0xf6,0xa7,0x56,0xd4,0xe9,0x9b,0xa2,0xd8,0x04, - 0x62,0xff,0xc9,0x39,0x7e,0xc0,0xd3,0xd8,0xd8,0xa8,0xc2,0x9a,0x6d,0xc1, - 0xb9,0x86,0x1d,0x39,0x72,0x84,0xd5,0xd5,0xd5,0x31,0x9c,0x3f,0xc7,0x0d, - 0x3d,0x8f,0xb1,0x62,0xb4,0xee,0xe3,0x9d,0x98,0xb7,0x6d,0xdb,0xd6,0x84, - 0xbd,0xfc,0x15,0xd4,0x11,0x67,0xdd,0xc3,0xfc,0xbc,0x63,0x30,0x18,0xb2, - 0x45,0xb1,0x09,0xba,0x2f,0x39,0x06,0x05,0x05,0xd1,0x5c,0xce,0x14,0xd1, - 0xd6,0xd6,0x96,0x83,0x5a,0x7a,0xc3,0xdf,0xdf,0x7f,0xd8,0x9d,0xb3,0x3e, - 0xf6,0x4e,0x76,0xcc,0x6b,0x23,0x62,0xf4,0x62,0x2c,0x1e,0x21,0x3f,0x35, - 0xf0,0xfc,0x39,0x33,0x33,0xf3,0xab,0xd1,0x62,0x4a,0x60,0xfe,0x76,0xb8, - 0xfa,0x79,0x88,0xdf,0x49,0x67,0x85,0xb4,0xb1,0xc0,0xda,0x75,0x10,0xb9, - 0xf8,0xde,0x78,0xc1,0xde,0xeb,0xe0,0x78,0xfa,0x1d,0x0d,0xe4,0x09,0xad, - 0x85,0xf4,0x3d,0xf2,0xbc,0xeb,0x7b,0x01,0xe5,0x52,0xca,0xeb,0x82,0x5a, - 0xad,0x7e,0x1f,0xfb,0x1d,0x3a,0xef,0xb5,0x80,0x2c,0x72,0x44,0xbd,0xbc, - 0x86,0x7b,0xef,0xbc,0x2e,0xe0,0x5c,0xd9,0xe0,0x7a,0xcf,0x85,0xc0,0x1f, - 0x38,0xf3,0x67,0xd7,0xae,0x5d,0x54,0x4b,0xdf,0x7e,0xd5,0x24,0x27,0x27, - 0x57,0xc2,0x67,0x04,0xd0,0x1e,0x37,0xd8,0xe7,0xdf,0x2b,0x02,0x38,0xcf, - 0x37,0x01,0x01,0x01,0x1a,0xe4,0xf0,0xc7,0x56,0xab,0x75,0x3f,0x9e,0x7f, - 0x6b,0xb2,0xb0,0xd9,0x6c,0xfb,0xb1,0xb7,0xc8,0x45,0x5e,0x49,0x35,0x91, - 0xbe,0x99,0xc5,0xf9,0xfc,0xf7,0x8a,0x04,0xdf,0xbb,0xfc,0x9d,0x39,0x89, - 0x5c,0xee,0x43,0x1e,0xfe,0xee,0x6d,0x94,0x4a,0xe5,0x23,0x79,0x5c,0x40, - 0xdf,0x06,0x62,0x7c,0x46,0xbf,0x12,0xc0,0x67,0xa0,0x19,0x98,0xdc,0xa9, - 0x37,0x6e,0x40,0x75,0xed,0x1a,0xa0,0x77,0xfc,0x26,0x2f,0xf4,0x0f,0x37, - 0x76,0x25,0x15 -}; - -// shade.png -static const unsigned char image_10_data[] = { - 0x00,0x00,0x1f,0xa4,0x78,0x9c,0xd5,0x99,0xd1,0x4b,0x53,0x51,0x1c,0xc7, - 0xbd,0xd3,0xa1,0xa0,0xf8,0xa2,0xff,0x81,0xef,0x2a,0xf8,0xe0,0x83,0x0f, - 0x03,0xc1,0x27,0x21,0x48,0x16,0x14,0x8d,0x22,0xa5,0x51,0x11,0x16,0x44, - 0x41,0x83,0x51,0xd0,0x46,0x52,0x30,0x50,0x0b,0x82,0x60,0x83,0x61,0x61, - 0xa0,0x54,0x1b,0x14,0x4b,0x92,0xca,0x32,0xc8,0x32,0x66,0xb9,0x24,0x28, - 0x5a,0xe4,0x40,0x14,0x7a,0xf0,0x16,0x38,0x37,0x4f,0xbf,0xef,0xb8,0xa3, - 0xdb,0xe9,0xe7,0x86,0xed,0x6e,0x9e,0x0e,0x7c,0x60,0x3b,0xf7,0xf2,0xfd, - 0x7e,0xbc,0x5c,0xee,0xae,0xe7,0x08,0x21,0xaa,0x84,0x09,0x1a,0x75,0xc4, - 0x09,0x22,0x4c,0xbc,0x26,0x74,0x42,0x54,0x10,0xdd,0xe8,0x0d,0x1b,0x1e, - 0x75,0x42,0x72,0x34,0xb9,0x6a,0x84,0x8b,0x48,0xca,0x39,0x76,0xbb,0x7d, - 0xab,0x52,0x30,0x7f,0x43,0xd2,0xf0,0xd2,0x18,0xdf,0xf1,0xfc,0x79,0xed, - 0xed,0xed,0x3f,0x47,0x46,0x46,0xbe,0x4d,0x4f,0x4f,0x7f,0x5a,0x5d,0x5d, - 0xfd,0x40,0xe7,0xbc,0x2f,0xc0,0xa2,0x95,0xac,0xad,0xad,0x2d,0x51,0xef, - 0x67,0xea,0x5f,0x86,0x87,0xc9,0x7d,0xdc,0xec,0x4d,0xc3,0x8f,0xf9,0xc6, - 0xc6,0xc6,0xcd,0x60,0x30,0xf8,0x85,0xe6,0xe2,0xaa,0x00,0x1f,0x78,0x19, - 0xde,0x7e,0xc3,0xd7,0x81,0xef,0xd5,0xd5,0xd5,0x5b,0xd1,0x68,0xf4,0x23, - 0xcd,0xcd,0xab,0x06,0xbc,0xe0,0x67,0x78,0xc3,0x37,0x80,0xcf,0x83,0x83, - 0x83,0xcb,0x74,0xfc,0x55,0x99,0x99,0xfb,0x57,0xc8,0x2f,0x65,0x38,0xc3, - 0x77,0x1e,0x9f,0xa7,0xa6,0xa6,0xde,0xd1,0xb1,0x97,0xaa,0x02,0x3f,0xc3, - 0x19,0xbe,0x59,0x5c,0xf7,0x8d,0x8d,0x8d,0xe7,0x74,0x6c,0xa6,0x18,0x99, - 0x4c,0x66,0x26,0x91,0x48,0xcc,0xbd,0xb1,0x60,0x20,0x87,0xf2,0xd0,0x5b, - 0x14,0xf2,0x7b,0x61,0xdc,0x1f,0x59,0xe3,0x59,0x96,0xa5,0xf9,0x27,0x85, - 0xa0,0x7b,0xea,0x6d,0x47,0x47,0xc7,0xf7,0xda,0xda,0xda,0xac,0x95,0xcf, - 0x63,0xe4,0x21,0x17,0xf9,0x52,0xe7,0x53,0x19,0x78,0x9a,0x9e,0xbf,0x70, - 0x7e,0xbc,0x1d,0x2e,0x97,0xeb,0x6b,0xfe,0x5c,0x9b,0xcd,0x26,0x5a,0x5a, - 0x5a,0x44,0x5b,0x5b,0x5b,0xc9,0x20,0x07,0x79,0xf9,0x6c,0xf4,0x14,0xf2, - 0x60,0x9c,0x63,0x1c,0x3e,0x9f,0x6f,0x11,0xe7,0x34,0x34,0x34,0x88,0xa1, - 0xa1,0x21,0xa1,0xeb,0xba,0xb0,0x72,0x20,0x0f,0xb9,0xc8,0x47,0x8f,0xdf, - 0xef,0x4f,0xd0,0xf4,0x23,0x0e,0xc6,0xf9,0x81,0x4c,0x3a,0x9d,0x7e,0x58, - 0x5f,0x5f,0x9f,0xd6,0x34,0x4d,0x44,0x22,0x11,0x4b,0x5d,0xe5,0x81,0x7c, - 0xf4,0xa0,0x0f,0xbd,0x9c,0x8f,0xd9,0xb9,0xa6,0xa6,0x06,0xce,0x51,0x19, - 0xfa,0x3d,0x7a,0x86,0xe3,0xad,0xad,0xad,0x65,0xf5,0xcd,0x0f,0xf4,0xa0, - 0x0f,0xbd,0x9c,0x0f,0x3c,0x25,0xe7,0xbb,0x32,0xe1,0x70,0x78,0x16,0xc7, - 0x7b,0x7a,0x7a,0x2a,0xe2,0x8c,0x1e,0xf4,0x8d,0x8d,0x8d,0xcd,0xd2,0xd7, - 0x7b,0x32,0x8c,0xf3,0x84,0x4c,0x2a,0x95,0x8a,0x18,0xbf,0xe9,0x82,0xde, - 0x3b,0xca,0xea,0x8b,0x7c,0xf4,0xa0,0x0f,0xbd,0x9c,0x0f,0xe3,0x3c,0xce, - 0xd1,0xd9,0xd9,0xb9,0x8c,0x73,0xba,0xbb,0xbb,0xc5,0xca,0xca,0x4a,0x59, - 0x7c,0x91,0x8b,0x7c,0xf4,0xa0,0x8f,0xa6,0xee,0x70,0x30,0xce,0xb7,0x38, - 0x92,0xc9,0xe4,0x44,0x53,0x53,0xd3,0x8f,0xfc,0xf5,0x76,0xbb,0xdd,0x62, - 0x74,0x74,0x54,0x84,0x42,0xa1,0x92,0x41,0x0e,0xf2,0xf2,0xd7,0x17,0x3d, - 0xd4,0x37,0x49,0xbd,0xb7,0x39,0x24,0xe7,0x0c,0xcd,0x85,0xb7,0x63,0x61, - 0x61,0x61,0xb2,0xab,0xab,0xeb,0xaf,0xf7,0x6a,0x2b,0x41,0x3e,0x7a,0x0a, - 0x79,0xc0,0x53,0x72,0x0e,0x16,0x23,0x16,0x8b,0xdd,0xf7,0x78,0x3c,0xb3, - 0x7d,0x7d,0x7d,0x8b,0xbd,0xbd,0xbd,0x4b,0xa5,0x82,0x1c,0xe4,0x21,0x97, - 0xf2,0x43,0xc5,0x60,0x9c,0x6f,0xaa,0x0e,0xe3,0x7c,0x43,0x75,0x18,0xe7, - 0x6b,0x16,0x73,0xdd,0x6a,0x18,0xe7,0x61,0xd5,0x31,0x3b,0xd3,0x7b,0x29, - 0x9c,0x03,0xaa,0x03,0x4f,0xc9,0xf9,0xca,0x2e,0x73,0xb5,0x18,0x8c,0xf3, - 0x65,0xd5,0x61,0x9c,0x2f,0x15,0xc0,0xa7,0x02,0x8c,0xf3,0x45,0xd5,0x91, - 0x9c,0x37,0x69,0xce,0xab,0x3a,0xf0,0x94,0x9c,0xcf,0x5b,0x84,0xa7,0x5c, - 0x30,0xce,0xe7,0x54,0x87,0x71,0x3e,0xa3,0x3a,0x8c,0xf3,0xa9,0x5d,0xe0, - 0xf4,0x4e,0x60,0x9c,0x4f,0xaa,0x8e,0xd9,0xd9,0x66,0xb3,0xc1,0xf9,0x98, - 0xc4,0x71,0xd5,0x80,0xa7,0xe4,0x7c,0x54,0x71,0xdc,0x8c,0x73,0xbf,0xea, - 0x98,0x9c,0xb3,0x9a,0xa6,0x65,0x74,0x5d,0x3f,0x42,0xf3,0x87,0x4a,0xe0, - 0x70,0x39,0x21,0xbf,0x7e,0x78,0x1a,0xeb,0xa2,0xb9,0xf5,0xe7,0x40,0x20, - 0x70,0x81,0x8e,0x1d,0x54,0x15,0xf8,0x99,0xd6,0x9f,0x73,0xeb,0xfc,0x0e, - 0x87,0x03,0xff,0xf3,0xee,0x57,0x15,0xf8,0x55,0xfd,0x5e,0xe7,0xcf,0xed, - 0xa7,0xe0,0xba,0x7b,0xbd,0x5e,0xbc,0x8b,0x38,0x2b,0xc0,0xbe,0x9d,0x00, - 0x2f,0xe3,0xbe,0xc8,0xed,0xa7,0x08,0xd3,0xbe,0x95,0xdd,0x6e,0x5f,0x1f, - 0x18,0x18,0xc0,0xfb,0xf5,0x5e,0x55,0x80,0x0f,0xbc,0x0c,0xdf,0xdc,0xbe, - 0x95,0x60,0xf6,0x07,0x9b,0x9b,0x9b,0x97,0x9c,0x4e,0xe7,0xb0,0xcf,0xe7, - 0x3b,0x1b,0x8f,0xc7,0x0f,0xd0,0x39,0x7b,0x2a,0x05,0xfa,0xd0,0x8b,0x7e, - 0x78,0x98,0xd6,0x6d,0xfe,0xd8,0x1f,0x14,0x45,0xf6,0x61,0xe9,0x19,0x93, - 0xae,0x14,0xcc,0x1a,0x13,0xbb,0x0f,0x2b,0xfe,0xb3,0xfd,0xee,0x5f,0x4b, - 0xfc,0x3e,0x57 -}; - -// splat.png -static const unsigned char image_11_data[] = { - 0x00,0x00,0x1a,0xe8,0x78,0x9c,0xcd,0x59,0x09,0x4c,0x95,0x47,0x10,0xc6, - 0x03,0x50,0xf1,0x88,0xf1,0xbe,0xa2,0x36,0xd1,0x78,0xd6,0x98,0xaa,0x69, - 0x88,0xda,0xe2,0x81,0x26,0x52,0x89,0x77,0x63,0x8c,0x82,0x82,0x41,0x11, - 0x09,0x18,0xad,0xc5,0x70,0x14,0x14,0x0f,0x50,0x6a,0x04,0x41,0x41,0xe4, - 0x2a,0x88,0x82,0x02,0xfa,0x12,0x88,0x29,0x86,0xc3,0xa2,0x42,0xb9,0x44, - 0x69,0x25,0x4a,0x2d,0xe2,0x85,0x8a,0xa8,0x60,0xb8,0xde,0xf6,0x9b,0xf5, - 0xed,0xcb,0xff,0x16,0xde,0x61,0x52,0xd4,0x4d,0xbe,0x04,0xff,0x9d,0xdd, - 0xf9,0xd8,0x9d,0xf9,0x66,0x56,0xcc,0xcc,0x3a,0x1d,0xf6,0x80,0x1f,0x70, - 0x1e,0x28,0x03,0x2a,0xba,0x18,0xa5,0x40,0x12,0xe0,0x0d,0xd8,0x75,0x4e, - 0x49,0x67,0x7c,0x0f,0x14,0x01,0x4c,0xc0,0xd2,0xd2,0xb2,0xbd,0x7f,0xff, - 0xfe,0xad,0x5d,0x09,0x0b,0x0b,0x8b,0x76,0xa5,0x4f,0x20,0x1f,0xf8,0x56, - 0x0f,0x47,0x77,0x61,0xb7,0x6c,0xd9,0xb2,0x86,0x98,0x98,0x98,0x9a,0x7b, - 0x18,0x8c,0xb1,0x3b,0x5d,0x0d,0xb5,0x5a,0x7d,0xa7,0xb2,0xb2,0xb2,0x2a, - 0x3a,0x3a,0xba,0x66,0xe1,0xc2,0x85,0x6f,0x14,0x7c,0x1d,0x25,0x8e,0x3f, - 0x00,0xed,0x56,0x56,0x56,0x6d,0x39,0x39,0x39,0x0f,0x3e,0x05,0x37,0x43, - 0xc8,0xcc,0xcc,0xac,0xee,0xd5,0xab,0x57,0x7b,0xb7,0x6e,0xdd,0x5a,0xc0, - 0xeb,0x3b,0x0d,0xc7,0xee,0xf8,0xf7,0x0b,0xba,0xdf,0xdc,0xdc,0xdc,0xcf, - 0xce,0x51,0xe0,0xca,0x95,0x2b,0xff,0xf4,0xec,0xd9,0x53,0x0d,0x7e,0x0f, - 0x35,0x3c,0xbf,0xa1,0x33,0x5e,0xbb,0x76,0x6d,0xfd,0xe7,0xe6,0x26,0xc3, - 0xd6,0xd6,0x56,0xc4,0xc0,0x57,0x80,0x07,0xfd,0x7c,0xf2,0xe4,0xc9,0xda, - 0xae,0xf2,0x17,0x19,0x19,0xf9,0xe8,0xe0,0xc1,0x83,0x4f,0x5a,0x5a,0x5a, - 0xee,0x7e,0xcc,0xba,0x03,0x07,0x0e,0x3c,0xd1,0xf0,0x74,0x00,0x02,0xe8, - 0x67,0x95,0x4a,0x45,0x77,0x7e,0xfb,0xff,0xc6,0xd2,0xa5,0x4b,0x1b,0x44, - 0x5e,0x2c,0x58,0xb0,0xe0,0xcd,0xc7,0xac,0x4d,0x48,0x48,0x78,0xa8,0x59, - 0xbb,0x4b,0xf0,0xbc,0x7c,0xf9,0xf2,0x3d,0xe4,0x5d,0xb1,0xa9,0xc8,0xcf, - 0xcf,0xaf,0xac,0xaf,0xaf,0x2f,0x35,0x64,0xb3,0x77,0xef,0xde,0x5a,0xda, - 0x7b,0xe6,0xcc,0x99,0x6c,0xfa,0xf4,0xe9,0x0c,0x79,0xc0,0x1a,0x1b,0x1b, - 0x4b,0x4c,0xf5,0x11,0x17,0x17,0x77,0xbf,0x13,0x9e,0x95,0x98,0xbb,0x65, - 0x0a,0xac,0xad,0xad,0xf9,0x19,0x51,0x9c,0xbb,0xb9,0xb9,0xd5,0xbe,0x7f, - 0xff,0xbe,0x50,0xb6,0x49,0x4c,0x4c,0xfc,0x9b,0x6c,0x46,0x8d,0x1a,0xc5, - 0x1e,0x3f,0x7e,0xcc,0x96,0x2f,0x5f,0xce,0xcf,0xb4,0xb6,0xb6,0xb6,0xd8, - 0x54,0x3f,0xb1,0xb1,0xb1,0x55,0x32,0xcf,0x8c,0x8c,0x8c,0x0a,0x9c,0xf5, - 0x1f,0xc6,0x40,0x76,0xe2,0x8c,0xc6,0x8c,0x19,0xc3,0x7d,0x4f,0x9c,0x38, - 0xb1,0xf1,0xfe,0xfd,0xfb,0x45,0xc2,0xa6,0xa2,0xa2,0xa2,0x98,0xf4,0xdb, - 0xdc,0xdc,0x9c,0x95,0x96,0x96,0x32,0x1a,0x33,0x66,0xcc,0x60,0xa4,0x35, - 0xf0,0x6f,0xd4,0x87,0x00,0x34,0xfc,0x2f,0x99,0x67,0x7a,0x7a,0x7a,0x19, - 0xe6,0x72,0x8d,0x21,0x20,0x20,0x80,0xff,0x8e,0x67,0xce,0x9c,0x61,0x38, - 0x47,0xb6,0x6e,0xdd,0x3a,0xce,0x95,0x6a,0x8a,0xab,0xab,0xeb,0xc3,0x9b, - 0x37,0x6f,0x16,0x8d,0x1e,0x3d,0xba,0x89,0xbe,0x45,0x45,0x45,0x31,0x31, - 0xc0,0x9b,0x8d,0x1f,0x3f,0xbe,0xd1,0x14,0x1f,0x02,0xd0,0xfd,0x3b,0x32, - 0xcf,0xb4,0xb4,0xb4,0x3f,0x31,0xf7,0xbb,0x31,0x9c,0x3f,0x7f,0xbe,0x84, - 0xec,0xbd,0xbc,0xbc,0xb4,0x1c,0x22,0x22,0x22,0xa8,0xbe,0x2a,0xeb,0x1e, - 0xf3,0xf0,0xf0,0xd0,0xce,0x3f,0x7b,0xf6,0x8c,0x7f,0x9b,0x3f,0x7f,0x7e, - 0x9d,0x29,0x3e,0x04,0x70,0x16,0xe5,0x32,0xcf,0x4b,0x97,0x2e,0xdd,0xc2, - 0x5c,0x96,0x31,0x20,0xbe,0xb2,0x29,0x1f,0x6c,0x6c,0x6c,0x98,0x72,0x20, - 0xa7,0xd8,0xee,0xdd,0xbb,0x99,0xbd,0xbd,0x3d,0x8b,0x8f,0x8f,0xd7,0x99, - 0xbb,0x76,0xed,0x1a,0xe7,0xb9,0x79,0xf3,0xe6,0x6a,0x53,0x7c,0x08,0xe0, - 0x3e,0x4a,0x64,0x9e,0xa9,0xa9,0xa9,0x05,0x98,0x53,0x99,0x02,0xc4,0xe5, - 0xbb,0x7e,0xfd,0xfa,0x31,0x53,0x47,0x58,0x58,0x18,0xe7,0x19,0x14,0x14, - 0x54,0x66,0xaa,0x0f,0x02,0x74,0xb7,0x48,0xe6,0x99,0x92,0x92,0x92,0x8f, - 0xb9,0x74,0x63,0x68,0x6e,0x6e,0xce,0x18,0x3e,0x7c,0x78,0xe3,0xa0,0x41, - 0x83,0x4c,0xe6,0xb9,0x67,0xcf,0x1e,0xa6,0xb9,0x33,0x93,0x7c,0x08,0x9c, - 0x3a,0x75,0xea,0x96,0xcc,0x13,0x71,0x97,0x83,0x5c,0x4c,0x25,0x54,0x57, - 0x57,0x5f,0xd9,0xb0,0x61,0xc3,0x3d,0xf4,0x2e,0x35,0xb3,0x67,0xcf,0x7e, - 0x3a,0x69,0xd2,0xa4,0x97,0xe3,0xc6,0x8d,0x6b,0x18,0x31,0x62,0xc4,0x3b, - 0xe4,0x6c,0x2b,0xd9,0x2f,0x5a,0xb4,0xa8,0x53,0x4e,0x75,0x75,0x75,0x6c, - 0xeb,0xd6,0xad,0x2c,0x39,0x39,0x59,0xfb,0xed,0xf0,0xe1,0xc3,0x9c,0x27, - 0xe2,0xb8,0x40,0xf8,0x30,0x05,0xe1,0xe1,0xe1,0x05,0x32,0x4f,0xec,0x9b, - 0x8d,0x2d,0xcf,0x11,0xa0,0x79,0xca,0xde,0x8a,0xf5,0xe8,0xd1,0x83,0x0d, - 0x18,0x30,0x80,0xe1,0x1c,0x49,0x83,0x98,0xa7,0xa7,0x27,0xcf,0x75,0x31, - 0xce,0x9d,0x3b,0xc7,0xba,0x77,0xef,0xce,0xb6,0x6f,0xdf,0xce,0x26,0x4f, - 0x9e,0xcc,0xd7,0x0c,0x19,0x32,0x44,0x3b,0x8f,0x33,0xe0,0xdf,0xf0,0xbb, - 0xd6,0x43,0x0f,0x54,0xc2,0x8f,0x31,0xa0,0x96,0xe7,0xc9,0x3c,0xe1,0xeb, - 0x2a,0xe6,0x12,0xda,0xdb,0xdb,0x13,0x90,0xbb,0x6d,0xd0,0x19,0x56,0x56, - 0x56,0xc6,0xde,0xbe,0x7d,0x6b,0xf4,0x5e,0x71,0xe6,0x3a,0xb9,0x4e,0x20, - 0x6d,0x15,0x03,0x67,0xc3,0x50,0x9b,0x84,0x7e,0xb5,0xad,0x5e,0xbd,0xba, - 0xb2,0xaa,0xaa,0x2a,0x95,0xfc,0x19,0x02,0xe2,0x3a,0x47,0xe6,0x89,0xfa, - 0x91,0x89,0xb9,0x18,0x82,0xa3,0xa3,0x23,0xbd,0x03,0x18,0xf6,0xe3,0x3e, - 0xf4,0x8d,0xc0,0xc0,0x40,0xae,0xdf,0xa8,0x4b,0x54,0x13,0xd5,0xc8,0xe7, - 0x52,0xe8,0x55,0x01,0xf4,0xbd,0x0d,0x5a,0xc9,0x5a,0x5b,0x5b,0x75,0xec, - 0x91,0xab,0xbc,0x3e,0xd1,0xde,0x38,0x7f,0x35,0x62,0xab,0xbc,0xa8,0xa8, - 0x28,0x55,0xf8,0x95,0x71,0xe2,0xc4,0x89,0x6c,0x99,0x27,0x6a,0xbe,0x0a, - 0x9c,0xa2,0x08,0xb8,0xd3,0x68,0x9c,0xc7,0x2b,0xfa,0xbe,0x62,0xc5,0x0a, - 0xd6,0xd4,0xd4,0xd4,0x81,0x23,0x7a,0x1f,0x7e,0xd7,0x64,0x83,0x98,0x68, - 0xf2,0xf3,0xf3,0xcb,0x11,0xeb,0xc7,0x8e,0x1d,0xfb,0x92,0xbe,0x23,0x9e, - 0xd9,0x8d,0x1b,0x37,0x74,0xd6,0x21,0x0f,0xb9,0xfe,0x4f,0x98,0x30,0x81, - 0x69,0x6a,0x6f,0xbb,0x9d,0x9d,0xdd,0x5d,0xf4,0xf3,0x89,0x62,0xbd,0xc0, - 0xf1,0xe3,0xc7,0xaf,0xca,0x3c,0xa1,0x79,0x94,0x63,0xe1,0x02,0x8f,0x1e, - 0x3d,0x8a,0x9e,0x32,0x65,0x0a,0xef,0x23,0x66,0xcd,0x9a,0xc5,0x9e,0x3e, - 0x7d,0xda,0x81,0xab,0xc8,0x8f,0xde,0xbd,0x7b,0x37,0xe7,0xe5,0xe5,0x25, - 0x89,0xb5,0x87,0x0e,0x1d,0xba,0x4a,0xe7,0x25,0x62,0x40,0x99,0x53,0xca, - 0x58,0xb8,0x70,0xe1,0x02,0x43,0xed,0x12,0xf1,0xd0,0xba,0x69,0xd3,0xa6, - 0x42,0x25,0x87,0x90,0x90,0x90,0x4c,0x99,0x27,0x6a,0xfe,0x45,0xcc,0x9d, - 0x50,0x02,0x67,0x16,0x3a,0x77,0xee,0xdc,0x7b,0x34,0x4f,0xfb,0x15,0x17, - 0x17,0x77,0xf0,0xe7,0xe3,0xe3,0xc3,0xfd,0xac,0x5a,0xb5,0xaa,0x18,0x67, - 0x17,0x97,0x95,0x95,0x95,0x48,0x75,0x40,0x70,0xa4,0x3a,0x95,0x9d,0x9d, - 0xad,0x37,0x76,0x28,0x36,0x90,0xd7,0x6c,0xf0,0xe0,0xc1,0xdc,0x7e,0xc7, - 0x8e,0x1d,0xb9,0xc2,0xff,0xb1,0x63,0xc7,0x54,0x32,0x4f,0xd4,0xfc,0x0b, - 0x98,0x0b,0x91,0x81,0xbc,0x0a,0x71,0x70,0x70,0xb8,0x4e,0xf1,0xd7,0xa7, - 0x4f,0x1f,0x35,0x74,0x56,0xc7,0x0f,0xfa,0x2c,0xbe,0x3f,0xb4,0xe0,0x95, - 0xe6,0x1e,0xdb,0x44,0xbc,0x90,0x46,0x09,0x5d,0x40,0x6f,0xc2,0xd0,0xa7, - 0xb1,0xa3,0x47,0x8f,0x32,0xdc,0x27,0xd7,0x7e,0xaa,0xb7,0xc8,0x69,0x16, - 0x1a,0x1a,0xca,0x76,0xee,0xdc,0xc9,0xf7,0x19,0x39,0x72,0xe4,0x0b,0xe1, - 0x3b,0x38,0x38,0x38,0x43,0xe6,0x89,0x9a,0x4f,0x5a,0x10,0xa4,0x0f,0xb8, - 0xe3,0x34,0x9c,0x4d,0x0b,0x9d,0x55,0x49,0x49,0x89,0x96,0x27,0xf9,0x11, - 0x67,0x87,0x38,0xd1,0xc6,0x2c,0xf1,0x14,0xc3,0xc5,0xc5,0xa5,0x83,0x1e, - 0xe8,0x03,0xde,0x3f,0x05,0xc2,0xe7,0x91,0x23,0x47,0xd2,0x64,0x9e,0x88, - 0x6d,0xd2,0x82,0x40,0x43,0x40,0xaf,0x74,0x91,0x6c,0xbd,0xbd,0xbd,0xb5, - 0x1c,0x28,0x6e,0xe7,0xcd,0x9b,0xc7,0x75,0x87,0xee,0x10,0xfd,0x1d,0xdb, - 0xb2,0x65,0x0b,0xfb,0xf0,0xa4,0x66,0x3c,0x8f,0x34,0x7a,0xfa,0x0a,0xf7, - 0x92,0x8d,0xf7,0x47,0x8a,0xbf,0xbf,0xff,0x45,0x5f,0x5f,0xdf,0x34,0x68, - 0x43,0x06,0xf6,0x4a,0x47,0x0e,0xa6,0xd1,0xde,0xa7,0x4f,0x9f,0xfe,0x4d, - 0xe9,0x0f,0x71,0x9e,0x22,0xf3,0x84,0x4d,0x2c,0xe6,0xfc,0x0d,0x01,0x71, - 0x9d,0x48,0xb6,0xf0,0xa3,0x37,0xde,0xe4,0x41,0xb9,0x42,0x6b,0x9c,0x9c, - 0x9c,0xb2,0x8c,0xed,0x2f,0x03,0xba,0x97,0x2c,0xf3,0x44,0xac,0x44,0x63, - 0xce,0xc7,0x10,0xd6,0xaf,0x5f,0x7f,0x55,0x53,0x63,0x4d,0xe6,0x89,0xf7, - 0x09,0xe7,0xb9,0x78,0xf1,0xe2,0x1b,0xc6,0xf6,0x97,0xb1,0x7f,0xff,0xfe, - 0x24,0x99,0x27,0xe2,0x2c,0x12,0x73,0x5e,0x86,0x30,0x6d,0xda,0xb4,0x4a, - 0xb2,0xad,0xa9,0xa9,0xd1,0xe1,0x42,0x35,0x8b,0xf2,0x80,0xee,0x9f,0xfa, - 0x52,0xa5,0xbe,0x93,0xf6,0x52,0x1d,0x80,0x1e,0xff,0x6b,0x6c,0x7f,0x19, - 0xb8,0xb7,0x04,0x99,0x27,0x72,0x8e,0x34,0x6b,0xb7,0x21,0x20,0xdf,0x1b, - 0x49,0x9f,0x94,0xa3,0xa0,0xa0,0x80,0x0d,0x1c,0x38,0x50,0xad,0xcc,0x05, - 0xea,0x01,0x9e,0x3f,0x7f,0xae,0xb5,0xa1,0x37,0x0a,0x7a,0x84,0x36,0xe4, - 0xfe,0x4f,0xc6,0x7c,0x28,0x81,0x18,0x8e,0x91,0x79,0x42,0x2b,0x42,0x31, - 0xe7,0xa1,0x0f,0x85,0x85,0x85,0xbe,0x64,0x47,0xef,0x31,0x31,0x28,0xf6, - 0xa8,0x0f,0x20,0xcd,0x5a,0xb9,0x72,0xa5,0x0a,0xfd,0x80,0x0f,0x6a,0x3d, - 0xef,0xc5,0x50,0x1f,0xd5,0xa8,0xe1,0xdc,0x0e,0xb1,0xc9,0xf9,0x27,0x25, - 0x25,0x05,0x1b,0xf2,0x21,0x03,0x39,0x16,0x2d,0xf3,0x44,0x8e,0x1c,0xc7, - 0x9c,0x9b,0x3e,0x20,0x56,0xc2,0x45,0xae,0x53,0x2d,0x41,0x8e,0xf2,0x77, - 0x2e,0xb4,0xea,0x3d,0xf2,0x32,0x4c,0x69,0xbb,0x66,0xcd,0x9a,0x34,0x51, - 0x37,0xcb,0xcb,0xcb,0xb5,0x7d,0x32,0xfa,0xa9,0x04,0x43,0x3e,0x64,0xec, - 0xdb,0xb7,0x2f,0x52,0xe6,0x09,0xfd,0x3d,0x86,0xb9,0x6d,0xfa,0xe0,0xec, - 0xec,0x1c,0x4f,0x76,0x54,0x2b,0xa1,0x71,0xdc,0xaf,0x95,0x95,0xd5,0x1b, - 0xf4,0xbe,0xbf,0x74,0x66,0x8f,0x33,0xe4,0xf6,0x78,0xbf,0xa9,0x6d,0x6d, - 0x6d,0xb9,0x3d,0xde,0x79,0x67,0x0d,0xf9,0x90,0x01,0xad,0x8b,0x90,0x79, - 0x42,0x53,0x49,0x5b,0x9d,0xf5,0x01,0xbd,0xf5,0x01,0x65,0x0c,0xe2,0xac, - 0x1e,0xa0,0xd7,0xd9,0x65,0x68,0x0d,0x6a,0x60,0x24,0x7a,0xa7,0x66,0xb2, - 0xef,0xdb,0xb7,0xef,0x2b,0x68,0xaa,0xbb,0x21,0x7b,0x19,0x78,0x07,0x84, - 0x29,0x78,0xfe,0x4c,0x3f,0xbb,0xbb,0xbb,0x53,0x7c,0x3a,0x18,0x02,0xd6, - 0xfd,0x8a,0x3e,0xf8,0xe6,0x92,0x25,0x4b,0x2e,0xbd,0x7e,0xfd,0xda,0xc9, - 0x98,0x3d,0x01,0xba,0xbf,0x0d,0xf5,0x2f,0x10,0x79,0xe5,0x6c,0x8a,0xbd, - 0x12,0x1b,0x37,0x6e,0x14,0xf1,0xe9,0x62,0xf6,0xe1,0xff,0x17,0xd9,0x9c, - 0x39,0x73,0x48,0x87,0x37,0x7c,0x49,0x98,0x3a,0x75,0x6a,0xbe,0x86,0xe7, - 0xd7,0x80,0x05,0xd0,0x84,0x7c,0x68,0xb8,0x7e,0xfd,0xba,0x0b,0xe6,0x7f, - 0xfc,0x12,0xa0,0x52,0xa9,0xdc,0x10,0x33,0x8d,0xe0,0x46,0xbd,0x6c,0x37, - 0xb3,0x0f,0xc3,0x93,0x78,0xe3,0xad,0xfb,0x04,0xfa,0xe3,0x08,0xbb,0xd5, - 0x9f,0x13,0x78,0xef,0x3b,0x43,0xab,0x5f,0x68,0xce,0x72,0x9d,0x99,0xee, - 0x88,0xd2,0xf4,0x65,0x4d,0x36,0x36,0x36,0xf1,0x67,0xcf,0x9e,0xdd,0x8e, - 0x35,0xf6,0x9f,0x12,0xe8,0xd9,0x5c,0xad,0xad,0xad,0x93,0x51,0x13,0x9a, - 0x35,0x1c,0x83,0xcc,0x3a,0x0e,0x3a,0x5b,0x67,0xe0,0xb5,0xc8,0x69,0xe8, - 0x63,0xdb,0xd0,0xa1,0x43,0x6f,0x0f,0x1b,0x36,0xac,0xac,0x2b,0x41,0x3e, - 0xc8,0x97,0x42,0x4f,0xe8,0x2c,0x37,0x75,0xc2,0x51,0x39,0x2c,0xcd,0x3e, - 0xfc,0x1d,0x87,0xb4,0x9a,0x7a,0x79,0x9d,0x9a,0xd8,0x45,0xa0,0xbf,0xcb, - 0x50,0xef,0x90,0x0a,0x78,0x01,0xe6,0x32,0xa9,0xff,0x00,0x99,0xf6,0xbe, - 0x01 -}; - -// titlealpha.png -static const unsigned char image_12_data[] = { - 0x00,0x00,0x00,0x78,0x78,0x9c,0xe3,0xe7,0xe7,0xaf,0x64,0x00,0x82,0xff, - 0xff,0xff,0x87,0x02,0x71,0x08,0x10,0x7b,0x01,0xb1,0x33,0x10,0x5b,0x01, - 0xb1,0x3e,0x10,0x6b,0x00,0xb1,0x02,0x10,0x4b,0x02,0x31,0x27,0x03,0x0e, - 0x00,0x94,0x63,0x05,0x62,0x09,0x34,0x0c,0xd2,0xa7,0x07,0xc4,0x36,0x50, - 0x73,0x23,0x3f,0x7c,0xf8,0x20,0xc3,0xcf,0xcf,0xcf,0x06,0x00,0x83,0xf5, - 0x43,0x25 -}; - -// window_background.png -static const unsigned char image_13_data[] = { - 0x00,0x00,0x1a,0xe8,0x78,0x9c,0xcd,0x98,0x69,0x4c,0x54,0x57,0x14,0xc7, - 0x59,0x04,0xdc,0xe2,0xbe,0xf3,0xc1,0x15,0xfc,0x60,0x4c,0xda,0xc4,0x2f, - 0x96,0x2a,0xa6,0xf1,0x8b,0x24,0x84,0x0f,0xd6,0xa4,0x8d,0x34,0x01,0xa4, - 0x09,0x54,0x28,0x21,0x85,0x26,0x1a,0x36,0x6b,0xad,0x10,0x2c,0x8b,0x20, - 0x8b,0xac,0xb2,0x14,0x90,0x1d,0x0a,0x08,0x6d,0xa1,0x92,0x40,0x8a,0x24, - 0xb6,0x28,0x76,0x18,0x16,0x69,0x3b,0x5a,0x05,0x2d,0x1d,0xc5,0x51,0x96, - 0x19,0x5e,0xff,0xe7,0x39,0xb7,0xb9,0xdc,0x62,0x99,0xf7,0xa6,0xb4,0xbd, - 0xc9,0x2f,0x19,0xee,0x99,0x73,0xee,0x7f,0xde,0xbb,0xe7,0x9c,0x7b,0xb1, - 0xb1,0x99,0x73,0x78,0x81,0x18,0x50,0x06,0x7e,0x00,0xbd,0x0b,0x0c,0xad, - 0x51,0x02,0xa2,0x80,0xe7,0xdc,0x92,0x66,0x0d,0x77,0xd0,0x0d,0x24,0x86, - 0x93,0x93,0x93,0x69,0xc5,0x8a,0x15,0xd3,0x0b,0x89,0xa3,0xa3,0xa3,0x89, - 0x5f,0x13,0x74,0x80,0x37,0x5e,0xa1,0x31,0x88,0x7d,0xcf,0xc3,0xc3,0xe3, - 0x49,0x7e,0x7e,0xbe,0x4e,0xab,0xd5,0xf6,0xcf,0xcc,0xcc,0xdc,0x91,0x24, - 0x69,0x41,0xa1,0x35,0x34,0x1a,0xcd,0x40,0x5e,0x5e,0x9e,0xee,0xf0,0xe1, - 0xc3,0x4f,0x39,0xbd,0x27,0x04,0x8d,0x1e,0xc0,0xb8,0x6c,0xd9,0x32,0x63, - 0x5b,0x5b,0xdb,0xdd,0x85,0xd6,0x35,0x1f,0xcd,0xcd,0xcd,0xc3,0x8b,0x17, - 0x2f,0x36,0xd9,0xda,0xda,0x4e,0x43,0xd7,0x5b,0x66,0x8d,0xf8,0xd3,0x76, - 0x94,0x9e,0xbd,0xb5,0x1a,0x7b,0x7a,0x7a,0x06,0x83,0x83,0x83,0x1f,0x05, - 0x04,0x04,0x3c,0x56,0xc2,0xc5,0x8b,0x17,0xef,0x8f,0x8c,0x8c,0xf4,0xf1, - 0xb1,0x9a,0x9a,0x9a,0x86,0x17,0x2d,0x5a,0x34,0x03,0x6d,0x3a,0xb3,0xce, - 0xd7,0xe8,0x19,0x1f,0x3d,0x7a,0x54,0xaf,0x56,0x1f,0xed,0x8f,0x3d,0x7b, - 0xf6,0xbc,0x10,0xf6,0x98,0x22,0xec,0xed,0xed,0x25,0x6f,0x6f,0xef,0x31, - 0x3e,0xee,0x91,0x23,0x47,0x9e,0x98,0xed,0x2e,0xe0,0x43,0xfa,0x4c,0xbf, - 0x49,0x8d,0x46,0xa3,0xd1,0x78,0x67,0xe5,0xca,0x95,0xa6,0x55,0xab,0x56, - 0x49,0x35,0x35,0x35,0xd2,0xf8,0xf8,0xb8,0xf4,0xfc,0xf9,0x73,0x45,0x74, - 0x74,0x74,0x48,0x9e,0x9e,0x9e,0xb2,0xde,0xf0,0xf0,0xf0,0x51,0x16,0xfb, - 0xfc,0xf9,0xf3,0x0f,0xb8,0x7d,0x1a,0x43,0x9f,0xeb,0xea,0xea,0xe8,0x9d, - 0xdf,0x56,0x4a,0x76,0x76,0xf6,0x2f,0xe4,0x5f,0x5f,0x5f,0x2f,0x59,0x3b, - 0x0e,0x1c,0x38,0x20,0x21,0xff,0x4d,0x2c,0x76,0x49,0x49,0xc9,0x4f,0x66, - 0x9d,0x1f,0x33,0x9d,0xb5,0xb5,0xb5,0x03,0xc8,0xbb,0x9b,0x4a,0xf1,0xf5, - 0xf5,0x1d,0x25,0x7f,0x83,0xc1,0x60,0xb5,0xce,0xb8,0xb8,0x38,0x09,0x79, - 0x22,0xb1,0xd8,0xc5,0xc5,0xc5,0x43,0xa2,0xce,0xea,0xea,0xea,0x3e,0xd8, - 0x6e,0x28,0xc5,0xc7,0xc7,0xe7,0x21,0xf9,0x4f,0x4e,0x4e,0x5a,0xad,0xf3, - 0xc2,0x85,0x0b,0x4c,0xa7,0x1c,0xbb,0xa8,0xa8,0xa8,0x7f,0x0e,0x9d,0xb4, - 0x27,0x3a,0x95,0x02,0x9d,0xbf,0x92,0x7f,0x61,0x61,0xa1,0x54,0x5a,0x5a, - 0x6a,0x15,0xc7,0x8f,0x1f,0xa7,0xbe,0x22,0xb1,0xd8,0x88,0xa9,0x11,0x75, - 0x56,0x55,0x55,0xdd,0x82,0xad,0x5d,0x29,0x91,0x91,0x91,0x43,0x76,0x76, - 0x76,0xaa,0xf3,0x5c,0x04,0x35,0x7c,0x86,0xc5,0x2e,0x28,0x28,0xb8,0x23, - 0xea,0xac,0xac,0xac,0xfc,0x1e,0xb6,0x56,0xa5,0xa4,0xa6,0xa6,0xca,0xb1, - 0x28,0x6f,0xe9,0xdd,0x5b,0x03,0xbd,0x77,0xd4,0x8d,0x69,0x16,0xfb,0xca, - 0x95,0x2b,0xb7,0x44,0x9d,0xe5,0xe5,0xe5,0xdd,0xb0,0x35,0x2b,0x25,0x25, - 0x25,0xa5,0x87,0xfc,0xa7,0xa7,0xa7,0xad,0xde,0x9f,0x89,0x89,0x89,0x4c, - 0xa7,0x1c,0x1b,0x7d,0xf4,0xa6,0xa8,0xf3,0xea,0xd5,0xab,0xdf,0xc1,0xd6, - 0x20,0x32,0x31,0x31,0xd1,0x88,0xfa,0x70,0xe3,0xd0,0xa1,0x43,0x0f,0xdc, - 0xdc,0xdc,0x46,0x44,0x5c,0x5c,0x5c,0xe4,0x5a,0xdc,0xda,0xda,0x2a,0x5d, - 0xbf,0x7e,0x7d,0x16,0xc3,0xc3,0xc3,0x94,0x13,0x6a,0x74,0xca,0x6b,0xe7, - 0xe6,0xe6,0x76,0x8b,0x3a,0xcb,0xca,0xca,0x3a,0x60,0xab,0xe5,0x49,0x4f, - 0x4f,0xef,0xc6,0xde,0x9b,0x99,0x6f,0x4f,0xa1,0xb7,0xbd,0xd2,0xb6,0x61, - 0xc3,0x06,0x09,0xfd,0x5a,0x89,0xce,0x29,0xb6,0x7e,0x4e,0x4e,0x4e,0x97, - 0xa8,0x13,0xcf,0xac,0x1d,0xbf,0xbd,0x92,0xd1,0xd7,0xd7,0xd7,0xc8,0xd6, - 0xda,0xb1,0x63,0x87,0x3e,0x24,0x24,0xe4,0x76,0x58,0x58,0xd8,0xad,0xb9, - 0x40,0x8f,0xfe,0xd1,0xdf,0xdf,0x5f,0xc3,0xe3,0xe7,0xe7,0xa7,0xd9,0xb6, - 0x6d,0x9b,0x9e,0xfc,0x29,0xcf,0x3a,0x3b,0x3b,0x2d,0xd2,0x89,0xde,0x36, - 0xc5,0x34,0x5c,0xbe,0x7c,0xb9,0x53,0xd4,0x89,0x9a,0xda,0x86,0xaf,0x96, - 0x32,0xf0,0x9e,0xe5,0x3e,0xb3,0x7f,0xff,0xfe,0xfb,0xfc,0xbc,0x52,0x46, - 0x47,0x47,0x2b,0x48,0xa7,0x97,0x97,0x97,0xc5,0x3a,0x99,0x6f,0x66,0x66, - 0x66,0xbb,0xa8,0x13,0x35,0xf5,0x6b,0xd8,0x8a,0x18,0x5b,0xb6,0x6c,0x91, - 0xcf,0x81,0x2d,0x2d,0x2d,0x0d,0xfc,0xbc,0x1a,0x1c,0x1c,0x1c,0x8c,0xbb, - 0x76,0xed,0x52,0xa2,0x53,0xf6,0xcb,0xc8,0xc8,0xf8,0x56,0xd4,0x89,0x9a, - 0x4a,0x9b,0x28,0x9f,0xb1,0x79,0xf3,0x66,0x39,0x3f,0x70,0xd6,0xab,0xe1, - 0xe7,0xd5,0x80,0x1e,0x63,0xdc,0xb9,0x73,0xa7,0xa5,0x3a,0x27,0x99,0x5f, - 0x5a,0x5a,0xda,0x37,0xa2,0x4e,0xd4,0xaa,0x46,0xec,0x89,0x6c,0xc6,0xa6, - 0x4d,0x9b,0x64,0x9d,0xa8,0xe3,0x54,0x6f,0x1b,0xac,0x01,0xe7,0x48,0x93, - 0xa5,0x3a,0x71,0x0e,0x99,0x64,0x1a,0x50,0x9b,0x5b,0x44,0x9d,0xa8,0x55, - 0x75,0xf8,0x6a,0x3a,0x63,0xeb,0xd6,0xad,0x8f,0xfe,0xa9,0x1e,0x43,0x58, - 0xa2,0x33,0x3a,0x3a,0x5a,0x5a,0xbf,0x7e,0xbd,0x81,0x69,0x40,0x6d,0x6e, - 0x12,0x75,0xa2,0x56,0x55,0xc3,0x96,0xc2,0xd8,0xbd,0x7b,0xf7,0x7d,0x36, - 0xdf,0xdb,0xdb,0x9b,0x6b,0x0d,0x4b,0x97,0x2e,0x9d,0x98,0x4f,0x27,0xf2, - 0x4d,0xc2,0x5e,0x33,0x1d,0x3c,0x78,0x50,0xcb,0x34,0x24,0x27,0x27,0x7f, - 0x29,0xea,0xc4,0x39,0xb2,0x82,0x1e,0x3d,0x03,0x3a,0xef,0x99,0xf3,0xa8, - 0x80,0x9f,0x57,0x03,0x7a,0xf6,0x8b,0x35,0x6b,0xd6,0x48,0x67,0xcf,0x9e, - 0x9d,0x93,0x63,0xc7,0x8e,0x49,0xc8,0x35,0x69,0xf5,0xea,0xd5,0x86,0xc1, - 0xc1,0xc1,0x0c,0xe6,0x87,0x51,0x2b,0xea,0xcc,0xca,0xca,0x2a,0x83,0x2d, - 0x9e,0xe1,0xea,0xea,0x4a,0xf7,0x12,0xaa,0xd1,0x79,0xfc,0xbc,0x1a,0xa0, - 0xf1,0x09,0x9d,0xd7,0xd6,0xad,0x5b,0xf7,0x0c,0xef,0x55,0x64,0x1c,0x3d, - 0xed,0x1e,0xea,0x56,0xf7,0xd8,0xd8,0x58,0x22,0xef,0x97,0x90,0x90,0x50, - 0x25,0xea,0x44,0x0d,0xf8,0x02,0xb6,0xcf,0x18,0xf0,0x95,0xeb,0x27,0xee, - 0x53,0x59,0xfc,0xbc,0x1a,0xd0,0x93,0x1e,0x53,0xac,0xa1,0xa1,0xa1,0x44, - 0x25,0x7e,0xf1,0xf1,0xf1,0xe5,0xa2,0x4e,0xd4,0x80,0x42,0xd8,0x3e,0x61, - 0xa0,0xde,0xfd,0x4c,0xf3,0x0d,0x0d,0x0d,0xe9,0xfc,0xbc,0x1a,0x98,0x4e, - 0xbc,0xd3,0x78,0x25,0x7e,0x38,0xdf,0x97,0x8a,0x3a,0x2f,0x5d,0xba,0x44, - 0x35,0x2b,0x8a,0x81,0x7d,0x3f,0x6c,0xf3,0xf2,0xde,0x93,0xca,0xcf,0xab, - 0x01,0xef,0x56,0xae,0x1d,0x03,0x03,0x03,0xb1,0x4a,0xfc,0x70,0x8f,0x2b, - 0x16,0x75,0xe2,0xbe,0x99,0x03,0xdb,0x69,0x06,0x7a,0xba,0xac,0x13,0xf7, - 0xbb,0x64,0x7e,0x5e,0x0d,0xd8,0x97,0xb2,0xce,0xfe,0xfe,0xfe,0x4f,0x95, - 0xf8,0x9d,0x3b,0x77,0xae,0x40,0xd4,0x99,0x94,0x94,0x94,0x09,0x5b,0x38, - 0x63,0xfb,0xf6,0xed,0x77,0x69,0x1e,0x77,0xdd,0xcf,0xf9,0x79,0x35,0x40, - 0xa7,0x7c,0xd7,0xc3,0xd9,0x26,0x5a,0x89,0x1f,0x6a,0x41,0x9e,0xa8,0x13, - 0xb9,0x95,0x06,0x5b,0x28,0x03,0x75,0x5e,0xbe,0xeb,0xe1,0x3e,0x12,0xc7, - 0xcf,0xab,0x61,0xed,0xda,0xb5,0x23,0x14,0x4b,0xa3,0xd1,0x44,0x28,0xf1, - 0x8b,0x89,0x89,0xc9,0x16,0x75,0x22,0xb7,0xa8,0xb6,0x06,0x33,0xb0,0x3f, - 0xe5,0x3b,0x14,0x7a,0x57,0x12,0x3f,0xaf,0x06,0xf4,0xc2,0x31,0x8a,0xa5, - 0xd3,0xe9,0xc2,0x94,0xf8,0x45,0x45,0x45,0x65,0x8a,0x3a,0x91,0x5b,0xa4, - 0x27,0x90,0x81,0xda,0x5b,0x41,0xf3,0x1b,0x37,0x6e,0xd4,0x4d,0x4d,0x4d, - 0x7d,0xc0,0xdb,0x94,0x10,0x1b,0x1b,0x9b,0x4c,0x71,0x70,0x8f,0x34,0x28, - 0xf5,0x8d,0x88,0x88,0x48,0x17,0x75,0x22,0xb7,0x68,0x1f,0xbe,0xcf,0xd0, - 0xeb,0xf5,0x81,0xe8,0x77,0xf2,0x59,0x04,0xe7,0x88,0x29,0xf4,0xb4,0x21, - 0x67,0x67,0xe7,0x41,0x25,0x2c,0x59,0xb2,0xe4,0xcf,0xff,0x11,0x86,0x86, - 0x86,0x66,0xf0,0xf1,0x2d,0xe1,0xd4,0xa9,0x53,0xa9,0x9c,0x4e,0x42,0x0a, - 0x0a,0x0a,0xa2,0xfd,0xe9,0xc3,0xa3,0xd5,0x6a,0x03,0xa1,0x6f,0x00,0xf7, - 0x0a,0xf1,0xff,0xa8,0x16,0x83,0xe7,0xf8,0xec,0xcc,0x99,0x33,0xf1,0x62, - 0x6c,0x4b,0xf0,0xf5,0xf5,0xcd,0x31,0xc7,0x39,0x09,0xde,0xa4,0xcf,0xfb, - 0xf6,0xed,0xfb,0x0a,0x36,0xef,0x57,0x81,0xbc,0xff,0x08,0x77,0xbd,0x70, - 0x4b,0xa9,0xa8,0xa8,0x08,0xc3,0x1d,0xf4,0xbd,0xbf,0x8b,0x39,0x1f,0x7b, - 0xf7,0xee,0x65,0xe7,0xf9,0xd7,0x81,0x03,0x30,0xe0,0x77,0x3f,0x6d,0x6f, - 0x6f,0x0f,0x80,0xfd,0x9d,0xff,0x03,0xd7,0xae,0x5d,0x0b,0xc2,0xd9,0xc4, - 0x00,0x6d,0xbf,0x03,0x3b,0x9b,0x97,0x23,0x84,0x74,0x2f,0x5f,0xbe,0xfc, - 0x61,0x57,0x57,0x97,0x1f,0xbe,0xf7,0xf6,0x7f,0x09,0xee,0xd4,0xfe,0xc8, - 0x0d,0x76,0xfe,0x7d,0xd7,0x66,0xf6,0xc8,0x34,0xe7,0xcc,0x0b,0x77,0x77, - 0xf7,0x22,0x9c,0x9b,0x4f,0xc2,0xc7,0xeb,0xdf,0x04,0x67,0xdd,0x93,0x6e, - 0x6e,0x6e,0xa5,0xf6,0xf6,0xf6,0x13,0x66,0x8d,0x09,0x36,0x7f,0x1d,0xb6, - 0xc0,0x1f,0xe8,0x59,0x0e,0x20,0x7f,0x8c,0x38,0x43,0xdc,0x46,0x6d,0xea, - 0x59,0x48,0x68,0x0d,0x5a,0x8b,0xcb,0xbf,0xdf,0x80,0xcf,0x1c,0x1a,0xf9, - 0xe1,0x04,0x22,0x41,0x0d,0xd0,0x02,0xd5,0xb9,0xae,0x00,0x5a,0x83,0xfa, - 0x0a,0x9d,0x37,0x4f,0x03,0x47,0x51,0xd4,0x1f,0xb7,0x84,0x65,0x15 -}; - -// window_foreground.png -static const unsigned char image_14_data[] = { - 0x00,0x00,0x1a,0x44,0x78,0x9c,0xcd,0x98,0x7b,0x4c,0x14,0x57,0x14,0x87, - 0x57,0x79,0xfa,0x42,0xb0,0x44,0xaa,0x86,0x10,0x9b,0xe8,0x1f,0xbc,0x82, - 0x8a,0x1a,0x8d,0x12,0x89,0x8f,0xf8,0x88,0x02,0x11,0x48,0x37,0xa1,0x29, - 0x49,0x41,0x45,0x8b,0xb4,0x49,0x49,0x84,0x18,0x22,0xb4,0x68,0x68,0x8b, - 0x08,0x08,0x08,0x05,0x44,0xd0,0x96,0x05,0x5a,0xd2,0xa6,0x40,0x5a,0x1a, - 0x2a,0xe5,0x4d,0x8b,0xa5,0x82,0x40,0x8b,0x62,0xd1,0xb2,0x05,0x59,0x44, - 0x60,0xd9,0x45,0xf6,0x31,0xfd,0xdd,0x75,0xee,0xf6,0x76,0x45,0xca,0xce, - 0x2e,0xad,0x93,0x7c,0x31,0x9c,0xd9,0x39,0xf3,0x39,0x73,0xef,0xb9,0xe7, - 0x8e,0x48,0xf4,0xdc,0xf1,0x1a,0x08,0x07,0xd9,0xe0,0x47,0xd0,0x39,0xcf, - 0x74,0x80,0x2a,0x70,0x11,0xbc,0x01,0x2c,0x9f,0x57,0xd2,0x1f,0x4e,0x20, - 0x13,0xa8,0x00,0x47,0xb1,0xb3,0xb3,0x53,0xcd,0x37,0xec,0xfd,0x16,0x2c, - 0x58,0x30,0x8c,0x7f,0xa3,0x80,0xb5,0x81,0x9f,0x33,0xce,0xc9,0xc8,0x6f, - 0x1c,0x1d,0x1d,0x55,0x69,0x69,0x69,0x03,0xcd,0xcd,0xcd,0xf7,0x54,0x2a, - 0x55,0x17,0xc7,0x71,0x77,0xe6,0x1b,0xa5,0x52,0xd9,0x55,0x5d,0x5d,0x7d, - 0xff,0xdc,0xb9,0x73,0x83,0x36,0x36,0x36,0x1a,0xde,0xb7,0x01,0x58,0xf1, - 0x7e,0xf6,0xf0,0xeb,0x26,0xf1,0xd8,0xd8,0xd8,0x21,0xb5,0x5a,0x3d,0xef, - 0x4e,0xb3,0x31,0x31,0x31,0xd1,0xbd,0x6b,0xd7,0xae,0x09,0xde,0x33,0x8f, - 0x77,0x4c,0x22,0x7f,0x87,0x85,0x85,0x8d,0x98,0x92,0x5b,0x2a,0x95,0xf6, - 0x24,0x27,0x27,0x4b,0x8f,0x1d,0x3b,0x26,0x0b,0x0f,0x0f,0x9f,0x33,0xa7, - 0x4e,0x9d,0x92,0xb5,0xb7,0xb7,0xdf,0x65,0x73,0x8d,0x8d,0x8d,0x75,0xbb, - 0xba,0xba,0x2a,0x79,0x4f,0x5f,0x70,0xcb,0xca,0xca,0x4a,0x23,0x97,0xcb, - 0xbb,0x85,0xfa,0x89,0xc5,0xe2,0x51,0x0b,0x0b,0x0b,0xfd,0x98,0x12,0x82, - 0xbb,0xbb,0xbb,0xb2,0xb7,0xb7,0xf7,0x37,0x9a,0x53,0x22,0x91,0xf4,0xf3, - 0xe7,0xce,0x03,0xed,0xe6,0xcd,0x9b,0x27,0x85,0xfa,0x45,0x45,0x45,0x91, - 0x31,0xce,0x05,0x04,0x04,0x70,0x8d,0x8d,0x8d,0x9c,0x42,0xa1,0xe0,0x30, - 0xbe,0xe6,0x0c,0xde,0x2d,0x57,0x5e,0x5e,0x4e,0xe6,0x26,0xe7,0xe0,0xe0, - 0xa0,0xd6,0x68,0x34,0xba,0xbc,0x23,0x23,0x23,0xdd,0x0b,0x17,0x2e,0xd4, - 0x22,0x77,0x1d,0x9f,0x7f,0x14,0xf1,0x0e,0x21,0x2c,0x5b,0xb6,0x4c,0xb3, - 0x7b,0xf7,0x6e,0xce,0xd4,0xa3,0xac,0xac,0x4c,0xf7,0x3c,0x4b,0x4a,0x4a, - 0x7e,0xa7,0xb9,0x97,0x2f,0x5f,0x4e,0xe6,0x7c,0x17,0x89,0xfb,0xf9,0xf9, - 0x8d,0x68,0xb5,0xda,0x5b,0x42,0xc0,0x38,0xe1,0x2e,0x5d,0xba,0x64,0xb2, - 0xe3,0xe3,0xc7,0x8f,0x75,0x8e,0x27,0x4f,0x9e,0x1c,0xa4,0xb9,0x59,0xc7, - 0x23,0x47,0x8e,0xc8,0x10,0x6b,0x15,0x82,0xa5,0xa5,0x25,0x77,0xf9,0xf2, - 0x65,0x93,0x1d,0x31,0x4f,0x74,0x8e,0x11,0x11,0x11,0x52,0x9a,0x1b,0x8e, - 0xd3,0x8c,0xe3,0x23,0xfc,0xac,0x51,0x08,0xe4,0x39,0x86,0x86,0x86,0x72, - 0xc5,0xc5,0xc5,0x26,0x91,0x9f,0x9f,0x4f,0x1d,0xff,0xa0,0xb9,0x31,0x46, - 0xf5,0x8e,0x87,0x0f,0x1f,0x1e,0x42,0xec,0x07,0x21,0x2c,0x5a,0xb4,0x48, - 0x6b,0xca,0x7c,0x66,0xc1,0x1c,0xe1,0x12,0x13,0x13,0x7b,0x69,0x6e,0xd6, - 0xf1,0xd0,0xa1,0x43,0x83,0x88,0xd5,0x08,0x61,0xe9,0xd2,0xa5,0x6a,0xac, - 0x4b,0xdc,0xf4,0xf4,0xb4,0x49,0x3c,0x79,0xf2,0x44,0xe7,0x99,0x9b,0x9b, - 0xdb,0x41,0x73,0xb3,0x8e,0x07,0x0f,0x1e,0x94,0x22,0xf6,0x8d,0x10,0x96, - 0x2c,0x59,0xa2,0xce,0xc8,0xc8,0x30,0x79,0x3c,0x4e,0x4e,0x4e,0xea,0x1c, - 0x73,0x72,0x72,0x7e,0xa6,0xb9,0x51,0x33,0x9e,0x52,0xc7,0x03,0x07,0x0e, - 0x90,0x31,0x50,0x31,0x13,0x53,0x53,0x53,0x95,0x85,0x85,0x85,0xad,0x67, - 0xce,0x9c,0xb9,0x33,0x13,0xb6,0xb6,0xb6,0x1a,0x73,0x3a,0x66,0x67,0x67, - 0xb7,0xd1,0x7b,0xb3,0x8e,0xfb,0xf7,0xef,0x7f,0x88,0xd8,0x97,0x86,0x04, - 0x07,0x07,0xf7,0x61,0x2d,0x9f,0x75,0x0c,0x91,0x79,0x6d,0x4e,0xc7,0xac, - 0xac,0xac,0x56,0x7a,0x7f,0xd6,0x71,0xdf,0xbe,0x7d,0xfd,0x98,0xeb,0x9f, - 0xb3,0xf8,0xfb,0xfb,0xf7,0x91,0x73,0xf6,0xf6,0xf6,0xca,0xe3,0xc7,0x8f, - 0x77,0x55,0x56,0x56,0xd6,0x54,0x55,0x55,0x3d,0x07,0xe6,0x8c,0x59,0xdf, - 0x75,0x66,0x66,0x66,0x13,0x75,0x80,0xe3,0x14,0x75,0xdc,0xbb,0x77,0x2f, - 0xa9,0xed,0xc5,0x2c,0x78,0x3e,0x9a,0x55,0xab,0x56,0x4d,0x18,0xc6,0x0d, - 0xc1,0x78,0x54,0x99,0xd3,0x11,0xb5,0xb6,0x9e,0xe6,0xc6,0x7c,0xd4,0x3b, - 0xee,0xd9,0xb3,0xa7,0x0f,0xb1,0xeb,0x14,0xac,0x95,0xc5,0xfc,0x1a,0xf9, - 0x2b,0x1b,0x9f,0x09,0x73,0x3b,0xa6,0xa7,0xa7,0xd7,0xd2,0xdc,0xac,0x23, - 0xd6,0xdb,0x7b,0x88,0x15,0x50,0x86,0x86,0x86,0x6e,0x90,0x78,0x50,0x50, - 0xd0,0x1d,0x36,0x3e,0x13,0xe6,0x76,0x4c,0x4d,0x4d,0xfd,0x9e,0xe6,0x86, - 0xa3,0x92,0x3a,0xfa,0xfa,0xfa,0xf6,0xe2,0xfd,0xe7,0x52,0x86,0x87,0x87, - 0xaf,0x91,0xf8,0xf6,0xed,0xdb,0xef,0x63,0x4e,0x57,0xcc,0x86,0xb9,0xc7, - 0x63,0x4a,0x4a,0xca,0x77,0xd4,0x03,0xff,0x7f,0xbd,0x23,0xfa,0x5e,0xf2, - 0x4e,0xb3,0x28,0xa8,0xa7,0x9f,0xcc,0x75,0x6d,0x20,0x6b,0x21,0xd6,0x06, - 0x93,0x1d,0x07,0x06,0x06,0x68,0xed,0xa9,0xa0,0x1e,0xac,0xa3,0x8f,0x8f, - 0x4f,0x0f,0x62,0xe9,0x14,0xf4,0x74,0x64,0xef,0xc5,0x45,0x47,0x47,0xd7, - 0x74,0x76,0x76,0xe6,0xcf,0xc6,0xc6,0x8d,0x1b,0xef,0xaf,0x59,0xb3,0x46, - 0x2b,0x93,0xc9,0x4c,0x72,0x3c,0x7d,0xfa,0x34,0x87,0x3e,0x59,0xfb,0xe0, - 0xc1,0x83,0x1c,0xea,0x01,0x47,0x05,0x75,0xdc,0xb9,0x73,0x27,0xe9,0xc1, - 0x53,0x28,0x70,0x4c,0x23,0xf1,0x0b,0x17,0x2e,0x7c,0xcd,0xc6,0x67,0xa2, - 0xa7,0xa7,0x27,0x1b,0xf5,0x49,0x41,0x9e,0xe7,0xd1,0xa3,0x47,0xb9,0xf8, - 0xf8,0x78,0xa3,0x88,0x8b,0x8b,0xe3,0x3c,0x3c,0x3c,0xb4,0xa4,0x0e,0xc7, - 0xc4,0xc4,0x7c,0xcb,0xe6,0x66,0x1d,0x77,0xec,0xd8,0x41,0xe6,0xc6,0x47, - 0x94,0xf1,0xf1,0x71,0xb2,0xd7,0x25,0xef,0xf0,0x2b,0x36,0xfe,0x22,0xd0, - 0xfb,0xa5,0xa0,0x07,0x6d,0x5d,0xbf,0x7e,0xfd,0x43,0x27,0x27,0xa7,0xf1, - 0x95,0x2b,0x57,0xea,0xc1,0x3e,0x53,0x6e,0x6d,0x6d,0xcd,0xad,0x58,0xb1, - 0x62,0x92,0x8d,0x53,0x50,0xdf,0xc6,0x30,0xd6,0x3a,0xda,0xda,0xda,0xb2, - 0x0d,0xf3,0x2e,0x5e,0xbc,0x58,0xef,0x88,0xb9,0x41,0xd6,0xf1,0xf3,0x14, - 0x38,0xea,0xf6,0x61,0x09,0x09,0x09,0x5f,0xb0,0x71,0x21,0xb4,0xb4,0xb4, - 0x64,0x90,0x5c,0x05,0x05,0x05,0x45,0xc6,0x5e,0xcb,0x3a,0x6e,0xdb,0xb6, - 0xed,0x36,0x62,0x09,0x14,0xf4,0x9b,0x89,0x24,0x8e,0xfd,0x6e,0x19,0x1b, - 0x17,0x42,0x53,0x53,0x53,0x2a,0xc9,0x85,0xfe,0xb0,0xc0,0xd8,0x6b,0xe1, - 0x38,0x49,0x1d,0xb7,0x6e,0xdd,0xda,0x8e,0x58,0x1c,0x05,0x8e,0x09,0x24, - 0x8e,0xb1,0x22,0x61,0xe3,0x42,0xc0,0x3e,0xec,0x22,0xdf,0x73,0xe5,0x19, - 0x7b,0x2d,0xea,0x9a,0xde,0x71,0xcb,0x96,0x2d,0xa4,0x1f,0x8a,0xa5,0xa0, - 0xf6,0xc4,0x91,0xf8,0xd9,0xb3,0x67,0x3f,0x65,0xe3,0x42,0x68,0x68,0x68, - 0xf8,0x90,0xef,0xb9,0x72,0x8c,0xbd,0x96,0x75,0xf4,0xf6,0xf6,0x26,0xfd, - 0x50,0x34,0x05,0x8e,0x31,0xa2,0x67,0xdf,0x2d,0x8a,0xd8,0xb8,0x10,0xea, - 0xea,0xea,0xc8,0xfe,0x98,0xbb,0x72,0xe5,0x4a,0xa6,0xb1,0xd7,0xc2,0x51, - 0x4e,0x1d,0x37,0x6d,0xda,0xf4,0x13,0x62,0xef,0x52,0xe0,0x18,0x4d,0xe2, - 0xe8,0x0f,0x0b,0xd8,0xb8,0x10,0x6a,0x6b,0x6b,0xdf,0xe7,0xfb,0x99,0x74, - 0x63,0xaf,0x45,0x6f,0xaa,0x77,0xdc,0xb0,0x61,0x03,0xe9,0xd9,0x22,0x29, - 0xd8,0xc7,0x47,0xa1,0x5e,0x69,0x4f,0x9c,0x38,0x71,0x83,0x8d,0x0b,0xa1, - 0xb4,0xb4,0x54,0xf7,0x1c,0xf3,0xf2,0xf2,0x3e,0x36,0xf6,0x5a,0xd6,0xd1, - 0xcb,0xcb,0xab,0x05,0xb1,0x08,0x16,0xac,0x1d,0x7d,0xa8,0x75,0xfd,0xa8, - 0x43,0x6f,0x1b,0x9e,0x33,0x06,0xd4,0xb5,0x9b,0xe8,0xf3,0x9e,0x0a,0xc9, - 0x03,0xc7,0x09,0xea,0xe8,0xe9,0xe9,0xd9,0x84,0x58,0x38,0x4b,0x51,0x51, - 0x51,0x3c,0xc9,0x8d,0xfa,0xab,0xc0,0xbc,0xbf,0x19,0x12,0x12,0x72,0xdd, - 0x18,0xc4,0x62,0xf1,0x67,0xab,0x57,0xaf,0xbe,0x2b,0x7a,0xf6,0xbd,0xeb, - 0xaa,0x61,0xfe,0xb9,0xc0,0x3a,0xae,0x5d,0xbb,0x96,0xd4,0xc7,0x50,0x43, - 0xea,0xeb,0xeb,0xdf,0x71,0x73,0x73,0x6b,0xc2,0x5e,0x7c,0x10,0x6b,0x9d, - 0xd2,0x18,0x6c,0x6c,0x6c,0xe4,0xeb,0xd6,0xad,0xbb,0x25,0x91,0x48,0x62, - 0x67,0xca,0xfd,0x6f,0x8c,0x8e,0x8e,0x86,0x61,0x2f,0x4b,0xbe,0x53,0x90, - 0x6f,0xc9,0xbd,0xc8,0xa9,0x90,0xcb,0xe5,0x6f,0xe2,0x5c,0xc8,0xcb,0x02, - 0xd6,0xe1,0x0f,0xf8,0xde,0x8a,0xf4,0x0e,0xe4,0xbb,0x37,0x17,0x18,0x18, - 0x48,0x6a,0xec,0xeb,0x2f,0x03,0xd8,0x6f,0x8b,0x9d,0x9d,0x9d,0x6f,0xf3, - 0x8e,0xfe,0xc0,0x05,0x8c,0x62,0x1e,0xab,0xd1,0x77,0xc4,0xe3,0x37,0x81, - 0xff,0x27,0x1a,0x8d,0x26,0x08,0xb5,0xb0,0x82,0xf7,0x6b,0x11,0xfd,0xfd, - 0xbd,0xd9,0x07,0x90,0x7d,0x22,0xe7,0xe2,0xe2,0xd2,0x9c,0x94,0x94,0xf4, - 0x9e,0x5a,0xad,0xf6,0xc7,0x35,0x7e,0xff,0x15,0xd8,0xc7,0xfb,0x47,0x46, - 0x46,0x26,0x60,0x7f,0x20,0xe5,0xfd,0xc8,0x7c,0x7b,0x45,0xf4,0xcf,0xc3, - 0x1b,0xd0,0xe7,0x4b,0xd0,0xda,0xd9,0xd9,0xf5,0xa3,0xfe,0xfc,0x32,0xcf, - 0xdc,0x46,0xef,0xf0,0x88,0xb9,0x2f,0xf9,0x66,0x7f,0x15,0xbc,0x2a,0x7a, - 0xf1,0xf1,0x16,0xc8,0xe0,0x9f,0xf3,0xd3,0xb9,0xee,0x19,0x4c,0xe4,0x4f, - 0x50,0x03,0x92,0x81,0xa3,0xa1,0xd0,0x5f,0x5b,0xa8,0xfc,0xc8 -}; - -static struct EmbedImage { - int width, height, depth; - const unsigned char *data; - ulong compressed; - int numColors; - const TQRgb *colorTable; - bool alpha; - const char *name; -} embed_image_vec[] = { - { 41, 41, 32, (const unsigned char*)image_0_data, 1781, 0, 0, TRUE, "circle.png" }, - { 41, 41, 32, (const unsigned char*)image_1_data, 1724, 0, 0, TRUE, "close.png" }, - { 41, 41, 32, (const unsigned char*)image_2_data, 1555, 0, 0, TRUE, "help.png" }, - { 42, 41, 32, (const unsigned char*)image_3_data, 1879, 0, 0, TRUE, "keep_above_lit.png" }, - { 41, 41, 32, (const unsigned char*)image_4_data, 1734, 0, 0, TRUE, "keep_above.png" }, - { 41, 41, 32, (const unsigned char*)image_5_data, 1750, 0, 0, TRUE, "keep_below_lit.png" }, - { 41, 41, 32, (const unsigned char*)image_6_data, 1848, 0, 0, TRUE, "keep_below.png" }, - { 42, 41, 32, (const unsigned char*)image_7_data, 1343, 0, 0, TRUE, "maximize.png" }, - { 42, 41, 32, (const unsigned char*)image_8_data, 1141, 0, 0, TRUE, "minimize.png" }, - { 41, 41, 32, (const unsigned char*)image_9_data, 1529, 0, 0, TRUE, "restore.png" }, - { 45, 45, 32, (const unsigned char*)image_10_data, 885, 0, 0, TRUE, "shade.png" }, - { 42, 41, 32, (const unsigned char*)image_11_data, 2017, 0, 0, TRUE, "splat.png" }, - { 1, 30, 32, (const unsigned char*)image_12_data, 72, 0, 0, TRUE, "titlealpha.png" }, - { 42, 41, 32, (const unsigned char*)image_13_data, 1609, 0, 0, TRUE, "window_background.png" }, - { 41, 41, 32, (const unsigned char*)image_14_data, 1566, 0, 0, TRUE, "window_foreground.png" }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0 } -}; - -static TQImage uic_findImage( const TQString& name ) -{ - for ( int i=0; embed_image_vec[i].data; i++ ) { - if ( TQString::fromUtf8(embed_image_vec[i].name) == name ) { - TQByteArray baunzip; - baunzip = tqUncompress( embed_image_vec[i].data, - embed_image_vec[i].compressed ); - TQImage img((uchar*)baunzip.data(), - embed_image_vec[i].width, - embed_image_vec[i].height, - embed_image_vec[i].depth, - (TQRgb*)embed_image_vec[i].colorTable, - embed_image_vec[i].numColors, - TQImage::BigEndian - ); - img = img.copy(); - if ( embed_image_vec[i].alpha ) - img.setAlphaBuffer(TRUE); - return img; - } - } - return TQImage(); -} - -class MimeSourceFactory_smoothblend : public TQMimeSourceFactory -{ -public: - MimeSourceFactory_smoothblend() {} - ~MimeSourceFactory_smoothblend() {} - const TQMimeSource* data( const TQString& abs_name ) const { - const TQMimeSource* d = TQMimeSourceFactory::data( abs_name ); - if ( d || abs_name.isNull() ) return d; - TQImage img = uic_findImage( abs_name ); - if ( !img.isNull() ) - ((TQMimeSourceFactory*)this)->setImage( abs_name, img ); - return TQMimeSourceFactory::data( abs_name ); - }; -}; - -static TQMimeSourceFactory* bfactory = 0; - -void qInitImages_smoothblend() -{ - if ( !bfactory ) { - bfactory = new MimeSourceFactory_smoothblend; - TQMimeSourceFactory::defaultFactory()->addFactory( bfactory ); - } -} - -void qCleanupImages_smoothblend() -{ - if ( bfactory ) { - TQMimeSourceFactory::defaultFactory()->removeFactory( bfactory ); - delete bfactory; - bfactory = 0; - } -} - -class StaticInitImages_smoothblend -{ -public: - StaticInitImages_smoothblend() { qInitImages_smoothblend(); } -#if defined(Q_OS_SCO) || defined(Q_OS_UNIXWARE) - ~StaticInitImages_smoothblend() { } -#else - ~StaticInitImages_smoothblend() { qCleanupImages_smoothblend(); } -#endif -}; - -static StaticInitImages_smoothblend staticImages; diff --git a/kwin-styles/smooth-blend/client/config/CMakeLists.txt b/kwin-styles/smooth-blend/client/config/CMakeLists.txt deleted file mode 100644 index 7a38efbb..00000000 --- a/kwin-styles/smooth-blend/client/config/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 -# -################################################# - -add_definitions( - -DQT_PLUGIN -) - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - -##### twin_smoothblend_config (module) ########## - -tde_add_kpart( twin_smoothblend_config AUTOMOC - SOURCES configdialog.ui smoothblendconfig.cc - LINK tdeui-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) diff --git a/kwin-styles/smooth-blend/client/config/Makefile.am b/kwin-styles/smooth-blend/client/config/Makefile.am deleted file mode 100644 index ba5cd314..00000000 --- a/kwin-styles/smooth-blend/client/config/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -AUTOMAKE_OPTIONS = foreign - -KDE_CXXFLAGS = -DQT_PLUGIN - -INCLUDES = $(all_includes) - -noinst_HEADERS = smoothblendconfig.h - -kde_module_LTLIBRARIES = twin_smoothblend_config.la -twin_smoothblend_config_la_SOURCES = configdialog.ui smoothblendconfig.cc -twin_smoothblend_config_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module $(LIB_QT) $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx -twin_smoothblend_config_la_LIBADD = $(LIB_TDEUI) -twin_smoothblend_config_la_METASOURCES = AUTO - -DISTCLEANFILES = $(twin_smoothblend_config_la_METASOURCES) diff --git a/kwin-styles/smooth-blend/client/config/configdialog.ui b/kwin-styles/smooth-blend/client/config/configdialog.ui deleted file mode 100644 index 09af45f6..00000000 --- a/kwin-styles/smooth-blend/client/config/configdialog.ui +++ /dev/null @@ -1,421 +0,0 @@ -<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> -<class>ConfigDialog</class> -<widget class="TQWidget"> - <property name="name"> - <cstring>ConfigDialog</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>634</width> - <height>371</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>5</hsizetype> - <vsizetype>5</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="caption"> - <string>Config Dialog</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <widget class="TQGroupBox" row="1" column="0"> - <property name="name"> - <cstring>buttongroup</cstring> - </property> - <property name="title"> - <string>Buttons</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQSpinBox" row="0" column="2" rowspan="1" colspan="2"> - <property name="name"> - <cstring>buttonsize</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="suffix"> - <string> pixels</string> - </property> - <property name="specialValueText"> - <string>1 pixel</string> - </property> - <property name="buttonSymbols"> - <enum>UpDownArrows</enum> - </property> - <property name="maxValue"> - <number>64</number> - </property> - <property name="minValue"> - <number>1</number> - </property> - <property name="value"> - <number>16</number> - </property> - </widget> - <widget class="TQCheckBox" row="1" column="0" rowspan="1" colspan="4"> - <property name="name"> - <cstring>animatebuttons</cstring> - </property> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Animate buttons</string> - </property> - <property name="accel"> - <string></string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - <property name="whatsThis" stdset="0"> - <string>Check this option if you want to use button animations when hovering with the mouse.</string> - </property> - </widget> - <widget class="TQLabel" row="0" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>textLabel4</cstring> - </property> - <property name="text"> - <string>Button size:</string> - </property> - </widget> - <widget class="TQCheckBox" row="3" column="0" rowspan="1" colspan="4"> - <property name="name"> - <cstring>menuClose</cstring> - </property> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="text"> - <string>Close window when menu double clicked</string> - </property> - <property name="accel"> - <string></string> - </property> - </widget> - <spacer row="2" column="0"> - <property name="name"> - <cstring>spacer3</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Fixed</enum> - </property> - <property name="tqsizeHint"> - <size> - <width>30</width> - <height>20</height> - </size> - </property> - </spacer> - <widget class="TQComboBox" row="2" column="3"> - <item> - <property name="text"> - <string>Intensify</string> - </property> - </item> - <item> - <property name="text"> - <string>Fade</string> - </property> - </item> - <property name="name"> - <cstring>btnComboBox</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>7</hsizetype> - <vsizetype>0</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - <widget class="TQLabel" row="2" column="1" rowspan="1" colspan="2"> - <property name="name"> - <cstring>textLabel2</cstring> - </property> - <property name="text"> - <string>Animation style:</string> - </property> - </widget> - <spacer row="0" column="4" rowspan="4" colspan="1"> - <property name="name"> - <cstring>spacer2</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="tqsizeHint"> - <size> - <width>180</width> - <height>140</height> - </size> - </property> - </spacer> - </grid> - </widget> - <widget class="TQGroupBox" row="0" column="0"> - <property name="name"> - <cstring>titlegroup</cstring> - </property> - <property name="title"> - <string>Title Bar</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLabel" row="0" column="0"> - <property name="name"> - <cstring>textLabel1_3</cstring> - </property> - <property name="text"> - <string>Text tqalignment:</string> - </property> - </widget> - <widget class="TQLabel" row="3" column="0"> - <property name="name"> - <cstring>textLabel1_2</cstring> - </property> - <property name="text"> - <string>Frame width:</string> - </property> - </widget> - <widget class="TQLabel" row="1" column="0" rowspan="2" colspan="1"> - <property name="name"> - <cstring>textLabel1</cstring> - </property> - <property name="text"> - <string>Title height:</string> - </property> - </widget> - <widget class="TQSpinBox" row="2" column="1" rowspan="1" colspan="2"> - <property name="name"> - <cstring>titlesize</cstring> - </property> - <property name="suffix"> - <string> pixels</string> - </property> - <property name="maxValue"> - <number>64</number> - </property> - <property name="minValue"> - <number>16</number> - </property> - </widget> - <widget class="TQSpinBox" row="3" column="1" rowspan="1" colspan="2"> - <property name="name"> - <cstring>framesize</cstring> - </property> - <property name="suffix"> - <string> pixels</string> - </property> - <property name="specialValueText"> - <string>1 pixel</string> - </property> - <property name="maxValue"> - <number>64</number> - </property> - <property name="minValue"> - <number>1</number> - </property> - <property name="value"> - <number>4</number> - </property> - </widget> - <widget class="TQButtonGroup" row="0" column="1" rowspan="2" colspan="2"> - <property name="name"> - <cstring>titlealign</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>1</hsizetype> - <vsizetype>1</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="frameShape"> - <enum>GroupBoxPanel</enum> - </property> - <property name="frameShadow"> - <enum>Sunken</enum> - </property> - <property name="lineWidth"> - <number>0</number> - </property> - <property name="title"> - <string></string> - </property> - <property name="tqalignment"> - <set>AlignTop</set> - </property> - <property name="toolTip" stdset="0"> - <string></string> - </property> - <property name="whatsThis" stdset="0"> - <string>Use these buttons to set the tqalignment of the window title</string> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <widget class="TQLayoutWidget"> - <property name="name"> - <cstring>tqlayout14</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQRadioButton"> - <property name="name"> - <cstring>AlignLeft</cstring> - </property> - <property name="text"> - <string>Left</string> - </property> - <property name="toolTip" stdset="0"> - <string></string> - </property> - </widget> - <widget class="TQRadioButton"> - <property name="name"> - <cstring>AlignHCenter</cstring> - </property> - <property name="text"> - <string>Center</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - <property name="toolTip" stdset="0"> - <string></string> - </property> - </widget> - <widget class="TQRadioButton"> - <property name="name"> - <cstring>AlignRight</cstring> - </property> - <property name="text"> - <string>Right</string> - </property> - <property name="toolTip" stdset="0"> - <string></string> - </property> - </widget> - </hbox> - </widget> - </hbox> - </widget> - <spacer row="0" column="3" rowspan="4" colspan="1"> - <property name="name"> - <cstring>spacer1</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="tqsizeHint"> - <size> - <width>231</width> - <height>71</height> - </size> - </property> - </spacer> - <widget class="TQCheckBox" row="4" column="2" rowspan="1" colspan="2"> - <property name="name"> - <cstring>roundCorners</cstring> - </property> - <property name="text"> - <string>Round top corners</string> - </property> - <property name="accel"> - <string></string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - <widget class="TQCheckBox" row="4" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>titleshadow</cstring> - </property> - <property name="text"> - <string>Use shadowed text</string> - </property> - <property name="accel"> - <string></string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - <property name="whatsThis" stdset="0"> - <string>Check this option if you want the titlebar text to have a 3D look with a shadow behind it.</string> - </property> - </widget> - </grid> - </widget> - </grid> -</widget> -<connections> - <connection> - <sender>animatebuttons</sender> - <signal>toggled(bool)</signal> - <receiver>textLabel2</receiver> - <slot>setEnabled(bool)</slot> - </connection> - <connection> - <sender>animatebuttons</sender> - <signal>toggled(bool)</signal> - <receiver>btnComboBox</receiver> - <slot>setEnabled(bool)</slot> - </connection> -</connections> -<tabstops> - <tabstop>AlignLeft</tabstop> - <tabstop>AlignHCenter</tabstop> - <tabstop>AlignRight</tabstop> - <tabstop>titlesize</tabstop> - <tabstop>framesize</tabstop> - <tabstop>titleshadow</tabstop> - <tabstop>roundCorners</tabstop> - <tabstop>buttonsize</tabstop> - <tabstop>animatebuttons</tabstop> - <tabstop>btnComboBox</tabstop> - <tabstop>menuClose</tabstop> -</tabstops> -<layoutdefaults spacing="6" margin="11"/> -</UI> diff --git a/kwin-styles/smooth-blend/client/config/smoothblendconfig.cc b/kwin-styles/smooth-blend/client/config/smoothblendconfig.cc deleted file mode 100644 index f2ec3e68..00000000 --- a/kwin-styles/smooth-blend/client/config/smoothblendconfig.cc +++ /dev/null @@ -1,180 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// smoothblendconfig.cc -// ------------------- -// Config module for Smooth Blend window decoration -// ------------------- -// Copyright (c) 2005 Ryan Nickell <p0z3r@users.sourceforge.net> -// Please see the header file for copyright and license information. -////////////////////////////////////////////////////////////////////////////// - -#include <kconfig.h> -#include <klocale.h> -#include <kglobal.h> -#include <tqbuttongroup.h> -#include <tqgroupbox.h> -#include <tqradiobutton.h> -#include <tqcheckbox.h> -#include <tqspinbox.h> -#include <tqwhatsthis.h> -#include <tqcombobox.h> - -#include "smoothblendconfig.h" -#include "configdialog.h" - -////////////////////////////////////////////////////////////////////////////// -// smoothblendConfig() -// ------------- -// Constructor - -smoothblendConfig::smoothblendConfig(KConfig* config, TQWidget* parent) - : TQObject(parent), config_(0), dialog_(0) { - // create the configuration object - config_ = new KConfig("twinsmoothblendrc"); - KGlobal::locale()->insertCatalogue("twin_smoothblend_config"); - - // create and show the configuration dialog - dialog_ = new ConfigDialog(parent); - dialog_->show(); - - // load the configuration - load(config_); - - // setup the connections for title align - connect(dialog_->titlealign, TQT_SIGNAL(clicked(int)),this, TQT_SLOT(selectionChanged(int))); - // setup the connections for corner rounding - connect(dialog_->roundCorners, TQT_SIGNAL(stateChanged(int)),this,TQT_SLOT(selectionChanged(int))); - // setup title shadow - connect(dialog_->titleshadow, TQT_SIGNAL(stateChanged(int)),this,TQT_SLOT(selectionChanged(int))); - // setup button actions - connect(dialog_->animatebuttons, TQT_SIGNAL(stateChanged(int)),this,TQT_SLOT(selectionChanged(int))); - connect(dialog_->btnComboBox, TQT_SIGNAL(activated(int)),this,TQT_SLOT(selectionChanged(int))); - // setup the connections for spin boxes - connect(dialog_->titlesize, TQT_SIGNAL(valueChanged(int)),this,TQT_SLOT(selectionChanged(int))); - connect(dialog_->buttonsize, TQT_SIGNAL(valueChanged(int)),this,TQT_SLOT(selectionChanged(int))); - connect(dialog_->framesize, TQT_SIGNAL(valueChanged(int)),this,TQT_SLOT(selectionChanged(int))); - // double click the menu - connect(dialog_->menuClose, TQT_SIGNAL(stateChanged(int)),this, TQT_SLOT(selectionChanged(int))); -} - -////////////////////////////////////////////////////////////////////////////// -// ~smoothblendConfig() -// -------------- -// Destructor - -smoothblendConfig::~smoothblendConfig() { - if (dialog_) - { - delete dialog_; - } - if (config_) - { - delete config_; - } -} - -////////////////////////////////////////////////////////////////////////////// -// selectionChanged() -// ------------------ -// Selection has changed - -void smoothblendConfig::selectionChanged(int) { - - if(dialog_->buttonsize->value() + dialog_->framesize->value() > dialog_->titlesize->value()) - { - dialog_->buttonsize->setValue(dialog_->titlesize->value()- dialog_->framesize->value()); - } - // setting the framesize to less than 2 will lose the top gradient and look flat - if(dialog_->framesize->value() < 2) - { - dialog_->framesize->setValue(2); - } - emit changed(); -} - -////////////////////////////////////////////////////////////////////////////// -// load() -// ------ -// Load configuration data - -void smoothblendConfig::load(KConfig*) { - config_->setGroup("General"); - - TQString value = config_->readEntry("TitleAlignment", "AlignHCenter"); - TQRadioButton *button = (TQRadioButton*)dialog_->titlealign->child(value.latin1()); - if (button) - { - button->setChecked(true); - } - - dialog_->titlesize->setValue( config_->readNumEntry("TitleSize",30 ) ); - dialog_->buttonsize->setValue( config_->readNumEntry("ButtonSize",26 ) ); - dialog_->framesize->setValue( config_->readNumEntry("FrameSize",4 ) ); - - bool cornersFlag = config_->readBoolEntry("RoundCorners", true); - dialog_->roundCorners->setChecked( cornersFlag ); - bool titleshadow = config_->readBoolEntry("TitleShadow", true); - dialog_->titleshadow->setChecked(titleshadow); - bool animatebuttons = config_->readBoolEntry("AnimateButtons", true); - dialog_->animatebuttons->setChecked(animatebuttons); - dialog_->btnComboBox->setCurrentItem(config_->readNumEntry("ButtonComboBox",0)); - bool menuClose = config_->readBoolEntry("CloseOnMenuDoubleClick"); - dialog_->menuClose->setChecked(menuClose); -} - -////////////////////////////////////////////////////////////////////////////// -// save() -// ------ -// Save configuration data - -void smoothblendConfig::save(KConfig*) { - config_->setGroup("General"); - - TQRadioButton *button = (TQRadioButton*)dialog_->titlealign->selected(); - if (button) - { - config_->writeEntry("TitleAlignment", TQString(button->name())); - } - config_->writeEntry("RoundCorners", dialog_->roundCorners->isChecked() ); - config_->writeEntry("TitleSize", dialog_->titlesize->value() ); - config_->writeEntry("ButtonSize", dialog_->buttonsize->value() ); - config_->writeEntry("FrameSize", dialog_->framesize->value() ); - config_->writeEntry("TitleShadow", dialog_->titleshadow->isChecked() ); - config_->writeEntry("AnimateButtons", dialog_->animatebuttons->isChecked() ); - config_->writeEntry("ButtonComboBox", dialog_->btnComboBox->currentItem()); - config_->writeEntry("CloseOnMenuDoubleClick", dialog_->menuClose->isChecked() ); - - config_->sync(); -} - -////////////////////////////////////////////////////////////////////////////// -// defaults() -// ---------- -// Set configuration defaults - -void smoothblendConfig::defaults() { - TQRadioButton *button = (TQRadioButton*)dialog_->titlealign->child("AlignHCenter"); - if (button) - { - button->setChecked(true); - } - dialog_->roundCorners->setChecked( true ); - dialog_->titlesize->setValue( 30 ); - dialog_->buttonsize->setValue( 26 ); - dialog_->framesize->setValue( 4 ); - dialog_->titleshadow->setChecked( true ); - dialog_->animatebuttons->setChecked( true ); - dialog_->btnComboBox->setCurrentItem( 0 ); - dialog_->menuClose->setChecked( false ); -} - -////////////////////////////////////////////////////////////////////////////// -// Plugin Stuff // -////////////////////////////////////////////////////////////////////////////// - -extern "C" { - TQObject* allocate_config(KConfig* config, TQWidget* parent) { - return (new smoothblendConfig(config, parent)); - } -} - -#include "smoothblendconfig.moc" diff --git a/kwin-styles/smooth-blend/client/config/smoothblendconfig.h b/kwin-styles/smooth-blend/client/config/smoothblendconfig.h deleted file mode 100644 index 4f2add87..00000000 --- a/kwin-styles/smooth-blend/client/config/smoothblendconfig.h +++ /dev/null @@ -1,56 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// smoothblendconfig.h -// ------------------- -// Config module for Smooth Blend window decoration -// ------------------- -// Copyright (c) 2005 Ryan Nickell <p0z3r@users.sourceforge.net> -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; see the file COPYING. If not, write to -// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -// Boston, MA 02110-1301, USA. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef SMOOTHBLENDCONFIG_H -#define SMOOTHBLENDCONFIG_H - -#include <tqobject.h> - -class KConfig; -class ConfigDialog; - -class smoothblendConfig : public TQObject { - Q_OBJECT - TQ_OBJECT -public: - smoothblendConfig(KConfig* config, TQWidget* parent); - ~smoothblendConfig(); - -signals: - void changed(); - -public slots: - void load(KConfig*); - void save(KConfig*); - void defaults(); - -protected slots: - void selectionChanged(int); - -private: - KConfig *config_; - ConfigDialog *dialog_; -}; - -#endif // SMOOTHBLENDCONFIG_H diff --git a/kwin-styles/smooth-blend/client/smoothblend.cc b/kwin-styles/smooth-blend/client/smoothblend.cc deleted file mode 100644 index 02efd047..00000000 --- a/kwin-styles/smooth-blend/client/smoothblend.cc +++ /dev/null @@ -1,1396 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// smoothblend.cc -// ------------------- -// Smooth Blend window decoration for KDE -// ------------------- -// Copyright (c) 2005 Ryan Nickell -// Please see the header file for copyright and license information. -////////////////////////////////////////////////////////////////////////////// - -#include <kconfig.h> -#include <kdeversion.h> -#include <kglobal.h> -#include <kglobalsettings.h> -#include <klocale.h> -#include <kpixmap.h> -#include <kimageeffect.h> -#include <kpixmapeffect.h> -#include <kpixmap.h> - -#include <tqbitmap.h> -#include <tqlabel.h> -#include <tqlayout.h> -#include <tqpainter.h> -#include <tqtooltip.h> -#include <tqtimer.h> -#include <tqapplication.h> - -#include "smoothblend.h" -#include "buttons.h" - -using namespace smoothblend; - -////////////////////////////////////////////////////////////////////////////// -// smoothblendFactory Class -////////////////////////////////////////////////////////////////////////////// -smoothblendFactory* factory=NULL; - -bool smoothblendFactory::initialized_ = false; -TQt::AlignmentFlags smoothblendFactory::titlealign_ = TQt::AlignHCenter; -bool smoothblendFactory::cornerflags_ = true; -int smoothblendFactory::titlesize_ = 30; -int smoothblendFactory::buttonsize_ = 26; -int smoothblendFactory::framesize_ = 4; -int smoothblendFactory::roundsize_ = 50; -bool smoothblendFactory::titleshadow_ = true; -bool smoothblendFactory::animatebuttons = true; -int smoothblendFactory::btnComboBox = 0; -bool smoothblendFactory::menuClose = false; - -// global constants -static const int TOPMARGIN = 4; // do not change -static const int DECOHEIGHT = 4; // do not change -static const int SIDETITLEMARGIN = 2; -// Default button tqlayout -const char default_left[] = "M"; -const char default_right[] = "HIAX"; - -static const uint TIMERINTERVAL = 50; // msec -static const uint ANIMATIONSTEPS = 4; - -extern "C" KDecorationFactory* create_factory() { - return new smoothblend::smoothblendFactory(); -} - -////////////////////////////////////////////////////////////////////////////// -// smoothblendFactory() -// ---------------- -// Constructor - -smoothblendFactory::smoothblendFactory() { - readConfig(); - initialized_ = true; -} - -////////////////////////////////////////////////////////////////////////////// -// ~smoothblendFactory() -// ----------------- -// Destructor - -smoothblendFactory::~smoothblendFactory() { - initialized_ = false; -} - -////////////////////////////////////////////////////////////////////////////// -// createDecoration() -// ----------------- -// Create the decoration - -KDecoration* smoothblendFactory::createDecoration(KDecorationBridge* b) { - return new smoothblendClient(b, this); -} - -////////////////////////////////////////////////////////////////////////////// -// reset() -// ------- -// Reset the handler. Returns true if decorations need to be remade, false if -// only a tqrepaint is necessary - -bool smoothblendFactory::reset(unsigned long changed) { - // read in the configuration - initialized_ = false; - bool confchange = readConfig(); - initialized_ = true; - - if (confchange || - (changed & (SettingDecoration | SettingButtons | SettingBorder))) { - return true; - } else { - resetDecorations(changed); - return false; - } -} - -////////////////////////////////////////////////////////////////////////////// -// readConfig() -// ------------ -// Read in the configuration file - -bool smoothblendFactory::readConfig() { - // create a config object - KConfig config("twinsmoothblendrc"); - config.setGroup("General"); - - // grab settings - TQString value = config.readEntry("TitleAlignment", "AlignHCenter"); - if (value == "AlignLeft") - titlealign_ = TQt::AlignLeft; - else if (value == "AlignHCenter") - titlealign_ = TQt::AlignHCenter; - else if (value == "AlignRight") - titlealign_ = TQt::AlignRight; - - cornerflags_ = config.readBoolEntry("RoundCorners", true); - titlesize_ = config.readNumEntry("TitleSize",30); - buttonsize_ = config.readNumEntry("ButtonSize",26); - framesize_ = config.readNumEntry("FrameSize",4); - roundsize_ = config.readNumEntry("RoundPercent",50); - titleshadow_ = config.readBoolEntry("TitleShadow", true); - animatebuttons = config.readBoolEntry("AnimateButtons", true); - btnComboBox = config.readNumEntry("ButtonComboBox", 0); - menuClose = config.readBoolEntry("CloseOnMenuDoubleClick"); - - if(buttonsize_ > titlesize_ - framesize_) - { - buttonsize_ = titlesize_-framesize_; - } - - return true; -} - -////////////////////////////////////////////////////////////////////////////// -// smoothblendButton Class -////////////////////////////////////////////////////////////////////////////// - -////////////////////////////////////////////////////////////////////////////// -// smoothblendButton() -// --------------- -// Constructor -smoothblendButton::smoothblendButton(smoothblendClient *parent, const char *name, const TQString& tip, ButtonType type, int button_size, bool toggle): TQButton(parent->widget(), name), - client_(parent), - type_(type), - size_(button_size), - deco_(0), - lastmouse_(Qt::NoButton), - hover_(false) -{ - setBackgroundMode(NoBackground); - setFixedSize( ::factory->buttonSize(), ::factory->buttonSize()); - setCursor(arrowCursor); - TQToolTip::add(this, tip); - setToggleButton(toggle); - //button animation setup - animTmr = new TQTimer(this); - connect(animTmr, TQT_SIGNAL(timeout() ), this, TQT_SLOT(animate() ) ); - connect(this, TQT_SIGNAL(pressed() ), this, TQT_SLOT(buttonClicked() ) ); - connect(this, TQT_SIGNAL(released() ), this, TQT_SLOT(buttonReleased() ) ); - animProgress = 0; - m_clicked=false; -} - -smoothblendButton::~smoothblendButton() { - if ( deco_ ) - delete deco_; -} - -////////////////////////////////////////////////////////////////////////////// -// tqsizeHint() -// ---------- -// Return size hint - -TQSize smoothblendButton::tqsizeHint() const { - return TQSize(::factory->buttonSize(), ::factory->buttonSize()); -} - -////////////////////////////////////////////////////////////////////////////// -// buttonClicked() -// ---------- -// Button animation progress reset so we don't get any leave event animation -// when the mouse is still pressed -void smoothblendButton::buttonClicked() { - m_clicked=true; - animProgress=0; -} -void smoothblendButton::buttonReleased() { - //This doesn't work b/c a released() signal is thrown when a leaveEvent occurs - //m_clicked=false; -} - -////////////////////////////////////////////////////////////////////////////// -// animate() -// ---------- -// Button animation timing -void smoothblendButton::animate() { - animTmr->stop(); - - if(hover_) { - if(animProgress < ANIMATIONSTEPS) { - if (::factory->animateButtons() ) { - animProgress++; - } else { - animProgress = ANIMATIONSTEPS; - } - animTmr->start(TIMERINTERVAL, true); // single-shot - } - } else { - if(animProgress > 0) { - if (::factory->animateButtons() ) { - animProgress--; - } else { - animProgress = 0; - } - animTmr->start(TIMERINTERVAL, true); // single-shot - } - } - tqrepaint(false); -} -////////////////////////////////////////////////////////////////////////////// -// enterEvent() -// ------------ -// Mouse has entered the button - -void smoothblendButton::enterEvent(TQEvent *e) { - // we wanted to pass on the event - TQButton::enterEvent(e); - // we want to do mouseovers, so keep track of it here - hover_=true; - if(!m_clicked) - { - animate(); - } -} - -////////////////////////////////////////////////////////////////////////////// -// leaveEvent() -// ------------ -// Mouse has left the button - -void smoothblendButton::leaveEvent(TQEvent *e) { - // we wanted to pass on the event - TQButton::leaveEvent(e); - // we want to do mouseovers, so keep track of it here - hover_=false; - if(!m_clicked) - { - animate(); - } -} - -////////////////////////////////////////////////////////////////////////////// -// mousePressEvent() -// ----------------- -// Button has been pressed - -void smoothblendButton::mousePressEvent(TQMouseEvent* e) { - lastmouse_ = e->button(); - - // translate and pass on mouse event - int button = Qt::LeftButton; - if ((type_ != ButtonMax) && (e->button() != Qt::LeftButton)) { - button = Qt::NoButton; // middle & right buttons inappropriate - } - TQMouseEvent me(e->type(), e->pos(), e->globalPos(), - button, e->state()); - TQButton::mousePressEvent(&me); -} - -////////////////////////////////////////////////////////////////////////////// -// mouseReleaseEvent() -// ----------------- -// Button has been released - -void smoothblendButton::mouseReleaseEvent(TQMouseEvent* e) { - lastmouse_ = e->button(); - - // translate and pass on mouse event - int button = Qt::LeftButton; - if ((type_ != ButtonMax) && (e->button() != Qt::LeftButton)) { - button = Qt::NoButton; // middle & right buttons inappropriate - } - TQMouseEvent me(e->type(), e->pos(), e->globalPos(), button, e->state()); - TQButton::mouseReleaseEvent(&me); - if(m_clicked) - { - m_clicked=false; - } -} - -void smoothblendButton::setOn(bool on) -{ - TQButton::setOn(on); -} - -void smoothblendButton::setDown(bool on) -{ - TQButton::setDown(on); -} - -////////////////////////////////////////////////////////// -// getButtonImage() -// ---------------- -// get the button TQImage based on type and window mode -TQImage smoothblendButton::getButtonImage(ButtonType type) -{ - TQImage finalImage; - switch(type) { - case ButtonClose: - finalImage = uic_findImage( "close.png" ); - break; - case ButtonHelp: - finalImage = uic_findImage( "help.png" ); - break; - case ButtonMin: - finalImage = uic_findImage( "minimize.png" ); - break; - case ButtonMax: - if(client_->maximizeMode() == KDecorationDefines::MaximizeFull) - { - finalImage = uic_findImage( "restore.png" ); - } - else - { - finalImage = uic_findImage( "maximize.png" ); - } - break; - case ButtonSticky: - if(client_->isOnAllDesktops()) - { - finalImage = uic_findImage( "splat.png" ); - } - else - { - finalImage = uic_findImage( "circle.png" ); - } - break; - case ButtonShade: - if(client_->isShade()) - { - finalImage = uic_findImage( "shade.png" ); - } - else - { - finalImage = uic_findImage( "shade.png" ); - } - break; - case ButtonAbove: - if(client_->keepAbove()) - { - finalImage = uic_findImage( "keep_above_lit.png" ); - } - else - { - finalImage = uic_findImage( "keep_above.png" ); - } - break; - case ButtonBelow: - if(client_->keepBelow()) - { - finalImage = uic_findImage( "keep_below_lit.png" ); - } - else - { - finalImage = uic_findImage( "keep_below.png" ); - } - break; - default: - finalImage = uic_findImage( "splat.png" ); - break; - } - return finalImage; -} - -////////////////////////////////////////////////////////// -// drawButton() -// ------------------------- -// draw the pixmap button - -void smoothblendButton::drawButton( TQPainter *painter ) { - if ( !smoothblendFactory::initialized() ) - return ; - - int newWidth = width() - 2; - int newHeight = height() - 2; - int dx = (width() - newWidth) / 2; - int dy = (height() - newHeight) / 2; - TQImage tmpResult; - TQColorGroup group; - TQColor redColor(red); - bool active = client_->isActive(); - TQPixmap backgroundTile = client_->getTitleBarTile(active); - group = KDecoration::options()->tqcolorGroup(KDecoration::ColorTitleBar, active); - - //draw the titlebar behind the buttons and app icons - if ((client_->maximizeMode()==client_->MaximizeFull) && !KDecoration::options()->moveResizeMaximizedWindows()) - { - painter->drawTiledPixmap(0, 0, width(), height(), backgroundTile); - } - else - { - painter->drawTiledPixmap(0, 0, width(), height(), backgroundTile, 0, y()-::factory->frameSize()); - } - - TQImage buttonImage = getButtonImage(type_).smoothScale( width(),height()); - buttonImage = KImageEffect::blend( group.background(), buttonImage, .50); - if (type_ == ButtonMenu) { - //slight movement to show the menu button is depressed - if (isDown()) { - dx++; - dy++; - } - TQPixmap menuButtonPixmap(client_->icon().pixmap(TQIconSet::Large, TQIconSet::Normal)); - TQImage menuButtonImage(menuButtonPixmap.convertToImage()); - //draw the menu button the same size as the other buttons - //using TQIconSet::Large gives us a 32x32 icon to resize, resizing larger than - //that may produce pixilation of the image - painter->drawImage( dx, dy, menuButtonImage.smoothScale(newWidth, newHeight) ); - } else { - //highlight on a mouse over tqrepaint - double factor = animProgress * 0.13; - - if(!isDown()) - { - switch(::factory->getBtnComboBox()) - { - case 0: - tmpResult = KImageEffect::intensity( buttonImage, factor); - break; - case 1: - tmpResult = KImageEffect::fade( buttonImage, factor, group.background()); - break; - } - } - else - { - tmpResult = buttonImage; - } - painter->drawPixmap( 0, 0, TQPixmap( tmpResult ) ); - } -} - - -////////////////////////////////////////////////////////////////////////////// -// smoothblendClient Class -////////////////////////////////////////////////////////////////////////////// - -////////////////////////////////////////////////////////////////////////////// -// smoothblendClient() -// --------------- -// Constructor - -smoothblendClient::smoothblendClient(KDecorationBridge *b, KDecorationFactory *f) - : KDecoration(b, f), - mainLayout_(0), - titleLayout_(0), - topSpacer_(0), - titleSpacer_(0), - leftTitleSpacer_(0), rightTitleSpacer_(0), - decoSpacer_(0), - leftSpacer_(0), rightSpacer_(0), - bottomSpacer_(0), windowSpacer_(0), - aCaptionBuffer(0), iCaptionBuffer(0), - aTitleBarTile(0), iTitleBarTile(0), aTitleBarTopTile(0), iTitleBarTopTile(0), - pixmaps_created(false), - //captionBufferDirty(true), - s_titleHeight(0), - s_titleFont(TQFont()), - closing(false) - { - aCaptionBuffer = new TQPixmap(); - iCaptionBuffer = new TQPixmap(); - //s_titleFont = isTool()?smoothblendFactory::titleFontTool():smoothblendFactory::titleFont(); - s_titleFont = options()->font(); - s_titleHeight = smoothblendFactory::titleSize(); - } -////////////////////////////////////////////////////////////////////////////////// -// ~smoothblendClient() -// -------------------- -// Destructor -smoothblendClient::~smoothblendClient() { - delete aCaptionBuffer; - delete iCaptionBuffer; -} - -void smoothblendClient::create_pixmaps() { - if(pixmaps_created) - return; - KPixmap tempPixmap; - TQPainter painter; - TQColorGroup group,widgetGroup; - int FRAMESIZE = ::factory->frameSize(); - // Get the color groups we need for the gradients - group = options()->tqcolorGroup(KDecoration::ColorTitleBar, true); - widgetGroup = widget()->tqcolorGroup(); - - // active top title bar tile - tempPixmap.resize(1, TOPMARGIN); - tempPixmap = KPixmapEffect::unbalancedGradient(tempPixmap, - group.background(), - widgetGroup.background(), - KPixmapEffect::VerticalGradient, - 100, - -100); - aTitleBarTopTile = new TQPixmap(1, TOPMARGIN); - painter.begin(aTitleBarTopTile); - painter.drawPixmap(0, 0, tempPixmap); - painter.end(); - - // inactive top title bar tile - group = options()->tqcolorGroup(KDecoration::ColorTitleBar, false); - tempPixmap = KPixmapEffect::unbalancedGradient(tempPixmap, - group.background(), - widgetGroup.background(), - KPixmapEffect::VerticalGradient, - 100, - -100); - iTitleBarTopTile = new TQPixmap(1, TOPMARGIN); - painter.begin(iTitleBarTopTile); - painter.drawPixmap(0, 0, tempPixmap); - painter.end(); - - // active title bar tile - tempPixmap.resize(1, s_titleHeight+FRAMESIZE); - group = options()->tqcolorGroup(KDecoration::ColorTitleBar, true); - tempPixmap = KPixmapEffect::unbalancedGradient(tempPixmap, - group.background(), - widgetGroup.background(), - KPixmapEffect::VerticalGradient, - 100, - 200); - aTitleBarTile = new TQPixmap(1, s_titleHeight+FRAMESIZE); - painter.begin(aTitleBarTile); - painter.drawPixmap(0, 0, tempPixmap); - painter.end(); - - // inactive title bar tile - group = options()->tqcolorGroup(KDecoration::ColorTitleBar, false); - tempPixmap = KPixmapEffect::unbalancedGradient(tempPixmap, - group.background(), - widgetGroup.background(), - KPixmapEffect::VerticalGradient, - 100, - 200); - iTitleBarTile = new TQPixmap(1, s_titleHeight+FRAMESIZE); - painter.begin(iTitleBarTile); - painter.drawPixmap(0, 0, tempPixmap); - painter.end(); - - pixmaps_created = true; -} - -void smoothblendClient::delete_pixmaps() { - delete aTitleBarTopTile; - aTitleBarTopTile = 0; - - delete iTitleBarTopTile; - iTitleBarTopTile = 0; - - delete aTitleBarTile; - aTitleBarTile = 0; - - delete iTitleBarTile; - iTitleBarTile = 0; - - pixmaps_created = false; -} -////////////////////////////////////////////////////////////////////////////// -// init() -// ------ -// Actual initializer for class - -void smoothblendClient::init() { - createMainWidget(WResizeNoErase | WRepaintNoErase); - widget()->installEventFilter(this); - handlebar = ::factory->frameSize() < 4 ? 4 - ::factory->frameSize() : 0; - // for flicker-free redraws - widget()->setBackgroundMode(NoBackground); - - _resetLayout(); - - create_pixmaps(); -} -void smoothblendClient::_resetLayout() -{ - // basic tqlayout: - // _______________________________________________________________ - // | topSpacer | - // |_______________________________________________________________| - // | leftTitleSpacer | btns | titlebar | bts | rightTitleSpacer | - // |_________________|______|_____________|_____|__________________| - // | decoSpacer | - // |_______________________________________________________________| - // | | | | - // | | windowWrapper | | - // | | | | - // |leftSpacer rightSpacer| - // |_|___________________________________________________________|_| - // | bottomSpacer | - // |_______________________________________________________________| - // - if (!::factory->initialized()) return; - - delete mainLayout_; - delete titleLayout_; - delete topSpacer_; - delete titleSpacer_; - delete leftTitleSpacer_; - delete rightTitleSpacer_; - delete decoSpacer_; - delete leftSpacer_; - delete rightSpacer_; - delete bottomSpacer_; - delete windowSpacer_; - - mainLayout_ = new TQVBoxLayout(widget()); - // title - titleLayout_ = new TQHBoxLayout(); - TQHBoxLayout *windowLayout_ = new TQHBoxLayout(); - int FRAMESIZE = ::factory->frameSize(); - - topSpacer_ = new TQSpacerItem(1, FRAMESIZE, TQSizePolicy::Expanding, TQSizePolicy::Fixed); - titlebar_ = new TQSpacerItem(1, ::factory->buttonSize(), - TQSizePolicy::Expanding, TQSizePolicy::Fixed); - leftTitleSpacer_ = new TQSpacerItem(FRAMESIZE, s_titleHeight, - TQSizePolicy::Fixed, TQSizePolicy::Fixed); - rightTitleSpacer_ = new TQSpacerItem(FRAMESIZE, s_titleHeight, - TQSizePolicy::Fixed, TQSizePolicy::Fixed); - decoSpacer_ = new TQSpacerItem(1, FRAMESIZE, TQSizePolicy::Expanding, TQSizePolicy::Fixed); - leftSpacer_ = new TQSpacerItem(::factory->frameSize(), 1, - TQSizePolicy::Fixed, TQSizePolicy::Expanding); - rightSpacer_ = new TQSpacerItem(::factory->frameSize(), 1, - TQSizePolicy::Fixed, TQSizePolicy::Expanding); - bottomSpacer_ = new TQSpacerItem(1, ::factory->frameSize(), - TQSizePolicy::Expanding, TQSizePolicy::Fixed); - - // sizeof(...) is calculated at compile time - memset(button, 0, sizeof(smoothblendButton *) * ButtonTypeCount); - - // message in preview widget - if (isPreview()) { - windowLayout_->addWidget( - new TQLabel( i18n("<b><center>Smooth Blend</center></b>"), widget() ), 1 ); - } else { - windowLayout_->addItem(new TQSpacerItem(0, 0)); - } - - // setup titlebar buttons - for (int n=0; n<ButtonTypeCount; n++) - button[n] = 0; - //Deal with the title and buttons - titleLayout_->addItem(leftTitleSpacer_); - addButtons(titleLayout_, - options()->customButtonPositions() ? options()->titleButtonsLeft() : TQString(default_left), - ::factory->titleSize()-1); - titleLayout_->addItem(titlebar_); - addButtons(titleLayout_, - options()->customButtonPositions() ? options()->titleButtonsRight() : TQString(default_right), - ::factory->titleSize()-1); - titleLayout_->addItem(rightTitleSpacer_); - - //Mid - left side, middle contents and right side - TQHBoxLayout * midLayout_ = new TQHBoxLayout(); - midLayout_->addItem(leftSpacer_); - midLayout_->addLayout(windowLayout_); - midLayout_->addItem(rightSpacer_); - - //Layout order - mainLayout_->addItem( topSpacer_ ); - mainLayout_->addLayout( titleLayout_ ); - mainLayout_->addItem( decoSpacer_ ); - mainLayout_->addLayout( midLayout_ ); - mainLayout_->addItem( bottomSpacer_ ); - - // connections - connect(this, TQT_SIGNAL(keepAboveChanged(bool)), TQT_SLOT(keepAboveChange(bool))); - connect(this, TQT_SIGNAL(keepBelowChanged(bool)), TQT_SLOT(keepBelowChange(bool))); -} - -////////////////////////////////////////////////////////////////////////////// -// addButtons() -// ------------ -// Add buttons to title tqlayout - -void smoothblendClient::addButtons(TQBoxLayout *tqlayout, const TQString& s, int button_size) { - TQString tip; - if (s.length() > 0) { - for (unsigned n=0; n < s.length(); n++) { - switch (s[n]) { - case 'M': // Menu button - if (!button[ButtonMenu]) { - button[ButtonMenu] = - new smoothblendButton(this, "splat.png", i18n("Menu"),ButtonMenu,button_size); - connect(button[ButtonMenu], TQT_SIGNAL(pressed()), this, TQT_SLOT(menuButtonPressed())); - connect(button[ButtonMenu], TQT_SIGNAL(released()), this, TQT_SLOT(menuButtonReleased())); - tqlayout->addWidget(button[ButtonMenu]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case 'S': // Sticky button - if (!button[ButtonSticky]) { - if (isOnAllDesktops()) { - tip = i18n("Un-Sticky"); - } else { - tip = i18n("Sticky"); - } - button[ButtonSticky] = - new smoothblendButton(this, "circle.png", tip, ButtonSticky, button_size, true); - connect(button[ButtonSticky], TQT_SIGNAL(clicked()), - this, TQT_SLOT(toggleOnAllDesktops())); - tqlayout->addWidget(button[ButtonSticky]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case 'H': // Help button - if ((!button[ButtonHelp]) && providesContextHelp()) { - button[ButtonHelp] = - new smoothblendButton(this, "help.png", i18n("Help"), ButtonHelp, button_size); - connect(button[ButtonHelp], TQT_SIGNAL(clicked()), - this, TQT_SLOT(showContextHelp())); - tqlayout->addWidget(button[ButtonHelp]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case 'I': // Minimize button - if ((!button[ButtonMin]) && isMinimizable()) { - button[ButtonMin] = - new smoothblendButton(this, "minimize.png", i18n("Minimize"), ButtonMin, button_size); - connect(button[ButtonMin], TQT_SIGNAL(clicked()), - this, TQT_SLOT(minimize())); - tqlayout->addWidget(button[ButtonMin]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case 'A': // Maximize button - if ((!button[ButtonMax]) && isMaximizable()) { - if (maximizeMode() == MaximizeFull) { - tip = i18n("Restore"); - } else { - tip = i18n("Maximize"); - } - button[ButtonMax] = - new smoothblendButton(this, "maximize.png", tip, ButtonMax, button_size, true); - connect(button[ButtonMax], TQT_SIGNAL(clicked()), - this, TQT_SLOT(maxButtonPressed())); - tqlayout->addWidget(button[ButtonMax]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case 'X': // Close button - if ((!button[ButtonClose]) && isCloseable()) { - button[ButtonClose] = - new smoothblendButton(this, "close.png", i18n("Close"), ButtonClose, button_size); - connect(button[ButtonClose], TQT_SIGNAL(clicked()), - this, TQT_SLOT(closeWindow())); - tqlayout->addWidget(button[ButtonClose]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case 'F': // Above button - if ((!button[ButtonAbove])) { - button[ButtonAbove] = - new smoothblendButton(this, "keep_above.png", - i18n("Keep Above Others"), ButtonAbove, button_size, true); - connect(button[ButtonAbove], TQT_SIGNAL(clicked()), - this, TQT_SLOT(aboveButtonPressed())); - tqlayout->addWidget(button[ButtonAbove]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case 'B': // Below button - if ((!button[ButtonBelow])) { - button[ButtonBelow] = - new smoothblendButton(this, "keep_below.png", - i18n("Keep Below Others"), ButtonBelow, button_size, true); - connect(button[ButtonBelow], TQT_SIGNAL(clicked()), - this, TQT_SLOT(belowButtonPressed())); - tqlayout->addWidget(button[ButtonBelow]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case 'L': // Shade button - if ((!button[ButtonShade]) && isShadeable()) { - if ( isSetShade()) { - tip = i18n("Unshade"); - } else { - tip = i18n("Shade"); - } - button[ButtonShade] = - new smoothblendButton(this, "shade.png", tip, ButtonShade, button_size, true); - connect(button[ButtonShade], TQT_SIGNAL(clicked()), - this, TQT_SLOT(shadeButtonPressed())); - tqlayout->addWidget(button[ButtonShade]); - if (n < s.length()-1) tqlayout->addSpacing(1); - } - break; - - case '_': // Spacer item - tqlayout->addSpacing(::factory->frameSize()); - } - } - } -} - -////////////////////////////////////////////////////////////////////////////// -// activeChange() -// -------------- -// window active state has changed - -void smoothblendClient::activeChange() { - for (int n=0; n<ButtonTypeCount; n++) - if (button[n]) - button[n]->reset(); - widget()->tqrepaint(false); -} - -////////////////////////////////////////////////////////////////////////////// -// captionChange() -// --------------- -// The title has changed - -void smoothblendClient::captionChange() { - widget()->tqrepaint(titlebar_->tqgeometry(), false); -} - -////////////////////////////////////////////////////////////////////////////// -// desktopChange() -// --------------- -// Called when desktop/sticky changes - -void smoothblendClient::desktopChange() { - bool d = isOnAllDesktops(); - if (button[ButtonSticky]) { - TQToolTip::remove(button[ButtonSticky]); - TQToolTip::add(button[ButtonSticky], d ? i18n("Un-Sticky") : i18n("Sticky")); - button[ButtonSticky]->tqrepaint(false); - } -} - -////////////////////////////////////////////////////////////////////////////// -// iconChange() -// ------------ -// The title has changed - -void smoothblendClient::iconChange() { - if (button[ButtonMenu]) { - button[ButtonMenu]->tqrepaint(false); - } -} - -////////////////////////////////////////////////////////////////////////////// -// maximizeChange() -// ---------------- -// Maximized state has changed - -void smoothblendClient::maximizeChange() { - bool m = (maximizeMode() == MaximizeFull); - if (button[ButtonMax]) { - TQToolTip::remove(button[ButtonMax]); - TQToolTip::add(button[ButtonMax], m ? i18n("Restore") : i18n("Maximize")); - button[ButtonMax]->tqrepaint(false); - } -} - -////////////////////////////////////////////////////////////////////////////// -// shadeChange() -// ------------- -// Called when window shading changes - -void smoothblendClient::shadeChange() { - bool s = isSetShade(); - if (button[ButtonShade]) { - TQToolTip::remove(button[ButtonShade]); - TQToolTip::add(button[ButtonShade], s ? i18n("Unshade") : i18n("Shade")); - button[ButtonShade]->tqrepaint(false); - } -} - -////////////////////////////////////////////////////////////////////////////// -// keepAboveChange() -// ------------ -// The above state has changed - -void smoothblendClient::keepAboveChange(bool a) { - if (button[ButtonAbove]) { - button[ButtonAbove]->setOn(a); - button[ButtonAbove]->tqrepaint(false); - } -} - -////////////////////////////////////////////////////////////////////////////// -// keepBelowChange() -// ------------ -// The below state has changed - -void smoothblendClient::keepBelowChange(bool b) { - if (button[ButtonBelow]) { - button[ButtonBelow]->setOn(b); - button[ButtonBelow]->tqrepaint(false); - } -} - -////////////////////////////////////////////////////////////////////////////// -// borders() -// ---------- -// Get the size of the borders - -void smoothblendClient::borders(int &left, int &right, int &top, int &bottom) const { - int FRAMESIZE = ::factory->frameSize(); - - if ((maximizeMode()==MaximizeFull) && !options()->moveResizeMaximizedWindows()) { - left = right = bottom = 0; - top = ::factory->buttonSize(); - - // update tqlayout etc. - topSpacer_->changeSize(1, 0, TQSizePolicy::Expanding, TQSizePolicy::Fixed); - decoSpacer_->changeSize(1, 0, TQSizePolicy::Expanding, TQSizePolicy::Fixed); - leftSpacer_->changeSize(left, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding); - leftTitleSpacer_->changeSize(left, top, TQSizePolicy::Fixed, TQSizePolicy::Fixed); - rightSpacer_->changeSize(right, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding); - rightTitleSpacer_->changeSize(right, top, TQSizePolicy::Fixed, TQSizePolicy::Fixed); - bottomSpacer_->changeSize(1, bottom, TQSizePolicy::Expanding, TQSizePolicy::Fixed); - } else { - left = right = bottom = ::factory->frameSize(); - top = ::factory->titleSize() + (FRAMESIZE*2); - - // update tqlayout etc. - topSpacer_->changeSize(1, FRAMESIZE, TQSizePolicy::Expanding, TQSizePolicy::Fixed); - decoSpacer_->changeSize(1, FRAMESIZE, TQSizePolicy::Expanding, TQSizePolicy::Fixed); - leftSpacer_->changeSize(left, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding); - leftTitleSpacer_->changeSize(left, s_titleHeight, TQSizePolicy::Fixed, TQSizePolicy::Fixed); - rightSpacer_->changeSize(right, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding); - rightTitleSpacer_->changeSize(right,s_titleHeight,TQSizePolicy::Fixed, TQSizePolicy::Fixed); - bottomSpacer_->changeSize(1, bottom, TQSizePolicy::Expanding, TQSizePolicy::Fixed); - } - widget()->tqlayout()->activate(); -} - -////////////////////////////////////////////////////////////////////////////// -// resize() -// -------- -// Called to resize the window - -void smoothblendClient::resize(const TQSize &size) { - widget()->resize(size); -} - -////////////////////////////////////////////////////////////////////////////// -// tqminimumSize() -// ------------- -// Return the minimum allowable size for this window - -TQSize smoothblendClient::tqminimumSize() const { - return widget()->tqminimumSize(); -} - -////////////////////////////////////////////////////////////////////////////// -// mousePosition() -// --------------- -// Return logical mouse position - -KDecoration::Position smoothblendClient::mousePosition(const TQPoint &point) const { - const int corner = 24; - Position pos; - int fs = ::factory->frameSize() + handlebar; - //int fs = ::factory->frameSize(); - - if (point.y() <= fs) { - // inside top frame - if (point.x() <= corner) - pos = PositionTopLeft; - else if (point.x() >= (width()-corner)) - pos = PositionTopRight; - else - pos = PositionTop; - } else if (point.y() >= (height()-fs*2)) { - // inside handle - if (point.x() <= corner) - pos = PositionBottomLeft; - else if (point.x() >= (width()-corner)) - pos = PositionBottomRight; - else - pos = PositionBottom; - } else if (point.x() <= fs ) { - // on left frame - if (point.y() <= corner) - pos = PositionTopLeft; - else if (point.y() >= (height()-corner)) - pos = PositionBottomLeft; - else - pos = PositionLeft; - } else if (point.x() >= width()-fs) { - // on right frame - if (point.y() <= corner) - pos = PositionTopRight; - else if (point.y() >= (height()-corner)) - pos = PositionBottomRight; - else - pos = PositionRight; - } else { - // inside the frame - pos = PositionCenter; - } - return pos; -} - -////////////////////////////////////////////////////////////////////////////// -// eventFilter() -// ------------- -// Event filter - -bool smoothblendClient::eventFilter(TQObject *obj, TQEvent *e) { - if (TQT_BASE_OBJECT(obj) != TQT_BASE_OBJECT(widget())) - return false; - - switch (e->type()) { - case TQEvent::MouseButtonDblClick: { - mouseDoubleClickEvent(TQT_TQMOUSEEVENT(e)); - return true; - } - case TQEvent::MouseButtonPress: { - processMousePressEvent(TQT_TQMOUSEEVENT(e)); - return true; - } - case TQEvent::Paint: { - paintEvent(TQT_TQPAINTEVENT(e)); - return true; - } - case TQEvent::Resize: { - resizeEvent(TQT_TQRESIZEEVENT(e)); - return true; - } - case TQEvent::Show: { - showEvent(TQT_TQSHOWEVENT(e)); - return true; - } - case TQEvent::Wheel: { - wheelEvent(TQT_TQWHEELEVENT( e )); - return true; - } - default: { - return false; - } - } - - return false; -} - -////////////////////////////////////////////////////////////////////////////// -// mouseDoubleClickEvent() -// ----------------------- -// Doubleclick on title - -void smoothblendClient::mouseDoubleClickEvent(TQMouseEvent *e) { - if (titlebar_->tqgeometry().contains(e->pos())) - titlebarDblClickOperation(); -} - -////////////////////////////////////////////////////////////////////////////// -// wheelEvent() -// ------------ -// Mouse wheel on titlebar - -void smoothblendClient::wheelEvent(TQWheelEvent *e) -{ - if (titleLayout_->tqgeometry().contains(e->pos()) ) - titlebarMouseWheelOperation( e->delta()); -} - -////////////////////////////////////////////////////////////////////////////// -// paintEvent() -// ------------ -// Repaint the window - -void smoothblendClient::paintEvent(TQPaintEvent*) { - if (!::factory->initialized()) - { - return; - } - - //int FRAMESIZE = ::factory->frameSize(); - const uint maxCaptionLength = 300; // truncate captions longer than this! - TQString captionText(caption()); - if (captionText.length() > maxCaptionLength) { - captionText.truncate(maxCaptionLength); - captionText.append(" [...]"); - } - - TQColor blackColor(black); - TQColor redColor(red); - TQColorGroup group,widgetGroup; - TQPainter painter(widget()); - bool active = isActive(); - //get group information first - group = options()->tqcolorGroup(KDecoration::ColorTitleBar, isActive()); - widgetGroup = widget()->tqcolorGroup(); - - TQRect topRect( topSpacer_->tqgeometry() ); - TQRect titleRect( titleLayout_->tqgeometry() ); - TQRect textRect( titlebar_->tqgeometry() ); - TQRect Rltitle( leftTitleSpacer_->tqgeometry() ); - TQRect Rrtitle( rightTitleSpacer_->tqgeometry() ); - TQRect Rdeco( decoSpacer_->tqgeometry() ); - TQRect Rleft( leftSpacer_->tqgeometry() ); - TQRect Rright( rightSpacer_->tqgeometry() ); - TQRect Rbottom( bottomSpacer_->tqgeometry() ); - TQRect tempRect; - - - /* - if(active) - { - qDebug("paintEvent() topRect.y() = %i\tbottom() = %i",topRect.top(),topRect.bottom()); - qDebug("paintEvent() titleRect.y() = %i\tbottom() = %i",titleRect.top(),titleRect.bottom()); - qDebug("paintEvent() textRect.y() = %i\tbottom() = %i",textRect.top(),textRect.bottom()); - qDebug("paintEvent() Rltitle.y() = %i\tbottom() = %i",Rltitle.top(),Rltitle.bottom()); - qDebug("paintEvent() Rrtitle.y() = %i\tbottom() = %i",Rrtitle.top(),Rrtitle.bottom()); - qDebug("paintEvent() Rdeco.y() = %i\tbottom() = %i",Rdeco.top(),Rdeco.bottom()); - qDebug("paintEvent() Rleft.y() = %i\tbottom() = %i",Rleft.top(),Rleft.bottom()); - qDebug("paintEvent() Rright.y() = %i\tbottom() = %i",Rright.top(),Rright.bottom()); - qDebug("paintEvent() Rbottom.y() = %i\tbottom() = %i",Rbottom.top(),Rbottom.bottom()); - } - */ - - // top - painter.drawTiledPixmap(topRect, active ? *aTitleBarTopTile:*iTitleBarTopTile); - painter.drawTiledPixmap(titleRect.x(), - titleRect.y(), - titleRect.width(), - titleRect.height() + Rdeco.height(), - active ? *aTitleBarTile:*iTitleBarTile); - - textRect.setRect(textRect.x()+SIDETITLEMARGIN, - textRect.y(), - textRect.width()-SIDETITLEMARGIN*2, - textRect.height()); - TQRect shadowRect(textRect.x()+1,textRect.y()+1,textRect.width(),textRect.height()); - //if we are shadowing title bar text - if(::factory->titleShadow()) - { - //shadow text - painter.setFont(options()->font(isActive(), false)); - painter.setPen(blackColor); - painter.drawText(shadowRect, - ::factory->titleAlign() | AlignVCenter | TQt::SingleLine, - captionText); - } - // draw title text - painter.setFont(options()->font(isActive(), false)); - painter.setPen(options()->color(KDecoration::ColorFont, isActive())); - painter.drawText(textRect, - ::factory->titleAlign() | AlignVCenter | TQt::SingleLine, - captionText); - - //left of buttons and title - painter.drawTiledPixmap(Rltitle.x(), - Rltitle.y(), - Rltitle.width(), - Rltitle.height()+Rdeco.height(), - active ? *aTitleBarTile:*iTitleBarTile); - // left mid tqlayout - painter.fillRect(Rleft,widgetGroup.background()); - - // right of buttons and title - painter.drawTiledPixmap(Rrtitle.x(), - Rrtitle.y(), - Rrtitle.width(), - Rrtitle.height()+Rdeco.height(), - active ? *aTitleBarTile:*iTitleBarTile); - // right mid tqlayout - painter.fillRect(Rright,widgetGroup.background()); - - // bottom - /* - if(isShade()) - { - frame.setRect(0,::factory->titleSize()+FRAMESIZE, width(), FRAMESIZE); - } - else - { - frame.setRect(0, height() - (FRAMESIZE*2), width(), (FRAMESIZE*2)); - } - */ - painter.fillRect(Rbottom, widgetGroup.background()); - - //draw a line between title bar and window contents - painter.setPen(group.background()); - - // outline outside the frame but not the corners if they are rounded - tempRect = widget()->rect(); - painter.drawRect(tempRect); - - bool cornersFlag = ::factory->roundedCorners(); - if(cornersFlag) { - // local temp right and bottom - int r(width()); - painter.setPen(group.background()); - painter.drawPoint(4, 1); - painter.drawPoint(3, 1); - painter.drawPoint(2, 2); - painter.drawPoint(1, 3); - painter.drawPoint(1, 4); - painter.drawPoint(r - 5, 1); - painter.drawPoint(r - 4, 1); - painter.drawPoint(r - 3, 2); - painter.drawPoint(r - 2, 3); - painter.drawPoint(r - 2, 4); - } - -} - -////////////////////////////////////////////////////////////////////////////// -// updateMask() -// ------------ -// update the frame mask -void smoothblendClient::updateMask() { - bool cornersFlag = ::factory->roundedCorners(); - if ( (!options()->moveResizeMaximizedWindows() && maximizeMode() == MaximizeFull ) ) - { - setMask(TQRegion(widget()->rect())); - return; - } - - int r(width()); - int b(height()); - TQRegion mask; - - mask=TQRegion(widget()->rect()); - - // Remove top-left corner. - if(cornersFlag) { - mask -= TQRegion(0, 0, 5, 1); - mask -= TQRegion(0, 1, 3, 1); - mask -= TQRegion(0, 2, 2, 1); - mask -= TQRegion(0, 3, 1, 2); - mask -= TQRegion(r - 5, 0, 5, 1); - mask -= TQRegion(r - 3, 1, 3, 1); - mask -= TQRegion(r - 2, 2, 2, 1); - mask -= TQRegion(r - 1, 3, 1, 2); - } - //always remove one corner pixel so it simulates a soft corner like plastik - mask -= TQRegion(0,0,1,1); - mask -= TQRegion(r-1,0,1,1); - mask -= TQRegion(0, b-1, 1,1); - mask -= TQRegion(r-1,b-1,1,1); - - setMask(mask); -} - -////////////////////////////////////////////////////////////////////////////// -// resizeEvent() -// ------------- -// Window is being resized - -void smoothblendClient::resizeEvent(TQResizeEvent *) { - if (widget()->isShown()) { - TQRegion region = widget()->rect(); - region = region.subtract(titlebar_->tqgeometry()); - widget()->erase(region); - updateMask(); - } -} - -////////////////////////////////////////////////////////////////////////////// -// showEvent() -// ----------- -// Window is being shown - -void smoothblendClient::showEvent(TQShowEvent *) { - updateMask(); - widget()->tqrepaint(); -} - -////////////////////////////////////////////////////////////////////////////// -// maxButtonPressed() -// ----------------- -// Max button was pressed - -void smoothblendClient::maxButtonPressed() { - if (button[ButtonMax]) { -#if KDE_IS_VERSION(3, 3, 0) - maximize(button[ButtonMax]->lastMousePress()); -#else - - switch (button[ButtonMax]->lastMousePress()) { - case MidButton: - maximize(maximizeMode() ^ MaximizeVertical); - break; - case RightButton: - maximize(maximizeMode() ^ MaximizeHorizontal); - break; - default: - (maximizeMode() == MaximizeFull) ? maximize(MaximizeRestore) - : maximize(MaximizeFull); - } -#endif - - } -} - -////////////////////////////////////////////////////////////////////////////// -// shadeButtonPressed() -// ----------------- -// Shade button was pressed - -void smoothblendClient::shadeButtonPressed() { - if (button[ButtonShade]) { - setShade( !isSetShade()); - } -} - -////////////////////////////////////////////////////////////////////////////// -// aboveButtonPressed() -// ----------------- -// Above button was pressed - -void smoothblendClient::aboveButtonPressed() { - if (button[ButtonAbove]) { - setKeepAbove( !keepAbove()); - } -} - -////////////////////////////////////////////////////////////////////////////// -// belowButtonPressed() -// ----------------- -// Below button was pressed - -void smoothblendClient::belowButtonPressed() { - if (button[ButtonBelow]) { - setKeepBelow( !keepBelow()); - } -} - -////////////////////////////////////////////////////////////////////////////// -// menuButtonPressed() -// ------------------- -// Menu button was pressed (popup the menu) - -void smoothblendClient::menuButtonPressed() { - static TQTime* t = NULL; - static smoothblendClient* lastClient = NULL; - if (t == NULL) - t = new TQTime; - bool dbl = (lastClient==this && t->elapsed() <= TQApplication::doubleClickInterval()); - lastClient = this; - t->start(); - //if (button[ButtonMenu] && !dbl && !::factory->menuClosed()) { - if ( !dbl || !::factory->menuClosed()) { - TQPoint p(button[ButtonMenu]->rect().bottomLeft().x(), - button[ButtonMenu]->rect().bottomLeft().y()); - KDecorationFactory* f = factory(); - showWindowMenu(button[ButtonMenu]->mapToGlobal(p)); - if (!f->exists(this)) - return; // decoration was destroyed - button[ButtonMenu]->setDown(false); - } - else - { - closing = true; - } -} - -void smoothblendClient::menuButtonReleased() -{ - if(closing) - { - closeWindow(); - } -} - -#include "smoothblend.moc" diff --git a/kwin-styles/smooth-blend/client/smoothblend.desktop b/kwin-styles/smooth-blend/client/smoothblend.desktop deleted file mode 100644 index 6f26b6e0..00000000 --- a/kwin-styles/smooth-blend/client/smoothblend.desktop +++ /dev/null @@ -1,40 +0,0 @@ -# KDE Desktop Entry -[Desktop Entry] -Name=Smooth Blend -Name[ca]=Barreja suau -Name[cs]=Jemný přechod -Name[cy]=Cymysgedd Llyfn -Name[da]=Glat blanding -Name[el]=Ομαλή μείξη -Name[eo]=Glata Miksaĵo -Name[es]=Mezcla suave -Name[et]=Mahe ühtesulamine -Name[fa]=ترکیب یکدست -Name[fi]=Pehmeä sekoitus -Name[fr]=Fusion douce -Name[fy]=Sêfte ferminging -Name[gl]=Mistura Suave -Name[hu]=Sima színátmenet -Name[is]=Mjúk blöndun -Name[it]=Mistura scorrevole -Name[ja]=綺麗なブレンド -Name[ka]=გლუვი და რბილი -Name[mk]=Рамномерно мешање -Name[nb]=Jevn overgang -Name[nds]=Week Mischen -Name[ne]=महिन मिश्रण -Name[nl]=Zachte vermenging -Name[nn]=Jamn overgang -Name[pl]=Gładkie łączenie kolorów -Name[pt]=Mistura Suave -Name[pt_BR]=Mistura Suave -Name[ru]=Полутона -Name[sl]=Enakomeren preliv -Name[sr]=Глатко претапање -Name[sr@Latn]=Glatko pretapanje -Name[sv]=Jämn blandning -Name[tr]=Düz Karışım -Name[uk]=Гладке змішання -Name[vi]=Trộn màu Mượt mà -Name[zh_TW]=平順混合 -X-KDE-Library=twin3_smoothblend diff --git a/kwin-styles/smooth-blend/client/smoothblend.h b/kwin-styles/smooth-blend/client/smoothblend.h deleted file mode 100644 index 4abd32cb..00000000 --- a/kwin-styles/smooth-blend/client/smoothblend.h +++ /dev/null @@ -1,256 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// smoothblend.h -// ------------------- -// Smooth Blend window decoration for KDE -// ------------------- -// Copyright (c) 2005 Ryan Nickell <p0z3r@users.sourceforge.net> -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; see the file COPYING. If not, write to -// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -// Boston, MA 02110-1301, USA. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef SMOOTHBLEND_H -#define SMOOTHBLEND_H - -#include <tqbutton.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> - -class TQSpacerItem; -class TQPoint; - -namespace smoothblend { - -class smoothblendClient; - -enum ButtonType { - ButtonHelp=0, - ButtonMax, - ButtonMin, - ButtonClose, - ButtonMenu, - ButtonSticky, - ButtonAbove, - ButtonBelow, - ButtonShade, - ButtonTypeCount -}; - -// smoothblendFactory ///////////////////////////////////////////////////////// -// -// add variables and flags for config like... -// -// public: type function() -// private: type var_ -// inline type function(){ return var_ }; -// - -class smoothblendFactory: public KDecorationFactory { -public: - smoothblendFactory(); - virtual ~smoothblendFactory(); - virtual KDecoration *createDecoration(KDecorationBridge *b); - virtual bool reset(unsigned long changed); - static bool initialized(); - static TQt::AlignmentFlags titleAlign(); - static bool roundedCorners(); - static int titleSize(); - static int buttonSize(); - static int frameSize(); - static int roundSize(); - static TQFont titleFontTool() { return m_titleFontTool; } - static bool titleShadow(); - static bool animateButtons() { return animatebuttons; } - static int getBtnComboBox() { return btnComboBox; } - static bool menuClosed() { return menuClose; } - -private: - bool readConfig(); - -private: - static bool initialized_; - static TQt::AlignmentFlags titlealign_; - static bool cornerflags_; - static int titlesize_; - static int buttonsize_; - static int framesize_; - static int roundsize_; - static TQFont m_titleFontTool; - static bool titleshadow_; - static bool animatebuttons; - static int btnComboBox; - static bool menuClose; -}; - -inline bool smoothblendFactory::initialized() { - return initialized_; -} -inline TQt::AlignmentFlags smoothblendFactory::titleAlign() { - return titlealign_; -} -inline bool smoothblendFactory::roundedCorners() { - return cornerflags_; -} -inline int smoothblendFactory::titleSize() { - return titlesize_; -} -inline int smoothblendFactory::buttonSize() { - return buttonsize_; -} -inline int smoothblendFactory::frameSize() { - return framesize_; -} -inline int smoothblendFactory::roundSize() { - return roundsize_; -} -inline bool smoothblendFactory::titleShadow() { - return titleshadow_; -} - -// smoothblendButton ////////////////////////////////////////////////////////// - -class smoothblendButton : public TQButton { - Q_OBJECT - TQ_OBJECT -public: - smoothblendButton(smoothblendClient *parent=0, const char *name=0, - const TQString &tip=NULL, - ButtonType type=ButtonHelp, - int button_size=18, - bool toggle=false); - //const unsigned char *bitmap=0); - ~smoothblendButton(); - - void setBitmap(const unsigned char *bitmap); - TQSize tqsizeHint() const; - ButtonState lastMousePress() const; - void reset(); - TQImage getButtonImage(ButtonType type); - virtual void setOn(bool on); - virtual void setDown(bool on); - -protected slots: - void animate(); - void buttonClicked(); - void buttonReleased(); - -private: - void enterEvent(TQEvent *e); - void leaveEvent(TQEvent *e); - void mousePressEvent(TQMouseEvent *e); - void mouseReleaseEvent(TQMouseEvent *e); - void drawButton(TQPainter *painter); - -private: - smoothblendClient *client_; - ButtonType type_; - int size_; - TQBitmap *deco_; - TQPixmap *pixmap[2][4]; - ButtonState lastmouse_; - bool hover_; - bool m_clicked; - TQTimer *animTmr; - uint animProgress; -}; - -inline TQt::ButtonState smoothblendButton::lastMousePress() const { - return lastmouse_; -} -inline void smoothblendButton::reset() { - tqrepaint(false); -} - -// smoothblendClient ////////////////////////////////////////////////////////// - -class smoothblendClient : public KDecoration { - Q_OBJECT - TQ_OBJECT -public: - smoothblendClient(KDecorationBridge *b, KDecorationFactory *f); - virtual ~smoothblendClient(); - - virtual void init(); - - virtual void activeChange(); - virtual void desktopChange(); - virtual void captionChange(); - virtual void iconChange(); - virtual void maximizeChange(); - virtual void shadeChange(); - - - virtual void borders(int &l, int &r, int &t, int &b) const; - virtual void resize(const TQSize &size); - virtual TQSize tqminimumSize() const; - virtual Position mousePosition(const TQPoint &point) const; - - TQPixmap getTitleBarTile(bool active) const - { - return active ? *aTitleBarTile : *iTitleBarTile; - } - -private: - void addButtons(TQBoxLayout* tqlayout, const TQString& buttons, int buttonSize = 18); - bool eventFilter(TQObject *obj, TQEvent *e); - void mouseDoubleClickEvent(TQMouseEvent *e); - void wheelEvent(TQWheelEvent *e); - void paintEvent(TQPaintEvent *e); - void resizeEvent(TQResizeEvent *); - void showEvent(TQShowEvent *); - void updateMask(); - void _resetLayout(); - TQVBoxLayout *mainLayout_; - TQHBoxLayout *titleLayout_; - TQSpacerItem *topSpacer_, - *titleSpacer_, - *leftTitleSpacer_, *rightTitleSpacer_, - *decoSpacer_, - *leftSpacer_, *rightSpacer_, - *bottomSpacer_, *windowSpacer_; - TQPixmap *aCaptionBuffer, *iCaptionBuffer; - -private slots: - void maxButtonPressed(); - void menuButtonPressed(); - void menuButtonReleased(); - void aboveButtonPressed(); - void belowButtonPressed(); - void shadeButtonPressed(); - void keepAboveChange(bool); - void keepBelowChange(bool); - -signals: - void keepAboveChanged(bool); - void keepBelowChanged(bool); - -private: - TQPixmap *aTitleBarTile, *iTitleBarTile, *aTitleBarTopTile, *iTitleBarTopTile; - smoothblendButton *button[ButtonTypeCount]; - TQSpacerItem *titlebar_; - bool pixmaps_created; - int s_titleHeight; - TQFont s_titleFont; - int handlebar; - bool closing; - - void create_pixmaps(); - void delete_pixmaps(); -}; - -} // namespace smoothblend - -#endif // SMOOTHBLEND_H 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 |