summaryrefslogtreecommitdiffstats
path: root/kwin/clients/kwmtheme
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/clients/kwmtheme')
-rw-r--r--kwin/clients/kwmtheme/Makefile.am15
-rw-r--r--kwin/clients/kwmtheme/cli_installer/Makefile.am18
-rw-r--r--kwin/clients/kwmtheme/cli_installer/main.cpp166
-rw-r--r--kwin/clients/kwmtheme/kwmtheme.desktop81
-rw-r--r--kwin/clients/kwmtheme/kwmthemeclient.cpp936
-rw-r--r--kwin/clients/kwmtheme/kwmthemeclient.h74
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
-