author | sandman <sandman> | 2002-09-27 01:24:35 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-09-27 01:24:35 (UTC) |
commit | 599a9ab17fd0bbaf612d04b74cf152d4943919e5 (patch) (unidiff) | |
tree | ae1d9f6fdeca12eee2e49474cf755d62995b9979 | |
parent | afac99bfbfedb9bfc48bc7e55b806aa9cc80dd96 (diff) | |
download | opie-599a9ab17fd0bbaf612d04b74cf152d4943919e5.zip opie-599a9ab17fd0bbaf612d04b74cf152d4943919e5.tar.gz opie-599a9ab17fd0bbaf612d04b74cf152d4943919e5.tar.bz2 |
commented out a bunch of debug printf's
-rw-r--r-- | noncore/styles/theme/othemebase.cpp | 13 |
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 | |||
37 | template class QIntCache<OThemePixmap> | 38 | template class QIntCache<OThemePixmap> |
38 | ; | 39 | ; |
39 | 40 | ||
40 | static const char *widgetEntries[] = | 41 | static 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) |
64 | struct kthemeKeyData | 65 | struct kthemeKeyData |
65 | { | 66 | { |
66 | unsigned int id : | 67 | unsigned int id : |
67 | 6; | 68 | 6; |
68 | unsigned int width : | 69 | unsigned int width : |
69 | 12; | 70 | 12; |
70 | unsigned int height : | 71 | unsigned int height : |
71 | 12; | 72 | 12; |
72 | unsigned int border : | 73 | unsigned int border : |
73 | 1; | 74 | 1; |
74 | unsigned int mask : | 75 | unsigned int mask : |
75 | 1; | 76 | 1; |
76 | }; | 77 | }; |
77 | 78 | ||
78 | union kthemeKey{ | 79 | union kthemeKey{ |
79 | kthemeKeyData data; | 80 | kthemeKeyData data; |
80 | unsigned int cacheKey; | 81 | unsigned int cacheKey; |
81 | }; | 82 | }; |
82 | 83 | ||
83 | class MyConfig : public Config | 84 | class MyConfig : public Config |
84 | { | 85 | { |
85 | public: | 86 | public: |
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 | ||
96 | void OThemeBase::generateBorderPix( int i ) | 97 | void 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 | ||
194 | void OThemeBase::copyWidgetConfig( int sourceID, int destID, QString *pixnames, | 195 | void 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 | ||
254 | void OThemeBase::readConfig( Qt::GUIStyle /*style*/ ) | 255 | void 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 | ||
322 | OThemeBase::OThemeBase( const QString & configFile ) | 323 | OThemeBase::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 | ||
332 | void OThemeBase::applyConfigFile( const QString &/*file*/ ) | 333 | void 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 | ||
363 | OThemeBase::~OThemeBase() | 364 | OThemeBase::~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 | ||
385 | QImage* OThemeBase::loadImage( QString &name ) | 386 | QImage* 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 | ||
397 | OThemePixmap* OThemeBase::loadPixmap( QString &name ) | 398 | OThemePixmap* 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 | ||
409 | OThemePixmap* OThemeBase::scale( int w, int h, WidgetType widget ) | 410 | OThemePixmap* 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 | ||
504 | OThemePixmap* OThemeBase::scaleBorder( int w, int h, WidgetType widget ) | 505 | OThemePixmap* 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; |