You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebase/kpersonalizer/kstylepage.h

129 lines
3.8 KiB

/***************************************************************************
kstylepage.h - description
-------------------
begin : Tue May 22 2001
copyright : (C) 2001 by Ralf Nolden
email : nolden@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. *
* *
***************************************************************************/
#ifndef KSTYLEPAGE_H
#define KSTYLEPAGE_H
#include <qcolor.h>
#include "kstylepagedlg.h"
/**Abstract class for the style page
*@author Ralf Nolden
*/
class QListViewItem;
class KStylePage : public KStylePageDlg {
Q_OBJECT
public:
KStylePage(QWidget *parent=0, const char *name=0);
~KStylePage();
void save(bool curSettings=true);
/** resets to KDE style as default */
void setDefaults();
/** set the preview-widgets' style to the currently selected */
void switchPrevStyle();
private:
QString origStyle;
QString origKWinStyle;
QString origIcons;
QString defaultKWinStyle;
QString currentStyle;
KConfig* ckwin;
struct colorSet {
QString colorFile, bgMode;
int contrast;
QColor usrCol1, usrCol2;
QColor foreground;
QColor background;
QColor windowForeground;
QColor windowBackground;
QColor selectForeground;
QColor selectBackground;
QColor buttonForeground;
QColor buttonBackground;
QColor linkColor;
QColor visitedLinkColor;
QColor activeForeground;
QColor inactiveForeground;
QColor activeBackground;
QColor inactiveBackground;
QColor activeBlend;
QColor inactiveBlend;
QColor activeTitleBtnBg;
QColor inactiveTitleBtnBg;
QColor alternateBackground;
} usrColors, currentColors;
// first, the KDE 2 default color values
QColor widget;
QColor kde34Blue;
QColor inactiveBackground;
QColor activeBackground;
QColor button;
QColor link;
QColor visitedLink;
QColor activeBlend;
QColor activeTitleBtnBg;
QColor inactiveTitleBtnBg;
QColor inactiveForeground;
QColor alternateBackground;
QListViewItem * kde;
QListViewItem * classic;
QListViewItem * keramik;
QListViewItem * cde;
QListViewItem * win;
QListViewItem * platinum;
QStyle *appliedStyle;
// widget-style existence
bool kde_hc_exist, kde_def_exist, kde_keramik_exist, kde_light_exist,
cde_exist, win_exist, platinum_exist, kde_plastik_exist;
// kwin-style-existence
bool kwin_keramik_exist, kwin_default_exist, kwin_system_exist,
kwin_win_exist, kwin_cde_exist, kwin_quartz_exist, kwin_plastik_exist;
// icon-theme-existence
bool icon_crystalsvg_exist, icon_kdeclassic_exist, icon_Locolor_exist;
public slots: // Public slots
/** to be connected to the OS page. Catches either KDE, CDE, win or mac and pre-sets the style. */
void presetStyle(const QString& style);
private:
void saveColors(bool curSettings=true);
void saveStyle(bool curSettings=true);
void saveKWin(bool curSettings=true);
void saveIcons(bool curSettings=true);
void getAvailability();
void getUserDefaults();
void initColors();
void liveUpdate();
void getColors(colorSet *set, bool colorfile );
void setStyleRecursive(QWidget* w, QPalette &, QStyle* s);
void changeCurrentStyle();
QPalette createPalette();
private slots:
void slotCurrentChanged();
};
#endif