summaryrefslogtreecommitdiff
path: root/noncore/styles/theme/othemebase.cpp
Unidiff
Diffstat (limited to 'noncore/styles/theme/othemebase.cpp') (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
@@ -60,60 +60,48 @@ static const char *widgetEntries[] =
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 );
@@ -251,49 +239,49 @@ void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames,
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