summaryrefslogtreecommitdiffstats
path: root/twin/kcmtwin/twindecoration/twindecoration.h
diff options
context:
space:
mode:
Diffstat (limited to 'twin/kcmtwin/twindecoration/twindecoration.h')
-rw-r--r--twin/kcmtwin/twindecoration/twindecoration.h148
1 files changed, 148 insertions, 0 deletions
diff --git a/twin/kcmtwin/twindecoration/twindecoration.h b/twin/kcmtwin/twindecoration/twindecoration.h
new file mode 100644
index 000000000..f6b535024
--- /dev/null
+++ b/twin/kcmtwin/twindecoration/twindecoration.h
@@ -0,0 +1,148 @@
+/*
+ This is the new twindecoration kcontrol module
+
+ Copyright (c) 2001
+ Karol Szwed <gallium@kde.org>
+ http://gallium.n3.net/
+
+ Supports new twin configuration plugins, and titlebar button position
+ modification via dnd interface.
+
+ Based on original "twintheme" (Window Borders)
+ Copyright (C) 2001 Rik Hemsley (rikkus) <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; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef KWINDECORATION_H
+#define KWINDECORATION_H
+
+#include <kcmodule.h>
+#include <dcopobject.h>
+#include <buttons.h>
+#include <kconfig.h>
+#include <klibloader.h>
+
+#include <kdecoration.h>
+
+#include "twindecorationIface.h"
+
+class KComboBox;
+class TQCheckBox;
+class TQLabel;
+class TQTabWidget;
+class TQVBox;
+class TQSlider;
+
+class KDecorationPlugins;
+class KDecorationPreview;
+
+// Stores themeName and its corresponding library Name
+struct DecorationInfo
+{
+ TQString name;
+ TQString libraryName;
+};
+
+
+class KWinDecorationModule : public KCModule, virtual public KWinDecorationIface, public KDecorationDefines
+{
+ Q_OBJECT
+
+ public:
+ KWinDecorationModule(TQWidget* parent, const char* name, const TQStringList &);
+ ~KWinDecorationModule();
+
+ virtual void load();
+ virtual void save();
+ virtual void defaults();
+
+ TQString quickHelp() const;
+
+ virtual void dcopUpdateClientList();
+
+ signals:
+ void pluginLoad( KConfig* conf );
+ void pluginSave( KConfig* conf );
+ void pluginDefaults();
+
+ protected slots:
+ // Allows us to turn "save" on
+ void slotSelectionChanged();
+ void slotChangeDecoration( const TQString & );
+ void slotBorderChanged( int );
+ void slotButtonsChanged();
+
+ private:
+ void readConfig( KConfig* conf );
+ void writeConfig( KConfig* conf );
+ void findDecorations();
+ void createDecorationList();
+ void updateSelection();
+ TQString decorationLibName( const TQString& name );
+ TQString decorationName ( TQString& libName );
+ static TQString styleToConfigLib( TQString& styleLib );
+ void resetPlugin( KConfig* conf, const TQString& currentDecoName = TQString::null );
+ void resetKWin();
+ void checkSupportedBorderSizes();
+ static int borderSizeToIndex( BorderSize size, TQValueList< BorderSize > sizes );
+ static BorderSize indexToBorderSize( int index, TQValueList< BorderSize > sizes );
+
+ TQTabWidget* tabWidget;
+
+ // Page 1
+ KComboBox* decorationList;
+ TQValueList<DecorationInfo> decorations;
+
+ KDecorationPreview* preview;
+ KDecorationPlugins* plugins;
+ KConfig twinConfig;
+
+ TQCheckBox* cbUseCustomButtonPositions;
+ // TQCheckBox* cbUseMiniWindows;
+ TQCheckBox* cbShowToolTips;
+ TQLabel* lBorder;
+ TQComboBox* cBorder;
+ BorderSize border_size;
+
+ TQObject* pluginObject;
+ TQWidget* pluginConfigWidget;
+ TQString currentLibraryName;
+ TQString oldLibraryName;
+ TQObject* (*allocatePlugin)( KConfig* conf, TQWidget* parent );
+
+ // Page 2
+ ButtonPositionWidget *buttonPositionWidget;
+ TQVBox* buttonPage;
+
+ // Page 3
+ TQVBox *shadowPage;
+ KColorButton *inactiveShadowColourButton, *shadowColourButton;
+ TQCheckBox *cbShadowDocks, *cbShadowOverrides, *cbShadowTopMenus;
+ TQCheckBox *cbInactiveShadow, *cbWindowShadow;
+ TQGroupBox *activeShadowSettings, *inactiveShadowSettings;
+ TQGroupBox *whichShadowSettings;
+ TQSlider *inactiveShadowOpacitySlider, *shadowOpacitySlider;
+ TQSpinBox *inactiveShadowOpacitySpinBox, *shadowOpacitySpinBox;
+ TQSpinBox *inactiveShadowXOffsetSpinBox, *shadowXOffsetSpinBox;
+ TQSpinBox *inactiveShadowYOffsetSpinBox, *shadowYOffsetSpinBox;
+ TQSpinBox *inactiveShadowThicknessSpinBox, *shadowThicknessSpinBox;
+};
+
+
+#endif
+// vim: ts=4
+// kate: space-indent off; tab-width 4;