/* * KCMStyle * Copyright (C) 2002 Karol Szwed * Copyright (C) 2002 Daniel Molkentin * Copyright (C) 2007 Urs Wolfer * * Portions Copyright (C) TrollTech AS. * * Based on kcmdisplay * Copyright (C) 1997-2002 kcmdisplay Authors. * (see Help -> About Style Settings) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License version 2 as published by the Free Software Foundation. * * 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; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef KCMSTYLE_H #define KCMSTYLE_H #include #include #include #include #include #include "ui_finetuning.h" class KComboBox; class KConfig; #include #include #include #include class StylePreview; #include struct StyleEntry { QString name; QString desc; QString configPage; bool hidden; }; class KCMStyle : public KCModule { Q_OBJECT public: KCMStyle( QWidget* parent, const QVariantList& ); ~KCMStyle(); virtual void load(); virtual void save(); virtual void defaults(); protected: bool findStyle( const QString& str, int& combobox_item ); void switchStyle(const QString& styleName, bool force = false); void setStyleRecursive(QWidget* w, QStyle* s); void loadStyle( KConfig& config ); void loadEffects( KConfig& config ); virtual void changeEvent( QEvent *event ); protected Q_SLOTS: void styleSpecificConfig(); void updateConfigButton(); void setStyleDirty(); void setEffectsDirty(); void styleChanged(); private: QString currentStyle(); static QString toolbarButtonText(int index); static int toolbarButtonIndex(const QString &text); bool m_bStyleDirty, m_bEffectsDirty; QHash styleEntries; QMap nameToStyleKey; QVBoxLayout* mainLayout; QTabWidget* tabWidget; QWidget *page0, *page1, *page2; QVBoxLayout* page1Layout; // Page1 widgets QVBoxLayout* gbWidgetStyleLayout; QHBoxLayout* hbLayout; KComboBox* cbStyle; QPushButton* pbConfigStyle; QLabel* lblStyleDesc; StylePreview* stylePreview; QStyle* appliedStyle; QPalette palette; // Page2 widgets Ui::FineTuning fineTuningUi; }; #endif // __KCMSTYLE_H // vim: set noet ts=4: