diff options
Diffstat (limited to 'kwin/clients/kwmtheme')
-rw-r--r-- | kwin/clients/kwmtheme/Makefile.am | 15 | ||||
-rw-r--r-- | kwin/clients/kwmtheme/cli_installer/Makefile.am | 18 | ||||
-rw-r--r-- | kwin/clients/kwmtheme/cli_installer/main.cpp | 166 | ||||
-rw-r--r-- | kwin/clients/kwmtheme/kwmtheme.desktop | 81 | ||||
-rw-r--r-- | kwin/clients/kwmtheme/kwmthemeclient.cpp | 936 | ||||
-rw-r--r-- | kwin/clients/kwmtheme/kwmthemeclient.h | 74 |
6 files changed, 0 insertions, 1290 deletions
diff --git a/kwin/clients/kwmtheme/Makefile.am b/kwin/clients/kwmtheme/Makefile.am deleted file mode 100644 index e9d3c36b8..000000000 --- a/kwin/clients/kwmtheme/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -SUBDIRS=cli_installer -INCLUDES = $(all_includes) - -kde_module_LTLIBRARIES = twin3_kwmtheme.la - -twin3_kwmtheme_la_SOURCES = kwmthemeclient.cpp -twin3_kwmtheme_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module -twin3_kwmtheme_la_LIBADD = -ltdecorations - -METASOURCES = AUTO -noinst_HEADERS = kwmthemeclient.h - -lnkdir = $(kde_datadir)/twin -lnk_DATA = kwmtheme.desktop - diff --git a/kwin/clients/kwmtheme/cli_installer/Makefile.am b/kwin/clients/kwmtheme/cli_installer/Makefile.am deleted file mode 100644 index 1541c1742..000000000 --- a/kwin/clients/kwmtheme/cli_installer/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ - -# set the include path for X, qt and KDE -INCLUDES= $(all_includes) - -####### This part is very kwmtheme specific -# you can add here more. This one gets installed -bin_PROGRAMS = kwmtheme - -# Which sources should be compiled for kwmtheme. -kwmtheme_SOURCES = main.cpp - -# the library search path. -kwmtheme_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -lktexteditor - -# the libraries to link against. Be aware of the order. First the libraries, -# that depend on the following ones. -kwmtheme_LDADD = $(LIB_TDECORE) - diff --git a/kwin/clients/kwmtheme/cli_installer/main.cpp b/kwin/clients/kwmtheme/cli_installer/main.cpp deleted file mode 100644 index 4533cf3e8..000000000 --- a/kwin/clients/kwmtheme/cli_installer/main.cpp +++ /dev/null @@ -1,166 +0,0 @@ -#include <tqfile.h> -#include <tqdir.h> -#include <kapplication.h> -#include <ksimpleconfig.h> -#include <kglobal.h> -#include <kdebug.h> -#include <kstandarddirs.h> -#include <kcmdlineargs.h> -#include <klocale.h> - -static const char description[] = - I18N_NOOP("Installs a KWM theme"); - -static KCmdLineOptions options[] = -{ - { "+[file]", I18N_NOOP("Path to a theme config file"), 0 }, - KCmdLineLastOption -}; - -void copy(const TQString &src, const TQString &dest) -{ - TQFile copyInput(src); - TQFile copyOutput(dest); - if(!copyInput.open(IO_ReadOnly)){ - kdWarning() << "Couldn't open " << src << endl; - return; - } - if(!copyOutput.open(IO_WriteOnly)){ - kdWarning() << "Couldn't open " << dest << endl; - copyInput.close(); - return; - } - while(!copyInput.atEnd()){ - copyOutput.putch(copyInput.getch()); - } - copyInput.close(); - copyOutput.close(); -} - -int main(int argc, char **argv) -{ - KCmdLineArgs::init(argc, argv, "kwmtheme", description, "0.1"); - KCmdLineArgs::addCmdLineOptions( options ); - KApplication app(argc, argv); - KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); - if(!args->count()){ - kdWarning() << "You need to specify the path to a theme config file!" << endl; - return(1); - } - - TQString srcStr = TQString(TQFile::decodeName(args->arg(0))); - TQFile f(srcStr); - TQString tmpStr; - - if(!f.exists()){ - kdWarning() << "Specified theme config file doesn't exist!" << endl; - return(2); - } - - TQStringList appDirs = KGlobal::dirs()->findDirs("data", "twin"); - TQString localDirStr = *(appDirs.end()); - if(localDirStr.isEmpty()){ - localDirStr = KGlobal::dirs()->saveLocation("data", "twin"); - } - localDirStr += "/pics/"; - if(!TQFile::exists(localDirStr)) - TQDir().mkdir(localDirStr); - - TQFileInfo fi(f); - KSimpleConfig input(fi.absFilePath()); - srcStr = fi.dirPath(true) + "/"; - KConfig *output = KGlobal::config(); - input.setGroup("Window Border"); - output->setGroup("General"); - - tmpStr = input.readEntry("tqshapePixmapTop"); - if(!tmpStr.isEmpty()){ - copy(srcStr+tmpStr, localDirStr+tmpStr); - } - output->writeEntry("wm_top", tmpStr, true, true); - tmpStr = input.readEntry("tqshapePixmapBottom"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("wm_bottom", tmpStr, true, true); - tmpStr = input.readEntry("tqshapePixmapLeft"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("wm_left", tmpStr, true, true); - tmpStr = input.readEntry("tqshapePixmapRight"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("wm_right", tmpStr, true, true); - tmpStr = input.readEntry("tqshapePixmapTopLeft"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("wm_topleft", tmpStr, true, true); - tmpStr = input.readEntry("tqshapePixmapTopRight"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("wm_topright", tmpStr, true, true); - tmpStr = input.readEntry("tqshapePixmapBottomLeft"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("wm_bottomleft", tmpStr, true, true); - tmpStr = input.readEntry("tqshapePixmapBottomRight"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("wm_bottomright", tmpStr, true, true); - - - input.setGroup("Window Titlebar"); - output->writeEntry("TitleAlignment", input.readEntry("TitleAlignment"), true, true); - output->writeEntry("PixmapUnderTitleText", input.readEntry("PixmapUnderTitleText"), true, true); - output->writeEntry("TitleFrameShaded", input.readEntry("TitleFrameShaded"), true, true); - - tmpStr = input.readEntry("MenuButton"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("menu", tmpStr, true, true); - tmpStr = input.readEntry("PinUpButton"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("pinup", tmpStr, true, true); - tmpStr = input.readEntry("PinDownButton"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("pindown", tmpStr, true, true); - tmpStr = input.readEntry("CloseButton"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("close", tmpStr, true, true); - tmpStr = input.readEntry("MaximizeButton"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("maximize", tmpStr, true, true); - tmpStr = input.readEntry("MaximizeDownButton"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("maximizedown", tmpStr, true, true); - tmpStr = input.readEntry("MinimizeButton"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("iconify", tmpStr, true, true); - tmpStr = input.readEntry("TitlebarPixmapActive"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("TitlebarPixmapActive", tmpStr, true, true); - tmpStr = input.readEntry("TitlebarPixmapInactive"); - if(!tmpStr.isEmpty()) - copy(srcStr+tmpStr, localDirStr+tmpStr); - output->writeEntry("TitlebarPixmapInactive", tmpStr, true, true); - - input.setGroup("Window Button Layout"); - output->setGroup("Buttons"); - output->writeEntry("ButtonA", input.readEntry("ButtonA"), true, true); - output->writeEntry("ButtonB", input.readEntry("ButtonB"), true, true); - output->writeEntry("ButtonC", input.readEntry("ButtonC"), true, true); - output->writeEntry("ButtonD", input.readEntry("ButtonD"), true, true); - output->writeEntry("ButtonE", input.readEntry("ButtonE"), true, true); - output->writeEntry("ButtonF", input.readEntry("ButtonF"), true, true); - - output->sync(); - - return(0); -} - diff --git a/kwin/clients/kwmtheme/kwmtheme.desktop b/kwin/clients/kwmtheme/kwmtheme.desktop deleted file mode 100644 index b34affaa7..000000000 --- a/kwin/clients/kwmtheme/kwmtheme.desktop +++ /dev/null @@ -1,81 +0,0 @@ -[Desktop Entry] -Name=KWM Theme -Name[af]=KWM Tema -Name[ar]=سمة KWM -Name[az]=KWM Örtüsü -Name[be]=Тэма KWM -Name[bn]=KWM থীম -Name[br]=Gwiskad KWM -Name[bs]=KWM Tema -Name[ca]=Tema KWM -Name[cs]=Téma KWM -Name[csb]=Témë KWM -Name[cy]=Thema KWM -Name[da]=KWM-tema -Name[de]=KWM-Design -Name[el]=Θέμα KWM -Name[eo]=KWM-etoso -Name[es]=Tema de KWM -Name[et]=KWM teema -Name[eu]=KWM gaia -Name[fa]=چهره KWM -Name[fi]=KWM-teema -Name[fr]=Thème KWM -Name[fy]=KWM-tema -Name[ga]=Téama KWM -Name[gl]=Tema do KWM -Name[hi]=केडबल्यूएम प्रसंग -Name[hr]=KWM tema -Name[hu]=KWM téma -Name[id]=Theme KWM -Name[is]=KWM þema -Name[it]=Tema KWM -Name[ja]=KWM テーマ -Name[ka]=KWM სტილი -Name[kk]=KWM нақышы -Name[km]=ស្បែក KWM -Name[ko]=KWM 테마 -Name[lo]=ແບບຕົວຈັດການຫນ້າຕ່າງ KWM -Name[lt]=KWM tema -Name[lv]=KWM Tēma -Name[mk]=KWM тема -Name[mn]=KWM-Хэлбэр -Name[ms]=Temas KWM -Name[mt]=Tema KWM -Name[nb]=KWM-tema -Name[nds]=KWM-Muster -Name[ne]=KWM विषयवस्तु -Name[nl]=KWM-thema -Name[nn]=KWM-tema -Name[nso]=Molaetsa wa KWM -Name[oc]=Tema KWM -Name[pa]=KWM ਸਰੂਪ -Name[pl]=Motyw KWM -Name[pt]=Tema KWM -Name[pt_BR]=Tema KWM -Name[ro]=Tematică KWM -Name[ru]=Стиль KWM -Name[rw]=Insanganyamatsiko KWM -Name[se]=KWM-fáddá -Name[sk]=Téma KWM -Name[sl]=Tema KWM -Name[sr]=KWM тема -Name[sr@Latn]=KWM tema -Name[ss]=Indzikimba ye KWM -Name[sv]=KWM-tema -Name[ta]=KWM தலைப்பு -Name[tg]=Услуби KWM -Name[th]=ชุดตกแต่งหน้าต่าง KWM -Name[tr]=KWM Teması -Name[tt]=KWM Tışlaw -Name[uk]=Тема KWM -Name[uz]=KWM mavzusi -Name[uz@cyrillic]=KWM мавзуси -Name[ven]=Thero ya KWM -Name[vi]=Sắc thái KWM -Name[wa]=Tinme KWM -Name[xh]=Umxholo we KWM -Name[zh_CN]=KWM 主题 -Name[zh_TW]=KWM 主題 -Name[zu]=Ingqikithi ye-KWM -X-KDE-Library=twin3_kwmtheme diff --git a/kwin/clients/kwmtheme/kwmthemeclient.cpp b/kwin/clients/kwmtheme/kwmthemeclient.cpp deleted file mode 100644 index 5d5e462f7..000000000 --- a/kwin/clients/kwmtheme/kwmthemeclient.cpp +++ /dev/null @@ -1,936 +0,0 @@ -#include <kconfig.h> -#include "kwmthemeclient.h" -#include <kglobal.h> -#include <tqlayout.h> -#include <tqdrawutil.h> -#include <tqpainter.h> -#include <kpixmapeffect.h> -#include <kstandarddirs.h> -#include <kdebug.h> -#include <klocale.h> -#include <tqbitmap.h> -#include <tqstyle.h> -#include <tqlabel.h> -#include <tqtooltip.h> - -namespace KWMTheme { - - -/* static TQPixmap stretchPixmap(TQPixmap& src, bool stretchVert){ - TQPixmap dest; - TQBitmap *srcMask, *destMask; - int w, h, w2, h2; - TQPainter p; - - if (src.isNull()) return src; - - w = src.width(); - h = src.height(); - - if (stretchVert){ - w2 = w; - for (h2=h; h2<100; h2=h2<<1) - ; - } - else{ - h2 = h; - for (w2=w; w2<100; w2=w2<<1) - ; - } - if (w2==w && h2==h) return src; - - dest = src; - dest.resize(w2, h2); - - p.begin(&dest); - p.drawTiledPixmap(0, 0, w2, h2, src); - p.end(); - - srcMask = (TQBitmap*)src.mask(); - if (srcMask){ - destMask = (TQBitmap*)dest.mask(); - p.begin(destMask); - p.drawTiledPixmap(0, 0, w2, h2, *srcMask); - p.end(); - } - return dest; -} */ - - -inline const KDecorationOptions* options() { return KDecoration::options(); } - -enum FramePixmap{FrameTop=0, FrameBottom, FrameLeft, FrameRight, FrameTopLeft, - FrameTopRight, FrameBottomLeft, FrameBottomRight}; - -static TQPixmap *framePixmaps[8]; -static TQPixmap *menuPix, *iconifyPix, *closePix, *maxPix, *minmaxPix, - *pinupPix, *pindownPix; -static KPixmap *aTitlePix = 0; -static KPixmap *iTitlePix = 0; -static KPixmapEffect::GradientType grType; -static int maxExtent, titleAlign; -static bool titleGradient = true; -static bool pixmaps_created = false; -static bool titleSunken = false; -static bool titleTransparent; - -static void create_pixmaps() -{ - const char *keys[] = {"wm_top", "wm_bottom", "wm_left", "wm_right", - "wm_topleft", "wm_topright", "wm_bottomleft", "wm_bottomright"}; - - if(pixmaps_created) - return; - pixmaps_created = true; - - KConfig *config = KGlobal::config(); - config->setGroup("General"); - TQString tmpStr; - - for(int i=0; i < 8; ++i) - { - framePixmaps[i] = new TQPixmap(locate("data", - "twin/pics/"+config->readEntry(keys[i], " "))); - if(framePixmaps[i]->isNull()) - kdWarning() << "Unable to load frame pixmap for " << keys[i] << endl; - } -/* - *framePixmaps[FrameTop] = stretchPixmap(*framePixmaps[FrameTop], false); - *framePixmaps[FrameBottom] = stretchPixmap(*framePixmaps[FrameBottom], false); - *framePixmaps[FrameLeft] = stretchPixmap(*framePixmaps[FrameLeft], true); - *framePixmaps[FrameRight] = stretchPixmap(*framePixmaps[FrameRight], true); -*/ - maxExtent = framePixmaps[FrameTop]->height(); - if(framePixmaps[FrameBottom]->height() > maxExtent) - maxExtent = framePixmaps[FrameBottom]->height(); - if(framePixmaps[FrameLeft]->width() > maxExtent) - maxExtent = framePixmaps[FrameLeft]->width(); - if(framePixmaps[FrameRight]->width() > maxExtent) - maxExtent = framePixmaps[FrameRight]->width(); - - maxExtent++; - - menuPix = new TQPixmap(locate("data", - "twin/pics/"+config->readEntry("menu", " "))); - iconifyPix = new TQPixmap(locate("data", - "twin/pics/"+config->readEntry("iconify", " "))); - maxPix = new TQPixmap(locate("appdata", - "pics/"+config->readEntry("maximize", " "))); - minmaxPix = new TQPixmap(locate("data", - "twin/pics/"+config->readEntry("maximizedown", " "))); - closePix = new TQPixmap(locate("data", - "twin/pics/"+config->readEntry("close", " "))); - pinupPix = new TQPixmap(locate("data", - "twin/pics/"+config->readEntry("pinup", " "))); - pindownPix = new TQPixmap(locate("data", - "twin/pics/"+config->readEntry("pindown", " "))); - if(menuPix->isNull()) - menuPix->load(locate("data", "twin/pics/menu.png")); - if(iconifyPix->isNull()) - iconifyPix->load(locate("data", "twin/pics/iconify.png")); - if(maxPix->isNull()) - maxPix->load(locate("data", "twin/pics/maximize.png")); - if(minmaxPix->isNull()) - minmaxPix->load(locate("data", "twin/pics/maximizedown.png")); - if(closePix->isNull()) - closePix->load(locate("data", "twin/pics/close.png")); - if(pinupPix->isNull()) - pinupPix->load(locate("data", "twin/pics/pinup.png")); - if(pindownPix->isNull()) - pindownPix->load(locate("data", "twin/pics/pindown.png")); - - tmpStr = config->readEntry("TitleAlignment"); - if(tmpStr == "right") - titleAlign = Qt::AlignRight | Qt::AlignVCenter; - else if(tmpStr == "middle") - titleAlign = Qt::AlignCenter; - else - titleAlign = Qt::AlignLeft | Qt::AlignVCenter; - titleSunken = config->readBoolEntry("TitleFrameShaded", true); - // titleSunken = true; // is this fixed? - titleTransparent = config->readBoolEntry("PixmapUnderTitleText", true); - - tmpStr = config->readEntry("TitlebarLook"); - if(tmpStr == "shadedVertical"){ - aTitlePix = new KPixmap; - aTitlePix->resize(32, 20); - KPixmapEffect::gradient(*aTitlePix, - options()->color(KDecorationOptions::ColorTitleBar, true), - options()->color(KDecorationOptions::ColorTitleBlend, true), - KPixmapEffect::VerticalGradient); - iTitlePix = new KPixmap; - iTitlePix->resize(32, 20); - KPixmapEffect::gradient(*iTitlePix, - options()->color(KDecorationOptions::ColorTitleBar, false), - options()->color(KDecorationOptions::ColorTitleBlend, false), - KPixmapEffect::VerticalGradient); - titleGradient = false; // we can just tile this - - } - else if(tmpStr == "shadedHorizontal") - grType = KPixmapEffect::HorizontalGradient; - else if(tmpStr == "shadedDiagonal") - grType = KPixmapEffect::DiagonalGradient; - else if(tmpStr == "shadedCrossDiagonal") - grType = KPixmapEffect::CrossDiagonalGradient; - else if(tmpStr == "shadedPyramid") - grType = KPixmapEffect::PyramidGradient; - else if(tmpStr == "shadedRectangle") - grType = KPixmapEffect::RectangleGradient; - else if(tmpStr == "shadedPipeCross") - grType = KPixmapEffect::PipeCrossGradient; - else if(tmpStr == "shadedElliptic") - grType = KPixmapEffect::EllipticGradient; - else{ - titleGradient = false; - tmpStr = config->readEntry("TitlebarPixmapActive", ""); - if(!tmpStr.isEmpty()){ - aTitlePix = new KPixmap; - aTitlePix->load(locate("data", "twin/pics/" + tmpStr)); - } - else - aTitlePix = NULL; - tmpStr = config->readEntry("TitlebarPixmapInactive", ""); - if(!tmpStr.isEmpty()){ - iTitlePix = new KPixmap; - iTitlePix->load(locate("data", "twin/pics/" + tmpStr)); - } - else - iTitlePix = NULL; - } -} - -static void delete_pixmaps() -{ - for(int i=0; i < 8; ++i) - delete framePixmaps[i]; - - delete menuPix; - delete iconifyPix; - delete closePix; - delete maxPix; - delete minmaxPix; - delete pinupPix; - delete pindownPix; - delete aTitlePix; - aTitlePix = 0; - delete iTitlePix; - iTitlePix = 0; - - titleGradient = true; - pixmaps_created = false; - titleSunken = false; -} - -void MyButton::drawButtonLabel(TQPainter *p) -{ - if(pixmap()){ - // If we have a theme who's button covers the entire width or - // entire height, we shift down/right by 1 pixel so we have - // some visual notification of button presses. i.e. for MGBriezh - int offset = (isDown() && ((pixmap()->width() >= width()) || - (pixmap()->height() >= height()))) ? 1 : 0; - style().drawItem(p, TQRect( offset, offset, width(), height() ), - AlignCenter, tqcolorGroup(), - true, pixmap(), TQString::null); - } -} - -KWMThemeClient::KWMThemeClient( KDecorationBridge* b, KDecorationFactory* f ) - : KDecoration( b, f ) -{ -} - -void KWMThemeClient::init() -{ - createMainWidget( WResizeNoErase | WStaticContents ); - widget()->installEventFilter( this ); - - stickyBtn = maxBtn = mnuBtn = 0; - layout = new TQGridLayout(widget()); - layout->addColSpacing(0, maxExtent); - layout->addColSpacing(2, maxExtent); - - layout->addRowSpacing(0, maxExtent); - - layout->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Fixed, - TQSizePolicy::Expanding)); - - if( isPreview()) - layout->addWidget( new TQLabel( i18n( "<center><b>KWMTheme</b></center>" ), widget()), 2, 1); - else - layout->addItem( new TQSpacerItem( 0, 0 ), 2, 1); - - // Without the next line, shading flickers - layout->addItem( new TQSpacerItem(0, 0, TQSizePolicy::Fixed, TQSizePolicy::Expanding) ); - layout->addRowSpacing(3, maxExtent); - layout->setRowStretch(2, 10); - layout->setColStretch(1, 10); - - TQBoxLayout* hb = new TQBoxLayout(0, TQBoxLayout::LeftToRight, 0, 0, 0); - layout->addLayout( hb, 1, 1 ); - - KConfig *config = KGlobal::config(); - config->setGroup("Buttons"); - TQString val; - MyButton *btn; - int i; - static const char *defaultButtons[]={"Menu","Sticky","Off","Iconify", - "Maximize","Close"}; - static const char keyOffsets[]={"ABCDEF"}; - for(i=0; i < 6; ++i){ - if(i == 3){ - titlebar = new TQSpacerItem(10, 20, TQSizePolicy::Expanding, - TQSizePolicy::Minimum ); - hb->addItem( titlebar ); - } - TQString key("Button"); - key += TQChar(keyOffsets[i]); - val = config->readEntry(key, defaultButtons[i]); - if(val == "Menu"){ - mnuBtn = new MyButton(widget(), "menu"); - TQToolTip::add( mnuBtn, i18n("Menu")); - iconChange(); - hb->addWidget(mnuBtn); - mnuBtn->setFixedSize(20, 20); - connect(mnuBtn, TQT_SIGNAL(pressed()), this, - TQT_SLOT(menuButtonPressed())); - } - else if(val == "Sticky"){ - stickyBtn = new MyButton(widget(), "sticky"); - TQToolTip::add( stickyBtn, i18n("Sticky")); - if (isOnAllDesktops()) - stickyBtn->setPixmap(*pindownPix); - else - stickyBtn->setPixmap(*pinupPix); - connect(stickyBtn, TQT_SIGNAL( clicked() ), this, TQT_SLOT(toggleOnAllDesktops())); - hb->addWidget(stickyBtn); - stickyBtn->setFixedSize(20, 20); - } - else if((val == "Iconify") && isMinimizable()){ - btn = new MyButton(widget(), "iconify"); - TQToolTip::add( btn, i18n("Minimize")); - btn->setPixmap(*iconifyPix); - connect(btn, TQT_SIGNAL(clicked()), this, TQT_SLOT(minimize())); - hb->addWidget(btn); - btn->setFixedSize(20, 20); - } - else if((val == "Maximize") && isMaximizable()){ - maxBtn = new MyButton(widget(), "max"); - TQToolTip::add( maxBtn, i18n("Maximize")); - maxBtn->setPixmap(*maxPix); - connect(maxBtn, TQT_SIGNAL(clicked()), this, TQT_SLOT(maximize())); - hb->addWidget(maxBtn); - maxBtn->setFixedSize(20, 20); - } - else if((val == "Close") && isCloseable()){ - btn = new MyButton(widget(), "close"); - TQToolTip::add( btn, i18n("Close")); - btn->setPixmap(*closePix); - connect(btn, TQT_SIGNAL(clicked()), this, TQT_SLOT(closeWindow())); - hb->addWidget(btn); - btn->setFixedSize(20, 20); - } - else{ - if((val != "Off") && - ((val == "Iconify") && !isMinimizable()) && - ((val == "Maximize") && !isMaximizable())) - kdWarning() << "KWin: Unrecognized button value: " << val << endl; - - } - } - if(titleGradient){ - aGradient = new KPixmap; - iGradient = new KPixmap; - } - else{ - aGradient = 0; - iGradient = 0; - } - widget()->setBackgroundMode(NoBackground); -} - -void KWMThemeClient::drawTitle(TQPainter &dest) -{ - TQRect titleRect = titlebar->geometry(); - TQRect r(0, 0, titleRect.width(), titleRect.height()); - TQPixmap buffer; - - if(buffer.width() == r.width()) - return; - - buffer.resize(r.size()); - TQPainter p; - p.begin(&buffer); - - if(titleSunken){ - qDrawShadeRect(&p, r, options()->tqcolorGroup(KDecorationOptions::ColorFrame, isActive()), - true, 1, 0); - r.setRect(r.x()+1, r.y()+1, r.width()-2, r.height()-2); - } - - KPixmap *fill = isActive() ? aTitlePix : iTitlePix; - if(fill) - p.drawTiledPixmap(r, *fill); - else if(titleGradient){ - fill = isActive() ? aGradient : iGradient; - if(fill->width() != r.width()){ - fill->resize(r.width(), 20); - KPixmapEffect::gradient(*fill, - options()->color(KDecorationOptions::ColorTitleBar, isActive()), - options()->color(KDecorationOptions::ColorTitleBlend, isActive()), - grType); - } - p.drawTiledPixmap(r, *fill); - } - else{ - p.fillRect(r, options()->tqcolorGroup(KDecorationOptions::ColorTitleBar, isActive()). - brush(TQColorGroup::Button)); - } - p.setFont(options()->font(isActive())); - p.setPen(options()->color(KDecorationOptions::ColorFont, isActive())); - // Add left & right margin - r.setLeft(r.left()+5); - r.setRight(r.right()-5); - p.drawText(r, titleAlign, caption()); - p.end(); - - dest.drawPixmap(titleRect.x(), titleRect.y(), buffer); -} - - -void KWMThemeClient::resizeEvent( TQResizeEvent* ) -{ - doShape(); - widget()->tqrepaint(); -} - -void KWMThemeClient::captionChange() -{ - widget()->tqrepaint( titlebar->geometry(), false ); -} - -void KWMThemeClient::paintEvent( TQPaintEvent *) -{ - TQPainter p; - p.begin(widget()); - int x,y; - // first the corners - int w1 = framePixmaps[FrameTopLeft]->width(); - int h1 = framePixmaps[FrameTopLeft]->height(); - if (w1 > width()/2) w1 = width()/2; - if (h1 > height()/2) h1 = height()/2; - p.drawPixmap(0,0,*framePixmaps[FrameTopLeft], - 0,0,w1, h1); - int w2 = framePixmaps[FrameTopRight]->width(); - int h2 = framePixmaps[FrameTopRight]->height(); - if (w2 > width()/2) w2 = width()/2; - if (h2 > height()/2) h2 = height()/2; - p.drawPixmap(width()-w2,0,*framePixmaps[FrameTopRight], - framePixmaps[FrameTopRight]->width()-w2,0,w2, h2); - - int w3 = framePixmaps[FrameBottomLeft]->width(); - int h3 = framePixmaps[FrameBottomLeft]->height(); - if (w3 > width()/2) w3 = width()/2; - if (h3 > height()/2) h3 = height()/2; - p.drawPixmap(0,height()-h3,*framePixmaps[FrameBottomLeft], - 0,framePixmaps[FrameBottomLeft]->height()-h3,w3, h3); - - int w4 = framePixmaps[FrameBottomRight]->width(); - int h4 = framePixmaps[FrameBottomRight]->height(); - if (w4 > width()/2) w4 = width()/2; - if (h4 > height()/2) h4 = height()/2; - p.drawPixmap(width()-w4,height()-h4,*(framePixmaps[FrameBottomRight]), - framePixmaps[FrameBottomRight]->width()-w4, - framePixmaps[FrameBottomRight]->height()-h4, - w4, h4); - - TQPixmap pm; - TQWMatrix m; - int n,s,w; - //top - pm = *framePixmaps[FrameTop]; - - if (pm.width() > 0){ - s = width()-w2-w1; - n = s/pm.width(); - w = n>0?s/n:s; - m.reset(); - m.scale(w/(float)pm.width(), 1); - pm = pm.xForm(m); - - x = w1; - while (1){ - if (pm.width() < width()-w2-x){ - p.drawPixmap(x,maxExtent-pm.height()-1, - pm); - x += pm.width(); - } - else { - p.drawPixmap(x,maxExtent-pm.height()-1, - pm, - 0,0,width()-w2-x,pm.height()); - break; - } - } - } - - //bottom - pm = *framePixmaps[FrameBottom]; - - if (pm.width() > 0){ - s = width()-w4-w3; - n = s/pm.width(); - w = n>0?s/n:s; - m.reset(); - m.scale(w/(float)pm.width(), 1); - pm = pm.xForm(m); - - x = w3; - while (1){ - if (pm.width() < width()-w4-x){ - p.drawPixmap(x,height()-maxExtent+1,pm); - x += pm.width(); - } - else { - p.drawPixmap(x,height()-maxExtent+1,pm, - 0,0,width()-w4-x,pm.height()); - break; - } - } - } - - //left - pm = *framePixmaps[FrameLeft]; - - if (pm.height() > 0){ - s = height()-h3-h1; - n = s/pm.height(); - w = n>0?s/n:s; - m.reset(); - m.scale(1, w/(float)pm.height()); - pm = pm.xForm(m); - - y = h1; - while (1){ - if (pm.height() < height()-h3-y){ - p.drawPixmap(maxExtent-pm.width()-1, y, - pm); - y += pm.height(); - } - else { - p.drawPixmap(maxExtent-pm.width()-1, y, - pm, - 0,0, pm.width(), - height()-h3-y); - break; - } - } - } - - //right - pm = *framePixmaps[FrameRight]; - - if (pm.height() > 0){ - s = height()-h4-h2; - n = s/pm.height(); - w = n>0?s/n:s; - m.reset(); - m.scale(1, w/(float)pm.height()); - pm = pm.xForm(m); - - y = h2; - while (1){ - if (pm.height() < height()-h4-y){ - p.drawPixmap(width()-maxExtent+1, y, - pm); - y += pm.height(); - } - else { - p.drawPixmap(width()-maxExtent+1, y, - pm, - 0,0, pm.width(), - height()-h4-y); - break; - } - } - } - drawTitle(p); - - TQColor c = widget()->tqcolorGroup().background(); - - // KWM evidently had a 1 pixel border around the client window. We - // emulate it here, but should be removed at some point in order to - // seamlessly mesh widget themes - p.setPen(c); - p.drawRect(maxExtent-1, maxExtent-1, width()-(maxExtent-1)*2, - height()-(maxExtent-1)*2); - - // We fill the area behind the wrapped widget to ensure that - // shading animation is drawn as smoothly as possible - TQRect r(layout->cellGeometry(2, 1)); - p.fillRect( r.x(), r.y(), r.width(), r.height(), c); - p.end(); -} - -void KWMThemeClient::doShape() -{ - - TQBitmap tqshapemask(width(), height()); - tqshapemask.fill(color0); - TQPainter p; - p.begin(&tqshapemask); - p.setBrush(color1); - p.setPen(color1); - int x,y; - // first the corners - int w1 = framePixmaps[FrameTopLeft]->width(); - int h1 = framePixmaps[FrameTopLeft]->height(); - if (w1 > width()/2) w1 = width()/2; - if (h1 > height()/2) h1 = height()/2; - if (framePixmaps[FrameTopLeft]->mask()) - p.drawPixmap(0,0,*framePixmaps[FrameTopLeft]->mask(), - 0,0,w1, h1); - else - p.fillRect(0,0,w1,h1,color1); - int w2 = framePixmaps[FrameTopRight]->width(); - int h2 = framePixmaps[FrameTopRight]->height(); - if (w2 > width()/2) w2 = width()/2; - if (h2 > height()/2) h2 = height()/2; - if (framePixmaps[FrameTopRight]->mask()) - p.drawPixmap(width()-w2,0,*framePixmaps[FrameTopRight]->mask(), - framePixmaps[FrameTopRight]->width()-w2,0,w2, h2); - else - p.fillRect(width()-w2,0,w2, h2,color1); - - int w3 = framePixmaps[FrameBottomLeft]->width(); - int h3 = framePixmaps[FrameBottomLeft]->height(); - if (w3 > width()/2) w3 = width()/2; - if (h3 > height()/2) h3 = height()/2; - if (framePixmaps[FrameBottomLeft]->mask()) - p.drawPixmap(0,height()-h3,*framePixmaps[FrameBottomLeft]->mask(), - 0,framePixmaps[FrameBottomLeft]->height()-h3,w3, h3); - else - p.fillRect(0,height()-h3,w3,h3,color1); - - int w4 = framePixmaps[FrameBottomRight]->width(); - int h4 = framePixmaps[FrameBottomRight]->height(); - if (w4 > width()/2) w4 = width()/2; - if (h4 > height()/2) h4 = height()/2; - if (framePixmaps[FrameBottomRight]->mask()) - p.drawPixmap(width()-w4,height()-h4,*framePixmaps[FrameBottomRight]->mask(), - framePixmaps[FrameBottomRight]->width()-w4, - framePixmaps[FrameBottomRight]->height()-h4, - w4, h4); - else - p.fillRect(width()-w4,height()-h4,w4,h4,color1); - - TQPixmap pm; - TQWMatrix m; - int n,s,w; - //top - if (framePixmaps[FrameTop]->mask()) - { - pm = *framePixmaps[FrameTop]->mask(); - - s = width()-w2-w1; - n = s/pm.width(); - w = n>0?s/n:s; - m.reset(); - m.scale(w/(float)pm.width(), 1); - pm = pm.xForm(m); - - x = w1; - while (1){ - if (pm.width() < width()-w2-x){ - p.drawPixmap(x,maxExtent-pm.height()-1, - pm); - x += pm.width(); - } - else { - p.drawPixmap(x,maxExtent-pm.height()-1, - pm, - 0,0,width()-w2-x,pm.height()); - break; - } - } - } - - //bottom - if (framePixmaps[FrameBottom]->mask()) - { - pm = *framePixmaps[FrameBottom]->mask(); - - s = width()-w4-w3; - n = s/pm.width(); - w = n>0?s/n:s; - m.reset(); - m.scale(w/(float)pm.width(), 1); - pm = pm.xForm(m); - - x = w3; - while (1){ - if (pm.width() < width()-w4-x){ - p.drawPixmap(x,height()-maxExtent+1,pm); - x += pm.width(); - } - else { - p.drawPixmap(x,height()-maxExtent+1,pm, - 0,0,width()-w4-x,pm.height()); - break; - } - } - } - - //left - if (framePixmaps[FrameLeft]->mask()) - { - pm = *framePixmaps[FrameLeft]->mask(); - - s = height()-h3-h1; - n = s/pm.height(); - w = n>0?s/n:s; - m.reset(); - m.scale(1, w/(float)pm.height()); - pm = pm.xForm(m); - - y = h1; - while (1){ - if (pm.height() < height()-h3-y){ - p.drawPixmap(maxExtent-pm.width()-1, y, - pm); - y += pm.height(); - } - else { - p.drawPixmap(maxExtent-pm.width()-1, y, - pm, - 0,0, pm.width(), - height()-h3-y); - break; - } - } - } - - //right - if (framePixmaps[FrameRight]->mask()) - { - pm = *framePixmaps[FrameRight]->mask(); - - s = height()-h4-h2; - n = s/pm.height(); - w = n>0?s/n:s; - m.reset(); - m.scale(1, w/(float)pm.height()); - pm = pm.xForm(m); - - y = h2; - while (1){ - if (pm.height() < height()-h4-y){ - p.drawPixmap(width()-maxExtent+1, y, - pm); - y += pm.height(); - } - else { - p.drawPixmap(width()-maxExtent+1, y, - pm, - 0,0, pm.width(), - height()-h4-y); - break; - } - } - } - p.fillRect(maxExtent-1, maxExtent-1, width()-2*maxExtent+2, height()-2*maxExtent+2, color1); - setMask(tqshapemask); -} - - -void KWMThemeClient::showEvent(TQShowEvent *) -{ - doShape(); - widget()->tqrepaint(false); -} - -void KWMThemeClient::mouseDoubleClickEvent( TQMouseEvent * e ) -{ - if (e->button() == LeftButton && titlebar->geometry().contains( e->pos() ) ) - titlebarDblClickOperation(); -} - -void KWMThemeClient::desktopChange() -{ - if (stickyBtn) { - bool on = isOnAllDesktops(); - stickyBtn->setPixmap(on ? *pindownPix : *pinupPix); - TQToolTip::remove( stickyBtn ); - TQToolTip::add( stickyBtn, on ? i18n("Unsticky") : i18n("Sticky") ); - } -} - -void KWMThemeClient::maximizeChange() -{ - if (maxBtn) { - bool m = maximizeMode() == MaximizeFull; - maxBtn->setPixmap(m ? *minmaxPix : *maxPix); - TQToolTip::remove( maxBtn ); - TQToolTip::add( maxBtn, m ? i18n("Restore") : i18n("Maximize")); - } -} - -void KWMThemeClient::slotMaximize() -{ - maximize( maximizeMode() == MaximizeFull ? MaximizeRestore : MaximizeFull ); -} - -void KWMThemeClient::activeChange() -{ - widget()->update(); -} - -KDecoration::Position KWMThemeClient::mousePosition(const TQPoint &p) const -{ - Position m = KDecoration::mousePosition(p); - // corners - if(p.y() < framePixmaps[FrameTop]->height() && - p.x() < framePixmaps[FrameLeft]->width()){ - m = PositionTopLeft; - } - else if(p.y() < framePixmaps[FrameTop]->height() && - p.x() > width()-framePixmaps[FrameRight]->width()){ - m = PositionTopRight; - } - else if(p.y() > height()-framePixmaps[FrameBottom]->height() && - p.x() < framePixmaps[FrameLeft]->width()){ - m = PositionBottomLeft; - } - else if(p.y() > height()-framePixmaps[FrameBottom]->height() && - p.x() > width()-framePixmaps[FrameRight]->width()){ - m = PositionBottomRight; - } // edges - else if(p.y() < framePixmaps[FrameTop]->height()) - m = PositionTop; - else if(p.y() > height()-framePixmaps[FrameBottom]->height()) - m = PositionBottom; - else if(p.x() < framePixmaps[FrameLeft]->width()) - m = PositionLeft; - else if(p.x() > width()-framePixmaps[FrameRight]->width()) - m = PositionRight; - return(m); -} - -void KWMThemeClient::menuButtonPressed() -{ - mnuBtn->setDown(false); // will stay down if I don't do this - TQPoint pos = mnuBtn->mapToGlobal(mnuBtn->rect().bottomLeft()); - showWindowMenu( pos ); -} - -void KWMThemeClient::iconChange() -{ - if(mnuBtn){ - if( icon().pixmap( TQIconSet::Small, TQIconSet::Normal ).isNull()){ - mnuBtn->setPixmap(*menuPix); - } - else{ - mnuBtn->setPixmap(icon().pixmap( TQIconSet::Small, TQIconSet::Normal )); - } - } -} - -bool KWMThemeClient::eventFilter( TQObject* o, TQEvent* e ) -{ - if ( o != widget() ) - return false; - - switch ( e->type() ) - { - case TQEvent::Resize: - resizeEvent( static_cast< TQResizeEvent* >( e ) ); - return true; - - case TQEvent::Paint: - paintEvent( static_cast< TQPaintEvent* >( e ) ); - return true; - - case TQEvent::MouseButtonDblClick: - mouseDoubleClickEvent( static_cast< TQMouseEvent* >( e ) ); - return true; - - case TQEvent::MouseButtonPress: - processMousePressEvent( static_cast< TQMouseEvent* >( e ) ); - return true; - - case TQEvent::Show: - showEvent( static_cast< TQShowEvent* >( e ) ); - return true; - - default: - return false; - } -} - -TQSize KWMThemeClient::tqminimumSize() const -{ - return widget()->tqminimumSize().expandedTo( TQSize( 100, 50 )); -} - -void KWMThemeClient::resize( const TQSize& s ) -{ - widget()->resize( s ); -} - -void KWMThemeClient::borders( int& left, int& right, int& top, int& bottom ) const -{ - left = - right = - top = - bottom = - -TODO -} - -KWMThemeFactory::KWMThemeFactory() -{ - create_pixmaps(); -} - -KWMThemeFactory::~KWMThemeFactory() -{ - delete_pixmaps(); -} - -KDecoration* KWMThemeFactory::createDecoration( KDecorationBridge* b ) -{ - return new KWMThemeClient( b, this ); -} - -bool KWMThemeFactory::reset( unsigned long mask ) -{ - bool needHardReset = false; - -TODO - - // doesn't obey the Border size setting - if( mask & ( SettingFont | SettingButtons )) - needHardReset = true; - - if( mask & ( SettingFont | SettingColors )) { - KWMTheme::delete_pixmaps(); - KWMTheme::create_pixmaps(); - } - - if( !needHardReset ) - resetDecorations( mask ); - return needHardReset; -} - -} - -extern "C" -{ - KDE_EXPORT KDecorationFactory *create_factory() - { - return new KWMTheme::KWMThemeFactory(); - } -} - -#include "kwmthemeclient.moc" diff --git a/kwin/clients/kwmtheme/kwmthemeclient.h b/kwin/clients/kwmtheme/kwmthemeclient.h deleted file mode 100644 index e51bfe6d1..000000000 --- a/kwin/clients/kwmtheme/kwmthemeclient.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef __KWMTHEMECLIENT_H -#define __KWMTHEMECLIENT_H - -#include <tqbutton.h> -#include <tqtoolbutton.h> -#include <kpixmap.h> -#include <kdecoration.h> -#include <kdecorationfactory.h> - -class TQLabel; -class TQSpacerItem; -class TQGridLayout; - -namespace KWMTheme { - -class MyButton : public TQToolButton -{ -public: - MyButton(TQWidget *parent=0, const char *name=0) - : TQToolButton(parent, name){setAutoRaise(true);setCursor( arrowCursor ); } -protected: - void drawButtonLabel(TQPainter *p); -}; - -class KWMThemeClient : public KDecoration -{ - Q_OBJECT -public: - KWMThemeClient( KDecorationBridge* b, KDecorationFactory* f ); - ~KWMThemeClient(){;} - void init(); - void resize( const TQSize& s ); - TQSize tqminimumSize() const; - void borders( int& left, int& right, int& top, int& bottom ) const; -protected: - void doShape(); - void drawTitle(TQPainter &p); - void resizeEvent( TQResizeEvent* ); - void paintEvent( TQPaintEvent* ); - void showEvent( TQShowEvent* ); - void mouseDoubleClickEvent( TQMouseEvent * ); - bool eventFilter( TQObject* o, TQEvent* e ); - void captionChange(); - void desktopChange(); - void maximizeChange(); - void iconChange(); - void activeChange(); - void shadeChange() {}; - Position mousePosition(const TQPoint &) const; -protected slots: - //void slotReset(); - void menuButtonPressed(); - void slotMaximize(); -private: - TQPixmap buffer; - KPixmap *aGradient, *iGradient; - MyButton *maxBtn, *stickyBtn, *mnuBtn; - TQSpacerItem *titlebar; - TQGridLayout* layout; -}; - -class KWMThemeFactory : public KDecorationFactory -{ -public: - KWMThemeFactory(); - ~KWMThemeFactory(); - KDecoration* createDecoration( KDecorationBridge* b ); - bool reset( unsigned long mask ); -}; - -} - -#endif - |