/* $Id$ This is the new kwindecoration kcontrol module Copyright (c) 2001 Karol Szwed http://gallium.n3.net/ Supports new kwin configuration plugins, and titlebar button position modification via dnd interface. Based on original "kwintheme" (Window Borders) Copyright (C) 2001 Rik Hemsley (rikkus) */ #ifndef KWINDECORATION_H #define KWINDECORATION_H #include #include #include #include #include #include "kwindecorationIface.h" class QListBox; class QCheckBox; class QTabWidget; class QVBox; // Stores themeName and its corresponding library Name struct DecorationInfo { QString name; QString libraryName; }; class KWinDecorationModule : public KCModule, virtual public KWinDecorationIface { Q_OBJECT public: KWinDecorationModule(QWidget* parent, const char* name, const QStringList &); ~KWinDecorationModule(); virtual void load(); virtual void save(); virtual void defaults(); QString quickHelp() const; const KAboutData* aboutData() const; virtual void dcopUpdateClientList(); signals: void changed(bool); void pluginLoad( KConfig* conf ); void pluginSave( KConfig* conf ); void pluginDefaults(); protected slots: // Allows us to turn "save" on void slotSelectionChanged(); void slotEnableButtonTab(bool on); void slotDecorationHighlighted( const QString& s ); private: void readConfig( KConfig* conf ); void writeConfig( KConfig* conf ); void findDecorations(); void createDecorationList(); void updateSelection(); QString decorationLibName( const QString& name ); QString decorationName ( QString& libName ); void resetPlugin( KConfig* conf, const QString* currentDecoName = 0 ); void resetKWin(); QTabWidget* tabWidget; // Page 1 QListBox* decorationListBox; QValueList decorations; QCheckBox* cbUseCustomButtonPositions; // QCheckBox* cbUseMiniWindows; QCheckBox* cbShowToolTips; QCheckBox* cbReverseBIDIWindows; // Page 2 ButtonDropSite* dropSite; ButtonSource* buttonSource; // Page 3 QObject* pluginObject; QString currentLibraryName; QString oldLibraryName; QVBox* pluginPage; QVBox* buttonPage; QObject* (*allocatePlugin)( KConfig* conf, QWidget* parent ); }; #endif // vim: ts=4