1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/***************************************************************************
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
|