summaryrefslogtreecommitdiff
authorsandman <sandman>2002-09-27 01:24:35 (UTC)
committer sandman <sandman>2002-09-27 01:24:35 (UTC)
commit599a9ab17fd0bbaf612d04b74cf152d4943919e5 (patch) (unidiff)
treeae1d9f6fdeca12eee2e49474cf755d62995b9979
parentafac99bfbfedb9bfc48bc7e55b806aa9cc80dd96 (diff)
downloadopie-599a9ab17fd0bbaf612d04b74cf152d4943919e5.zip
opie-599a9ab17fd0bbaf612d04b74cf152d4943919e5.tar.gz
opie-599a9ab17fd0bbaf612d04b74cf152d4943919e5.tar.bz2
commented out a bunch of debug printf's
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/theme/othemebase.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/noncore/styles/theme/othemebase.cpp b/noncore/styles/theme/othemebase.cpp
index 21d16f2..58005b5 100644
--- a/noncore/styles/theme/othemebase.cpp
+++ b/noncore/styles/theme/othemebase.cpp
@@ -1,565 +1,566 @@
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
37template class QIntCache<OThemePixmap> 38template class QIntCache<OThemePixmap>
38; 39;
39 40
40static const char *widgetEntries[] = 41static const char *widgetEntries[] =
41 { // unsunken widgets (see header) 42 { // unsunken widgets (see header)
42 "PushButton", "ComboBox", "HSBarSlider", "VSBarSlider", "Bevel", "ToolButton", 43 "PushButton", "ComboBox", "HSBarSlider", "VSBarSlider", "Bevel", "ToolButton",
43 "ScrollButton", "HScrollDeco", "VScrollDeco", "ComboDeco", "MenuItem", "Tab", 44 "ScrollButton", "HScrollDeco", "VScrollDeco", "ComboDeco", "MenuItem", "Tab",
44 "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", 45 "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight",
45 // sunken widgets 46 // sunken widgets
46 "PushButtonDown", "ComboBoxDown", "HSBarSliderDown", "VSBarSliderDown", 47 "PushButtonDown", "ComboBoxDown", "HSBarSliderDown", "VSBarSliderDown",
47 "BevelDown", "ToolButtonDown", "ScrollButtonDown", "HScrollDecoDown", 48 "BevelDown", "ToolButtonDown", "ScrollButtonDown", "HScrollDecoDown",
48 "VScrollDecoDown", "ComboDecoDown", "MenuItemDown", "TabDown", "SunkenArrowUp", 49 "VScrollDecoDown", "ComboDecoDown", "MenuItemDown", "TabDown", "SunkenArrowUp",
49 "SunkenArrowDown", "SunkenArrowLeft", "SunkenArrowRight", 50 "SunkenArrowDown", "SunkenArrowLeft", "SunkenArrowRight",
50 // everything else 51 // everything else
51 "HScrollGroove", "VScrollGroove", "Slider", "SliderGroove", "CheckBoxDown", 52 "HScrollGroove", "VScrollGroove", "Slider", "SliderGroove", "CheckBoxDown",
52 "CheckBox", "RadioDown", "Radio", "HBarHandle", "VBarHandle", 53 "CheckBox", "RadioDown", "Radio", "HBarHandle", "VBarHandle",
53 "ToolBar", "Splitter", "CheckMark", "MenuBar", "DisableArrowUp", 54 "ToolBar", "Splitter", "CheckMark", "MenuBar", "DisableArrowUp",
54 "DisableArrowDown", "DisableArrowLeft", "DisableArrowRight", "ProgressBar", 55 "DisableArrowDown", "DisableArrowLeft", "DisableArrowRight", "ProgressBar",
55 "ProgressBackground", "MenuBarItem", "Background" 56 "ProgressBackground", "MenuBarItem", "Background"
56 }; 57 };
57 58
58#define INHERIT_ITEMS 16 59#define INHERIT_ITEMS 16
59 60
60 61
61// 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
62// 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..
63// (mosfet) 64// (mosfet)
64struct kthemeKeyData 65struct kthemeKeyData
65{ 66{
66unsigned int id : 67unsigned int id :
67 6; 68 6;
68unsigned int width : 69unsigned int width :
69 12; 70 12;
70unsigned int height : 71unsigned int height :
71 12; 72 12;
72unsigned int border : 73unsigned int border :
73 1; 74 1;
74unsigned int mask : 75unsigned int mask :
75 1; 76 1;
76}; 77};
77 78
78union kthemeKey{ 79union kthemeKey{
79 kthemeKeyData data; 80 kthemeKeyData data;
80 unsigned int cacheKey; 81 unsigned int cacheKey;
81}; 82};
82 83
83class MyConfig : public Config 84class MyConfig : public Config
84{ 85{
85public: 86public:
86 MyConfig ( const QString &f, Domain d ) : Config ( f, d ) 87 MyConfig ( const QString &f, Domain d ) : Config ( f, d )
87 { } 88 { }
88 89
89 bool hasGroup ( const QString &gname ) const 90 bool hasGroup ( const QString &gname ) const
90 { 91 {
91 QMap< QString, ConfigGroup>::ConstIterator it = groups. find ( gname ); 92 QMap< QString, ConfigGroup>::ConstIterator it = groups. find ( gname );
92 return ( it != groups.end() ); 93 return ( it != groups.end() );
93 } 94 }
94}; 95};
95 96
96void OThemeBase::generateBorderPix( int i ) 97void OThemeBase::generateBorderPix( int i )
97{ 98{
98 // separate pixmap into separate components 99 // separate pixmap into separate components
99 if ( pbPixmaps[ i ] ) { 100 if ( pbPixmaps[ i ] ) {
100 // evidently I have to do masks manually... 101 // evidently I have to do masks manually...
101 const QBitmap * srcMask = pbPixmaps[ i ] ->mask(); 102 const QBitmap * srcMask = pbPixmaps[ i ] ->mask();
102 QBitmap destMask( pbWidth[ i ], pbWidth[ i ] ); 103 QBitmap destMask( pbWidth[ i ], pbWidth[ i ] );
103 QPixmap tmp( pbWidth[ i ], pbWidth[ i ] ); 104 QPixmap tmp( pbWidth[ i ], pbWidth[ i ] );
104 105
105 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, 0, pbWidth[ i ], pbWidth[ i ], 106 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, 0, pbWidth[ i ], pbWidth[ i ],
106 Qt::CopyROP, false ); 107 Qt::CopyROP, false );
107 if ( srcMask ) { 108 if ( srcMask ) {
108 bitBlt( &destMask, 0, 0, srcMask, 0, 0, pbWidth[ i ], pbWidth[ i ], 109 bitBlt( &destMask, 0, 0, srcMask, 0, 0, pbWidth[ i ], pbWidth[ i ],
109 Qt::CopyROP, false ); 110 Qt::CopyROP, false );
110 tmp.setMask( destMask ); 111 tmp.setMask( destMask );
111 } 112 }
112 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopLeft, tmp ); 113 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopLeft, tmp );
113 114
114 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 0, 115 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 0,
115 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 116 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
116 if ( srcMask ) { 117 if ( srcMask ) {
117 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 118 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
118 0, pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 119 0, pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
119 tmp.setMask( destMask ); 120 tmp.setMask( destMask );
120 } 121 }
121 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopRight, tmp ); 122 pbPixmaps[ i ] ->setBorder( OThemePixmap::TopRight, tmp );
122 123
123 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbPixmaps[ i ] ->height() - pbWidth[ i ], 124 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbPixmaps[ i ] ->height() - pbWidth[ i ],
124 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 125 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
125 if ( srcMask ) { 126 if ( srcMask ) {
126 bitBlt( &destMask, 0, 0, srcMask, 0, pbPixmaps[ i ] ->height() - pbWidth[ i ], 127 bitBlt( &destMask, 0, 0, srcMask, 0, pbPixmaps[ i ] ->height() - pbWidth[ i ],
127 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false ); 128 pbWidth[ i ], pbWidth[ i ], Qt::CopyROP, false );
128 tmp.setMask( destMask ); 129 tmp.setMask( destMask );
129 } 130 }
130 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomLeft, tmp ); 131 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomLeft, tmp );
131 132
132 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 133 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ],
133 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ], 134 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ],
134 Qt::CopyROP, false ); 135 Qt::CopyROP, false );
135 if ( srcMask ) { 136 if ( srcMask ) {
136 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 137 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
137 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ], 138 pbPixmaps[ i ] ->height() - pbWidth[ i ], pbWidth[ i ], pbWidth[ i ],
138 Qt::CopyROP, false ); 139 Qt::CopyROP, false );
139 tmp.setMask( destMask ); 140 tmp.setMask( destMask );
140 } 141 }
141 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomRight, tmp ); 142 pbPixmaps[ i ] ->setBorder( OThemePixmap::BottomRight, tmp );
142 143
143 tmp.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] ); 144 tmp.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] );
144 destMask.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] ); 145 destMask.resize( pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ] );
145 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 0, 146 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 0,
146 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 147 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
147 if ( srcMask ) { 148 if ( srcMask ) {
148 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 0, 149 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 0,
149 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], 150 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ],
150 Qt::CopyROP, false ); 151 Qt::CopyROP, false );
151 tmp.setMask( destMask ); 152 tmp.setMask( destMask );
152 } 153 }
153 pbPixmaps[ i ] ->setBorder( OThemePixmap::Top, tmp ); 154 pbPixmaps[ i ] ->setBorder( OThemePixmap::Top, tmp );
154 155
155 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ], 156 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbWidth[ i ],
156 pbPixmaps[ i ] ->height() - pbWidth[ i ], 157 pbPixmaps[ i ] ->height() - pbWidth[ i ],
157 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 158 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
158 if ( srcMask ) { 159 if ( srcMask ) {
159 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ], 160 bitBlt( &destMask, 0, 0, srcMask, pbWidth[ i ],
160 pbPixmaps[ i ] ->height() - pbWidth[ i ], 161 pbPixmaps[ i ] ->height() - pbWidth[ i ],
161 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false ); 162 pbPixmaps[ i ] ->width() - pbWidth[ i ] * 2, pbWidth[ i ], Qt::CopyROP, false );
162 tmp.setMask( destMask ); 163 tmp.setMask( destMask );
163 } 164 }
164 pbPixmaps[ i ] ->setBorder( OThemePixmap::Bottom, tmp ); 165 pbPixmaps[ i ] ->setBorder( OThemePixmap::Bottom, tmp );
165 166
166 tmp.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 ); 167 tmp.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 );
167 destMask.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 ); 168 destMask.resize( pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2 );
168 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbWidth[ i ], pbWidth[ i ], 169 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], 0, pbWidth[ i ], pbWidth[ i ],
169 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false ); 170 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false );
170 if ( srcMask ) { 171 if ( srcMask ) {
171 bitBlt( &destMask, 0, 0, srcMask, 0, pbWidth[ i ], pbWidth[ i ], 172 bitBlt( &destMask, 0, 0, srcMask, 0, pbWidth[ i ], pbWidth[ i ],
172 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false ); 173 pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, Qt::CopyROP, false );
173 tmp.setMask( destMask ); 174 tmp.setMask( destMask );
174 } 175 }
175 176
176 pbPixmaps[ i ] ->setBorder( OThemePixmap::Left, tmp ); 177 pbPixmaps[ i ] ->setBorder( OThemePixmap::Left, tmp );
177 178
178 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ], 179 bitBlt( &tmp, 0, 0, pbPixmaps[ i ], pbPixmaps[ i ] ->width() - pbWidth[ i ],
179 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, 180 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2,
180 Qt::CopyROP, false ); 181 Qt::CopyROP, false );
181 if ( srcMask ) { 182 if ( srcMask ) {
182 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ], 183 bitBlt( &destMask, 0, 0, srcMask, pbPixmaps[ i ] ->width() - pbWidth[ i ],
183 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2, 184 pbWidth[ i ], pbWidth[ i ], pbPixmaps[ i ] ->height() - pbWidth[ i ] * 2,
184 Qt::CopyROP, false ); 185 Qt::CopyROP, false );
185 tmp.setMask( destMask ); 186 tmp.setMask( destMask );
186 } 187 }
187 pbPixmaps[ i ] ->setBorder( OThemePixmap::Right, tmp ); 188 pbPixmaps[ i ] ->setBorder( OThemePixmap::Right, tmp );
188 } 189 }
189 else 190 else
190 qDebug ( "OThemeBase: Tried making border from empty pixmap" ); 191 qDebug ( "OThemeBase: Tried making border from empty pixmap" );
191} 192}
192 193
193 194
194void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames, 195void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames,
195 QString *brdnames ) 196 QString *brdnames )
196{ 197{
197 scaleHints[ destID ] = scaleHints[ sourceID ]; 198 scaleHints[ destID ] = scaleHints[ sourceID ];
198 gradients[ destID ] = gradients[ sourceID ]; 199 gradients[ destID ] = gradients[ sourceID ];
199 blends[ destID ] = blends[ sourceID ]; 200 blends[ destID ] = blends[ sourceID ];
200 bContrasts[ destID ] = bContrasts[ sourceID ]; 201 bContrasts[ destID ] = bContrasts[ sourceID ];
201 borders[ destID ] = borders[ sourceID ]; 202 borders[ destID ] = borders[ sourceID ];
202 highlights[ destID ] = highlights[ sourceID ]; 203 highlights[ destID ] = highlights[ sourceID ];
203 204
204 if ( grLowColors[ sourceID ] ) 205 if ( grLowColors[ sourceID ] )
205 grLowColors[ destID ] = new QColor( *grLowColors[ sourceID ] ); 206 grLowColors[ destID ] = new QColor( *grLowColors[ sourceID ] );
206 else 207 else
207 grLowColors[ destID ] = NULL; 208 grLowColors[ destID ] = NULL;
208 209
209 if ( grHighColors[ sourceID ] ) 210 if ( grHighColors[ sourceID ] )
210 grHighColors[ destID ] = new QColor( *grHighColors[ sourceID ] ); 211 grHighColors[ destID ] = new QColor( *grHighColors[ sourceID ] );
211 else 212 else
212 grHighColors[ destID ] = NULL; 213 grHighColors[ destID ] = NULL;
213 214
214 if ( colors[ sourceID ] ) 215 if ( colors[ sourceID ] )
215 colors[ destID ] = new QColorGroup( *colors[ sourceID ] ); 216 colors[ destID ] = new QColorGroup( *colors[ sourceID ] );
216 else 217 else
217 colors[ destID ] = NULL; 218 colors[ destID ] = NULL;
218 219
219 // pixmap 220 // pixmap
220 pixnames[ destID ] = pixnames[ sourceID ]; 221 pixnames[ destID ] = pixnames[ sourceID ];
221 duplicate[ destID ] = false; 222 duplicate[ destID ] = false;
222 pixmaps[ destID ] = NULL; 223 pixmaps[ destID ] = NULL;
223 images[ destID ] = NULL; 224 images[ destID ] = NULL;
224 if ( !pixnames[ destID ].isEmpty() ) { 225 if ( !pixnames[ destID ].isEmpty() ) {
225 if ( scaleHints[ sourceID ] == TileScale && blends[ sourceID ] == 0.0 ) { 226 if ( scaleHints[ sourceID ] == TileScale && blends[ sourceID ] == 0.0 ) {
226 pixmaps[ destID ] = pixmaps[ sourceID ]; 227 pixmaps[ destID ] = pixmaps[ sourceID ];
227 duplicate[ destID ] = true; 228 duplicate[ destID ] = true;
228 } 229 }
229 if ( !duplicate[ destID ] ) { 230 if ( !duplicate[ destID ] ) {
230 pixmaps[ destID ] = loadPixmap( pixnames[ destID ] ); 231 pixmaps[ destID ] = loadPixmap( pixnames[ destID ] );
231 if ( scaleHints[ destID ] == TileScale && blends[ destID ] == 0.0 ) 232 if ( scaleHints[ destID ] == TileScale && blends[ destID ] == 0.0 )
232 images[ destID ] = NULL; 233 images[ destID ] = NULL;
233 else 234 else
234 images[ destID ] = loadImage( pixnames[ destID ] ); 235 images[ destID ] = loadImage( pixnames[ destID ] );
235 } 236 }
236 } 237 }
237 238
238 // border pixmap 239 // border pixmap
239 pbDuplicate[ destID ] = false; 240 pbDuplicate[ destID ] = false;
240 pbPixmaps[ destID ] = NULL; 241 pbPixmaps[ destID ] = NULL;
241 pbWidth[ destID ] = pbWidth[ sourceID ]; 242 pbWidth[ destID ] = pbWidth[ sourceID ];
242 brdnames[ destID ] = brdnames[ sourceID ]; 243 brdnames[ destID ] = brdnames[ sourceID ];
243 if ( !brdnames[ destID ].isEmpty() ) { 244 if ( !brdnames[ destID ].isEmpty() ) {
244 pbPixmaps[ destID ] = pbPixmaps[ sourceID ]; 245 pbPixmaps[ destID ] = pbPixmaps[ sourceID ];
245 pbDuplicate[ destID ] = true; 246 pbDuplicate[ destID ] = true;
246 } 247 }
247 248
248 if ( sourceID == ActiveTab && destID == InactiveTab ) 249 if ( sourceID == ActiveTab && destID == InactiveTab )
249 aTabLine = iTabLine; 250 aTabLine = iTabLine;
250 else if ( sourceID == InactiveTab && destID == ActiveTab ) 251 else if ( sourceID == InactiveTab && destID == ActiveTab )
251 iTabLine = aTabLine; 252 iTabLine = aTabLine;
252} 253}
253 254
254void OThemeBase::readConfig( Qt::GUIStyle /*style*/ ) 255void OThemeBase::readConfig( Qt::GUIStyle /*style*/ )
255{ 256{
256#define PREBLEND_ITEMS 12 257#define PREBLEND_ITEMS 12
257 static WidgetType preBlend[] = {Slider, IndicatorOn, IndicatorOff, 258 static WidgetType preBlend[] = {Slider, IndicatorOn, IndicatorOff,
258 ExIndicatorOn, ExIndicatorOff, HScrollDeco, VScrollDeco, HScrollDecoDown, 259 ExIndicatorOn, ExIndicatorOff, HScrollDeco, VScrollDeco, HScrollDecoDown,
259 VScrollDecoDown, ComboDeco, ComboDecoDown, CheckMark}; 260 VScrollDecoDown, ComboDeco, ComboDecoDown, CheckMark};
260 261
261 int i; 262 int i;
262 QString tmpStr; 263 QString tmpStr;
263 QString copyfrom[ WIDGETS ]; 264 QString copyfrom[ WIDGETS ];
264 QString pixnames[ WIDGETS ]; // used for duplicate check 265 QString pixnames[ WIDGETS ]; // used for duplicate check
265 QString brdnames[ WIDGETS ]; 266 QString brdnames[ WIDGETS ];
266 bool loaded[ WIDGETS ]; // used for preloading for CopyWidget 267 bool loaded[ WIDGETS ]; // used for preloading for CopyWidget
267 268
268 if ( configFileName.isEmpty() ) { 269 if ( configFileName.isEmpty() ) {
269 Config cfg ( "qpe" ); 270 Config cfg ( "qpe" );
270 cfg. setGroup ( "Appearance" ); 271 cfg. setGroup ( "Appearance" );
271 272
272 configFileName = cfg. readEntry ( "Theme", "default" ); 273 configFileName = cfg. readEntry ( "Theme", "default" );
273 } 274 }
274 MyConfig config( configFilePath + "/themes/" + configFileName + ".themerc" , Config::File ); 275 MyConfig config( configFilePath + "/themes/" + configFileName + ".themerc" , Config::File );
275 276
276 printf ( "Opened config file: %s\n", ( configFilePath + "/themes/" + configFileName + ".themerc" ). ascii()); 277 //printf ( "Opened config file: %s\n", ( configFilePath + "/themes/" + configFileName + ".themerc" ). ascii());
277 278
278 // Are we initalized? 279 // Are we initalized?
279 for ( i = 0; i < INHERIT_ITEMS; ++i ) { 280 for ( i = 0; i < INHERIT_ITEMS; ++i ) {
280 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 281 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
281 printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 282 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
282 } 283 }
283 for ( ; i < INHERIT_ITEMS*2; ++i ) { 284 for ( ; i < INHERIT_ITEMS*2; ++i ) {
284 if ( config.hasGroup( QString( widgetEntries[ i ] ) ) ) { 285 if ( config.hasGroup( QString( widgetEntries[ i ] ) ) ) {
285 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 286 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
286 printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 287 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
287 } 288 }
288 else { 289 else {
289 copyfrom [ i ] = widgetEntries[ i - INHERIT_ITEMS ]; 290 copyfrom [ i ] = widgetEntries[ i - INHERIT_ITEMS ];
290 printf ( "%d [%s]: copy=%s\n", i, widgetEntries [i], copyfrom [i].latin1()); 291 // printf ( "%d [%s]: copy=%s\n", i, widgetEntries [i], copyfrom [i].latin1());
291 } 292 }
292 } 293 }
293 for ( ; i < WIDGETS; ++i ) { 294 for ( ; i < WIDGETS; ++i ) {
294 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames ); 295 applyResourceGroup( &config, i, copyfrom, pixnames, brdnames );
295 printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() ); 296 // printf ( "%d [%s]: copy=%s, pix=%s, brd=%s\n", i, widgetEntries [i], copyfrom [i].latin1(), pixnames[i].latin1(),brdnames[i].latin1() );
296 } 297 }
297 applyMiscResourceGroup( &config ); 298 applyMiscResourceGroup( &config );
298 299
299 // initalize defaults that may not be read 300 // initalize defaults that may not be read
300 for ( i = 0; i < WIDGETS; ++i ) 301 for ( i = 0; i < WIDGETS; ++i )
301 loaded[ i ] = false; 302 loaded[ i ] = false;
302 btnXShift = btnYShift = focus3DOffset = 0; 303 btnXShift = btnYShift = focus3DOffset = 0;
303 aTabLine = iTabLine = true; 304 aTabLine = iTabLine = true;
304 roundedButton = roundedCombo = roundedSlider = focus3D = false; 305 roundedButton = roundedCombo = roundedSlider = focus3D = false;
305 splitterWidth = 10; 306 splitterWidth = 10;
306 307
307 for ( i = 0; i < WIDGETS; ++i ) { 308 for ( i = 0; i < WIDGETS; ++i ) {
308 readResourceGroup( i, copyfrom, pixnames, brdnames, loaded ); 309 readResourceGroup( i, copyfrom, pixnames, brdnames, loaded );
309 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)" )); 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)" ));
310 } 311 }
311 312
312 // misc items 313 // misc items
313 readMiscResourceGroup(); 314 readMiscResourceGroup();
314 315
315 // Handle preblend items 316 // Handle preblend items
316 for ( i = 0; i < PREBLEND_ITEMS; ++i ) { 317 for ( i = 0; i < PREBLEND_ITEMS; ++i ) {
317 if ( pixmaps[ preBlend[ i ] ] != NULL && blends[ preBlend[ i ] ] != 0.0 ) 318 if ( pixmaps[ preBlend[ i ] ] != NULL && blends[ preBlend[ i ] ] != 0.0 )
318 blend( preBlend[ i ] ); 319 blend( preBlend[ i ] );
319 } 320 }
320} 321}
321 322
322OThemeBase::OThemeBase( const QString & configFile ) 323OThemeBase::OThemeBase( const QString & configFile )
323 : QWindowsStyle() 324 : QWindowsStyle()
324{ 325{
325 configFilePath = QPEApplication::qpeDir ( ) + "/plugins/styles/"; 326 configFilePath = QPEApplication::qpeDir ( ) + "/plugins/styles/";
326 configFileName = configFile; 327 configFileName = configFile;
327 328
328 readConfig( Qt::WindowsStyle ); 329 readConfig( Qt::WindowsStyle );
329 cache = new OThemeCache( cacheSize ); 330 cache = new OThemeCache( cacheSize );
330} 331}
331 332
332void OThemeBase::applyConfigFile( const QString &/*file*/ ) 333void OThemeBase::applyConfigFile( const QString &/*file*/ )
333{ 334{
334#if 0 335#if 0
335 // handle std color scheme 336 // handle std color scheme
336 Config inConfig( file, Config::File ); 337 Config inConfig( file, Config::File );
337 Config globalConfig ( "qpe" ); 338 Config globalConfig ( "qpe" );
338 339
339 globalConfig. setGroup ( "Apperance" ); 340 globalConfig. setGroup ( "Apperance" );
340 inConfig. setGroup( "General" ); 341 inConfig. setGroup( "General" );
341 342
342 if ( inConfig.hasKey( "foreground" ) ) 343 if ( inConfig.hasKey( "foreground" ) )
343 globalConfig.writeEntry( "Text", inConfig.readEntry( "foreground", " " ) ); 344 globalConfig.writeEntry( "Text", inConfig.readEntry( "foreground", " " ) );
344 if ( inConfig.hasKey( "background" ) ) 345 if ( inConfig.hasKey( "background" ) )
345 globalConfig.writeEntry( "Background", inConfig.readEntry( "background", " " ) ); 346 globalConfig.writeEntry( "Background", inConfig.readEntry( "background", " " ) );
346 if ( inConfig.hasKey( "selectForeground" ) ) 347 if ( inConfig.hasKey( "selectForeground" ) )
347 globalConfig.writeEntry( "HighlightedText", inConfig.readEntry( "selectForeground", " " ) ); 348 globalConfig.writeEntry( "HighlightedText", inConfig.readEntry( "selectForeground", " " ) );
348 if ( inConfig.hasKey( "selectBackground" ) ) 349 if ( inConfig.hasKey( "selectBackground" ) )
349 globalConfig.writeEntry( "Highlight", inConfig.readEntry( "selectBackground", " " ) ); 350 globalConfig.writeEntry( "Highlight", inConfig.readEntry( "selectBackground", " " ) );
350 if ( inConfig.hasKey( "windowForeground" ) ) 351 if ( inConfig.hasKey( "windowForeground" ) )
351 globalConfig.writeEntry( "Text", inConfig.readEntry( "windowForeground", " " ) ); 352 globalConfig.writeEntry( "Text", inConfig.readEntry( "windowForeground", " " ) );
352 if ( inConfig.hasKey( "windowBackground" ) ) 353 if ( inConfig.hasKey( "windowBackground" ) )
353 globalConfig.writeEntry( "Base", inConfig.readEntry( "windowBackground", " " ) ); 354 globalConfig.writeEntry( "Base", inConfig.readEntry( "windowBackground", " " ) );
354 355
355 // Keep track of the current theme so that we can select the right one 356 // Keep track of the current theme so that we can select the right one
356 // in the KControl module. 357 // in the KControl module.
357 globalConfig.writeEntry ( "CurrentTheme", file ); 358 globalConfig.writeEntry ( "CurrentTheme", file );
358 359
359 globalConfig.write(); 360 globalConfig.write();
360#endif 361#endif
361} 362}
362 363
363OThemeBase::~OThemeBase() 364OThemeBase::~OThemeBase()
364{ 365{
365 int i; 366 int i;
366 for ( i = 0; i < WIDGETS; ++i ) { 367 for ( i = 0; i < WIDGETS; ++i ) {
367 if ( !duplicate[ i ] ) { 368 if ( !duplicate[ i ] ) {
368 if ( images[ i ] ) 369 if ( images[ i ] )
369 delete images[ i ]; 370 delete images[ i ];
370 if ( pixmaps[ i ] ) 371 if ( pixmaps[ i ] )
371 delete pixmaps[ i ]; 372 delete pixmaps[ i ];
372 } 373 }
373 if ( !pbDuplicate[ i ] && pbPixmaps[ i ] ) 374 if ( !pbDuplicate[ i ] && pbPixmaps[ i ] )
374 delete pbPixmaps[ i ]; 375 delete pbPixmaps[ i ];
375 if ( colors[ i ] ) 376 if ( colors[ i ] )
376 delete( colors[ i ] ); 377 delete( colors[ i ] );
377 if ( grLowColors[ i ] ) 378 if ( grLowColors[ i ] )
378 delete( grLowColors[ i ] ); 379 delete( grLowColors[ i ] );
379 if ( grHighColors[ i ] ) 380 if ( grHighColors[ i ] )
380 delete( grHighColors[ i ] ); 381 delete( grHighColors[ i ] );
381 } 382 }
382 delete cache; 383 delete cache;
383} 384}
384 385
385QImage* OThemeBase::loadImage( QString &name ) 386QImage* OThemeBase::loadImage( QString &name )
386{ 387{
387 QImage * image = new QImage; 388 QImage * image = new QImage;
388 QString path = configFilePath + "/pixmaps/" + name; 389 QString path = configFilePath + "/pixmaps/" + name;
389 image->load( path ); 390 image->load( path );
390 if ( !image->isNull() ) 391 if ( !image->isNull() )
391 return ( image ); 392 return ( image );
392 qDebug ( "OThemeBase: Unable to load image %s\n", name.ascii ( ) ); 393 qDebug ( "OThemeBase: Unable to load image %s\n", name.ascii ( ) );
393 delete image; 394 delete image;
394 return ( NULL ); 395 return ( NULL );
395} 396}
396 397
397OThemePixmap* OThemeBase::loadPixmap( QString &name ) 398OThemePixmap* OThemeBase::loadPixmap( QString &name )
398{ 399{
399 OThemePixmap * pixmap = new OThemePixmap( false ); 400 OThemePixmap * pixmap = new OThemePixmap( false );
400 QString path = configFilePath + "/pixmaps/" + name; 401 QString path = configFilePath + "/pixmaps/" + name;
401 pixmap->load( path ); 402 pixmap->load( path );
402 if ( !pixmap->isNull() ) 403 if ( !pixmap->isNull() )
403 return pixmap; 404 return pixmap;
404 qDebug ( "OThemeBase: Unable to load pixmap %s\n", name.ascii() ); 405 qDebug ( "OThemeBase: Unable to load pixmap %s\n", name.ascii() );
405 delete pixmap; 406 delete pixmap;
406 return ( NULL ); 407 return ( NULL );
407} 408}
408 409
409OThemePixmap* OThemeBase::scale( int w, int h, WidgetType widget ) 410OThemePixmap* OThemeBase::scale( int w, int h, WidgetType widget )
410{ 411{
411 if ( scaleHints[ widget ] == FullScale ) { 412 if ( scaleHints[ widget ] == FullScale ) {
412 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || 413 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ||
413 pixmaps[ widget ] ->height() != h ) { 414 pixmaps[ widget ] ->height() != h ) {
414 OThemePixmap * cachePix = cache->pixmap( w, h, widget ); 415 OThemePixmap * cachePix = cache->pixmap( w, h, widget );
415 if ( cachePix ) { 416 if ( cachePix ) {
416 cachePix = new OThemePixmap( *cachePix ); 417 cachePix = new OThemePixmap( *cachePix );
417 if ( pixmaps[ widget ] ) 418 if ( pixmaps[ widget ] )
418 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, 419 cache->insert( pixmaps[ widget ], OThemeCache::FullScale,
419 widget ); 420 widget );
420 else 421 else
421 qDebug( "We would have inserted a null pixmap!\n" ); 422 qDebug( "We would have inserted a null pixmap!\n" );
422 pixmaps[ widget ] = cachePix; 423 pixmaps[ widget ] = cachePix;
423 } 424 }
424 else { 425 else {
425 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 426 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );
426 QImage tmpImg = images[ widget ] ->smoothScale( w, h ); 427 QImage tmpImg = images[ widget ] ->smoothScale( w, h );
427 pixmaps[ widget ] = new OThemePixmap; 428 pixmaps[ widget ] = new OThemePixmap;
428 pixmaps[ widget ] ->convertFromImage( tmpImg ); 429 pixmaps[ widget ] ->convertFromImage( tmpImg );
429 if ( blends[ widget ] != 0.0 ) 430 if ( blends[ widget ] != 0.0 )
430 blend( widget ); 431 blend( widget );
431 } 432 }
432 } 433 }
433 } 434 }
434 else if ( scaleHints[ widget ] == HorizontalScale ) { 435 else if ( scaleHints[ widget ] == HorizontalScale ) {
435 if ( pixmaps[ widget ] ->width() != w ) { 436 if ( pixmaps[ widget ] ->width() != w ) {
436 OThemePixmap * cachePix = cache->horizontalPixmap( w, widget ); 437 OThemePixmap * cachePix = cache->horizontalPixmap( w, widget );
437 if ( cachePix ) { 438 if ( cachePix ) {
438 cachePix = new OThemePixmap( *cachePix ); 439 cachePix = new OThemePixmap( *cachePix );
439 if ( pixmaps[ widget ] ) 440 if ( pixmaps[ widget ] )
440 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget ); 441 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget );
441 else 442 else
442 qDebug ( "We would have inserted a null pixmap!\n" ); 443 qDebug ( "We would have inserted a null pixmap!\n" );
443 pixmaps[ widget ] = cachePix; 444 pixmaps[ widget ] = cachePix;
444 } 445 }
445 else { 446 else {
446 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget ); 447 cache->insert( pixmaps[ widget ], OThemeCache::HorizontalScale, widget );
447 QImage tmpImg = images[ widget ] -> 448 QImage tmpImg = images[ widget ] ->
448 smoothScale( w, images[ widget ] ->height() ); 449 smoothScale( w, images[ widget ] ->height() );
449 pixmaps[ widget ] = new OThemePixmap; 450 pixmaps[ widget ] = new OThemePixmap;
450 pixmaps[ widget ] ->convertFromImage( tmpImg ); 451 pixmaps[ widget ] ->convertFromImage( tmpImg );
451 if ( blends[ widget ] != 0.0 ) 452 if ( blends[ widget ] != 0.0 )
452 blend( widget ); 453 blend( widget );
453 } 454 }
454 } 455 }
455 } 456 }
456 else if ( scaleHints[ widget ] == VerticalScale ) { 457 else if ( scaleHints[ widget ] == VerticalScale ) {
457 if ( pixmaps[ widget ] ->height() != h ) { 458 if ( pixmaps[ widget ] ->height() != h ) {
458 OThemePixmap * cachePix = cache->verticalPixmap( w, widget ); 459 OThemePixmap * cachePix = cache->verticalPixmap( w, widget );
459 if ( cachePix ) { 460 if ( cachePix ) {
460 cachePix = new OThemePixmap( *cachePix ); 461 cachePix = new OThemePixmap( *cachePix );
461 if ( pixmaps[ widget ] ) 462 if ( pixmaps[ widget ] )
462 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget ); 463 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget );
463 else 464 else
464 qDebug ( "We would have inserted a null pixmap!\n" ); 465 qDebug ( "We would have inserted a null pixmap!\n" );
465 pixmaps[ widget ] = cachePix; 466 pixmaps[ widget ] = cachePix;
466 } 467 }
467 else { 468 else {
468 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget ); 469 cache->insert( pixmaps[ widget ], OThemeCache::VerticalScale, widget );
469 QImage tmpImg = 470 QImage tmpImg =
470 images[ widget ] ->smoothScale( images[ widget ] ->width(), h ); 471 images[ widget ] ->smoothScale( images[ widget ] ->width(), h );
471 pixmaps[ widget ] = new OThemePixmap; 472 pixmaps[ widget ] = new OThemePixmap;
472 pixmaps[ widget ] ->convertFromImage( tmpImg ); 473 pixmaps[ widget ] ->convertFromImage( tmpImg );
473 if ( blends[ widget ] != 0.0 ) 474 if ( blends[ widget ] != 0.0 )
474 blend( widget ); 475 blend( widget );
475 } 476 }
476 } 477 }
477 } 478 }
478 // If blended tile here so the blend is scaled properly 479 // If blended tile here so the blend is scaled properly
479 else if ( scaleHints[ widget ] == TileScale && blends[ widget ] != 0.0 ) { 480 else if ( scaleHints[ widget ] == TileScale && blends[ widget ] != 0.0 ) {
480 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w || 481 if ( !pixmaps[ widget ] || pixmaps[ widget ] ->width() != w ||
481 pixmaps[ widget ] ->height() != h ) { 482 pixmaps[ widget ] ->height() != h ) {
482 OThemePixmap * cachePix = cache->pixmap( w, h, widget ); 483 OThemePixmap * cachePix = cache->pixmap( w, h, widget );
483 if ( cachePix ) { 484 if ( cachePix ) {
484 cachePix = new OThemePixmap( *cachePix ); 485 cachePix = new OThemePixmap( *cachePix );
485 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 486 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );
486 pixmaps[ widget ] = cachePix; 487 pixmaps[ widget ] = cachePix;
487 } 488 }
488 else { 489 else {
489 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget ); 490 cache->insert( pixmaps[ widget ], OThemeCache::FullScale, widget );
490 QPixmap tile; 491 QPixmap tile;
491 tile.convertFromImage( *images[ widget ] ); 492 tile.convertFromImage( *images[ widget ] );
492 pixmaps[ widget ] = new OThemePixmap; 493 pixmaps[ widget ] = new OThemePixmap;
493 pixmaps[ widget ] ->resize( w, h ); 494 pixmaps[ widget ] ->resize( w, h );
494 QPainter p( pixmaps[ widget ] ); 495 QPainter p( pixmaps[ widget ] );
495 p.drawTiledPixmap( 0, 0, w, h, tile ); 496 p.drawTiledPixmap( 0, 0, w, h, tile );
496 if ( blends[ widget ] != 0.0 ) 497 if ( blends[ widget ] != 0.0 )
497 blend( widget ); 498 blend( widget );
498 } 499 }
499 } 500 }
500 } 501 }
501 return ( pixmaps[ widget ] ); 502 return ( pixmaps[ widget ] );
502} 503}
503 504
504OThemePixmap* OThemeBase::scaleBorder( int w, int h, WidgetType widget ) 505OThemePixmap* OThemeBase::scaleBorder( int w, int h, WidgetType widget )
505{ 506{
506 OThemePixmap * pixmap = NULL; 507 OThemePixmap * pixmap = NULL;
507 if ( !pbPixmaps[ widget ] && !pbWidth[ widget ] ) 508 if ( !pbPixmaps[ widget ] && !pbWidth[ widget ] )
508 return ( NULL ); 509 return ( NULL );
509 pixmap = cache->pixmap( w, h, widget, true ); 510 pixmap = cache->pixmap( w, h, widget, true );
510 if ( pixmap ) { 511 if ( pixmap ) {
511 pixmap = new OThemePixmap( *pixmap ); 512 pixmap = new OThemePixmap( *pixmap );
512 } 513 }
513 else { 514 else {
514 pixmap = new OThemePixmap(); 515 pixmap = new OThemePixmap();
515 pixmap->resize( w, h ); 516 pixmap->resize( w, h );
516 QBitmap mask; 517 QBitmap mask;
517 mask.resize( w, h ); 518 mask.resize( w, h );
518 mask.fill( color0 ); 519 mask.fill( color0 );
519 QPainter mPainter; 520 QPainter mPainter;
520 mPainter.begin( &mask ); 521 mPainter.begin( &mask );
521 522
522 QPixmap *tmp = borderPixmap( widget ) ->border( OThemePixmap::TopLeft ); 523 QPixmap *tmp = borderPixmap( widget ) ->border( OThemePixmap::TopLeft );
523 const QBitmap *srcMask = tmp->mask(); 524 const QBitmap *srcMask = tmp->mask();
524 int bdWidth = tmp->width(); 525 int bdWidth = tmp->width();
525 526
526 bitBlt( pixmap, 0, 0, tmp, 0, 0, bdWidth, bdWidth, 527 bitBlt( pixmap, 0, 0, tmp, 0, 0, bdWidth, bdWidth,
527 Qt::CopyROP, false ); 528 Qt::CopyROP, false );
528 if ( srcMask ) 529 if ( srcMask )
529 bitBlt( &mask, 0, 0, srcMask, 0, 0, bdWidth, bdWidth, 530 bitBlt( &mask, 0, 0, srcMask, 0, 0, bdWidth, bdWidth,
530 Qt::CopyROP, false ); 531 Qt::CopyROP, false );
531 else 532 else
532 mPainter.fillRect( 0, 0, bdWidth, bdWidth, color1 ); 533 mPainter.fillRect( 0, 0, bdWidth, bdWidth, color1 );
533 534
534 535
535 tmp = borderPixmap( widget ) ->border( OThemePixmap::TopRight ); 536 tmp = borderPixmap( widget ) ->border( OThemePixmap::TopRight );
536 srcMask = tmp->mask(); 537 srcMask = tmp->mask();
537 bitBlt( pixmap, w - bdWidth, 0, tmp, 0, 0, bdWidth, 538 bitBlt( pixmap, w - bdWidth, 0, tmp, 0, 0, bdWidth,
538 bdWidth, Qt::CopyROP, false ); 539 bdWidth, Qt::CopyROP, false );
539 if ( srcMask ) 540 if ( srcMask )
540 bitBlt( &mask, w - bdWidth, 0, srcMask, 0, 0, bdWidth, 541 bitBlt( &mask, w - bdWidth, 0, srcMask, 0, 0, bdWidth,
541 bdWidth, Qt::CopyROP, false ); 542 bdWidth, Qt::CopyROP, false );
542 else 543 else
543 mPainter.fillRect( w - bdWidth, 0, bdWidth, bdWidth, color1 ); 544 mPainter.fillRect( w - bdWidth, 0, bdWidth, bdWidth, color1 );
544 545
545 tmp = borderPixmap( widget ) ->border( OThemePixmap::BottomLeft ); 546 tmp = borderPixmap( widget ) ->border( OThemePixmap::BottomLeft );
546 srcMask = tmp->mask(); 547 srcMask = tmp->mask();
547 bitBlt( pixmap, 0, h - bdWidth, tmp, 0, 0, bdWidth, 548 bitBlt( pixmap, 0, h - bdWidth, tmp, 0, 0, bdWidth,
548 bdWidth, Qt::CopyROP, false ); 549 bdWidth, Qt::CopyROP, false );
549 if ( srcMask ) 550 if ( srcMask )
550 bitBlt( &mask, 0, h - bdWidth, srcMask, 0, 0, bdWidth, 551 bitBlt( &mask, 0, h - bdWidth, srcMask, 0, 0, bdWidth,
551 bdWidth, Qt::CopyROP, false ); 552 bdWidth, Qt::CopyROP, false );
552 else 553 else
553 mPainter.fillRect( 0, h - bdWidth, bdWidth, bdWidth, color1 ); 554 mPainter.fillRect( 0, h - bdWidth, bdWidth, bdWidth, color1 );
554 555
555 tmp = borderPixmap( widget ) ->border( OThemePixmap::BottomRight ); 556 tmp = borderPixmap( widget ) ->border( OThemePixmap::BottomRight );
556 srcMask = tmp->mask(); 557 srcMask = tmp->mask();
557 bitBlt( pixmap, w - bdWidth, h - bdWidth, tmp, 0, 0, 558 bitBlt( pixmap, w - bdWidth, h - bdWidth, tmp, 0, 0,
558 bdWidth, bdWidth, Qt::CopyROP, false ); 559 bdWidth, bdWidth, Qt::CopyROP, false );
559 if ( srcMask ) 560 if ( srcMask )
560 bitBlt( &mask, w - bdWidth, h - bdWidth, srcMask, 0, 0, 561 bitBlt( &mask, w - bdWidth, h - bdWidth, srcMask, 0, 0,
561 bdWidth, bdWidth, Qt::CopyROP, false ); 562 bdWidth, bdWidth, Qt::CopyROP, false );
562 else 563 else
563 mPainter.fillRect( w - bdWidth, h - bdWidth, bdWidth, bdWidth, color1 ); 564 mPainter.fillRect( w - bdWidth, h - bdWidth, bdWidth, bdWidth, color1 );
564 565
565 QPainter p; 566 QPainter p;