kwin/kcmkwin/kwindecoration/kwindecoration.h
Karol Szwed 4fdde98724 Completing move of kwm and kwindecoration to kwin/kcmkwin as discussed
on the kwin mailing list.

- kwm has been renamed and moved to kwin/kcmkwin/kwinoptions.
- kwindecoration has been moved to  kwin/kcmkwin/kwindecoration.

svn path=/trunk/kdebase/kcontrol/; revision=131923
2002-01-16 12:26:03 +00:00

105 lines
2.3 KiB
C++

/*
$Id$
This is the new kwindecoration kcontrol module
Copyright (c) 2001
Karol Szwed <gallium@kde.org>
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) <rik@kde.org>
*/
#ifndef KWINDECORATION_H
#define KWINDECORATION_H
#include <kcmodule.h>
#include <dcopobject.h>
#include <buttons.h>
#include <kconfig.h>
#include <klibloader.h>
#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<DecorationInfo> decorations;
QCheckBox* cbUseCustomButtonPositions;
// QCheckBox* cbUseMiniWindows;
QCheckBox* cbShowToolTips;
// 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