summaryrefslogtreecommitdiff
authorsandman <sandman>2002-12-22 17:19:22 (UTC)
committer sandman <sandman>2002-12-22 17:19:22 (UTC)
commitd7859bf6df42c36f87ecaa560754b3b3b3c2e78e (patch) (unidiff)
tree2419e9402ec70fb1e98a908b165c98b67b5b9e9a
parent275ce580b85be3b439bbb907efce5036c3282c56 (diff)
downloadopie-d7859bf6df42c36f87ecaa560754b3b3b3c2e78e.zip
opie-d7859bf6df42c36f87ecaa560754b3b3b3c2e78e.tar.gz
opie-d7859bf6df42c36f87ecaa560754b3b3b3c2e78e.tar.bz2
use the new Config::hasGroup method instead of a custom Config class
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/theme/othemebase.cpp14
1 files changed, 1 insertions, 13 deletions
diff --git a/noncore/styles/theme/othemebase.cpp b/noncore/styles/theme/othemebase.cpp
index acac847..62b3a11 100644
--- a/noncore/styles/theme/othemebase.cpp
+++ b/noncore/styles/theme/othemebase.cpp
@@ -1,787 +1,775 @@
1/* This file is part of the KDE libraries 1/* This file is part of the KDE libraries
2 Copyright (C) 1999 Daniel M. Duley <mosfet@kde.org> 2 Copyright (C) 1999 Daniel M. Duley <mosfet@kde.org>
3 3
4 This library is free software; you can redistribute it and/or 4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public 5 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation. 6 License version 2 as published by the Free Software Foundation.
7 7
8 This library is distributed in the hope that it will be useful, 8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 11 Library General Public License for more details.
12 12
13 You should have received a copy of the GNU Library General Public License 13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 16 Boston, MA 02111-1307, USA.
17*/ 17*/
18#include "othemebase.h" 18#include "othemebase.h"
19#include "ogfxeffect.h" 19#include "ogfxeffect.h"
20#include <qpe/qpeapplication.h> 20#include <qpe/qpeapplication.h>
21//#include <kdebug.h> 21//#include <kdebug.h>
22//#include <klocale.h> 22//#include <klocale.h>
23#include <qpe/config.h> 23#include <qpe/config.h>
24//#include <kglobal.h> 24//#include <kglobal.h>
25//#include <kglobalsettings.h> 25//#include <kglobalsettings.h>
26//#include <kstddirs.h> 26//#include <kstddirs.h>
27#include <qfile.h> 27#include <qfile.h>
28#include <qtextstream.h> 28#include <qtextstream.h>
29#include <qdir.h> 29#include <qdir.h>
30#include <qpainter.h> 30#include <qpainter.h>
31#include <qbitmap.h> 31#include <qbitmap.h>
32#include <stdlib.h> 32#include <stdlib.h>
33#include <qstringlist.h> 33#include <qstringlist.h>
34 34
35#include <stdio.h> 35#include <stdio.h>
36 36
37 37
38template class QIntCache<OThemePixmap> 38template class QIntCache<OThemePixmap>
39; 39;
40 40
41static const char *widgetEntries[] = 41static const char *widgetEntries[] =
42 { // unsunken widgets (see header) 42 { // unsunken widgets (see header)
43 "PushButton", "ComboBox", "HSBarSlider", "VSBarSlider", "Bevel", "ToolButton", 43 "PushButton", "ComboBox", "HSBarSlider", "VSBarSlider", "Bevel", "ToolButton",
44 "ScrollButton", "HScrollDeco", "VScrollDeco", "ComboDeco", "MenuItem", "Tab", 44 "ScrollButton", "HScrollDeco", "VScrollDeco", "ComboDeco", "MenuItem", "Tab",
45 "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", 45 "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight",
46 // sunken widgets 46 // sunken widgets
47 "PushButtonDown", "ComboBoxDown", "HSBarSliderDown", "VSBarSliderDown", 47 "PushButtonDown", "ComboBoxDown", "HSBarSliderDown", "VSBarSliderDown",
48 "BevelDown", "ToolButtonDown", "ScrollButtonDown", "HScrollDecoDown", 48 "BevelDown", "ToolButtonDown", "ScrollButtonDown", "HScrollDecoDown",
49 "VScrollDecoDown", "ComboDecoDown", "MenuItemDown", "TabDown", "SunkenArrowUp", 49 "VScrollDecoDown", "ComboDecoDown", "MenuItemDown", "TabDown", "SunkenArrowUp",
50 "SunkenArrowDown", "SunkenArrowLeft", "SunkenArrowRight", 50 "SunkenArrowDown", "SunkenArrowLeft", "SunkenArrowRight",
51 // everything else 51 // everything else
52 "HScrollGroove", "VScrollGroove", "Slider", "SliderGroove", "CheckBoxDown", 52 "HScrollGroove", "VScrollGroove", "Slider", "SliderGroove", "CheckBoxDown",
53 "CheckBox", "RadioDown", "Radio", "HBarHandle", "VBarHandle", 53 "CheckBox", "RadioDown", "Radio", "HBarHandle", "VBarHandle",
54 "ToolBar", "Splitter", "CheckMark", "MenuBar", "DisableArrowUp", 54 "ToolBar", "Splitter", "CheckMark", "MenuBar", "DisableArrowUp",
55 "DisableArrowDown", "DisableArrowLeft", "DisableArrowRight", "ProgressBar", 55 "DisableArrowDown", "DisableArrowLeft", "DisableArrowRight", "ProgressBar",
56 "ProgressBackground", "MenuBarItem", "Background" 56 "ProgressBackground", "MenuBarItem", "Background"
57 }; 57 };
58 58
59#define INHERIT_ITEMS 16 59#define INHERIT_ITEMS 16
60 60
61 61
62// This is used to encode the keys. I used to use masks but I think this 62// This is used to encode the keys. I used to use masks but I think this
63// bitfield is nicer :) I don't know why C++ coders don't use these more.. 63// bitfield is nicer :) I don't know why C++ coders don't use these more..
64// (mosfet) 64// (mosfet)
65struct kthemeKeyData 65struct kthemeKeyData
66{ 66{
67unsigned int id : 67unsigned int id :
68 6; 68 6;
69unsigned int width : 69unsigned int width :
70 12; 70 12;
71unsigned int height : 71unsigned int height :
72 12; 72 12;
73unsigned int border : 73unsigned int border :
74 1; 74 1;
75unsigned int mask : 75unsigned int mask :
76 1; 76 1;
77}; 77};
78 78
79union kthemeKey{ 79union kthemeKey{
80 kthemeKeyData data; 80 kthemeKeyData data;
81 unsigned int cacheKey; 81 unsigned int cacheKey;
82}; 82};
83 83
84class MyConfig : public Config
85{
86public:
87 MyConfig ( const QString &f, Domain d ) : Config ( f, d )
88 { }
89
90 bool hasGroup ( const QString &gname ) const
91 {
92 QMap< QString, ConfigGroup>::ConstIterator it = groups. find ( gname );
93 return ( it != groups.end() );
94 }
95};
96 84
97void OThemeBase::generateBorderPix( int i ) 85void OThemeBase::generateBorderPix( int i )
98{ 86{
99 // separate pixmap into separate components 87 // separate pixmap into separate components
100 if ( pbPixmaps[ i ] ) { 88 if ( pbPixmaps[ i ] ) {
101 // evidently I have to do masks manually... 89 // evidently I have to do masks manually...
102 const QBitmap * srcMask = pbPixmaps[ i ] ->mask(); 90 const QBitmap * srcMask = pbPixmaps[ i ] ->mask();
103 QBitmap destMask( pbWidth[ i ], pbWidth[ i ] ); 91 QBitmap destMask( pbWidth[ i ], pbWidth[ i ] );
104 QPixmap tmp( pbWidth[ i ], pbWidth[ i ] ); 92 QPixmap tmp( pbWidth[ i ], pbWidth[ i ] );
105 93
106 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, 0, pbWidth[ i ], pbWidth[ i ], 94 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, 0, pbWidth[ i ], pbWidth[ i ],
107 Qt::CopyROP, false ); 95 Qt::CopyROP, false );
108 if ( srcMask ) { 96 if ( srcMask ) {
109 bitBlt( &destMask, 0, 0, srcMask, 0, 0, pbWidth[ i ], pbWidth[ i ], 97 bitBlt( &destMask, 0, 0, srcMask, 0, 0, pbWidth[ i ], pbWidth[ i ],
110 Qt::CopyROP, false ); 98 Qt::CopyROP, false );
111 tmp.setMask( destMask ); 99 tmp.setMask( destMask );
112 } 100 }
113 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopLeft, tmp ); 101 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopLeft, tmp );
114 102
115 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 0, 103 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 0,
116 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 104 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
117 if ( srcMask ) { 105 if ( srcMask ) {
118 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 106 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
119 0, pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 107 0, pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
120 tmp.setMask( destMask ); 108 tmp.setMask( destMask );
121 } 109 }
122 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopRight, tmp ); 110 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopRight, tmp );
123 111
124 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbPixmaps[ i ] ->height() - pbWidth[ i ], 112 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbPixmaps[ i ] ->height() - pbWidth[ i ],
125 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 113 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
126 if ( srcMask ) { 114 if ( srcMask ) {
127 bitBlt( &destMask, 0, 0, srcMask, 0, pbPixmaps[ i ] ->height() - pbWidth[ i ], 115 bitBlt( &destMask, 0, 0, srcMask, 0, pbPixmaps[ i ] ->height() - pbWidth[ i ],
128 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 116 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
129 tmp.setMask( destMask ); 117 tmp.setMask( destMask );
130 } 118 }
131 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomLeft, tmp ); 119 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomLeft, tmp );
132 120
133 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 121 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ],
134 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ], 122 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ],
135 Qt::CopyROP, false ); 123 Qt::CopyROP, false );
136 if ( srcMask ) { 124 if ( srcMask ) {
137 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 125 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
138 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ], 126 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ],
139 Qt::CopyROP, false ); 127 Qt::CopyROP, false );
140 tmp.setMask( destMask ); 128 tmp.setMask( destMask );
141 } 129 }
142 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomRight, tmp ); 130 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomRight, tmp );
143 131
144 tmp.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] ); 132 tmp.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] );
145 destMask.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] ); 133 destMask.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] );
146 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 0, 134 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 0,
147 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 135 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
148 if ( srcMask ) { 136 if ( srcMask ) {
149 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 0, 137 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 0,
150 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], 138 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ],
151 Qt::CopyROP, false ); 139 Qt::CopyROP, false );
152 tmp.setMask( destMask ); 140 tmp.setMask( destMask );
153 } 141 }
154 pbPixmaps[ i ] ->setBorder( OThemePixmap::Top, tmp ); 142 pbPixmaps[ i ] ->setBorder( OThemePixmap::Top, tmp );
155 143
156 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 144 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ],
157 pbPixmaps[ i ] ->height() - pbWidth[ i ], 145 pbPixmaps[ i ] ->height() - pbWidth[ i ],
158 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 146 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
159 if ( srcMask ) { 147 if ( srcMask ) {
160 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 148 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ],
161 pbPixmaps[ i ] ->height() - pbWidth[ i ], 149 pbPixmaps[ i ] ->height() - pbWidth[ i ],
162 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 150 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
163 tmp.setMask( destMask ); 151 tmp.setMask( destMask );
164 } 152 }
165 pbPixmaps[ i ] ->setBorder( OThemePixmap::Bottom, tmp ); 153 pbPixmaps[ i ] ->setBorder( OThemePixmap::Bottom, tmp );
166 154
167 tmp.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 ); 155 tmp.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 );
168 destMask.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 ); 156 destMask.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 );
169 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbWidth[ i ], pbWidth[ i ], 157 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbWidth[ i ], pbWidth[ i ],
170 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false ); 158 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false );
171 if ( srcMask ) { 159 if ( srcMask ) {
172 bitBlt( &destMask, 0, 0, srcMask, 0, pbWidth[ i ], pbWidth[ i ], 160 bitBlt( &destMask, 0, 0, srcMask, 0, pbWidth[ i ], pbWidth[ i ],
173 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false ); 161 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false );
174 tmp.setMask( destMask ); 162 tmp.setMask( destMask );
175 } 163 }
176 164
177 pbPixmaps[ i ] ->setBorder( OThemePixmap::Left, tmp ); 165 pbPixmaps[ i ] ->setBorder( OThemePixmap::Left, tmp );
178 166
179 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 167 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ],
180 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, 168 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2,
181 Qt::CopyROP, false ); 169 Qt::CopyROP, false );
182 if ( srcMask ) { 170 if ( srcMask ) {
183 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 171 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
184 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, 172 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2,
185 Qt::CopyROP, false ); 173 Qt::CopyROP, false );
186 tmp.setMask( destMask ); 174 tmp.setMask( destMask );
187 } 175 }
188 pbPixmaps[ i ] ->setBorder( OThemePixmap::Right, tmp ); 176 pbPixmaps[ i ] ->setBorder( OThemePixmap::Right, tmp );
189 } 177 }
190 else 178 else
191 qDebug ( "OThemeBase: Tried making border from empty pixmap" ); 179 qDebug ( "OThemeBase: Tried making border from empty pixmap" );
192} 180}
193 181
194 182
195void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames, 183void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames,
196 QString *brdnames ) 184 QString *brdnames )
197{ 185{
198 scaleHints[ destID ] = scaleHints[ sourceID ]; 186 scaleHints[ destID ] = scaleHints[ sourceID ];
199 gradients[ destID ] = gradients[ sourceID ]; 187 gradients[ destID ] = gradients[ sourceID ];
200 blends[ destID ] = blends[ sourceID ]; 188 blends[ destID ] = blends[ sourceID ];
201 bContrasts[ destID ] = bContrasts[ sourceID ]; 189 bContrasts[ destID ] = bContrasts[ sourceID ];
202 borders[ destID ] = borders[ sourceID ]; 190 borders[ destID ] = borders[ sourceID ];
203 highlights[ destID ] = highlights[ sourceID ]; 191 highlights[ destID ] = highlights[ sourceID ];
204 192
205 if ( grLowColors[ sourceID ] ) 193 if ( grLowColors[ sourceID ] )
206 grLowColors[ destID ] = new QColor( *grLowColors[ sourceID ] ); 194 grLowColors[ destID ] = new QColor( *grLowColors[ sourceID ] );
207 else 195 else
208 grLowColors[ destID ] = NULL; 196 grLowColors[ destID ] = NULL;
209 197
210 if ( grHighColors[ sourceID ] ) 198 if ( grHighColors[ sourceID ] )
211 grHighColors[ destID ] = new QColor( *grHighColors[ sourceID ] ); 199 grHighColors[ destID ] = new QColor( *grHighColors[ sourceID ] );
212 else 200 else
213 grHighColors[ destID ] = NULL; 201 grHighColors[ destID ] = NULL;
214 202
215 if ( colors[ sourceID ] ) 203 if ( colors[ sourceID ] )
216 colors[ destID ] = new QColorGroup( *colors[ sourceID ] ); 204 colors[ destID ] = new QColorGroup( *colors[ sourceID ] );
217 else 205 else
218 colors[ destID ] = NULL; 206 colors[ destID ] = NULL;
219 207
220 // pixmap 208 // pixmap
221 pixnames[ destID ] = pixnames[ sourceID ]; 209 pixnames[ destID ] = pixnames[ sourceID ];
222 duplicate[ destID ] = false; 210 duplicate[ destID ] = false;
223 pixmaps[ destID ] = NULL; 211 pixmaps[ destID ] = NULL;
224 images[ destID ] = NULL; 212 images[ destID ] = NULL;
225 if ( !pixnames[ destID ].isEmpty() ) { 213 if ( !pixnames[ destID ].isEmpty() ) {
226 if ( scaleHints[ sourceID ] == TileScale && blends[ sourceID ] == 0.0 ) { 214 if ( scaleHints[ sourceID ] == TileScale && blends[ sourceID ] == 0.0 ) {
227 pixmaps[ destID ] = pixmaps[ sourceID ]; 215 pixmaps[ destID ] = pixmaps[ sourceID ];
228 duplicate[ destID ] = true; 216 duplicate[ destID ] = true;
229 } 217 }
230 if ( !duplicate[ destID ] ) { 218 if ( !duplicate[ destID ] ) {
231 pixmaps[ destID ] = loadPixmap( pixnames[ destID ] ); 219 pixmaps[ destID ] = loadPixmap( pixnames[ destID ] );
232 if ( scaleHints[ destID ] == TileScale && blends[ destID ] == 0.0 ) 220 if ( scaleHints[ destID ] == TileScale && blends[ destID ] == 0.0 )
233 images[ destID ] = NULL; 221 images[ destID ] = NULL;
234 else 222 else
235 images[ destID ] = loadImage( pixnames[ destID ] ); 223 images[ destID ] = loadImage( pixnames[ destID ] );
236 } 224 }
237 } 225 }
238 226
239 // border pixmap 227 // border pixmap
240 pbDuplicate[ destID ] = false; 228 pbDuplicate[ destID ] = false;
241 pbPixmaps[ destID ] = NULL; 229 pbPixmaps[ destID ] = NULL;
242 pbWidth[ destID ] = pbWidth[ sourceID ]; 230 pbWidth[ destID ] = pbWidth[ sourceID ];
243 brdnames[ destID ] = brdnames[ sourceID ]; 231 brdnames[ destID ] = brdnames[ sourceID ];
244 if ( !brdnames[ destID ].isEmpty() ) { 232 if ( !brdnames[ destID ].isEmpty() ) {
245 pbPixmaps[ destID ] = pbPixmaps[ sourceID ]; 233 pbPixmaps[ destID ] = pbPixmaps[ sourceID ];
246 pbDuplicate[ destID ] = true; 234 pbDuplicate[ destID ] = true;
247 } 235 }
248 236
249 if ( sourceID == ActiveTab && destID == InactiveTab ) 237 if ( sourceID == ActiveTab && destID == InactiveTab )
250 aTabLine = iTabLine; 238 aTabLine = iTabLine;
251 else if ( sourceID == InactiveTab && destID == ActiveTab ) 239 else if ( sourceID == InactiveTab && destID == ActiveTab )
252 iTabLine = aTabLine; 240 iTabLine = aTabLine;
253} 241}
254 242
255void OThemeBase::readConfig( Qt::GUIStyle /*style*/ ) 243void OThemeBase::readConfig( Qt::GUIStyle /*style*/ )
256{ 244{
257#define PREBLEND_ITEMS 12 245#define PREBLEND_ITEMS 12
258 static WidgetType preBlend[] = {Slider, IndicatorOn, IndicatorOff, 246 static WidgetType preBlend[] = {Slider, IndicatorOn, IndicatorOff,
259 ExIndicatorOn, ExIndicatorOff, HScrollDeco, VScrollDeco, HScrollDecoDown, 247 ExIndicatorOn, ExIndicatorOff, HScrollDeco, VScrollDeco, HScrollDecoDown,
260 VScrollDecoDown, ComboDeco, ComboDecoDown, CheckMark}; 248 VScrollDecoDown, ComboDeco, ComboDecoDown, CheckMark};
261 249
262 int i; 250 int i;
263 QString tmpStr; 251 QString tmpStr;
264 QString copyfrom[ WIDGETS ]; 252 QString copyfrom[ WIDGETS ];
265 QString pixnames[ WIDGETS ]; // used for duplicate check 253 QString pixnames[ WIDGETS ]; // used for duplicate check
266 QString brdnames[ WIDGETS ]; 254 QString brdnames[ WIDGETS ];
267 bool loaded[ WIDGETS ]; // used for preloading for CopyWidget 255 bool loaded[ WIDGETS ]; // used for preloading for CopyWidget
268 256
269 if ( configFileName.isEmpty() ) { 257 if ( configFileName.isEmpty() ) {
270 Config cfg ( "qpe" ); 258 Config cfg ( "qpe" );
271 cfg. setGroup ( "Appearance" ); 259 cfg. setGroup ( "Appearance" );
272 260
273 configFileName = cfg. readEntry ( "Theme", "default" ); 261 configFileName = cfg. readEntry ( "Theme", "default" );
274 } 262 }
275 MyConfig config( configFilePath + "/themes/" + configFileName + ".themerc" , Config::File ); 263 Config config( configFilePath + "/themes/" + configFileName + ".themerc" , Config::File );
276 264
277 //printf ( "Opened config file: %s\n", ( configFilePath + "/themes/" + configFileName + ".themerc" ). ascii()); 265 //printf ( "Opened config file: %s\n", ( configFilePath + "/themes/" + configFileName + ".themerc" ). ascii());
278 266
279 // Are we initalized? 267 // Are we initalized?
280 applyMiscResourceGroup( &config ); 268 applyMiscResourceGroup( &config );
281 for ( i = 0; i < INHERIT_ITEMS; ++i ) { 269 for ( i = 0; i < INHERIT_ITEMS; ++i ) {
282 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 270 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
283 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 271 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
284 } 272 }
285 for ( ; i < INHERIT_ITEMS*2; ++i ) { 273 for ( ; i < INHERIT_ITEMS*2; ++i ) {
286 if ( config.hasGroup( QString( widgetEntries[ i ] ) ) ) { 274 if ( config.hasGroup( QString( widgetEntries[ i ] ) ) ) {
287 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 275 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
288 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 276 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
289 } 277 }
290 else { 278 else {
291 copyfrom [ i ] = widgetEntries[ i - INHERIT_ITEMS ]; 279 copyfrom [ i ] = widgetEntries[ i - INHERIT_ITEMS ];
292 // printf ( "%d [%s]: copy=%s\n", i, widgetEntries [i], copyfrom [i].latin1()); 280 // printf ( "%d [%s]: copy=%s\n", i, widgetEntries [i], copyfrom [i].latin1());
293 } 281 }
294 } 282 }
295 for ( ; i < WIDGETS; ++i ) { 283 for ( ; i < WIDGETS; ++i ) {
296 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 284 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
297 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 285 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
298 } 286 }
299 287
300 // initalize defaults that may not be read 288 // initalize defaults that may not be read
301 for ( i = 0; i < WIDGETS; ++i ) 289 for ( i = 0; i < WIDGETS; ++i )
302 loaded[ i ] = false; 290 loaded[ i ] = false;
303 btnXShift = btnYShift = focus3DOffset = 0; 291 btnXShift = btnYShift = focus3DOffset = 0;
304 aTabLine = iTabLine = true; 292 aTabLine = iTabLine = true;
305 roundedButton = roundedCombo = roundedSlider = focus3D = false; 293 roundedButton = roundedCombo = roundedSlider = focus3D = false;
306 splitterWidth = 10; 294 splitterWidth = 10;
307 295
308 for ( i = 0; i < WIDGETS; ++i ) { 296 for ( i = 0; i < WIDGETS; ++i ) {
309 readResourceGroup( i, copyfrom, pixnames, brdnames, loaded ); 297 readResourceGroup( i, copyfrom, pixnames, brdnames, loaded );
310 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s, colors=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1(), (colors[i]?colors[i]->background().name().latin1():"<none)" )); 298 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s, colors=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1(), (colors[i]?colors[i]->background().name().latin1():"<none)" ));
311 } 299 }
312 300
313 // misc items 301 // misc items
314 readMiscResourceGroup(); 302 readMiscResourceGroup();
315 303
316 // Handle preblend items 304 // Handle preblend items
317 for ( i = 0; i < PREBLEND_ITEMS; ++i ) { 305 for ( i = 0; i < PREBLEND_ITEMS; ++i ) {
318 if ( pixmaps[ preBlend[ i ] ] != NULL && blends[ preBlend[ i ] ] != 0.0 ) 306 if ( pixmaps[ preBlend[ i ] ] != NULL && blends[ preBlend[ i ] ] != 0.0 )
319 blend( preBlend[ i ] ); 307 blend( preBlend[ i ] );
320 } 308 }
321} 309}
322 310
323OThemeBase::OThemeBase( const QString & configFile ) 311OThemeBase::OThemeBase( const QString & configFile )
324 : QWindowsStyle() 312 : QWindowsStyle()
325{ 313{
326 configFilePath = QPEApplication::qpeDir ( ) + "/plugins/styles/"; 314 configFilePath = QPEApplication::qpeDir ( ) + "/plugins/styles/";
327 configFileName = configFile; 315 configFileName = configFile;
328 316
329 readConfig( Qt::WindowsStyle ); 317 readConfig( Qt::WindowsStyle );
330 cache = new OThemeCache( cacheSize ); 318 cache = new OThemeCache( cacheSize );
331} 319}
332 320
333void OThemeBase::applyConfigFile( const QString &/*file*/ ) 321void OThemeBase::applyConfigFile( const QString &/*file*/ )
334{ 322{
335#if 0 323#if 0
336 // handle std color scheme 324 // handle std color scheme
337 Config inConfig( file, Config::File ); 325 Config inConfig( file, Config::File );
338 Config globalConfig ( "qpe" ); 326 Config globalConfig ( "qpe" );
339 327
340 globalConfig. setGroup ( "Apperance" ); 328 globalConfig. setGroup ( "Apperance" );
341 inConfig. setGroup( "General" ); 329 inConfig. setGroup( "General" );
342 330
343 if ( inConfig.hasKey( "foreground" ) ) 331 if ( inConfig.hasKey( "foreground" ) )
344 globalConfig.writeEntry( "Text", inConfig.readEntry( "foreground", " " ) ); 332 globalConfig.writeEntry( "Text", inConfig.readEntry( "foreground", " " ) );
345 if ( inConfig.hasKey( "background" ) ) 333 if ( inConfig.hasKey( "background" ) )
346 globalConfig.writeEntry( "Background", inConfig.readEntry( "background", " " ) ); 334 globalConfig.writeEntry( "Background", inConfig.readEntry( "background", " " ) );
347 if ( inConfig.hasKey( "selectForeground" ) ) 335 if ( inConfig.hasKey( "selectForeground" ) )
348 globalConfig.writeEntry( "HighlightedText", inConfig.readEntry( "selectForeground", " " ) ); 336 globalConfig.writeEntry( "HighlightedText", inConfig.readEntry( "selectForeground", " " ) );
349 if ( inConfig.hasKey( "selectBackground" ) ) 337 if ( inConfig.hasKey( "selectBackground" ) )
350 globalConfig.writeEntry( "Highlight", inConfig.readEntry( "selectBackground", " " ) ); 338 globalConfig.writeEntry( "Highlight", inConfig.readEntry( "selectBackground", " " ) );
351 if ( inConfig.hasKey( "windowForeground" ) ) 339 if ( inConfig.hasKey( "windowForeground" ) )
352 globalConfig.writeEntry( "Text", inConfig.readEntry( "windowForeground", " " ) ); 340 globalConfig.writeEntry( "Text", inConfig.readEntry( "windowForeground", " " ) );
353 if ( inConfig.hasKey( "windowBackground" ) ) 341 if ( inConfig.hasKey( "windowBackground" ) )
354 globalConfig.writeEntry( "Base", inConfig.readEntry( "windowBackground", " " ) ); 342 globalConfig.writeEntry( "Base", inConfig.readEntry( "windowBackground", " " ) );
355 343
356 // Keep track of the current theme so that we can select the right one 344 // Keep track of the current theme so that we can select the right one
357 // in the KControl module. 345 // in the KControl module.
358 globalConfig.writeEntry ( "CurrentTheme", file ); 346 globalConfig.writeEntry ( "CurrentTheme", file );
359 347
360 globalConfig.write(); 348 globalConfig.write();
361#endif 349#endif
362} 350}
363 351
364OThemeBase::~OThemeBase() 352OThemeBase::~OThemeBase()
365{ 353{
366 int i; 354 int i;
367 for ( i = 0; i < WIDGETS; ++i ) { 355 for ( i = 0; i < WIDGETS; ++i ) {
368 if ( !duplicate[ i ] ) { 356 if ( !duplicate[ i ] ) {
369 if ( images[ i ] ) 357 if ( images[ i ] )
370 delete images[ i ]; 358 delete images[ i ];
371 if ( pixmaps[ i ] ) 359 if ( pixmaps[ i ] )
372 delete pixmaps[ i ]; 360 delete pixmaps[ i ];
373 } 361 }
374 if ( !pbDuplicate[ i ] && pbPixmaps[ i ] ) 362 if ( !pbDuplicate[ i ] && pbPixmaps[ i ] )
375 delete pbPixmaps[ i ]; 363 delete pbPixmaps[ i ];
376 if ( colors[ i ] ) 364 if ( colors[ i ] )
377 delete( colors[ i ] ); 365 delete( colors[ i ] );
378 if ( grLowColors[ i ] ) 366 if ( grLowColors[ i ] )
379 delete( grLowColors[ i ] ); 367 delete( grLowColors[ i ] );
380 if ( grHighColors[ i ] ) 368 if ( grHighColors[ i ] )
381 delete( grHighColors[ i ] ); 369 delete( grHighColors[ i ] );
382 } 370 }
383 delete cache; 371 delete cache;
384} 372}
385 373
386QImage* OThemeBase::loadImage( QString &name ) 374QImage* OThemeBase::loadImage( QString &name )
387{ 375{
388 QImage * image = new QImage; 376 QImage * image = new QImage;
389 QString path = configFilePath + "/pixmaps/" + name; 377 QString path = configFilePath + "/pixmaps/" + name;
390 image->load( path ); 378 image->load( path );
391 if ( !image->isNull() ) 379 if ( !image->isNull() )
392 return ( image ); 380 return ( image );
393 qDebug ( "OThemeBase: Unable to load image %s\n", name.ascii ( ) ); 381 qDebug ( "OThemeBase: Unable to load image %s\n", name.ascii ( ) );
394 delete image; 382 delete image;
395 return ( NULL ); 383 return ( NULL );
396} 384}
397 385
398OThemePixmap* OThemeBase::loadPixmap( QString &name ) 386OThemePixmap* OThemeBase::loadPixmap( QString &name )
399{ 387{
400 OThemePixmap * pixmap = new OThemePixmap( false ); 388 OThemePixmap * pixmap = new OThemePixmap( false );
401 QString path = configFilePath + "/pixmaps/" + name; 389 QString path = configFilePath + "/pixmaps/" + name;
402 pixmap->load( path ); 390 pixmap->load( path );
403 if ( !pixmap->isNull() ) 391 if ( !pixmap->isNull() )
404 return pixmap; 392 return pixmap;
405 qDebug ( "OThemeBase: Unable to load pixmap %s\n", name.ascii() ); 393 qDebug ( "OThemeBase: Unable to load pixmap %s\n", name.ascii() );
406 delete pixmap; 394 delete pixmap;
407 return ( NULL ); 395 return ( NULL );
408} 396}
409 397
410OThemePixmap* OThemeBase::scale( int w, int h, WidgetType widget ) 398OThemePixmap* OThemeBase::scale( int w, int h, WidgetType widget )
411{ 399{
412 if ( scaleHints[ widget ] == FullScale ) { 400 if ( scaleHints[ widget ] == FullScale ) {
413 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || 401 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ||
414 pixmaps[ widget ] ->height() != h ) { 402 pixmaps[ widget ] ->height() != h ) {
415 OThemePixmap * cachePix = cache->pixmap( w, h, widget ); 403 OThemePixmap * cachePix = cache->pixmap( w, h, widget );
416 if ( cachePix ) { 404 if ( cachePix ) {
417 cachePix = new OThemePixmap( *cachePix ); 405 cachePix = new OThemePixmap( *cachePix );
418 if ( pixmaps[ widget ] ) 406 if ( pixmaps[ widget ] )
419 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, 407 cache->insert( pixmaps[ widget ], OThemeCache::FullScale,
420 widget ); 408 widget );
421 else 409 else
422 qDebug( "We would have inserted a null pixmap!\n" ); 410 qDebug( "We would have inserted a null pixmap!\n" );
423 pixmaps[ widget ] = cachePix; 411 pixmaps[ widget ] = cachePix;
424 } 412 }
425 else { 413 else {
426 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 414 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );
427 QImage tmpImg = images[ widget ] ->smoothScale( w, h ); 415 QImage tmpImg = images[ widget ] ->smoothScale( w, h );
428 pixmaps[ widget ] = new OThemePixmap; 416 pixmaps[ widget ] = new OThemePixmap;
429 pixmaps[ widget ] ->convertFromImage( tmpImg ); 417 pixmaps[ widget ] ->convertFromImage( tmpImg );
430 if ( blends[ widget ] != 0.0 ) 418 if ( blends[ widget ] != 0.0 )
431 blend( widget ); 419 blend( widget );
432 } 420 }
433 } 421 }
434 } 422 }
435 else if ( scaleHints[ widget ] == HorizontalScale ) { 423 else if ( scaleHints[ widget ] == HorizontalScale ) {
436 if ( pixmaps[ widget ] ->width() != w ) { 424 if ( pixmaps[ widget ] ->width() != w ) {
437 OThemePixmap * cachePix = cache->horizontalPixmap( w, widget ); 425 OThemePixmap * cachePix = cache->horizontalPixmap( w, widget );
438 if ( cachePix ) { 426 if ( cachePix ) {
439 cachePix = new OThemePixmap( *cachePix ); 427 cachePix = new OThemePixmap( *cachePix );
440 if ( pixmaps[ widget ] ) 428 if ( pixmaps[ widget ] )
441 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget ); 429 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget );
442 else 430 else
443 qDebug ( "We would have inserted a null pixmap!\n" ); 431 qDebug ( "We would have inserted a null pixmap!\n" );
444 pixmaps[ widget ] = cachePix; 432 pixmaps[ widget ] = cachePix;
445 } 433 }
446 else { 434 else {
447 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget ); 435 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget );
448 QImage tmpImg = images[ widget ] -> 436 QImage tmpImg = images[ widget ] ->
449 smoothScale( w, images[ widget ] ->height() ); 437 smoothScale( w, images[ widget ] ->height() );
450 pixmaps[ widget ] = new OThemePixmap; 438 pixmaps[ widget ] = new OThemePixmap;
451 pixmaps[ widget ] ->convertFromImage( tmpImg ); 439 pixmaps[ widget ] ->convertFromImage( tmpImg );
452 if ( blends[ widget ] != 0.0 ) 440 if ( blends[ widget ] != 0.0 )
453 blend( widget ); 441 blend( widget );
454 } 442 }
455 } 443 }
456 } 444 }
457 else if ( scaleHints[ widget ] == VerticalScale ) { 445 else if ( scaleHints[ widget ] == VerticalScale ) {
458 if ( pixmaps[ widget ] ->height() != h ) { 446 if ( pixmaps[ widget ] ->height() != h ) {
459 OThemePixmap * cachePix = cache->verticalPixmap( w, widget ); 447 OThemePixmap * cachePix = cache->verticalPixmap( w, widget );
460 if ( cachePix ) { 448 if ( cachePix ) {
461 cachePix = new OThemePixmap( *cachePix ); 449 cachePix = new OThemePixmap( *cachePix );
462 if ( pixmaps[ widget ] ) 450 if ( pixmaps[ widget ] )
463 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget ); 451 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget );
464 else 452 else
465 qDebug ( "We would have inserted a null pixmap!\n" ); 453 qDebug ( "We would have inserted a null pixmap!\n" );
466 pixmaps[ widget ] = cachePix; 454 pixmaps[ widget ] = cachePix;
467 } 455 }
468 else { 456 else {
469 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget ); 457 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget );
470 QImage tmpImg = 458 QImage tmpImg =
471 images[ widget ] ->smoothScale( images[ widget ] ->width(), h ); 459 images[ widget ] ->smoothScale( images[ widget ] ->width(), h );
472 pixmaps[ widget ] = new OThemePixmap; 460 pixmaps[ widget ] = new OThemePixmap;
473 pixmaps[ widget ] ->convertFromImage( tmpImg ); 461 pixmaps[ widget ] ->convertFromImage( tmpImg );
474 if ( blends[ widget ] != 0.0 ) 462 if ( blends[ widget ] != 0.0 )
475 blend( widget ); 463 blend( widget );
476 } 464 }
477 } 465 }
478 } 466 }
479 // If blended tile here so the blend is scaled properly 467 // If blended tile here so the blend is scaled properly
480 else if ( scaleHints[ widget ] == TileScale && blends[ widget ] != 0.0 ) { 468 else if ( scaleHints[ widget ] == TileScale && blends[ widget ] != 0.0 ) {
481 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || 469 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ||
482 pixmaps[ widget ] ->height() != h ) { 470 pixmaps[ widget ] ->height() != h ) {
483 OThemePixmap * cachePix = cache->pixmap( w, h, widget ); 471 OThemePixmap * cachePix = cache->pixmap( w, h, widget );
484 if ( cachePix ) { 472 if ( cachePix ) {
485 cachePix = new OThemePixmap( *cachePix ); 473 cachePix = new OThemePixmap( *cachePix );
486 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 474 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );
487 pixmaps[ widget ] = cachePix; 475 pixmaps[ widget ] = cachePix;
488 } 476 }
489 else { 477 else {
490 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 478 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );
491 QPixmap tile; 479 QPixmap tile;
492 tile.convertFromImage( *images[ widget ] ); 480 tile.convertFromImage( *images[ widget ] );
493 pixmaps[ widget ] = new OThemePixmap; 481 pixmaps[ widget ] = new OThemePixmap;
494 pixmaps[ widget ] ->resize( w, h ); 482 pixmaps[ widget ] ->resize( w, h );
495 QPainter p( pixmaps[ widget ] ); 483 QPainter p( pixmaps[ widget ] );
496 p.drawTiledPixmap( 0, 0, w, h, tile ); 484 p.drawTiledPixmap( 0, 0, w, h, tile );
497 if ( blends[ widget ] != 0.0 ) 485 if ( blends[ widget ] != 0.0 )
498 blend( widget ); 486 blend( widget );
499 } 487 }
500 } 488 }
501 } 489 }
502 return ( pixmaps[ widget ] ); 490 return ( pixmaps[ widget ] );
503} 491}
504 492
505OThemePixmap* OThemeBase::scaleBorder( int w, int h, WidgetType widget ) 493OThemePixmap* OThemeBase::scaleBorder( int w, int h, WidgetType widget )
506{ 494{
507 OThemePixmap * pixmap = NULL; 495 OThemePixmap * pixmap = NULL;
508 if ( !pbPixmaps[ widget ] && !pbWidth[ widget ] ) 496 if ( !pbPixmaps[ widget ] && !pbWidth[ widget ] )
509 return ( NULL ); 497 return ( NULL );
510 pixmap = cache->pixmap( w, h, widget, true ); 498 pixmap = cache->pixmap( w, h, widget, true );
511 if ( pixmap ) { 499 if ( pixmap ) {
512 pixmap = new OThemePixmap( *pixmap ); 500 pixmap = new OThemePixmap( *pixmap );
513 } 501 }
514 else { 502 else {
515 pixmap = new OThemePixmap(); 503 pixmap = new OThemePixmap();
516 pixmap->resize( w, h ); 504 pixmap->resize( w, h );
517 QBitmap mask; 505 QBitmap mask;
518 mask.resize( w, h ); 506 mask.resize( w, h );
519 mask.fill( color0 ); 507 mask.fill( color0 );
520 QPainter mPainter; 508 QPainter mPainter;
521 mPainter.begin( &mask ); 509 mPainter.begin( &mask );
522 510
523 QPixmap *tmp = borderPixmap( widget ) ->border( OThemePixmap::TopLeft ); 511 QPixmap *tmp = borderPixmap( widget ) ->border( OThemePixmap::TopLeft );
524 const QBitmap *srcMask = tmp->mask(); 512 const QBitmap *srcMask = tmp->mask();
525 int bdWidth = tmp->width(); 513 int bdWidth = tmp->width();
526 514
527 bitBlt( pixmap, 0, 0, tmp, 0, 0, bdWidth, bdWidth, 515 bitBlt( pixmap, 0, 0, tmp, 0, 0, bdWidth, bdWidth,
528 Qt::CopyROP, false ); 516 Qt::CopyROP, false );
529 if ( srcMask ) 517 if ( srcMask )
530 bitBlt( &mask, 0, 0, srcMask, 0, 0, bdWidth, bdWidth, 518 bitBlt( &mask, 0, 0, srcMask, 0, 0, bdWidth, bdWidth,
531 Qt::CopyROP, false ); 519 Qt::CopyROP, false );
532 else 520 else
533 mPainter.fillRect( 0, 0, bdWidth, bdWidth, color1 ); 521 mPainter.fillRect( 0, 0, bdWidth, bdWidth, color1 );
534 522
535 523
536 tmp = borderPixmap( widget ) ->border( OThemePixmap::TopRight ); 524 tmp = borderPixmap( widget ) ->border( OThemePixmap::TopRight );
537 srcMask = tmp->mask(); 525 srcMask = tmp->mask();
538 bitBlt( pixmap, w - bdWidth, 0, tmp, 0, 0, bdWidth, 526 bitBlt( pixmap, w - bdWidth, 0, tmp, 0, 0, bdWidth,
539 bdWidth, Qt::CopyROP, false ); 527 bdWidth, Qt::CopyROP, false );
540 if ( srcMask ) 528 if ( srcMask )
541 bitBlt( &mask, w - bdWidth, 0, srcMask, 0, 0, bdWidth, 529 bitBlt( &mask, w - bdWidth, 0, srcMask, 0, 0, bdWidth,
542 bdWidth, Qt::CopyROP, false ); 530 bdWidth, Qt::CopyROP, false );
543 else 531 else
544 mPainter.fillRect( w - bdWidth, 0, bdWidth, bdWidth, color1 ); 532 mPainter.fillRect( w - bdWidth, 0, bdWidth, bdWidth, color1 );
545 533
546 tmp = borderPixmap( widget ) ->border( OThemePixmap::BottomLeft ); 534 tmp = borderPixmap( widget ) ->border( OThemePixmap::BottomLeft );
547 srcMask = tmp->mask(); 535 srcMask = tmp->mask();
548 bitBlt( pixmap, 0, h - bdWidth, tmp, 0, 0, bdWidth, 536 bitBlt( pixmap, 0, h - bdWidth, tmp, 0, 0, bdWidth,
549 bdWidth, Qt::CopyROP, false ); 537 bdWidth, Qt::CopyROP, false );
550 if ( srcMask ) 538 if ( srcMask )
551 bitBlt( &mask, 0, h - bdWidth, srcMask, 0, 0, bdWidth, 539 bitBlt( &mask, 0, h - bdWidth, srcMask, 0, 0, bdWidth,
552 bdWidth, Qt::CopyROP, false ); 540 bdWidth, Qt::CopyROP, false );
553 else 541 else
554 mPainter.fillRect( 0, h - bdWidth, bdWidth, bdWidth, color1 ); 542 mPainter.fillRect( 0, h - bdWidth, bdWidth, bdWidth, color1 );
555 543
556 tmp = borderPixmap( widget ) ->border( OThemePixmap::BottomRight ); 544 tmp = borderPixmap( widget ) ->border( OThemePixmap::BottomRight );
557 srcMask = tmp->mask(); 545 srcMask = tmp->mask();
558 bitBlt( pixmap, w - bdWidth, h - bdWidth, tmp, 0, 0, 546 bitBlt( pixmap, w - bdWidth, h - bdWidth, tmp, 0, 0,
559 bdWidth, bdWidth, Qt::CopyROP, false ); 547 bdWidth, bdWidth, Qt::CopyROP, false );
560 if ( srcMask ) 548 if ( srcMask )
561 bitBlt( &mask, w - bdWidth, h - bdWidth, srcMask, 0, 0, 549 bitBlt( &mask, w - bdWidth, h - bdWidth, srcMask, 0, 0,
562 bdWidth, bdWidth, Qt::CopyROP, false ); 550 bdWidth, bdWidth, Qt::CopyROP, false );
563 else 551 else
564 mPainter.fillRect( w - bdWidth, h - bdWidth, bdWidth, bdWidth, color1 ); 552 mPainter.fillRect( w - bdWidth, h - bdWidth, bdWidth, bdWidth, color1 );
565 553
566 QPainter p; 554 QPainter p;
567 p.begin( pixmap ); 555 p.begin( pixmap );
568 if ( w - bdWidth * 2 > 0 ) { 556 if ( w - bdWidth * 2 > 0 ) {
569 tmp = borderPixmap( widget ) ->border( OThemePixmap::Top ); 557 tmp = borderPixmap( widget ) ->border( OThemePixmap::Top );
570 srcMask = tmp->mask(); 558 srcMask = tmp->mask();
571 p.drawTiledPixmap( bdWidth, 0, w - bdWidth * 2, bdWidth, *tmp ); 559 p.drawTiledPixmap( bdWidth, 0, w - bdWidth * 2, bdWidth, *tmp );
572 if ( srcMask ) 560 if ( srcMask )
573 mPainter.drawTiledPixmap( bdWidth, 0, w - bdWidth * 2, bdWidth, *srcMask ); 561 mPainter.drawTiledPixmap( bdWidth, 0, w - bdWidth * 2, bdWidth, *srcMask );
574 else 562 else
575 mPainter.fillRect( bdWidth, 0, w - bdWidth * 2, bdWidth, color1 ); 563 mPainter.fillRect( bdWidth, 0, w - bdWidth * 2, bdWidth, color1 );
576 564
577 tmp = borderPixmap( widget ) ->border( OThemePixmap::Bottom ); 565 tmp = borderPixmap( widget ) ->border( OThemePixmap::Bottom );
578 srcMask = tmp->mask(); 566 srcMask = tmp->mask();
579 p.drawTiledPixmap( bdWidth, h - bdWidth, w - bdWidth * 2, bdWidth, 567 p.drawTiledPixmap( bdWidth, h - bdWidth, w - bdWidth * 2, bdWidth,
580 *tmp ); 568 *tmp );
581 if ( srcMask ) 569 if ( srcMask )
582 mPainter.drawTiledPixmap( bdWidth, h - bdWidth, w - bdWidth * 2, bdWidth, *srcMask ); 570 mPainter.drawTiledPixmap( bdWidth, h - bdWidth, w - bdWidth * 2, bdWidth, *srcMask );
583 else 571 else
584 mPainter.fillRect( bdWidth, h - bdWidth, w - bdWidth * 2, bdWidth, 572 mPainter.fillRect( bdWidth, h - bdWidth, w - bdWidth * 2, bdWidth,
585 color1 ); 573 color1 );
586 } 574 }
587 if ( h - bdWidth * 2 > 0 ) { 575 if ( h - bdWidth * 2 > 0 ) {
588 tmp = borderPixmap( widget ) ->border( OThemePixmap::Left ); 576 tmp = borderPixmap( widget ) ->border( OThemePixmap::Left );
589 srcMask = tmp->mask(); 577 srcMask = tmp->mask();
590 p.drawTiledPixmap( 0, bdWidth, bdWidth, h - bdWidth * 2, *tmp ); 578 p.drawTiledPixmap( 0, bdWidth, bdWidth, h - bdWidth * 2, *tmp );
591 if ( srcMask ) 579 if ( srcMask )
592 mPainter.drawTiledPixmap( 0, bdWidth, bdWidth, h - bdWidth * 2, *srcMask ); 580 mPainter.drawTiledPixmap( 0, bdWidth, bdWidth, h - bdWidth * 2, *srcMask );
593 else 581 else
594 mPainter.fillRect( 0, bdWidth, bdWidth, h - bdWidth * 2, color1 ); 582 mPainter.fillRect( 0, bdWidth, bdWidth, h - bdWidth * 2, color1 );
595 583
596 tmp = borderPixmap( widget ) ->border( OThemePixmap::Right ); 584 tmp = borderPixmap( widget ) ->border( OThemePixmap::Right );
597 srcMask = tmp->mask(); 585 srcMask = tmp->mask();
598 p.drawTiledPixmap( w - bdWidth, bdWidth, bdWidth, h - bdWidth * 2, 586 p.drawTiledPixmap( w - bdWidth, bdWidth, bdWidth, h - bdWidth * 2,
599 *tmp ); 587 *tmp );
600 if ( srcMask ) 588 if ( srcMask )
601 mPainter.drawTiledPixmap( w - bdWidth, bdWidth, bdWidth, h - bdWidth * 2, *srcMask ); 589 mPainter.drawTiledPixmap( w - bdWidth, bdWidth, bdWidth, h - bdWidth * 2, *srcMask );
602 else 590 else
603 mPainter.fillRect( w - bdWidth, bdWidth, bdWidth, h - bdWidth * 2, color1 ); 591 mPainter.fillRect( w - bdWidth, bdWidth, bdWidth, h - bdWidth * 2, color1 );
604 } 592 }
605 p.end(); 593 p.end();
606 mPainter.end(); 594 mPainter.end();
607 pixmap->setMask( mask ); 595 pixmap->setMask( mask );
608 cache->insert( pixmap, OThemeCache::FullScale, widget, true ); 596 cache->insert( pixmap, OThemeCache::FullScale, widget, true );
609 if ( !pixmap->mask() ) 597 if ( !pixmap->mask() )
610 qDebug ( "No mask for border pixmap!\n" ); 598 qDebug ( "No mask for border pixmap!\n" );
611 } 599 }
612 return ( pixmap ); 600 return ( pixmap );
613} 601}
614 602
615 603
616OThemePixmap* OThemeBase::blend( WidgetType widget ) 604OThemePixmap* OThemeBase::blend( WidgetType widget )
617{ 605{
618 OGfxEffect::GradientType g; 606 OGfxEffect::GradientType g;
619 switch ( gradients[ widget ] ) { 607 switch ( gradients[ widget ] ) {
620 case GrHorizontal: 608 case GrHorizontal:
621 g = OGfxEffect::HorizontalGradient; 609 g = OGfxEffect::HorizontalGradient;
622 break; 610 break;
623 case GrVertical: 611 case GrVertical:
624 g = OGfxEffect::VerticalGradient; 612 g = OGfxEffect::VerticalGradient;
625 break; 613 break;
626 case GrPyramid: 614 case GrPyramid:
627 g = OGfxEffect::PyramidGradient; 615 g = OGfxEffect::PyramidGradient;
628 break; 616 break;
629 case GrRectangle: 617 case GrRectangle:
630 g = OGfxEffect::RectangleGradient; 618 g = OGfxEffect::RectangleGradient;
631 break; 619 break;
632 case GrElliptic: 620 case GrElliptic:
633 g = OGfxEffect::EllipticGradient; 621 g = OGfxEffect::EllipticGradient;
634 break; 622 break;
635 default: 623 default:
636 g = OGfxEffect::DiagonalGradient; 624 g = OGfxEffect::DiagonalGradient;
637 break; 625 break;
638 } 626 }
639 OGfxEffect::blend( *pixmaps[ widget ], blends[ widget ], *grLowColors[ widget ], 627 OGfxEffect::blend( *pixmaps[ widget ], blends[ widget ], *grLowColors[ widget ],
640 g, false ); 628 g, false );
641 return ( pixmaps[ widget ] ); 629 return ( pixmaps[ widget ] );
642} 630}
643 631
644OThemePixmap* OThemeBase::gradient( int w, int h, WidgetType widget ) 632OThemePixmap* OThemeBase::gradient( int w, int h, WidgetType widget )
645{ 633{
646 if ( gradients[ widget ] == GrVertical ) { 634 if ( gradients[ widget ] == GrVertical ) {
647 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->height() != h ) { 635 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->height() != h ) {
648 OThemePixmap * cachePix = cache->verticalPixmap( h, widget ); 636 OThemePixmap * cachePix = cache->verticalPixmap( h, widget );
649 if ( cachePix ) { 637 if ( cachePix ) {
650 cachePix = new OThemePixmap( *cachePix ); 638 cachePix = new OThemePixmap( *cachePix );
651 if ( pixmaps[ widget ] ) 639 if ( pixmaps[ widget ] )
652 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, 640 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale,
653 widget ); 641 widget );
654 pixmaps[ widget ] = cachePix; 642 pixmaps[ widget ] = cachePix;
655 } 643 }
656 else { 644 else {
657 if ( pixmaps[ widget ] ) 645 if ( pixmaps[ widget ] )
658 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, 646 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale,
659 widget ); 647 widget );
660 pixmaps[ widget ] = new OThemePixmap; 648 pixmaps[ widget ] = new OThemePixmap;
661 pixmaps[ widget ] ->resize( w, h ); 649 pixmaps[ widget ] ->resize( w, h );
662 OGfxEffect::gradient( *pixmaps[ widget ], *grHighColors[ widget ], 650 OGfxEffect::gradient( *pixmaps[ widget ], *grHighColors[ widget ],
663 *grLowColors[ widget ], 651 *grLowColors[ widget ],
664 OGfxEffect::VerticalGradient ); 652 OGfxEffect::VerticalGradient );
665 } 653 }
666 } 654 }
667 } 655 }
668 else if ( gradients[ widget ] == GrHorizontal ) { 656 else if ( gradients[ widget ] == GrHorizontal ) {
669 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ) { 657 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ) {
670 OThemePixmap * cachePix = cache->horizontalPixmap( w, widget ); 658 OThemePixmap * cachePix = cache->horizontalPixmap( w, widget );
671 if ( cachePix ) { 659 if ( cachePix ) {
672 cachePix = new OThemePixmap( *cachePix ); 660 cachePix = new OThemePixmap( *cachePix );
673 if ( pixmaps[ widget ] ) 661 if ( pixmaps[ widget ] )
674 cache->insert( pixmaps[ widget ], 662 cache->insert( pixmaps[ widget ],
675 OThemeCache::HorizontalScale, widget ); 663 OThemeCache::HorizontalScale, widget );
676 pixmaps[ widget ] = cachePix; 664 pixmaps[ widget ] = cachePix;
677 } 665 }
678 else { 666 else {
679 if ( pixmaps[ widget ] ) 667 if ( pixmaps[ widget ] )
680 cache->insert( pixmaps[ widget ], 668 cache->insert( pixmaps[ widget ],
681 OThemeCache::HorizontalScale, widget ); 669 OThemeCache::HorizontalScale, widget );
682 pixmaps[ widget ] = new OThemePixmap; 670 pixmaps[ widget ] = new OThemePixmap;
683 pixmaps[ widget ] ->resize( w, h ); 671 pixmaps[ widget ] ->resize( w, h );
684 OGfxEffect::gradient( *pixmaps[ widget ], *grHighColors[ widget ], 672 OGfxEffect::gradient( *pixmaps[ widget ], *grHighColors[ widget ],
685 *grLowColors[ widget ], 673 *grLowColors[ widget ],
686 OGfxEffect::HorizontalGradient ); 674 OGfxEffect::HorizontalGradient );
687 } 675 }
688 } 676 }
689 } 677 }
690 else if ( gradients[ widget ] == GrReverseBevel ) { 678 else if ( gradients[ widget ] == GrReverseBevel ) {
691 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || 679 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ||
692 pixmaps[ widget ] ->height() != h ) { 680 pixmaps[ widget ] ->height() != h ) {
693 OThemePixmap * cachePix = cache->pixmap( w, h, widget ); 681 OThemePixmap * cachePix = cache->pixmap( w, h, widget );
694 if ( cachePix ) { 682 if ( cachePix ) {
695 cachePix = new OThemePixmap( *cachePix ); 683 cachePix = new OThemePixmap( *cachePix );
696 if ( pixmaps[ widget ] ) 684 if ( pixmaps[ widget ] )
697 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, 685 cache->insert( pixmaps[ widget ], OThemeCache::FullScale,
698 widget ); 686 widget );
699 pixmaps[ widget ] = cachePix; 687 pixmaps[ widget ] = cachePix;
700 } 688 }
701 else { 689 else {
702 if ( pixmaps[ widget ] ) 690 if ( pixmaps[ widget ] )
703 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, 691 cache->insert( pixmaps[ widget ], OThemeCache::FullScale,
704 widget ); 692 widget );
705 pixmaps[ widget ] = new OThemePixmap; 693 pixmaps[ widget ] = new OThemePixmap;
706 pixmaps[ widget ] ->resize( w, h ); 694 pixmaps[ widget ] ->resize( w, h );
707 695
708 QPixmap s; 696 QPixmap s;
709 int offset = decoWidth( widget ); 697 int offset = decoWidth( widget );
710 s.resize( w - offset * 2, h - offset * 2 ); 698 s.resize( w - offset * 2, h - offset * 2 );
711 QColor lc( *grLowColors[ widget ] ); 699 QColor lc( *grLowColors[ widget ] );
712 QColor hc( *grHighColors[ widget ] ); 700 QColor hc( *grHighColors[ widget ] );
713 if ( bevelContrast( widget ) ) { 701 if ( bevelContrast( widget ) ) {
714 int bc = bevelContrast( widget ); 702 int bc = bevelContrast( widget );
715 // want single increments, not factors like light()/dark() 703 // want single increments, not factors like light()/dark()
716 lc.setRgb( lc.red() - bc, lc.green() - bc, lc.blue() - bc ); 704 lc.setRgb( lc.red() - bc, lc.green() - bc, lc.blue() - bc );
717 hc.setRgb( hc.red() + bc, hc.green() + bc, hc.blue() + bc ); 705 hc.setRgb( hc.red() + bc, hc.green() + bc, hc.blue() + bc );
718 } 706 }
719 OGfxEffect::gradient( *pixmaps[ widget ], 707 OGfxEffect::gradient( *pixmaps[ widget ],
720 lc, hc, 708 lc, hc,
721 OGfxEffect::DiagonalGradient ); 709 OGfxEffect::DiagonalGradient );
722 OGfxEffect::gradient( s, *grHighColors[ widget ], 710 OGfxEffect::gradient( s, *grHighColors[ widget ],
723 *grLowColors[ widget ], 711 *grLowColors[ widget ],
724 OGfxEffect::DiagonalGradient ); 712 OGfxEffect::DiagonalGradient );
725 bitBlt( pixmaps[ widget ], offset, offset, &s, 0, 0, w - offset * 2, 713 bitBlt( pixmaps[ widget ], offset, offset, &s, 0, 0, w - offset * 2,
726 h - offset * 2, Qt::CopyROP ); 714 h - offset * 2, Qt::CopyROP );
727 } 715 }
728 } 716 }
729 } 717 }
730 else { 718 else {
731 OGfxEffect::GradientType g; 719 OGfxEffect::GradientType g;
732 switch ( gradients[ widget ] ) { 720 switch ( gradients[ widget ] ) {
733 case GrPyramid: 721 case GrPyramid:
734 g = OGfxEffect::PyramidGradient; 722 g = OGfxEffect::PyramidGradient;
735 break; 723 break;
736 case GrRectangle: 724 case GrRectangle:
737 g = OGfxEffect::RectangleGradient; 725 g = OGfxEffect::RectangleGradient;
738 break; 726 break;
739 case GrElliptic: 727 case GrElliptic:
740 g = OGfxEffect::EllipticGradient; 728 g = OGfxEffect::EllipticGradient;
741 break; 729 break;
742 default: 730 default:
743 g = OGfxEffect::DiagonalGradient; 731 g = OGfxEffect::DiagonalGradient;
744 break; 732 break;
745 } 733 }
746 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || 734 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ||
747 pixmaps[ widget ] ->height() != h ) { 735 pixmaps[ widget ] ->height() != h ) {
748 OThemePixmap * cachePix = cache->pixmap( w, h, widget ); 736 OThemePixmap * cachePix = cache->pixmap( w, h, widget );
749 if ( cachePix ) { 737 if ( cachePix ) {
750 cachePix = new OThemePixmap( *cachePix ); 738 cachePix = new OThemePixmap( *cachePix );
751 if ( pixmaps[ widget ] ) 739 if ( pixmaps[ widget ] )
752 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, 740 cache->insert( pixmaps[ widget ], OThemeCache::FullScale,
753 widget ); 741 widget );
754 pixmaps[ widget ] = cachePix; 742 pixmaps[ widget ] = cachePix;
755 } 743 }
756 else { 744 else {
757 if ( pixmaps[ widget ] ) 745 if ( pixmaps[ widget ] )
758 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, 746 cache->insert( pixmaps[ widget ], OThemeCache::FullScale,
759 widget ); 747 widget );
760 pixmaps[ widget ] = new OThemePixmap; 748 pixmaps[ widget ] = new OThemePixmap;
761 pixmaps[ widget ] ->resize( w, h ); 749 pixmaps[ widget ] ->resize( w, h );
762 OGfxEffect::gradient( *pixmaps[ widget ], *grHighColors[ widget ], 750 OGfxEffect::gradient( *pixmaps[ widget ], *grHighColors[ widget ],
763 *grLowColors[ widget ], g ); 751 *grLowColors[ widget ], g );
764 } 752 }
765 } 753 }
766 } 754 }
767 return ( pixmaps[ widget ] ); 755 return ( pixmaps[ widget ] );
768} 756}
769 757
770OThemePixmap* OThemeBase::scalePixmap( int w, int h, WidgetType widget ) 758OThemePixmap* OThemeBase::scalePixmap( int w, int h, WidgetType widget )
771{ 759{
772 760
773 if ( gradients[ widget ] && blends[ widget ] == 0.0 ) 761 if ( gradients[ widget ] && blends[ widget ] == 0.0 )
774 return ( gradient( w, h, widget ) ); 762 return ( gradient( w, h, widget ) );
775 763
776 return ( scale( w, h, widget ) ); 764 return ( scale( w, h, widget ) );
777} 765}
778 766
779QColorGroup* OThemeBase::makeColorGroup( QColor &fg, QColor &bg, 767QColorGroup* OThemeBase::makeColorGroup( QColor &fg, QColor &bg,
780 Qt::GUIStyle ) 768 Qt::GUIStyle )
781{ 769{
782 if ( shading == Motif ) { 770 if ( shading == Motif ) {
783 int highlightVal, lowlightVal; 771 int highlightVal, lowlightVal;
784 highlightVal = 100 + ( 2* /*KGlobalSettings::contrast()*/ 3 + 4 ) * 16 / 10; 772 highlightVal = 100 + ( 2* /*KGlobalSettings::contrast()*/ 3 + 4 ) * 16 / 10;
785 lowlightVal = 100 + ( ( 2* /*KGlobalSettings::contrast()*/ 3 + 4 ) * 10 ); 773 lowlightVal = 100 + ( ( 2* /*KGlobalSettings::contrast()*/ 3 + 4 ) * 10 );
786 return ( new QColorGroup( fg, bg, bg.light( highlightVal ), 774 return ( new QColorGroup( fg, bg, bg.light( highlightVal ),
787 bg.dark( lowlightVal ), bg.dark( 120 ), 775 bg.dark( lowlightVal ), bg.dark( 120 ),