summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/decorations/flat/flat.cpp4
-rw-r--r--noncore/decorations/flat/flat.h1
-rw-r--r--noncore/decorations/liquid/liquid.cpp4
-rw-r--r--noncore/decorations/liquid/liquid.h2
-rw-r--r--noncore/decorations/polished/polished.cpp4
-rw-r--r--noncore/decorations/polished/polished.h2
-rw-r--r--noncore/styles/flat/flat.cpp2
-rw-r--r--noncore/styles/flat/flat.h1
-rw-r--r--noncore/styles/fresh/fresh.cpp4
-rw-r--r--noncore/styles/fresh/fresh.h1
-rw-r--r--noncore/styles/liquid/plugin.cpp4
-rw-r--r--noncore/styles/liquid/plugin.h1
-rw-r--r--noncore/styles/metal/plugin.cpp4
-rw-r--r--noncore/styles/metal/plugin.h2
-rw-r--r--noncore/styles/theme/plugin.cpp4
-rw-r--r--noncore/styles/theme/plugin.h1
-rw-r--r--noncore/todayplugins/fortune/fortunepluginimpl.h1
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h1
-rw-r--r--noncore/todayplugins/weather/weatherpluginimpl.h1
19 files changed, 22 insertions, 22 deletions
diff --git a/noncore/decorations/flat/flat.cpp b/noncore/decorations/flat/flat.cpp
index b6a81a3..a2f12be 100644
--- a/noncore/decorations/flat/flat.cpp
+++ b/noncore/decorations/flat/flat.cpp
@@ -1,360 +1,362 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "flat.h" 21#include "flat.h"
22#include <qpainter.h> 22#include <qpainter.h>
23#include <qapplication.h> 23#include <qapplication.h>
24 24
25 25
26/* XPM */ 26/* XPM */
27static const char * ok_xpm[] = { 27static const char * ok_xpm[] = {
28"32 32 3 1", 28"32 32 3 1",
29 " c None", 29 " c None",
30 ".c #000000", 30 ".c #000000",
31 "+c #FFFFFF", 31 "+c #FFFFFF",
32" ", 32" ",
33" ", 33" ",
34" ++++++++ ", 34" ++++++++ ",
35" ++++++++++++ ", 35" ++++++++++++ ",
36" +++++ +++++ ", 36" +++++ +++++ ",
37" +++ +++ ", 37" +++ +++ ",
38" +++ +++ ", 38" +++ +++ ",
39" +++ +++ ", 39" +++ +++ ",
40" +++ +++ ", 40" +++ +++ ",
41" ++ ++ ", 41" ++ ++ ",
42" ++ +++++ ++ ++ ++ ", 42" ++ +++++ ++ ++ ++ ",
43" ++ ++++++++ ++ +++ ++ ", 43" ++ ++++++++ ++ +++ ++ ",
44" +++ +++ +++ ++ +++ +++ ", 44" +++ +++ +++ ++ +++ +++ ",
45" ++ +++ ++ ++ +++ ++ ", 45" ++ +++ ++ ++ +++ ++ ",
46" ++ ++ ++ ++ ++ ++ ", 46" ++ ++ ++ ++ ++ ++ ",
47" ++ ++ ++ +++++ ++ ", 47" ++ ++ ++ +++++ ++ ",
48" ++ ++ ++ ++++ ++ ", 48" ++ ++ ++ ++++ ++ ",
49" ++ ++ ++ ++ ++ ++ ", 49" ++ ++ ++ ++ ++ ++ ",
50" ++ +++ ++ ++ +++ ++ ", 50" ++ +++ ++ ++ +++ ++ ",
51" +++ +++ +++ ++ +++ +++ ", 51" +++ +++ +++ ++ +++ +++ ",
52" ++ ++++++++ ++ ++ ++ ", 52" ++ ++++++++ ++ ++ ++ ",
53" ++ +++++ ++ ++ ++ ", 53" ++ +++++ ++ ++ ++ ",
54" ++ ++ ", 54" ++ ++ ",
55" +++ +++ ", 55" +++ +++ ",
56" +++ +++ ", 56" +++ +++ ",
57" +++ +++ ", 57" +++ +++ ",
58" +++ +++ ", 58" +++ +++ ",
59" +++++ +++++ ", 59" +++++ +++++ ",
60" ++++++++++++ ", 60" ++++++++++++ ",
61" ++++++++ ", 61" ++++++++ ",
62" ", 62" ",
63" "}; 63" "};
64 64
65 65
66/* XPM */ 66/* XPM */
67static const char * close_xpm[] = { 67static const char * close_xpm[] = {
68"32 32 3 1", 68"32 32 3 1",
69 " c None", 69 " c None",
70 ".c #000000", 70 ".c #000000",
71 "+c #FFFFFF", 71 "+c #FFFFFF",
72" ", 72" ",
73" ", 73" ",
74" ++++++++ ", 74" ++++++++ ",
75" ++++++++++++ ", 75" ++++++++++++ ",
76" +++++ +++++ ", 76" +++++ +++++ ",
77" +++ +++ ", 77" +++ +++ ",
78" +++ +++ ", 78" +++ +++ ",
79" +++ +++ ", 79" +++ +++ ",
80" +++ +++ ", 80" +++ +++ ",
81" ++ ++ ++ ++ ", 81" ++ ++ ++ ++ ",
82" ++ +++ +++ ++ ", 82" ++ +++ +++ ++ ",
83" ++ +++ +++ ++ ", 83" ++ +++ +++ ++ ",
84" +++ +++ +++ +++ ", 84" +++ +++ +++ +++ ",
85" ++ +++ +++ ++ ", 85" ++ +++ +++ ++ ",
86" ++ ++++++ ++ ", 86" ++ ++++++ ++ ",
87" ++ ++++ ++ ", 87" ++ ++++ ++ ",
88" ++ ++++ ++ ", 88" ++ ++++ ++ ",
89" ++ ++++++ ++ ", 89" ++ ++++++ ++ ",
90" ++ +++ +++ ++ ", 90" ++ +++ +++ ++ ",
91" +++ +++ +++ +++ ", 91" +++ +++ +++ +++ ",
92" ++ +++ +++ ++ ", 92" ++ +++ +++ ++ ",
93" ++ +++ +++ ++ ", 93" ++ +++ +++ ++ ",
94" ++ ++ ++ ++ ", 94" ++ ++ ++ ++ ",
95" +++ +++ ", 95" +++ +++ ",
96" +++ +++ ", 96" +++ +++ ",
97" +++ +++ ", 97" +++ +++ ",
98" +++ +++ ", 98" +++ +++ ",
99" +++++ +++++ ", 99" +++++ +++++ ",
100" ++++++++++++ ", 100" ++++++++++++ ",
101" ++++++++ ", 101" ++++++++ ",
102" ", 102" ",
103" "}; 103" "};
104 104
105 105
106/* XPM */ 106/* XPM */
107static const char * help_xpm[] = { 107static const char * help_xpm[] = {
108"32 32 3 1", 108"32 32 3 1",
109 " c None", 109 " c None",
110 ".c #000000", 110 ".c #000000",
111 "+c #FFFFFF", 111 "+c #FFFFFF",
112" ", 112" ",
113" ", 113" ",
114" ++++++++ ", 114" ++++++++ ",
115" ++++++++++++ ", 115" ++++++++++++ ",
116" +++++ +++++ ", 116" +++++ +++++ ",
117" +++ +++ ", 117" +++ +++ ",
118" +++ +++ ", 118" +++ +++ ",
119" +++ +++ ", 119" +++ +++ ",
120" +++ +++++ +++ ", 120" +++ +++++ +++ ",
121" ++ ++++++++ ++ ", 121" ++ ++++++++ ++ ",
122" ++ ++++ ++++ ++ ", 122" ++ ++++ ++++ ++ ",
123" ++ +++ +++ ++ ", 123" ++ +++ +++ ++ ",
124" +++ +++ +++ +++ ", 124" +++ +++ +++ +++ ",
125" ++ ++++ ++ ", 125" ++ ++++ ++ ",
126" ++ +++++ ++ ", 126" ++ +++++ ++ ",
127" ++ +++++ ++ ", 127" ++ +++++ ++ ",
128" ++ ++++ ++ ", 128" ++ ++++ ++ ",
129" ++ ++++ ++ ", 129" ++ ++++ ++ ",
130" ++ +++ ++ ", 130" ++ +++ ++ ",
131" +++ +++ +++ ", 131" +++ +++ +++ ",
132" ++ ++ ", 132" ++ ++ ",
133" ++ ++ ", 133" ++ ++ ",
134" ++ +++ ++ ", 134" ++ +++ ++ ",
135" +++ +++ +++ ", 135" +++ +++ +++ ",
136" +++ +++ ", 136" +++ +++ ",
137" +++ +++ ", 137" +++ +++ ",
138" +++ +++ ", 138" +++ +++ ",
139" +++++ +++++ ", 139" +++++ +++++ ",
140" ++++++++++++ ", 140" ++++++++++++ ",
141" ++++++++ ", 141" ++++++++ ",
142" ", 142" ",
143" "}; 143" "};
144 144
145 145
146/* XPM */ 146/* XPM */
147static const char * maximize_xpm[] = { 147static const char * maximize_xpm[] = {
148"32 32 3 1", 148"32 32 3 1",
149 " c None", 149 " c None",
150 ".c #000000", 150 ".c #000000",
151 "+c #FFFFFF", 151 "+c #FFFFFF",
152" ", 152" ",
153" ", 153" ",
154" ++++++++ ", 154" ++++++++ ",
155" ++++++++++++ ", 155" ++++++++++++ ",
156" +++++ +++++ ", 156" +++++ +++++ ",
157" +++ +++ ", 157" +++ +++ ",
158" +++ +++ ", 158" +++ +++ ",
159" +++ +++ ", 159" +++ +++ ",
160" +++ ++++++++++++++ +++ ", 160" +++ ++++++++++++++ +++ ",
161" ++ ++++++++++++++ ++ ", 161" ++ ++++++++++++++ ++ ",
162" ++ ++++++++++++++ ++ ", 162" ++ ++++++++++++++ ++ ",
163" ++ +++ +++ ++ ", 163" ++ +++ +++ ++ ",
164" +++ +++ +++ +++ ", 164" +++ +++ +++ +++ ",
165" ++ +++ +++ ++ ", 165" ++ +++ +++ ++ ",
166" ++ +++ +++ ++ ", 166" ++ +++ +++ ++ ",
167" ++ +++ +++ ++ ", 167" ++ +++ +++ ++ ",
168" ++ +++ +++ ++ ", 168" ++ +++ +++ ++ ",
169" ++ +++ +++ ++ ", 169" ++ +++ +++ ++ ",
170" ++ +++ +++ ++ ", 170" ++ +++ +++ ++ ",
171" +++ +++ +++ +++ ", 171" +++ +++ +++ +++ ",
172" ++ +++ +++ ++ ", 172" ++ +++ +++ ++ ",
173" ++ ++++++++++++++ ++ ", 173" ++ ++++++++++++++ ++ ",
174" ++ ++++++++++++++ ++ ", 174" ++ ++++++++++++++ ++ ",
175" +++ ++++++++++++++ +++ ", 175" +++ ++++++++++++++ +++ ",
176" +++ +++ ", 176" +++ +++ ",
177" +++ +++ ", 177" +++ +++ ",
178" +++ +++ ", 178" +++ +++ ",
179" +++++ +++++ ", 179" +++++ +++++ ",
180" ++++++++++++ ", 180" ++++++++++++ ",
181" ++++++++ ", 181" ++++++++ ",
182" ", 182" ",
183" "}; 183" "};
184 184
185static QImage scaleButton( const QImage &img, int height ) 185static QImage scaleButton( const QImage &img, int height )
186{ 186{
187 if ( img.height() != height ) { 187 if ( img.height() != height ) {
188 return img.smoothScale( img.width()*height/img.height(), height ); 188 return img.smoothScale( img.width()*height/img.height(), height );
189 } else { 189 } else {
190 return img; 190 return img;
191 } 191 }
192} 192}
193 193
194static void colorize( QImage &img, const QColor &c, bool rev ) 194static void colorize( QImage &img, const QColor &c, bool rev )
195{ 195{
196 for ( int i = 0; i < img.numColors(); i++ ) { 196 for ( int i = 0; i < img.numColors(); i++ ) {
197 bool sc = (img.color(i) & 0xff000000); 197 bool sc = (img.color(i) & 0xff000000);
198 if ( rev ) sc = !sc; 198 if ( rev ) sc = !sc;
199 img.setColor(i, sc ? c.rgb() : 0x00000000 ); 199 img.setColor(i, sc ? c.rgb() : 0x00000000 );
200 } 200 }
201} 201}
202 202
203FlatDecoration::FlatDecoration() : ref(0), buttonCache(16) 203FlatDecoration::FlatDecoration() : buttonCache(16)
204{ 204{
205 buttonCache.setAutoDelete(TRUE); 205 buttonCache.setAutoDelete(TRUE);
206} 206}
207 207
208FlatDecoration::~FlatDecoration() 208FlatDecoration::~FlatDecoration()
209{ 209{
210} 210}
211 211
212int FlatDecoration::metric( Metric m, const WindowData *wd ) const 212int FlatDecoration::metric( Metric m, const WindowData *wd ) const
213{ 213{
214 switch ( m ) { 214 switch ( m ) {
215 case TopBorder: 215 case TopBorder:
216 return 1; 216 return 1;
217 break; 217 break;
218 case LeftBorder: 218 case LeftBorder:
219 case RightBorder: 219 case RightBorder:
220 return 2; 220 return 2;
221 case BottomBorder: 221 case BottomBorder:
222 return 4; 222 return 4;
223 case TitleHeight: 223 case TitleHeight:
224 if ( QApplication::desktop()->height() > 320 ) 224 if ( QApplication::desktop()->height() > 320 )
225 return 20; 225 return 20;
226 else 226 else
227 return 18; 227 return 18;
228 case OKWidth: 228 case OKWidth:
229 case CloseWidth: 229 case CloseWidth:
230 case HelpWidth: 230 case HelpWidth:
231 case MaximizeWidth: 231 case MaximizeWidth:
232 return metric(TitleHeight,wd); 232 return metric(TitleHeight,wd);
233 break; 233 break;
234 default: 234 default:
235 return WindowDecorationInterface::metric( m, wd ); 235 return WindowDecorationInterface::metric( m, wd );
236 break; 236 break;
237 } 237 }
238 238
239 return 0; 239 return 0;
240} 240}
241 241
242void FlatDecoration::drawArea( Area a, QPainter *p, const WindowData *wd ) const 242void FlatDecoration::drawArea( Area a, QPainter *p, const WindowData *wd ) const
243{ 243{
244 int th = metric( TitleHeight, wd ); 244 int th = metric( TitleHeight, wd );
245 QRect r = wd->rect; 245 QRect r = wd->rect;
246 246
247 switch ( a ) { 247 switch ( a ) {
248 case Border: 248 case Border:
249 { 249 {
250 const QColorGroup &cg = wd->palette.active(); 250 const QColorGroup &cg = wd->palette.active();
251 if ( wd->flags & WindowData::Active ) { 251 if ( wd->flags & WindowData::Active ) {
252 p->setBrush( cg.color(QColorGroup::Highlight) ); 252 p->setBrush( cg.color(QColorGroup::Highlight) );
253 } else { 253 } else {
254 p->setBrush( cg.color(QColorGroup::Background) ); 254 p->setBrush( cg.color(QColorGroup::Background) );
255 } 255 }
256 p->setPen( cg.foreground() ); 256 p->setPen( cg.foreground() );
257 int lb = metric(LeftBorder,wd); 257 int lb = metric(LeftBorder,wd);
258 int rb = metric(RightBorder,wd); 258 int rb = metric(RightBorder,wd);
259 int tb = metric(TopBorder,wd); 259 int tb = metric(TopBorder,wd);
260 int bb = metric(BottomBorder,wd); 260 int bb = metric(BottomBorder,wd);
261 p->drawRect( r.x()-lb, r.y()-tb-th, r.width()+lb+rb, 261 p->drawRect( r.x()-lb, r.y()-tb-th, r.width()+lb+rb,
262 r.height()+th+tb+bb ); 262 r.height()+th+tb+bb );
263 } 263 }
264 break; 264 break;
265 case Title: 265 case Title:
266 if ( r.height() < 2 ) { 266 if ( r.height() < 2 ) {
267 WindowDecorationInterface::drawArea( a, p, wd ); 267 WindowDecorationInterface::drawArea( a, p, wd );
268 } else { 268 } else {
269 const QColorGroup &cg = wd->palette.active(); 269 const QColorGroup &cg = wd->palette.active();
270 QColor c; 270 QColor c;
271 if ( wd->flags & WindowData::Active ) 271 if ( wd->flags & WindowData::Active )
272 c = cg.color(QColorGroup::Highlight); 272 c = cg.color(QColorGroup::Highlight);
273 else 273 else
274 c = cg.color(QColorGroup::Background); 274 c = cg.color(QColorGroup::Background);
275 p->fillRect( QRect(r.x(),r.y()-th,r.width(),th), c ); 275 p->fillRect( QRect(r.x(),r.y()-th,r.width(),th), c );
276 } 276 }
277 break; 277 break;
278 case TitleText: 278 case TitleText:
279 p->drawText( r.left()+3+metric(HelpWidth,wd), r.top()-th, 279 p->drawText( r.left()+3+metric(HelpWidth,wd), r.top()-th,
280 r.width()-metric(HelpWidth,wd)-metric(CloseWidth,wd), th, 280 r.width()-metric(HelpWidth,wd)-metric(CloseWidth,wd), th,
281 Qt::AlignVCenter, wd->caption ); 281 Qt::AlignVCenter, wd->caption );
282 break; 282 break;
283 default: 283 default:
284 FlatDecoration::drawArea( a, p, wd ); 284 FlatDecoration::drawArea( a, p, wd );
285 break; 285 break;
286 } 286 }
287} 287}
288 288
289void FlatDecoration::drawButton( Button b, QPainter *p, const WindowData *wd, int x, int y, int w, int h, QWSButton::State state ) const 289void FlatDecoration::drawButton( Button b, QPainter *p, const WindowData *wd, int x, int y, int w, int h, QWSButton::State state ) const
290{ 290{
291 QColor c; 291 QColor c;
292 const QColorGroup &cg = wd->palette.active(); 292 const QColorGroup &cg = wd->palette.active();
293 if ( wd->flags & WindowDecorationInterface::WindowData::Active ) 293 if ( wd->flags & WindowDecorationInterface::WindowData::Active )
294 c = cg.color(QColorGroup::HighlightedText); 294 c = cg.color(QColorGroup::HighlightedText);
295 else 295 else
296 c = cg.color(QColorGroup::Foreground); 296 c = cg.color(QColorGroup::Foreground);
297 bool r = (state & QWSButton::MouseOver) && (state & QWSButton::Clicked); 297 bool r = (state & QWSButton::MouseOver) && (state & QWSButton::Clicked);
298 int th = metric(TitleHeight, wd); 298 int th = metric(TitleHeight, wd);
299 299
300 QString key( "%1-%2-%3-%4" ); 300 QString key( "%1-%2-%3-%4" );
301 key = key.arg(b).arg(th).arg(c.name()).arg(r ? "1" : "0"); 301 key = key.arg(b).arg(th).arg(c.name()).arg(r ? "1" : "0");
302 QImage *img = buttonCache.find( key ); 302 QImage *img = buttonCache.find( key );
303 if ( !img ) { 303 if ( !img ) {
304 QImage tmp; 304 QImage tmp;
305 switch ( b ) { 305 switch ( b ) {
306 case OK: 306 case OK:
307 tmp = QImage( ok_xpm ); 307 tmp = QImage( ok_xpm );
308 break; 308 break;
309 case Close: 309 case Close:
310 tmp = QImage( close_xpm ); 310 tmp = QImage( close_xpm );
311 break; 311 break;
312 case Help: 312 case Help:
313 tmp = QImage( help_xpm ); 313 tmp = QImage( help_xpm );
314 break; 314 break;
315 case Maximize: 315 case Maximize:
316 tmp = QImage( maximize_xpm ); 316 tmp = QImage( maximize_xpm );
317 break; 317 break;
318 } 318 }
319 colorize( tmp, c, r ); 319 colorize( tmp, c, r );
320 img = new QImage( scaleButton(tmp,th) ); 320 img = new QImage( scaleButton(tmp,th) );
321 FlatDecoration *that = (FlatDecoration *)this; 321 FlatDecoration *that = (FlatDecoration *)this;
322 that->buttonCache.insert( key, img, 1 ); 322 that->buttonCache.insert( key, img, 1 );
323 } 323 }
324 324
325 p->drawImage( x, y, *img ); 325 p->drawImage( x, y, *img );
326} 326}
327 327
328QRegion FlatDecoration::mask( const WindowData *wd ) const 328QRegion FlatDecoration::mask( const WindowData *wd ) const
329{ 329{
330 return WindowDecorationInterface::mask( wd ); 330 return WindowDecorationInterface::mask( wd );
331} 331}
332 332
333QString FlatDecoration::name() const 333QString FlatDecoration::name() const
334{ 334{
335 return qApp->translate( "Decoration", "Flat" ); 335 return qApp->translate( "Decoration", "Flat" );
336} 336}
337 337
338QPixmap FlatDecoration::icon() const 338QPixmap FlatDecoration::icon() const
339{ 339{
340 return QPixmap(); 340 return QPixmap();
341} 341}
342 342
343QRESULT FlatDecoration::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 343QRESULT FlatDecoration::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
344{ 344{
345 *iface = 0; 345 *iface = 0;
346 if ( uuid == IID_QUnknown ) 346 if ( uuid == IID_QUnknown )
347 *iface = this; 347 *iface = this;
348 else if ( uuid == IID_WindowDecoration ) 348 else if ( uuid == IID_WindowDecoration )
349 *iface = this; 349 *iface = this;
350 else
351 return QS_FALSE;
350 352
351 if ( *iface ) 353 if ( *iface )
352 (*iface)->addRef(); 354 (*iface)->addRef();
353 return QS_OK; 355 return QS_OK;
354} 356}
355 357
356Q_EXPORT_INTERFACE() 358Q_EXPORT_INTERFACE()
357{ 359{
358 Q_CREATE_INSTANCE( FlatDecoration ) 360 Q_CREATE_INSTANCE( FlatDecoration )
359} 361}
360 362
diff --git a/noncore/decorations/flat/flat.h b/noncore/decorations/flat/flat.h
index 3d8a18b..96ceb1f 100644
--- a/noncore/decorations/flat/flat.h
+++ b/noncore/decorations/flat/flat.h
@@ -1,49 +1,48 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#ifndef FLAT_H 21#ifndef FLAT_H
22#define FLAT_H 22#define FLAT_H
23 23
24#include <qtopia/windowdecorationinterface.h> 24#include <qtopia/windowdecorationinterface.h>
25#include <qcache.h> 25#include <qcache.h>
26#include <qimage.h> 26#include <qimage.h>
27 27
28class FlatDecoration : public WindowDecorationInterface 28class FlatDecoration : public WindowDecorationInterface
29{ 29{
30public: 30public:
31 FlatDecoration(); 31 FlatDecoration();
32 virtual ~FlatDecoration(); 32 virtual ~FlatDecoration();
33 33
34 virtual int metric( Metric m, const WindowData * ) const; 34 virtual int metric( Metric m, const WindowData * ) const;
35 virtual void drawArea( Area a, QPainter *, const WindowData * ) const; 35 virtual void drawArea( Area a, QPainter *, const WindowData * ) const;
36 virtual void drawButton( Button b, QPainter *, const WindowData *, int x, int y, int w, int h, QWSButton::State ) const; 36 virtual void drawButton( Button b, QPainter *, const WindowData *, int x, int y, int w, int h, QWSButton::State ) const;
37 virtual QRegion mask( const WindowData * ) const; 37 virtual QRegion mask( const WindowData * ) const;
38 virtual QString name() const; 38 virtual QString name() const;
39 virtual QPixmap icon() const; 39 virtual QPixmap icon() const;
40 40
41 QRESULT queryInterface( const QUuid&, QUnknownInterface** ); 41 QRESULT queryInterface( const QUuid&, QUnknownInterface** );
42 Q_REFCOUNT 42 Q_REFCOUNT
43 43
44private: 44private:
45 ulong ref;
46 QCache<QImage> buttonCache; 45 QCache<QImage> buttonCache;
47}; 46};
48 47
49#endif 48#endif
diff --git a/noncore/decorations/liquid/liquid.cpp b/noncore/decorations/liquid/liquid.cpp
index 75b1fc9..ef2ac3c 100644
--- a/noncore/decorations/liquid/liquid.cpp
+++ b/noncore/decorations/liquid/liquid.cpp
@@ -1,136 +1,138 @@
1#include "liquid.h" 1#include "liquid.h"
2 2
3#include <qapplication.h> 3#include <qapplication.h>
4#include <qpainter.h> 4#include <qpainter.h>
5#include <qpalette.h> 5#include <qpalette.h>
6#include <qdrawutil.h> 6#include <qdrawutil.h>
7 7
8 8
9LiquidDecoInterface::LiquidDecoInterface ( ) : ref ( 0 ) 9LiquidDecoInterface::LiquidDecoInterface ( )
10{ 10{
11} 11}
12 12
13LiquidDecoInterface::~LiquidDecoInterface ( ) 13LiquidDecoInterface::~LiquidDecoInterface ( )
14{ 14{
15} 15}
16 16
17 17
18 18
19QString LiquidDecoInterface::name ( ) const 19QString LiquidDecoInterface::name ( ) const
20{ 20{
21 return qApp-> translate ( "Decoration", "Liquid" ); 21 return qApp-> translate ( "Decoration", "Liquid" );
22} 22}
23 23
24 24
25QPixmap LiquidDecoInterface::icon ( ) const 25QPixmap LiquidDecoInterface::icon ( ) const
26{ 26{
27 return QPixmap ( ); 27 return QPixmap ( );
28} 28}
29 29
30void LiquidDecoInterface::drawArea( Area a, QPainter *p, const WindowData *wd ) const 30void LiquidDecoInterface::drawArea( Area a, QPainter *p, const WindowData *wd ) const
31{ 31{
32 QRect r = wd-> rect; 32 QRect r = wd-> rect;
33 int th = metric ( TitleHeight, wd ); 33 int th = metric ( TitleHeight, wd );
34 34
35 switch ( a ) { 35 switch ( a ) {
36 case WindowDecorationInterface::Border: { 36 case WindowDecorationInterface::Border: {
37 const QColorGroup &cg = wd-> palette. active ( ); 37 const QColorGroup &cg = wd-> palette. active ( );
38 qDrawWinPanel ( p, r. x ( ) - metric ( LeftBorder, wd ), 38 qDrawWinPanel ( p, r. x ( ) - metric ( LeftBorder, wd ),
39 r. y ( ) - th - metric ( TopBorder, wd ), 39 r. y ( ) - th - metric ( TopBorder, wd ),
40 r. width ( ) + metric ( LeftBorder, wd ) + metric ( RightBorder, wd ), 40 r. width ( ) + metric ( LeftBorder, wd ) + metric ( RightBorder, wd ),
41 r. height ( ) + th + metric ( TopBorder,wd) + metric ( BottomBorder, wd ), 41 r. height ( ) + th + metric ( TopBorder,wd) + metric ( BottomBorder, wd ),
42 cg, false, &cg. brush ( QColorGroup::Background )); 42 cg, false, &cg. brush ( QColorGroup::Background ));
43 break; 43 break;
44 } 44 }
45 case WindowDecorationInterface::Title: { 45 case WindowDecorationInterface::Title: {
46 const QColorGroup &cg = wd-> palette. active ( ); 46 const QColorGroup &cg = wd-> palette. active ( );
47 47
48 QBrush titleBrush; 48 QBrush titleBrush;
49 QPen titleLines1, titleLines2; 49 QPen titleLines1, titleLines2;
50 50
51 titleBrush = cg. brush (( wd-> flags & WindowData::Active ) ? QColorGroup::Highlight : QColorGroup::Background ); 51 titleBrush = cg. brush (( wd-> flags & WindowData::Active ) ? QColorGroup::Highlight : QColorGroup::Background );
52 titleLines1 = titleBrush. color ( ). dark ( 105 ); 52 titleLines1 = titleBrush. color ( ). dark ( 105 );
53 titleLines2 = titleBrush. color ( ). dark ( 103 ); 53 titleLines2 = titleBrush. color ( ). dark ( 103 );
54 54
55 p-> fillRect ( r. x ( ), r. y ( ) - th, r. width ( ), th, titleBrush ); 55 p-> fillRect ( r. x ( ), r. y ( ) - th, r. width ( ), th, titleBrush );
56 for ( int i = r.y()-th; i < r.y(); i += 4 ) { 56 for ( int i = r.y()-th; i < r.y(); i += 4 ) {
57 p-> setPen ( titleLines1 ); 57 p-> setPen ( titleLines1 );
58 p-> drawLine ( r. left ( ), i, r. right ( ), i ); 58 p-> drawLine ( r. left ( ), i, r. right ( ), i );
59 p-> setPen ( titleLines2 ); 59 p-> setPen ( titleLines2 );
60 p-> drawLine ( r. left ( ), i+1, r. right ( ), i+1 ); 60 p-> drawLine ( r. left ( ), i+1, r. right ( ), i+1 );
61 } 61 }
62 break; 62 break;
63 } 63 }
64 case WindowDecorationInterface::TitleText: { 64 case WindowDecorationInterface::TitleText: {
65 QColor textcol = wd-> palette. active ( ). color (( wd-> flags & WindowData::Active ) ? QColorGroup::HighlightedText : QColorGroup::Text ); 65 QColor textcol = wd-> palette. active ( ). color (( wd-> flags & WindowData::Active ) ? QColorGroup::HighlightedText : QColorGroup::Text );
66 QColor shadecol = ( qGray ( textcol. rgb ( ) ) > 128 ) ? textcol. dark ( 230 ) : textcol.light( 300 ); 66 QColor shadecol = ( qGray ( textcol. rgb ( ) ) > 128 ) ? textcol. dark ( 230 ) : textcol.light( 300 );
67 if ( textcol == shadecol ) { 67 if ( textcol == shadecol ) {
68 if ( qGray ( shadecol. rgb ( ) ) < 128 ) 68 if ( qGray ( shadecol. rgb ( ) ) < 128 )
69 shadecol = QColor ( 225, 225, 225 ); 69 shadecol = QColor ( 225, 225, 225 );
70 else 70 else
71 shadecol = QColor ( 30, 30, 30 ); 71 shadecol = QColor ( 30, 30, 30 );
72 } 72 }
73 QColor fillcol = wd-> palette. active ( ). color (( wd-> flags & WindowData::Active ) ? QColorGroup::Highlight : QColorGroup::Background ); 73 QColor fillcol = wd-> palette. active ( ). color (( wd-> flags & WindowData::Active ) ? QColorGroup::Highlight : QColorGroup::Background );
74 QColor bordercol = fillcol. dark ( 110 ); 74 QColor bordercol = fillcol. dark ( 110 );
75 fillcol = fillcol. light ( 110 ); 75 fillcol = fillcol. light ( 110 );
76 76
77 QRect tr ( r.x ( ) + 3 + metric ( HelpWidth, wd ), r. top ( ) - th, 77 QRect tr ( r.x ( ) + 3 + metric ( HelpWidth, wd ), r. top ( ) - th,
78 r. width ( ) - metric ( OKWidth, wd ) - metric ( CloseWidth, wd ), th ); 78 r. width ( ) - metric ( OKWidth, wd ) - metric ( CloseWidth, wd ), th );
79 79
80 QFont f = p-> font ( ); 80 QFont f = p-> font ( );
81 f. setWeight ( QFont::Bold ); 81 f. setWeight ( QFont::Bold );
82 p-> setFont ( f ); 82 p-> setFont ( f );
83 83
84 QRect br = p-> boundingRect ( tr, QPainter::AlignCenter, wd-> caption ); 84 QRect br = p-> boundingRect ( tr, QPainter::AlignCenter, wd-> caption );
85 int trh2 = tr. height ( ) / 2; 85 int trh2 = tr. height ( ) / 2;
86 86
87 int align = QPainter::AlignCenter; 87 int align = QPainter::AlignCenter;
88 88
89 if ( br. width ( ) + 2 * trh2 > tr. width ( ) ) { 89 if ( br. width ( ) + 2 * trh2 > tr. width ( ) ) {
90 br. setLeft ( tr. left ( ) + trh2 ); 90 br. setLeft ( tr. left ( ) + trh2 );
91 br. setWidth ( tr. width ( ) - 2 * trh2 ); 91 br. setWidth ( tr. width ( ) - 2 * trh2 );
92 92
93 align = QPainter::AlignLeft | QPainter::AlignVCenter; 93 align = QPainter::AlignLeft | QPainter::AlignVCenter;
94 } 94 }
95 95
96 p-> setBrush ( fillcol ); 96 p-> setBrush ( fillcol );
97 p-> setPen ( bordercol /*Qt::NoPen*/ ); 97 p-> setPen ( bordercol /*Qt::NoPen*/ );
98 p->drawChord ( br. left ( ) - trh2, tr. top ( ), 2 * trh2, tr. height ( ), 90*16, 180*16 ); 98 p->drawChord ( br. left ( ) - trh2, tr. top ( ), 2 * trh2, tr. height ( ), 90*16, 180*16 );
99 p->drawChord ( br. right ( ) + 1 - trh2, tr. top ( ), 2 * trh2, tr. height ( ), 90*16, -180*16 ); 99 p->drawChord ( br. right ( ) + 1 - trh2, tr. top ( ), 2 * trh2, tr. height ( ), 90*16, -180*16 );
100 100
101 p-> fillRect ( br.left() - 1, tr. top ( ), br. width ( ) + 2, tr. height ( ), fillcol); 101 p-> fillRect ( br.left() - 1, tr. top ( ), br. width ( ) + 2, tr. height ( ), fillcol);
102 102
103 p-> setPen ( shadecol ); 103 p-> setPen ( shadecol );
104 p-> drawText ( br, align, wd-> caption ); 104 p-> drawText ( br, align, wd-> caption );
105 p-> setPen ( textcol ); 105 p-> setPen ( textcol );
106 br. moveBy ( -1, -1 ); 106 br. moveBy ( -1, -1 );
107 p-> drawText ( br, align, wd-> caption ); 107 p-> drawText ( br, align, wd-> caption );
108 break; 108 break;
109 } 109 }
110 default: { 110 default: {
111 WindowDecorationInterface::drawArea ( a, p, wd ); 111 WindowDecorationInterface::drawArea ( a, p, wd );
112 break; 112 break;
113 } 113 }
114 } 114 }
115} 115}
116 116
117QRESULT LiquidDecoInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) 117QRESULT LiquidDecoInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
118{ 118{
119 *iface = 0; 119 *iface = 0;
120 120
121 if ( uuid == IID_QUnknown ) 121 if ( uuid == IID_QUnknown )
122 *iface = this; 122 *iface = this;
123 else if ( uuid == IID_WindowDecoration ) 123 else if ( uuid == IID_WindowDecoration )
124 *iface = this; 124 *iface = this;
125 else
126 return QS_FALSE;
125 127
126 if ( *iface ) 128 if ( *iface )
127 (*iface)-> addRef ( ); 129 (*iface)-> addRef ( );
128 130
129 return QS_OK; 131 return QS_OK;
130} 132}
131 133
132Q_EXPORT_INTERFACE() 134Q_EXPORT_INTERFACE()
133{ 135{
134 Q_CREATE_INSTANCE( LiquidDecoInterface ) 136 Q_CREATE_INSTANCE( LiquidDecoInterface )
135} 137}
136 138
diff --git a/noncore/decorations/liquid/liquid.h b/noncore/decorations/liquid/liquid.h
index ec55132..bbe433e 100644
--- a/noncore/decorations/liquid/liquid.h
+++ b/noncore/decorations/liquid/liquid.h
@@ -1,25 +1,23 @@
1#ifndef __OPIE_LIQUIDDECO_PLUGIN_H__ 1#ifndef __OPIE_LIQUIDDECO_PLUGIN_H__
2#define __OPIE_LIQUIDDECO_PLUGIN_H__ 2#define __OPIE_LIQUIDDECO_PLUGIN_H__
3 3
4#include <qpe/windowdecorationinterface.h> 4#include <qpe/windowdecorationinterface.h>
5 5
6class LiquidSettings; 6class LiquidSettings;
7 7
8class LiquidDecoInterface : public WindowDecorationInterface { 8class LiquidDecoInterface : public WindowDecorationInterface {
9public: 9public:
10 LiquidDecoInterface ( ); 10 LiquidDecoInterface ( );
11 virtual ~LiquidDecoInterface ( ); 11 virtual ~LiquidDecoInterface ( );
12 12
13 QRESULT queryInterface ( const QUuid &, QUnknownInterface ** ); 13 QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
14 Q_REFCOUNT 14 Q_REFCOUNT
15 15
16 virtual void drawArea( Area a, QPainter *, const WindowData * ) const; 16 virtual void drawArea( Area a, QPainter *, const WindowData * ) const;
17 17
18 virtual QString name ( ) const; 18 virtual QString name ( ) const;
19 virtual QPixmap icon ( ) const; 19 virtual QPixmap icon ( ) const;
20 20
21private:
22 ulong ref;
23}; 21};
24 22
25#endif 23#endif
diff --git a/noncore/decorations/polished/polished.cpp b/noncore/decorations/polished/polished.cpp
index 30f1a84..43179be 100644
--- a/noncore/decorations/polished/polished.cpp
+++ b/noncore/decorations/polished/polished.cpp
@@ -1,171 +1,173 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "polished.h" 21#include "polished.h"
22#include <qpainter.h> 22#include <qpainter.h>
23#include <qapplication.h> 23#include <qapplication.h>
24 24
25PolishedDecoration::PolishedDecoration() : ref(0) 25PolishedDecoration::PolishedDecoration()
26{ 26{
27} 27}
28 28
29PolishedDecoration::~PolishedDecoration() 29PolishedDecoration::~PolishedDecoration()
30{ 30{
31} 31}
32 32
33int PolishedDecoration::metric( Metric m, const WindowData *wd ) const 33int PolishedDecoration::metric( Metric m, const WindowData *wd ) const
34{ 34{
35 switch ( m ) { 35 switch ( m ) {
36 case TopBorder: 36 case TopBorder:
37 return 1; 37 return 1;
38 break; 38 break;
39 case LeftBorder: 39 case LeftBorder:
40 case RightBorder: 40 case RightBorder:
41 return 2; 41 return 2;
42 case BottomBorder: 42 case BottomBorder:
43 return 6; 43 return 6;
44 case TitleHeight: 44 case TitleHeight:
45 if ( QApplication::desktop()->height() > 320 ) 45 if ( QApplication::desktop()->height() > 320 )
46 return 20; 46 return 20;
47 else 47 else
48 return 18; 48 return 18;
49 default: 49 default:
50 return WindowDecorationInterface::metric( m, wd ); 50 return WindowDecorationInterface::metric( m, wd );
51 break; 51 break;
52 } 52 }
53 53
54 return 0; 54 return 0;
55} 55}
56 56
57void PolishedDecoration::drawArea( Area a, QPainter *p, const WindowData *wd ) const 57void PolishedDecoration::drawArea( Area a, QPainter *p, const WindowData *wd ) const
58{ 58{
59 int th = metric( TitleHeight, wd ); 59 int th = metric( TitleHeight, wd );
60 QRect r = wd->rect; 60 QRect r = wd->rect;
61 61
62 switch ( a ) { 62 switch ( a ) {
63 case Border: 63 case Border:
64 { 64 {
65 const QColorGroup &cg = wd->palette.active(); 65 const QColorGroup &cg = wd->palette.active();
66 QColor c; 66 QColor c;
67 if ( wd->flags & WindowData::Active ) { 67 if ( wd->flags & WindowData::Active ) {
68 c = cg.color(QColorGroup::Highlight); 68 c = cg.color(QColorGroup::Highlight);
69 } else { 69 } else {
70 c = cg.color(QColorGroup::Background); 70 c = cg.color(QColorGroup::Background);
71 } 71 }
72 drawBlend( p, QRect(r.x(),r.bottom()+1,r.width(),metric(BottomBorder,wd)), c.dark(180), c.light() ); 72 drawBlend( p, QRect(r.x(),r.bottom()+1,r.width(),metric(BottomBorder,wd)), c.dark(180), c.light() );
73 int lb = metric(LeftBorder,wd); 73 int lb = metric(LeftBorder,wd);
74 int rb = metric(RightBorder,wd); 74 int rb = metric(RightBorder,wd);
75 int tb = metric(TopBorder,wd); 75 int tb = metric(TopBorder,wd);
76 int bb = metric(BottomBorder,wd); 76 int bb = metric(BottomBorder,wd);
77 p->fillRect( r.x()-lb, r.y()-th-tb, lb, 77 p->fillRect( r.x()-lb, r.y()-th-tb, lb,
78 r.height()+th+tb+bb, c.dark(180) ); 78 r.height()+th+tb+bb, c.dark(180) );
79 p->fillRect( r.right()+1, r.y()-th-tb, rb, 79 p->fillRect( r.right()+1, r.y()-th-tb, rb,
80 r.height()+th+tb+bb, c.dark(180) ); 80 r.height()+th+tb+bb, c.dark(180) );
81 p->fillRect( r.left(), r.y()-th-tb, r.width(), 81 p->fillRect( r.left(), r.y()-th-tb, r.width(),
82 tb, c.dark(180) ); 82 tb, c.dark(180) );
83 } 83 }
84 break; 84 break;
85 case Title: 85 case Title:
86 if ( r.height() < 2 ) { 86 if ( r.height() < 2 ) {
87 WindowDecorationInterface::drawArea( a, p, wd ); 87 WindowDecorationInterface::drawArea( a, p, wd );
88 } else { 88 } else {
89 const QColorGroup &cg = wd->palette.active(); 89 const QColorGroup &cg = wd->palette.active();
90 QColor c1, c2; 90 QColor c1, c2;
91 if ( wd->flags & WindowData::Active ) { 91 if ( wd->flags & WindowData::Active ) {
92 c1 = cg.color(QColorGroup::Highlight).light(); 92 c1 = cg.color(QColorGroup::Highlight).light();
93 c2 = cg.color(QColorGroup::Highlight).dark(180); 93 c2 = cg.color(QColorGroup::Highlight).dark(180);
94 } else { 94 } else {
95 c1 = cg.color(QColorGroup::Background); 95 c1 = cg.color(QColorGroup::Background);
96 c2 = cg.color(QColorGroup::Background).dark(180); 96 c2 = cg.color(QColorGroup::Background).dark(180);
97 } 97 }
98 drawBlend( p, QRect(r.x(),r.y()-th,r.width(),th), c2, c1 ); 98 drawBlend( p, QRect(r.x(),r.y()-th,r.width(),th), c2, c1 );
99 } 99 }
100 break; 100 break;
101 case TitleText: 101 case TitleText:
102 p->drawText( r.left()+5+metric(HelpWidth,wd), r.top()-th, r.width(), th, 102 p->drawText( r.left()+5+metric(HelpWidth,wd), r.top()-th, r.width(), th,
103 Qt::AlignVCenter, wd->caption ); 103 Qt::AlignVCenter, wd->caption );
104 break; 104 break;
105 default: 105 default:
106 PolishedDecoration::drawArea( a, p, wd ); 106 PolishedDecoration::drawArea( a, p, wd );
107 break; 107 break;
108 } 108 }
109} 109}
110 110
111void PolishedDecoration::drawButton( Button b, QPainter *p, const WindowData *wd, int x, int y, int w, int h, QWSButton::State state ) const 111void PolishedDecoration::drawButton( Button b, QPainter *p, const WindowData *wd, int x, int y, int w, int h, QWSButton::State state ) const
112{ 112{
113 WindowDecorationInterface::drawButton( b, p, wd, x, y, w, h, state ); 113 WindowDecorationInterface::drawButton( b, p, wd, x, y, w, h, state );
114} 114}
115 115
116QRegion PolishedDecoration::mask( const WindowData *wd ) const 116QRegion PolishedDecoration::mask( const WindowData *wd ) const
117{ 117{
118 return WindowDecorationInterface::mask( wd ); 118 return WindowDecorationInterface::mask( wd );
119} 119}
120 120
121QString PolishedDecoration::name() const 121QString PolishedDecoration::name() const
122{ 122{
123 return qApp->translate( "Decoration", "Polished" ); 123 return qApp->translate( "Decoration", "Polished" );
124} 124}
125 125
126QPixmap PolishedDecoration::icon() const 126QPixmap PolishedDecoration::icon() const
127{ 127{
128 return QPixmap(); 128 return QPixmap();
129} 129}
130 130
131void PolishedDecoration::drawBlend( QPainter *p, const QRect &r, const QColor &c1, const QColor &c2 ) const 131void PolishedDecoration::drawBlend( QPainter *p, const QRect &r, const QColor &c1, const QColor &c2 ) const
132{ 132{
133 int h1, h2, s1, s2, v1, v2; 133 int h1, h2, s1, s2, v1, v2;
134 c1.hsv( &h1, &s1, &v1 ); 134 c1.hsv( &h1, &s1, &v1 );
135 c2.hsv( &h2, &s2, &v2 ); 135 c2.hsv( &h2, &s2, &v2 );
136 136
137 int split = r.height()/3; 137 int split = r.height()/3;
138 138
139 for ( int j = 0; j < split; j++ ) { 139 for ( int j = 0; j < split; j++ ) {
140 p->setPen( QColor( h1 + ((h2-h1)*(j+split))/(2*split-1), 140 p->setPen( QColor( h1 + ((h2-h1)*(j+split))/(2*split-1),
141 s1 + ((s2-s1)*(j+split))/(2*split-1), 141 s1 + ((s2-s1)*(j+split))/(2*split-1),
142 v1 + ((v2-v1)*(j+split))/(2*split-1), QColor::Hsv ) ); 142 v1 + ((v2-v1)*(j+split))/(2*split-1), QColor::Hsv ) );
143 p->drawLine( r.x(), r.y()+j, r.right(), r.y()+j ); 143 p->drawLine( r.x(), r.y()+j, r.right(), r.y()+j );
144 } 144 }
145 145
146 for ( int j = 0; j < r.height()-split; j++ ) { 146 for ( int j = 0; j < r.height()-split; j++ ) {
147 p->setPen( QColor( h1 + ((h2-h1)*j)/(r.height()-split-1), 147 p->setPen( QColor( h1 + ((h2-h1)*j)/(r.height()-split-1),
148 s1 + ((s2-s1)*j)/(r.height()-split-1), 148 s1 + ((s2-s1)*j)/(r.height()-split-1),
149 v1 + ((v2-v1)*j)/(r.height()-split-1), QColor::Hsv ) ); 149 v1 + ((v2-v1)*j)/(r.height()-split-1), QColor::Hsv ) );
150 p->drawLine( r.x(), r.bottom()-j, r.right(), r.bottom()-j ); 150 p->drawLine( r.x(), r.bottom()-j, r.right(), r.bottom()-j );
151 } 151 }
152} 152}
153 153
154QRESULT PolishedDecoration::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 154QRESULT PolishedDecoration::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
155{ 155{
156 *iface = 0; 156 *iface = 0;
157 if ( uuid == IID_QUnknown ) 157 if ( uuid == IID_QUnknown )
158 *iface = this; 158 *iface = this;
159 else if ( uuid == IID_WindowDecoration ) 159 else if ( uuid == IID_WindowDecoration )
160 *iface = this; 160 *iface = this;
161 else
162 return QS_FALSE;
161 163
162 if ( *iface ) 164 if ( *iface )
163 (*iface)->addRef(); 165 (*iface)->addRef();
164 return QS_OK; 166 return QS_OK;
165} 167}
166 168
167Q_EXPORT_INTERFACE() 169Q_EXPORT_INTERFACE()
168{ 170{
169 Q_CREATE_INSTANCE( PolishedDecoration ) 171 Q_CREATE_INSTANCE( PolishedDecoration )
170} 172}
171 173
diff --git a/noncore/decorations/polished/polished.h b/noncore/decorations/polished/polished.h
index e5c19c0..d661427 100644
--- a/noncore/decorations/polished/polished.h
+++ b/noncore/decorations/polished/polished.h
@@ -1,49 +1,47 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#ifndef POLISHED_H 21#ifndef POLISHED_H
22#define POLISHED_H 22#define POLISHED_H
23 23
24#include <qtopia/windowdecorationinterface.h> 24#include <qtopia/windowdecorationinterface.h>
25 25
26class PolishedDecoration : public WindowDecorationInterface 26class PolishedDecoration : public WindowDecorationInterface
27{ 27{
28public: 28public:
29 PolishedDecoration(); 29 PolishedDecoration();
30 virtual ~PolishedDecoration(); 30 virtual ~PolishedDecoration();
31 31
32 virtual int metric( Metric m, const WindowData * ) const; 32 virtual int metric( Metric m, const WindowData * ) const;
33 virtual void drawArea( Area a, QPainter *, const WindowData * ) const; 33 virtual void drawArea( Area a, QPainter *, const WindowData * ) const;
34 virtual void drawButton( Button b, QPainter *, const WindowData *, int x, int y, int w, int h, QWSButton::State ) const; 34 virtual void drawButton( Button b, QPainter *, const WindowData *, int x, int y, int w, int h, QWSButton::State ) const;
35 virtual QRegion mask( const WindowData * ) const; 35 virtual QRegion mask( const WindowData * ) const;
36 virtual QString name() const; 36 virtual QString name() const;
37 virtual QPixmap icon() const; 37 virtual QPixmap icon() const;
38 38
39 QRESULT queryInterface( const QUuid&, QUnknownInterface** ); 39 QRESULT queryInterface( const QUuid&, QUnknownInterface** );
40 Q_REFCOUNT 40 Q_REFCOUNT
41 41
42protected: 42protected:
43 void PolishedDecoration::drawBlend( QPainter *, const QRect &r, const QColor &c1, const QColor&c2 ) const; 43 void PolishedDecoration::drawBlend( QPainter *, const QRect &r, const QColor &c1, const QColor&c2 ) const;
44 44
45private:
46 ulong ref;
47}; 45};
48 46
49#endif 47#endif
diff --git a/noncore/styles/flat/flat.cpp b/noncore/styles/flat/flat.cpp
index 24366f6..f3bacf9 100644
--- a/noncore/styles/flat/flat.cpp
+++ b/noncore/styles/flat/flat.cpp
@@ -1,1102 +1,1102 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include <qtopia/qpeapplication.h> 21#include <qtopia/qpeapplication.h>
22#include <qpushbutton.h> 22#include <qpushbutton.h>
23#include <qtoolbutton.h> 23#include <qtoolbutton.h>
24#include <qpainter.h> 24#include <qpainter.h>
25#include <qfontmetrics.h> 25#include <qfontmetrics.h>
26#include <qpalette.h> 26#include <qpalette.h>
27#include <qdrawutil.h> 27#include <qdrawutil.h>
28#include <qscrollbar.h> 28#include <qscrollbar.h>
29#include <qbutton.h> 29#include <qbutton.h>
30#include <qframe.h> 30#include <qframe.h>
31#include <qtabbar.h> 31#include <qtabbar.h>
32#include <qspinbox.h> 32#include <qspinbox.h>
33#include <qlineedit.h> 33#include <qlineedit.h>
34#include <qmap.h> 34#include <qmap.h>
35 35
36#define INCLUDE_MENUITEM_DEF 36#define INCLUDE_MENUITEM_DEF
37#include <qmenudata.h> 37#include <qmenudata.h>
38#include <qpopupmenu.h> 38#include <qpopupmenu.h>
39 39
40#include "flat.h" 40#include "flat.h"
41 41
42#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) 42#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2)
43 43
44class SpinBoxHack : public QSpinBox 44class SpinBoxHack : public QSpinBox
45{ 45{
46public: 46public:
47 void setFlatButtons( bool f ) { 47 void setFlatButtons( bool f ) {
48 upButton()->setFlat( f ); 48 upButton()->setFlat( f );
49 downButton()->setFlat( f ); 49 downButton()->setFlat( f );
50 } 50 }
51}; 51};
52 52
53class FlatStylePrivate : public QObject 53class FlatStylePrivate : public QObject
54{ 54{
55 Q_OBJECT 55 Q_OBJECT
56public: 56public:
57 FlatStylePrivate() : QObject() {} 57 FlatStylePrivate() : QObject() {}
58 58
59 bool eventFilter( QObject *o, QEvent *e ) { 59 bool eventFilter( QObject *o, QEvent *e ) {
60 if ( e->type() == QEvent::ParentPaletteChange ) { 60 if ( e->type() == QEvent::ParentPaletteChange ) {
61 if ( o->inherits( "QMenuBar" ) ) { 61 if ( o->inherits( "QMenuBar" ) ) {
62 QWidget *w = (QWidget *)o; 62 QWidget *w = (QWidget *)o;
63 if ( w->parentWidget() ) { 63 if ( w->parentWidget() ) {
64 QPalette p = w->parentWidget()->palette(); 64 QPalette p = w->parentWidget()->palette();
65 QColorGroup a = p.active(); 65 QColorGroup a = p.active();
66 a.setColor( QColorGroup::Light, a.foreground() ); 66 a.setColor( QColorGroup::Light, a.foreground() );
67 a.setColor( QColorGroup::Dark, a.foreground() ); 67 a.setColor( QColorGroup::Dark, a.foreground() );
68 p.setActive( a ); 68 p.setActive( a );
69 p.setInactive( a ); 69 p.setInactive( a );
70 w->setPalette( p ); 70 w->setPalette( p );
71 } 71 }
72 } else if ( o->inherits( "QHeader" ) ) { 72 } else if ( o->inherits( "QHeader" ) ) {
73 QWidget *w = (QWidget *)o; 73 QWidget *w = (QWidget *)o;
74 if ( w->parentWidget() ) { 74 if ( w->parentWidget() ) {
75 QPalette p = w->parentWidget()->palette(); 75 QPalette p = w->parentWidget()->palette();
76 QColorGroup a = p.active(); 76 QColorGroup a = p.active();
77 a.setColor( QColorGroup::Light, a.button() ); 77 a.setColor( QColorGroup::Light, a.button() );
78 p.setActive( a ); 78 p.setActive( a );
79 p.setInactive( a ); 79 p.setInactive( a );
80 w->setPalette( p ); 80 w->setPalette( p );
81 } 81 }
82 } 82 }
83 } 83 }
84 return FALSE; 84 return FALSE;
85 } 85 }
86 86
87 QMap<QFrame *,int> frameStyles; 87 QMap<QFrame *,int> frameStyles;
88}; 88};
89 89
90FlatStyle::FlatStyle() : revItem(FALSE), fillBtnBorder(FALSE) 90FlatStyle::FlatStyle() : revItem(FALSE), fillBtnBorder(FALSE)
91{ 91{
92 setButtonMargin(3); 92 setButtonMargin(3);
93 setScrollBarExtent(13,13); 93 setScrollBarExtent(13,13);
94 setButtonDefaultIndicatorWidth(0); 94 setButtonDefaultIndicatorWidth(0);
95 d = new FlatStylePrivate; 95 d = new FlatStylePrivate;
96} 96}
97 97
98FlatStyle::~FlatStyle() 98FlatStyle::~FlatStyle()
99{ 99{
100 delete d; 100 delete d;
101} 101}
102 102
103int FlatStyle::buttonMargin() const 103int FlatStyle::buttonMargin() const
104{ 104{
105 return 3; 105 return 3;
106} 106}
107 107
108QSize FlatStyle::scrollBarExtent() const 108QSize FlatStyle::scrollBarExtent() const
109{ 109{
110 return QSize(13,13); 110 return QSize(13,13);
111} 111}
112 112
113void FlatStyle::polish ( QPalette & ) 113void FlatStyle::polish ( QPalette & )
114{ 114{
115} 115}
116 116
117void FlatStyle::polish( QWidget *w ) 117void FlatStyle::polish( QWidget *w )
118{ 118{
119 if ( w->inherits( "QFrame" ) ) { 119 if ( w->inherits( "QFrame" ) ) {
120 QFrame *f = (QFrame *)w; 120 QFrame *f = (QFrame *)w;
121 if ( f->frameShape() == QFrame::HLine || f->frameShape() == QFrame::VLine ) 121 if ( f->frameShape() == QFrame::HLine || f->frameShape() == QFrame::VLine )
122 f->setFrameShadow( QFrame::Plain ); 122 f->setFrameShadow( QFrame::Plain );
123 else if ( f->frameShape() != QFrame::NoFrame ) 123 else if ( f->frameShape() != QFrame::NoFrame )
124 f->setFrameShape( QFrame::StyledPanel ); 124 f->setFrameShape( QFrame::StyledPanel );
125 f->setLineWidth( 1 ); 125 f->setLineWidth( 1 );
126 } 126 }
127 if ( w->inherits( "QSpinBox" ) ) 127 if ( w->inherits( "QSpinBox" ) )
128 ((SpinBoxHack*)w)->setFlatButtons( TRUE ); 128 ((SpinBoxHack*)w)->setFlatButtons( TRUE );
129 if ( w->inherits( "QMenuBar" ) ) { 129 if ( w->inherits( "QMenuBar" ) ) {
130 // make selected item look flat 130 // make selected item look flat
131 QPalette p = w->palette(); 131 QPalette p = w->palette();
132 QColorGroup a = p.active(); 132 QColorGroup a = p.active();
133 a.setColor( QColorGroup::Light, a.foreground() ); 133 a.setColor( QColorGroup::Light, a.foreground() );
134 a.setColor( QColorGroup::Dark, a.foreground() ); 134 a.setColor( QColorGroup::Dark, a.foreground() );
135 p.setActive( a ); 135 p.setActive( a );
136 p.setInactive( a ); 136 p.setInactive( a );
137 w->setPalette( p ); 137 w->setPalette( p );
138 w->installEventFilter( d ); 138 w->installEventFilter( d );
139 } else if ( w->inherits( "QHeader" ) ) { 139 } else if ( w->inherits( "QHeader" ) ) {
140 // make headers look flat 140 // make headers look flat
141 QPalette p = w->palette(); 141 QPalette p = w->palette();
142 QColorGroup a = p.active(); 142 QColorGroup a = p.active();
143 a.setColor( QColorGroup::Light, a.button() ); 143 a.setColor( QColorGroup::Light, a.button() );
144 p.setActive( a ); 144 p.setActive( a );
145 p.setInactive( a ); 145 p.setInactive( a );
146 w->setPalette( p ); 146 w->setPalette( p );
147 w->installEventFilter( d ); 147 w->installEventFilter( d );
148 } 148 }
149} 149}
150 150
151void FlatStyle::unPolish( QWidget *w ) 151void FlatStyle::unPolish( QWidget *w )
152{ 152{
153 if ( w->inherits("QFrame") ) { 153 if ( w->inherits("QFrame") ) {
154 QFrame *f = (QFrame *)w; 154 QFrame *f = (QFrame *)w;
155 if ( f->frameShape() == QFrame::HLine || f->frameShape() == QFrame::VLine ) { 155 if ( f->frameShape() == QFrame::HLine || f->frameShape() == QFrame::VLine ) {
156 f->setFrameShadow( QFrame::Sunken ); 156 f->setFrameShadow( QFrame::Sunken );
157 } else if ( f->frameShape() != QFrame::NoFrame ) { 157 } else if ( f->frameShape() != QFrame::NoFrame ) {
158 f->setFrameShape( QFrame::StyledPanel ); 158 f->setFrameShape( QFrame::StyledPanel );
159 f->setLineWidth( 2 ); 159 f->setLineWidth( 2 );
160 } 160 }
161 } 161 }
162 if ( w->inherits("QSpinBox") ) 162 if ( w->inherits("QSpinBox") )
163 ((SpinBoxHack*)w)->setFlatButtons( FALSE ); 163 ((SpinBoxHack*)w)->setFlatButtons( FALSE );
164 if ( w->inherits("QMenuBar") || w->inherits("QHeader") ) { 164 if ( w->inherits("QMenuBar") || w->inherits("QHeader") ) {
165 w->unsetPalette(); 165 w->unsetPalette();
166 w->removeEventFilter( d ); 166 w->removeEventFilter( d );
167 } 167 }
168} 168}
169 169
170int FlatStyle::defaultFrameWidth() const 170int FlatStyle::defaultFrameWidth() const
171{ 171{
172 return 2; 172 return 2;
173} 173}
174 174
175void FlatStyle::drawItem( QPainter *p, int x, int y, int w, int h, 175void FlatStyle::drawItem( QPainter *p, int x, int y, int w, int h,
176 int flags, const QColorGroup &g, bool enabled, 176 int flags, const QColorGroup &g, bool enabled,
177 const QPixmap *pixmap, const QString& text, int len, 177 const QPixmap *pixmap, const QString& text, int len,
178 const QColor* penColor ) 178 const QColor* penColor )
179{ 179{
180 QColor pc( penColor ? *penColor : g.foreground() ); 180 QColor pc( penColor ? *penColor : g.foreground() );
181 QColorGroup cg( g ); 181 QColorGroup cg( g );
182 if ( !enabled ) 182 if ( !enabled )
183 cg.setColor( QColorGroup::Light, cg.background() ); 183 cg.setColor( QColorGroup::Light, cg.background() );
184 if ( revItem ) { 184 if ( revItem ) {
185 pc = cg.button(); 185 pc = cg.button();
186 revItem = FALSE; 186 revItem = FALSE;
187 } 187 }
188 QWindowsStyle::drawItem( p, x, y, w, h, flags, cg, enabled, pixmap, text, len, &pc ); 188 QWindowsStyle::drawItem( p, x, y, w, h, flags, cg, enabled, pixmap, text, len, &pc );
189} 189}
190 190
191void FlatStyle::drawPanel ( QPainter * p, int x, int y, int w, int h, 191void FlatStyle::drawPanel ( QPainter * p, int x, int y, int w, int h,
192 const QColorGroup &g, bool /*sunken*/, int lineWidth, const QBrush * fill ) 192 const QColorGroup &g, bool /*sunken*/, int lineWidth, const QBrush * fill )
193{ 193{
194 if ( fill ) 194 if ( fill )
195 p->setBrush( *fill ); 195 p->setBrush( *fill );
196 p->setPen( QPen(g.foreground(), lineWidth) ); 196 p->setPen( QPen(g.foreground(), lineWidth) );
197 p->drawRect( x, y, w, h ); 197 p->drawRect( x, y, w, h );
198} 198}
199 199
200void FlatStyle::drawButton( QPainter *p, int x, int y, int w, int h, 200void FlatStyle::drawButton( QPainter *p, int x, int y, int w, int h,
201 const QColorGroup &cg, bool /*sunken*/, const QBrush* fill ) 201 const QColorGroup &cg, bool /*sunken*/, const QBrush* fill )
202{ 202{
203 QPen oldPen = p->pen(); 203 QPen oldPen = p->pen();
204 204
205 int x2 = x+w-1; 205 int x2 = x+w-1;
206 int y2 = y+h-1; 206 int y2 = y+h-1;
207 207
208 if ( fillBtnBorder && btnBg != cg.color(QColorGroup::Button) ) { 208 if ( fillBtnBorder && btnBg != cg.color(QColorGroup::Button) ) {
209 p->setPen( btnBg ); 209 p->setPen( btnBg );
210 p->drawLine( x, y, x2, y ); 210 p->drawLine( x, y, x2, y );
211 p->drawLine( x, y2, x2, y2 ); 211 p->drawLine( x, y2, x2, y2 );
212 p->drawLine( x, y+1, x, y2-1 ); 212 p->drawLine( x, y+1, x, y2-1 );
213 p->drawLine( x2, y+1, x2, y2-1 ); 213 p->drawLine( x2, y+1, x2, y2-1 );
214 p->fillRect( x+1, y+1, 3, 3, btnBg ); 214 p->fillRect( x+1, y+1, 3, 3, btnBg );
215 p->fillRect( x+1, y2-3, 3, 3, btnBg ); 215 p->fillRect( x+1, y2-3, 3, 3, btnBg );
216 p->fillRect( x2-3, y2-3, 3, 3, btnBg ); 216 p->fillRect( x2-3, y2-3, 3, 3, btnBg );
217 p->fillRect( x2-3, y+1, 3, 3, btnBg ); 217 p->fillRect( x2-3, y+1, 3, 3, btnBg );
218 p->fillRect( x+2, y+2, w-4, h-4, fill?(*fill):cg.brush(QColorGroup::Button) ); 218 p->fillRect( x+2, y+2, w-4, h-4, fill?(*fill):cg.brush(QColorGroup::Button) );
219 } else { 219 } else {
220 p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):cg.brush(QColorGroup::Button) ); 220 p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):cg.brush(QColorGroup::Button) );
221 } 221 }
222 222
223 if ( h >= 10 ) { 223 if ( h >= 10 ) {
224 x++; y++; 224 x++; y++;
225 x2--; y2--; 225 x2--; y2--;
226 w -= 2; h -= 2; 226 w -= 2; h -= 2;
227 } 227 }
228 228
229 p->setPen( cg.foreground() ); 229 p->setPen( cg.foreground() );
230 230
231 if ( h < 10 ) { 231 if ( h < 10 ) {
232 p->setBrush( NoBrush ); 232 p->setBrush( NoBrush );
233 p->drawRect( x, y, w, h ); 233 p->drawRect( x, y, w, h );
234 } else { 234 } else {
235 p->drawLine( x+3, y, x2-3, y ); 235 p->drawLine( x+3, y, x2-3, y );
236 p->drawLine( x+3, y2, x2-3, y2 ); 236 p->drawLine( x+3, y2, x2-3, y2 );
237 p->drawLine( x, y+3, x, y2-3 ); 237 p->drawLine( x, y+3, x, y2-3 );
238 p->drawLine( x2, y+3, x2, y2-3 ); 238 p->drawLine( x2, y+3, x2, y2-3 );
239 239
240 p->drawLine( x+1, y+1, x+2, y+1 ); 240 p->drawLine( x+1, y+1, x+2, y+1 );
241 p->drawPoint( x+1, y+2 ); 241 p->drawPoint( x+1, y+2 );
242 p->drawLine( x2-2, y+1, x2-1, y+1 ); 242 p->drawLine( x2-2, y+1, x2-1, y+1 );
243 p->drawPoint( x2-1, y+2 ); 243 p->drawPoint( x2-1, y+2 );
244 244
245 p->drawLine( x+1, y2-1, x+2, y2-1 ); 245 p->drawLine( x+1, y2-1, x+2, y2-1 );
246 p->drawPoint( x+1, y2-2 ); 246 p->drawPoint( x+1, y2-2 );
247 p->drawLine( x2-2, y2-1, x2-1, y2-1 ); 247 p->drawLine( x2-2, y2-1, x2-1, y2-1 );
248 p->drawPoint( x2-1, y2-2 ); 248 p->drawPoint( x2-1, y2-2 );
249 } 249 }
250 250
251 p->setPen( oldPen ); 251 p->setPen( oldPen );
252} 252}
253 253
254void FlatStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h ) 254void FlatStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h )
255{ 255{
256 x++; y++; 256 x++; y++;
257 x-=2; y-=2; 257 x-=2; y-=2;
258 p->fillRect( x, y, w, h, color1 ); 258 p->fillRect( x, y, w, h, color1 );
259} 259}
260 260
261void FlatStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h, 261void FlatStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h,
262 const QColorGroup &g, bool /*sunken*/, const QBrush* fill ) 262 const QColorGroup &g, bool /*sunken*/, const QBrush* fill )
263{ 263{
264 p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):g.brush(QColorGroup::Button) ); 264 p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):g.brush(QColorGroup::Button) );
265 p->setPen( g.foreground() ); 265 p->setPen( g.foreground() );
266 p->setBrush( NoBrush ); 266 p->setBrush( NoBrush );
267 p->drawRect( x, y, w, h ); 267 p->drawRect( x, y, w, h );
268} 268}
269 269
270void FlatStyle::drawToolButton( QPainter *p, int x, int y, int w, int h, 270void FlatStyle::drawToolButton( QPainter *p, int x, int y, int w, int h,
271 const QColorGroup &g, bool sunken, const QBrush* fill ) 271 const QColorGroup &g, bool sunken, const QBrush* fill )
272{ 272{
273 if ( p->device()->devType() == QInternal::Widget ) { 273 if ( p->device()->devType() == QInternal::Widget ) {
274 QWidget *w = (QWidget *)p->device(); 274 QWidget *w = (QWidget *)p->device();
275 if ( w->isA("QToolButton") ) { 275 if ( w->isA("QToolButton") ) {
276 QToolButton *btn = (QToolButton *)w; 276 QToolButton *btn = (QToolButton *)w;
277 if ( btn->parentWidget() ) { 277 if ( btn->parentWidget() ) {
278 btnBg = btn->parentWidget()->backgroundColor(); 278 btnBg = btn->parentWidget()->backgroundColor();
279 fillBtnBorder = TRUE; 279 fillBtnBorder = TRUE;
280 } 280 }
281 } 281 }
282 } 282 }
283 QBrush fb( fill ? *fill : g.button() ); 283 QBrush fb( fill ? *fill : g.button() );
284 if ( sunken && fb == g.brush( QColorGroup::Button ) ) { 284 if ( sunken && fb == g.brush( QColorGroup::Button ) ) {
285 fb = g.buttonText(); 285 fb = g.buttonText();
286 revItem = TRUE;// ugh 286 revItem = TRUE;// ugh
287 } 287 }
288 drawButton( p, x, y, w, h, g, sunken, &fb ); 288 drawButton( p, x, y, w, h, g, sunken, &fb );
289 fillBtnBorder = FALSE; 289 fillBtnBorder = FALSE;
290} 290}
291 291
292void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p ) 292void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p )
293{ 293{
294 QColorGroup g = btn->colorGroup(); 294 QColorGroup g = btn->colorGroup();
295 int x1, y1, x2, y2; 295 int x1, y1, x2, y2;
296 296
297 btn->rect().coords( &x1, &y1, &x2, &y2 );// get coordinates 297 btn->rect().coords( &x1, &y1, &x2, &y2 );// get coordinates
298 298
299 p->setPen( g.foreground() ); 299 p->setPen( g.foreground() );
300 p->setBrush( QBrush(g.button(),NoBrush) ); 300 p->setBrush( QBrush(g.button(),NoBrush) );
301 301
302// int diw = buttonDefaultIndicatorWidth(); 302// int diw = buttonDefaultIndicatorWidth();
303 /* 303 /*
304 if ( btn->isDefault() || btn->autoDefault() ) { 304 if ( btn->isDefault() || btn->autoDefault() ) {
305 if ( btn->isDefault() ) { 305 if ( btn->isDefault() ) {
306 p->setPen( g.shadow() ); 306 p->setPen( g.shadow() );
307 p->drawRect( x1, y1, x2-x1+1, y2-y1+1 ); 307 p->drawRect( x1, y1, x2-x1+1, y2-y1+1 );
308 } 308 }
309 x1 += diw; 309 x1 += diw;
310 y1 += diw; 310 y1 += diw;
311 x2 -= diw; 311 x2 -= diw;
312 y2 -= diw; 312 y2 -= diw;
313 } 313 }
314 */ 314 */
315 315
316 if ( btn->parentWidget() ) { 316 if ( btn->parentWidget() ) {
317 btnBg = btn->parentWidget()->backgroundColor(); 317 btnBg = btn->parentWidget()->backgroundColor();
318 fillBtnBorder = TRUE; 318 fillBtnBorder = TRUE;
319 } 319 }
320 320
321 bool clearButton = TRUE; 321 bool clearButton = TRUE;
322 if ( btn->isDown() ) { 322 if ( btn->isDown() ) {
323 drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE, 323 drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE,
324 &g.brush( QColorGroup::Text ) ); 324 &g.brush( QColorGroup::Text ) );
325 } else { 325 } else {
326 if ( btn->isToggleButton() && btn->isOn() && btn->isEnabled() ) { 326 if ( btn->isToggleButton() && btn->isOn() && btn->isEnabled() ) {
327 QBrush fill(g.light(), Dense4Pattern ); 327 QBrush fill(g.light(), Dense4Pattern );
328 drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE, &fill ); 328 drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE, &fill );
329 clearButton = FALSE; 329 clearButton = FALSE;
330 } else { 330 } else {
331 if ( !btn->isFlat() ) 331 if ( !btn->isFlat() )
332 drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, btn->isOn(), 332 drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, btn->isOn(),
333 &g.brush( QColorGroup::Button ) ); 333 &g.brush( QColorGroup::Button ) );
334 } 334 }
335 } 335 }
336 /* 336 /*
337 if ( clearButton ) { 337 if ( clearButton ) {
338 if (btn->isDown()) 338 if (btn->isDown())
339 p->setBrushOrigin(p->brushOrigin() + QPoint(1,1)); 339 p->setBrushOrigin(p->brushOrigin() + QPoint(1,1));
340 p->fillRect( x1+2, y1+2, x2-x1-3, y2-y1-3, 340 p->fillRect( x1+2, y1+2, x2-x1-3, y2-y1-3,
341 g.brush( QColorGroup::Button ) ); 341 g.brush( QColorGroup::Button ) );
342 if (btn->isDown()) 342 if (btn->isDown())
343 p->setBrushOrigin(p->brushOrigin() - QPoint(1,1)); 343 p->setBrushOrigin(p->brushOrigin() - QPoint(1,1));
344 } 344 }
345 */ 345 */
346 346
347 fillBtnBorder = FALSE; 347 fillBtnBorder = FALSE;
348 if ( p->brush().style() != NoBrush ) 348 if ( p->brush().style() != NoBrush )
349 p->setBrush( NoBrush ); 349 p->setBrush( NoBrush );
350} 350}
351 351
352void FlatStyle::drawPushButtonLabel( QPushButton *btn, QPainter *p ) 352void FlatStyle::drawPushButtonLabel( QPushButton *btn, QPainter *p )
353{ 353{
354 QRect r = pushButtonContentsRect( btn ); 354 QRect r = pushButtonContentsRect( btn );
355 int x, y, w, h; 355 int x, y, w, h;
356 r.rect( &x, &y, &w, &h ); 356 r.rect( &x, &y, &w, &h );
357 QColorGroup cg = btn->colorGroup(); 357 QColorGroup cg = btn->colorGroup();
358 if ( btn->isToggleButton() && btn->isOn() && btn->isEnabled() && !btn->isDown() ) 358 if ( btn->isToggleButton() && btn->isOn() && btn->isEnabled() && !btn->isDown() )
359 cg.setColor( QColorGroup::ButtonText, btn->colorGroup().text() ); 359 cg.setColor( QColorGroup::ButtonText, btn->colorGroup().text() );
360 else if ( btn->isDown() || btn->isOn() ) 360 else if ( btn->isDown() || btn->isOn() )
361 cg.setColor( QColorGroup::ButtonText, btn->colorGroup().button() ); 361 cg.setColor( QColorGroup::ButtonText, btn->colorGroup().button() );
362 if ( btn->isMenuButton() ) { 362 if ( btn->isMenuButton() ) {
363 int dx = menuButtonIndicatorWidth( btn->height() ); 363 int dx = menuButtonIndicatorWidth( btn->height() );
364 drawArrow( p, DownArrow, FALSE, 364 drawArrow( p, DownArrow, FALSE,
365 x+w-dx, y+2, dx-4, h-4, 365 x+w-dx, y+2, dx-4, h-4,
366 cg, 366 cg,
367 btn->isEnabled() ); 367 btn->isEnabled() );
368 w -= dx; 368 w -= dx;
369 } 369 }
370 370
371 if ( btn->iconSet() && !btn->iconSet()->isNull() ) { 371 if ( btn->iconSet() && !btn->iconSet()->isNull() ) {
372 QIconSet::Mode mode = btn->isEnabled() 372 QIconSet::Mode mode = btn->isEnabled()
373 ? QIconSet::Normal : QIconSet::Disabled; 373 ? QIconSet::Normal : QIconSet::Disabled;
374 if ( mode == QIconSet::Normal && btn->hasFocus() ) 374 if ( mode == QIconSet::Normal && btn->hasFocus() )
375 mode = QIconSet::Active; 375 mode = QIconSet::Active;
376 QPixmap pixmap = btn->iconSet()->pixmap( QIconSet::Small, mode ); 376 QPixmap pixmap = btn->iconSet()->pixmap( QIconSet::Small, mode );
377 int pixw = pixmap.width(); 377 int pixw = pixmap.width();
378 int pixh = pixmap.height(); 378 int pixh = pixmap.height();
379 p->drawPixmap( x+2, y+h/2-pixh/2, pixmap ); 379 p->drawPixmap( x+2, y+h/2-pixh/2, pixmap );
380 x += pixw + 4; 380 x += pixw + 4;
381 w -= pixw + 4; 381 w -= pixw + 4;
382 } 382 }
383 drawItem( p, x, y, w, h, 383 drawItem( p, x, y, w, h,
384 AlignCenter | ShowPrefix, 384 AlignCenter | ShowPrefix,
385 cg, btn->isEnabled(), 385 cg, btn->isEnabled(),
386 btn->pixmap(), btn->text(), -1, &cg.buttonText() ); 386 btn->pixmap(), btn->text(), -1, &cg.buttonText() );
387 387
388} 388}
389 389
390QRect FlatStyle::comboButtonRect( int x, int y, int w, int h) 390QRect FlatStyle::comboButtonRect( int x, int y, int w, int h)
391{ 391{
392 return QRect(x+2, y+2, w-4-13, h-4); 392 return QRect(x+2, y+2, w-4-13, h-4);
393} 393}
394 394
395 395
396QRect FlatStyle::comboButtonFocusRect( int x, int y, int w, int h) 396QRect FlatStyle::comboButtonFocusRect( int x, int y, int w, int h)
397{ 397{
398 return QRect(x+2, y+2, w-4-14, h-4); 398 return QRect(x+2, y+2, w-4-14, h-4);
399} 399}
400 400
401void FlatStyle::drawComboButton( QPainter *p, int x, int y, int w, int h, 401void FlatStyle::drawComboButton( QPainter *p, int x, int y, int w, int h,
402 const QColorGroup &g, bool sunken, 402 const QColorGroup &g, bool sunken,
403 bool /*editable*/, 403 bool /*editable*/,
404 bool enabled, 404 bool enabled,
405 const QBrush * /*fill*/ ) 405 const QBrush * /*fill*/ )
406{ 406{
407 x++; y++; 407 x++; y++;
408 w-=2; h-=2; 408 w-=2; h-=2;
409 p->setPen( g.foreground() ); 409 p->setPen( g.foreground() );
410 p->setBrush( QBrush(NoBrush) ); 410 p->setBrush( QBrush(NoBrush) );
411 p->drawRect( x, y, w, h ); 411 p->drawRect( x, y, w, h );
412 p->setPen( g.background() ); 412 p->setPen( g.background() );
413 p->drawRect( x+1, y+1, w-14, h-2 ); 413 p->drawRect( x+1, y+1, w-14, h-2 );
414 p->fillRect( x+2, y+2, w-16, h-4, g.brush( QColorGroup::Base ) ); 414 p->fillRect( x+2, y+2, w-16, h-4, g.brush( QColorGroup::Base ) );
415 QColorGroup cg( g ); 415 QColorGroup cg( g );
416 if ( sunken ) { 416 if ( sunken ) {
417 cg.setColor( QColorGroup::ButtonText, g.button() ); 417 cg.setColor( QColorGroup::ButtonText, g.button() );
418 cg.setColor( QColorGroup::Button, g.buttonText() ); 418 cg.setColor( QColorGroup::Button, g.buttonText() );
419 } 419 }
420 drawArrow( p, QStyle::DownArrow, FALSE, 420 drawArrow( p, QStyle::DownArrow, FALSE,
421 x+w-13, y+1, 12, h-2, cg, enabled, 421 x+w-13, y+1, 12, h-2, cg, enabled,
422 &cg.brush( QColorGroup::Button ) ); 422 &cg.brush( QColorGroup::Button ) );
423 423
424} 424}
425 425
426 426
427void FlatStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w, 427void FlatStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w,
428 int h, const QColorGroup &cg, bool on, bool down, bool enabled ) 428 int h, const QColorGroup &cg, bool on, bool down, bool enabled )
429{ 429{
430 static const QCOORD pts1[] = { // dark lines 430 static const QCOORD pts1[] = { // dark lines
431 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; 431 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 };
432 static const QCOORD pts4[] = { // white lines 432 static const QCOORD pts4[] = { // white lines
433 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, 433 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7,
434 11,4, 10,3, 10,2 }; 434 11,4, 10,3, 10,2 };
435 static const QCOORD pts5[] = { // inner fill 435 static const QCOORD pts5[] = { // inner fill
436 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; 436 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 };
437 437
438 p->eraseRect( x, y, w, h ); 438 p->eraseRect( x, y, w, h );
439 QPointArray a( QCOORDARRLEN(pts1), pts4 ); 439 QPointArray a( QCOORDARRLEN(pts1), pts4 );
440 a.translate( x, y ); 440 a.translate( x, y );
441 p->setPen( cg.foreground() ); 441 p->setPen( cg.foreground() );
442 p->drawPolyline( a ); 442 p->drawPolyline( a );
443 a.setPoints( QCOORDARRLEN(pts4), pts1 ); 443 a.setPoints( QCOORDARRLEN(pts4), pts1 );
444 a.translate( x, y ); 444 a.translate( x, y );
445 p->setPen( cg.foreground() ); 445 p->setPen( cg.foreground() );
446 p->drawPolyline( a ); 446 p->drawPolyline( a );
447 a.setPoints( QCOORDARRLEN(pts5), pts5 ); 447 a.setPoints( QCOORDARRLEN(pts5), pts5 );
448 a.translate( x, y ); 448 a.translate( x, y );
449 QColor fillColor = ( down || !enabled ) ? cg.button() : cg.base(); 449 QColor fillColor = ( down || !enabled ) ? cg.button() : cg.base();
450 p->setPen( fillColor ); 450 p->setPen( fillColor );
451 p->setBrush( fillColor ) ; 451 p->setBrush( fillColor ) ;
452 p->drawPolygon( a ); 452 p->drawPolygon( a );
453 if ( on ) { 453 if ( on ) {
454 p->setPen( NoPen ); 454 p->setPen( NoPen );
455 p->setBrush( cg.text() ); 455 p->setBrush( cg.text() );
456 p->drawRect( x+5, y+4, 2, 4 ); 456 p->drawRect( x+5, y+4, 2, 4 );
457 p->drawRect( x+4, y+5, 4, 2 ); 457 p->drawRect( x+4, y+5, 4, 2 );
458 } 458 }
459} 459}
460 460
461void FlatStyle::drawIndicator ( QPainter * p, int x, int y, int w, int h, 461void FlatStyle::drawIndicator ( QPainter * p, int x, int y, int w, int h,
462 const QColorGroup &cg, int state, bool down, bool enabled ) 462 const QColorGroup &cg, int state, bool down, bool enabled )
463{ 463{
464 QColorGroup mycg( cg ); 464 QColorGroup mycg( cg );
465 mycg.setBrush( QColorGroup::Button, QBrush() ); 465 mycg.setBrush( QColorGroup::Button, QBrush() );
466 QBrush fill; 466 QBrush fill;
467 drawButton( p, x, y, w, h, mycg, TRUE, 0 ); 467 drawButton( p, x, y, w, h, mycg, TRUE, 0 );
468 if ( down ) 468 if ( down )
469 fill = cg.brush( QColorGroup::Button ); 469 fill = cg.brush( QColorGroup::Button );
470 else 470 else
471 fill = cg.brush( enabled ? QColorGroup::Base : QColorGroup::Background ); 471 fill = cg.brush( enabled ? QColorGroup::Base : QColorGroup::Background );
472 mycg.setBrush( QColorGroup::Button, fill ); 472 mycg.setBrush( QColorGroup::Button, fill );
473 p->fillRect( x+1, y+1, w-2, h-2, fill ); 473 p->fillRect( x+1, y+1, w-2, h-2, fill );
474 if ( state != QButton::Off ) { 474 if ( state != QButton::Off ) {
475 QPointArray a( 7*2 ); 475 QPointArray a( 7*2 );
476 int i, xx, yy; 476 int i, xx, yy;
477 xx = x+3; 477 xx = x+3;
478 yy = y+5; 478 yy = y+5;
479 for ( i=0; i<3; i++ ) { 479 for ( i=0; i<3; i++ ) {
480 a.setPoint( 2*i, xx, yy ); 480 a.setPoint( 2*i, xx, yy );
481 a.setPoint( 2*i+1, xx, yy+2 ); 481 a.setPoint( 2*i+1, xx, yy+2 );
482 xx++; yy++; 482 xx++; yy++;
483 } 483 }
484 yy -= 2; 484 yy -= 2;
485 for ( i=3; i<7; i++ ) { 485 for ( i=3; i<7; i++ ) {
486 a.setPoint( 2*i, xx, yy ); 486 a.setPoint( 2*i, xx, yy );
487 a.setPoint( 2*i+1, xx, yy+2 ); 487 a.setPoint( 2*i+1, xx, yy+2 );
488 xx++; yy--; 488 xx++; yy--;
489 } 489 }
490 if ( state == QButton::NoChange ) { 490 if ( state == QButton::NoChange ) {
491 p->setPen( mycg.dark() ); 491 p->setPen( mycg.dark() );
492 } else { 492 } else {
493 p->setPen( mycg.text() ); 493 p->setPen( mycg.text() );
494 } 494 }
495 p->drawLineSegments( a ); 495 p->drawLineSegments( a );
496 } 496 }
497} 497}
498 498
499 #define HORIZONTAL(sb->orientation() == QScrollBar::Horizontal) 499 #define HORIZONTAL(sb->orientation() == QScrollBar::Horizontal)
500 #define VERTICAL!HORIZONTAL 500 #define VERTICAL!HORIZONTAL
501 #define MOTIF_BORDER2 501 #define MOTIF_BORDER2
502 #define SLIDER_MIN9 // ### motif says 6 but that's too small 502 #define SLIDER_MIN9 // ### motif says 6 but that's too small
503 503
504/*! \reimp */ 504/*! \reimp */
505 505
506void FlatStyle::scrollBarMetrics( const QScrollBar* sb, int &sliderMin, int &sliderMax, int &sliderLength, int& buttonDim ) 506void FlatStyle::scrollBarMetrics( const QScrollBar* sb, int &sliderMin, int &sliderMax, int &sliderLength, int& buttonDim )
507{ 507{
508 int maxLength; 508 int maxLength;
509 int length = HORIZONTAL ? sb->width() : sb->height(); 509 int length = HORIZONTAL ? sb->width() : sb->height();
510 int extent = HORIZONTAL ? sb->height() : sb->width(); 510 int extent = HORIZONTAL ? sb->height() : sb->width();
511 511
512 if ( length > (extent - 1)*2 ) 512 if ( length > (extent - 1)*2 )
513 buttonDim = extent; 513 buttonDim = extent;
514 else 514 else
515 buttonDim = length/2 - 1; 515 buttonDim = length/2 - 1;
516 516
517 sliderMin = 0; 517 sliderMin = 0;
518 maxLength = length - buttonDim*2 + 2; 518 maxLength = length - buttonDim*2 + 2;
519 519
520 if ( sb->maxValue() == sb->minValue() ) { 520 if ( sb->maxValue() == sb->minValue() ) {
521 sliderLength = maxLength; 521 sliderLength = maxLength;
522 } else { 522 } else {
523 sliderLength = (sb->pageStep()*maxLength)/ 523 sliderLength = (sb->pageStep()*maxLength)/
524 (sb->maxValue()-sb->minValue()+sb->pageStep()); 524 (sb->maxValue()-sb->minValue()+sb->pageStep());
525 uint range = sb->maxValue()-sb->minValue(); 525 uint range = sb->maxValue()-sb->minValue();
526 if ( sliderLength < SLIDER_MIN || range > INT_MAX/2 ) 526 if ( sliderLength < SLIDER_MIN || range > INT_MAX/2 )
527 sliderLength = SLIDER_MIN; 527 sliderLength = SLIDER_MIN;
528 if ( sliderLength > maxLength ) 528 if ( sliderLength > maxLength )
529 sliderLength = maxLength; 529 sliderLength = maxLength;
530 } 530 }
531 531
532 sliderMax = sliderMin + maxLength - sliderLength; 532 sliderMax = sliderMin + maxLength - sliderLength;
533} 533}
534 534
535/*!\reimp 535/*!\reimp
536 */ 536 */
537QStyle::ScrollControl FlatStyle::scrollBarPointOver( const QScrollBar* sb, int sliderStart, const QPoint& p ) 537QStyle::ScrollControl FlatStyle::scrollBarPointOver( const QScrollBar* sb, int sliderStart, const QPoint& p )
538{ 538{
539 if ( !sb->rect().contains( p ) ) 539 if ( !sb->rect().contains( p ) )
540 return NoScroll; 540 return NoScroll;
541 int sliderMin, sliderMax, sliderLength, buttonDim, pos; 541 int sliderMin, sliderMax, sliderLength, buttonDim, pos;
542 scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim ); 542 scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim );
543 543
544 if (sb->orientation() == QScrollBar::Horizontal) 544 if (sb->orientation() == QScrollBar::Horizontal)
545 pos = p.x(); 545 pos = p.x();
546 else 546 else
547 pos = p.y(); 547 pos = p.y();
548 548
549 if (pos < sliderStart) 549 if (pos < sliderStart)
550 return SubPage; 550 return SubPage;
551 if (pos < sliderStart + sliderLength) 551 if (pos < sliderStart + sliderLength)
552 return Slider; 552 return Slider;
553 if (pos < sliderMax + sliderLength) 553 if (pos < sliderMax + sliderLength)
554 return AddPage; 554 return AddPage;
555 if (pos < sliderMax + sliderLength + buttonDim) 555 if (pos < sliderMax + sliderLength + buttonDim)
556 return SubLine; 556 return SubLine;
557 return AddLine; 557 return AddLine;
558} 558}
559 559
560/*! \reimp */ 560/*! \reimp */
561 561
562void FlatStyle::drawScrollBarControls( QPainter* p, const QScrollBar* sb, int sliderStart, uint controls, uint activeControl ) 562void FlatStyle::drawScrollBarControls( QPainter* p, const QScrollBar* sb, int sliderStart, uint controls, uint activeControl )
563{ 563{
564#define ADD_LINE_ACTIVE ( activeControl == AddLine ) 564#define ADD_LINE_ACTIVE ( activeControl == AddLine )
565#define SUB_LINE_ACTIVE ( activeControl == SubLine ) 565#define SUB_LINE_ACTIVE ( activeControl == SubLine )
566 QColorGroup g = sb->colorGroup(); 566 QColorGroup g = sb->colorGroup();
567 567
568 int sliderMin, sliderMax, sliderLength, buttonDim; 568 int sliderMin, sliderMax, sliderLength, buttonDim;
569 scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim ); 569 scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim );
570 570
571 if ( controls == (AddLine | SubLine | AddPage | SubPage | Slider | First | Last ) ) { 571 if ( controls == (AddLine | SubLine | AddPage | SubPage | Slider | First | Last ) ) {
572 p->setPen( g.foreground() ); 572 p->setPen( g.foreground() );
573 p->setBrush( g.brush( QColorGroup::Mid ) ); 573 p->setBrush( g.brush( QColorGroup::Mid ) );
574 p->drawRect( 0, 0, sb->width(), sb->height() ); 574 p->drawRect( 0, 0, sb->width(), sb->height() );
575 } 575 }
576 576
577 if (sliderStart > sliderMax) { // sanity check 577 if (sliderStart > sliderMax) { // sanity check
578 sliderStart = sliderMax; 578 sliderStart = sliderMax;
579 } 579 }
580 580
581 int dimB = buttonDim; 581 int dimB = buttonDim;
582 QRect addB; 582 QRect addB;
583 QRect subB; 583 QRect subB;
584 QRect addPageR; 584 QRect addPageR;
585 QRect subPageR; 585 QRect subPageR;
586 QRect sliderR; 586 QRect sliderR;
587 int addX, addY, subX, subY; 587 int addX, addY, subX, subY;
588 int length = HORIZONTAL ? sb->width() : sb->height(); 588 int length = HORIZONTAL ? sb->width() : sb->height();
589 int extent = HORIZONTAL ? sb->height() : sb->width(); 589 int extent = HORIZONTAL ? sb->height() : sb->width();
590 590
591 if ( HORIZONTAL ) { 591 if ( HORIZONTAL ) {
592 subY = addY = ( extent - dimB ) / 2; 592 subY = addY = ( extent - dimB ) / 2;
593 subX = length - dimB - dimB + 1; 593 subX = length - dimB - dimB + 1;
594 addX = length - dimB; 594 addX = length - dimB;
595 } else { 595 } else {
596 subX = addX = ( extent - dimB ) / 2; 596 subX = addX = ( extent - dimB ) / 2;
597 subY = length - dimB - dimB + 1; 597 subY = length - dimB - dimB + 1;
598 addY = length - dimB; 598 addY = length - dimB;
599 } 599 }
600 600
601 int sliderEnd = sliderStart + sliderLength; 601 int sliderEnd = sliderStart + sliderLength;
602 int sliderW = extent; 602 int sliderW = extent;
603 if ( HORIZONTAL ) { 603 if ( HORIZONTAL ) {
604 subB.setRect( subX,subY,dimB,dimB ); 604 subB.setRect( subX,subY,dimB,dimB );
605 addB.setRect( addX,addY,dimB,dimB ); 605 addB.setRect( addX,addY,dimB,dimB );
606 subPageR.setRect( 0, 0, sliderStart+1, sliderW ); 606 subPageR.setRect( 0, 0, sliderStart+1, sliderW );
607 addPageR.setRect( sliderEnd-1, 0, subX - sliderEnd+2, sliderW ); 607 addPageR.setRect( sliderEnd-1, 0, subX - sliderEnd+2, sliderW );
608 sliderR .setRect( sliderStart, 0, sliderLength, sliderW ); 608 sliderR .setRect( sliderStart, 0, sliderLength, sliderW );
609 609
610 } else { 610 } else {
611 subB.setRect( subX,subY,dimB,dimB ); 611 subB.setRect( subX,subY,dimB,dimB );
612 addB.setRect( addX,addY,dimB,dimB ); 612 addB.setRect( addX,addY,dimB,dimB );
613 subPageR.setRect( 0, 0, sliderW, sliderStart+1 ); 613 subPageR.setRect( 0, 0, sliderW, sliderStart+1 );
614 addPageR.setRect( 0, sliderEnd-1, sliderW, subY - sliderEnd+2 ); 614 addPageR.setRect( 0, sliderEnd-1, sliderW, subY - sliderEnd+2 );
615 sliderR .setRect( 0, sliderStart, sliderW, sliderLength ); 615 sliderR .setRect( 0, sliderStart, sliderW, sliderLength );
616 } 616 }
617 617
618 bool maxedOut = (sb->maxValue() == sb->minValue()); 618 bool maxedOut = (sb->maxValue() == sb->minValue());
619 p->setPen( g.foreground() ); 619 p->setPen( g.foreground() );
620 if ( controls & AddLine ) { 620 if ( controls & AddLine ) {
621 p->setBrush( ADD_LINE_ACTIVE ? g.foreground() : g.button() ); 621 p->setBrush( ADD_LINE_ACTIVE ? g.foreground() : g.button() );
622 p->drawRect( addB.x(), addB.y(), addB.width(), addB.height() ); 622 p->drawRect( addB.x(), addB.y(), addB.width(), addB.height() );
623 p->setPen( ADD_LINE_ACTIVE ? g.button() : g.foreground() ); 623 p->setPen( ADD_LINE_ACTIVE ? g.button() : g.foreground() );
624 QColorGroup cg( g ); 624 QColorGroup cg( g );
625 if ( maxedOut ) 625 if ( maxedOut )
626 cg.setColor( QColorGroup::ButtonText, g.mid() ); 626 cg.setColor( QColorGroup::ButtonText, g.mid() );
627 else if ( ADD_LINE_ACTIVE ) 627 else if ( ADD_LINE_ACTIVE )
628 cg.setColor( QColorGroup::ButtonText, g.button() ); 628 cg.setColor( QColorGroup::ButtonText, g.button() );
629 int xo = VERTICAL ? 1 : 0; 629 int xo = VERTICAL ? 1 : 0;
630 drawArrow( p, VERTICAL ? DownArrow : RightArrow, FALSE, 630 drawArrow( p, VERTICAL ? DownArrow : RightArrow, FALSE,
631 addB.x()+2+xo, addB.y()+2, addB.width()-4-xo, addB.height()-4, 631 addB.x()+2+xo, addB.y()+2, addB.width()-4-xo, addB.height()-4,
632 cg, TRUE, &p->brush() ); 632 cg, TRUE, &p->brush() );
633 } 633 }
634 if ( controls & SubLine ) { 634 if ( controls & SubLine ) {
635 p->setBrush( SUB_LINE_ACTIVE ? g.foreground() : g.button() ); 635 p->setBrush( SUB_LINE_ACTIVE ? g.foreground() : g.button() );
636 p->drawRect( subB.x(), subB.y(), subB.width(), subB.height() ); 636 p->drawRect( subB.x(), subB.y(), subB.width(), subB.height() );
637 p->setPen( SUB_LINE_ACTIVE ? g.button() : g.foreground() ); 637 p->setPen( SUB_LINE_ACTIVE ? g.button() : g.foreground() );
638 QColorGroup cg( g ); 638 QColorGroup cg( g );
639 if ( maxedOut ) 639 if ( maxedOut )
640 cg.setColor( QColorGroup::ButtonText, g.mid() ); 640 cg.setColor( QColorGroup::ButtonText, g.mid() );
641 else if ( SUB_LINE_ACTIVE ) 641 else if ( SUB_LINE_ACTIVE )
642 cg.setColor( QColorGroup::ButtonText, g.button() ); 642 cg.setColor( QColorGroup::ButtonText, g.button() );
643 int xo = VERTICAL ? 1 : 0; 643 int xo = VERTICAL ? 1 : 0;
644 drawArrow( p, VERTICAL ? UpArrow : LeftArrow, FALSE, 644 drawArrow( p, VERTICAL ? UpArrow : LeftArrow, FALSE,
645 subB.x()+2+xo, subB.y()+2, subB.width()-4-xo, subB.height()-4, 645 subB.x()+2+xo, subB.y()+2, subB.width()-4-xo, subB.height()-4,
646 cg, TRUE, &p->brush() ); 646 cg, TRUE, &p->brush() );
647 } 647 }
648 648
649 649
650 p->setPen( g.foreground() ); 650 p->setPen( g.foreground() );
651 p->setBrush( g.brush( QColorGroup::Mid ) ); 651 p->setBrush( g.brush( QColorGroup::Mid ) );
652 if ( controls & SubPage ) 652 if ( controls & SubPage )
653 p->drawRect( subPageR.x(), subPageR.y(), subPageR.width(), subPageR.height() ); 653 p->drawRect( subPageR.x(), subPageR.y(), subPageR.width(), subPageR.height() );
654 if ( controls & AddPage && addPageR.y() < addPageR.bottom() && 654 if ( controls & AddPage && addPageR.y() < addPageR.bottom() &&
655 addPageR.x() < addPageR.right() ) 655 addPageR.x() < addPageR.right() )
656 p->drawRect( addPageR.x(), addPageR.y(), addPageR.width(), addPageR.height() ); 656 p->drawRect( addPageR.x(), addPageR.y(), addPageR.width(), addPageR.height() );
657 if ( controls & Slider ) { 657 if ( controls & Slider ) {
658 QPoint bo = p->brushOrigin(); 658 QPoint bo = p->brushOrigin();
659 p->setBrushOrigin(sliderR.topLeft()); 659 p->setBrushOrigin(sliderR.topLeft());
660 p->setPen( g.foreground() ); 660 p->setPen( g.foreground() );
661 p->setBrush( g.button() ); 661 p->setBrush( g.button() );
662 p->drawRect( sliderR.x(), sliderR.y(), sliderR.width(), sliderR.height() ); 662 p->drawRect( sliderR.x(), sliderR.y(), sliderR.width(), sliderR.height() );
663 p->setBrushOrigin(bo); 663 p->setBrushOrigin(bo);
664 QColorGroup cg( g ); 664 QColorGroup cg( g );
665 if ( maxedOut ) 665 if ( maxedOut )
666 cg.setColor( QColorGroup::ButtonText, g.mid() ); 666 cg.setColor( QColorGroup::ButtonText, g.mid() );
667 drawRiffles( p, sliderR.x(), sliderR.y(), 667 drawRiffles( p, sliderR.x(), sliderR.y(),
668 sliderR.width(), sliderR.height(), cg, HORIZONTAL ); 668 sliderR.width(), sliderR.height(), cg, HORIZONTAL );
669 } 669 }
670 670
671 // ### perhaps this should not be able to accept focus if maxedOut? 671 // ### perhaps this should not be able to accept focus if maxedOut?
672 if ( sb->hasFocus() && (controls & Slider) ) 672 if ( sb->hasFocus() && (controls & Slider) )
673 p->drawWinFocusRect( sliderR.x()+2, sliderR.y()+2, 673 p->drawWinFocusRect( sliderR.x()+2, sliderR.y()+2,
674 sliderR.width()-5, sliderR.height()-5, 674 sliderR.width()-5, sliderR.height()-5,
675 sb->backgroundColor() ); 675 sb->backgroundColor() );
676 676
677} 677}
678 678
679void FlatStyle::drawRiffles( QPainter* p, int x, int y, int w, int h, 679void FlatStyle::drawRiffles( QPainter* p, int x, int y, int w, int h,
680 const QColorGroup &g, bool horizontal ) 680 const QColorGroup &g, bool horizontal )
681{ 681{
682 if (!horizontal) { 682 if (!horizontal) {
683 if (h > 20) { 683 if (h > 20) {
684 y += (h-20)/2 ; 684 y += (h-20)/2 ;
685 h = 20; 685 h = 20;
686 } 686 }
687 if (h > 12) { 687 if (h > 12) {
688 int n = 3; 688 int n = 3;
689 int my = y+h/2-2; 689 int my = y+h/2-2;
690 int i ; 690 int i ;
691 p->setPen(g.buttonText()); 691 p->setPen(g.buttonText());
692 for (i=0; i<n; i++) { 692 for (i=0; i<n; i++) {
693 p->drawLine(x+4, my+3*i, x+w-5, my+3*i); 693 p->drawLine(x+4, my+3*i, x+w-5, my+3*i);
694 } 694 }
695 } 695 }
696 } else { 696 } else {
697 if (w > 20) { 697 if (w > 20) {
698 x += (w-20)/2 ; 698 x += (w-20)/2 ;
699 w = 20; 699 w = 20;
700 } 700 }
701 if (w > 12) { 701 if (w > 12) {
702 int n = 3; 702 int n = 3;
703 int mx = x+w/2-4; 703 int mx = x+w/2-4;
704 int i ; 704 int i ;
705 p->setPen(g.buttonText()); 705 p->setPen(g.buttonText());
706 for (i=0; i<n; i++) { 706 for (i=0; i<n; i++) {
707 p->drawLine(mx+3*i, y+4, mx + 3*i, y+h-5); 707 p->drawLine(mx+3*i, y+4, mx + 3*i, y+h-5);
708 } 708 }
709 } 709 }
710 } 710 }
711} 711}
712 712
713int FlatStyle::sliderLength() const 713int FlatStyle::sliderLength() const
714{ 714{
715 return 12; 715 return 12;
716} 716}
717 717
718void FlatStyle::drawSlider( QPainter *p, int x, int y, int w, int h, 718void FlatStyle::drawSlider( QPainter *p, int x, int y, int w, int h,
719 const QColorGroup &g, Orientation o, bool tickAbove, bool tickBelow ) 719 const QColorGroup &g, Orientation o, bool tickAbove, bool tickBelow )
720{ 720{
721 int a = tickAbove ? 3 : 0; 721 int a = tickAbove ? 3 : 0;
722 int b = tickBelow ? 3 : 0; 722 int b = tickBelow ? 3 : 0;
723 723
724 p->setPen( g.foreground() ); 724 p->setPen( g.foreground() );
725 p->setBrush( g.button() ); 725 p->setBrush( g.button() );
726 if ( o == Horizontal ) { 726 if ( o == Horizontal ) {
727 p->drawRect( x, y+a, w, h-a-b ); 727 p->drawRect( x, y+a, w, h-a-b );
728 int xp = x + w/2; 728 int xp = x + w/2;
729 p->drawLine( xp-1, y+a+3, xp-1, y+h-b-4 ); 729 p->drawLine( xp-1, y+a+3, xp-1, y+h-b-4 );
730 p->drawLine( xp, y+a+3, xp, y+h-b-4 ); 730 p->drawLine( xp, y+a+3, xp, y+h-b-4 );
731 } else { 731 } else {
732 p->drawRect( x+a, y, w-a-b, h ); 732 p->drawRect( x+a, y, w-a-b, h );
733 int yp = y + h/2; 733 int yp = y + h/2;
734 p->drawLine( x+a+3, yp-1, x+w-b-4, yp-1 ); 734 p->drawLine( x+a+3, yp-1, x+w-b-4, yp-1 );
735 p->drawLine( x+a+3, yp, x+w-b-4, yp ); 735 p->drawLine( x+a+3, yp, x+w-b-4, yp );
736 } 736 }
737} 737}
738 738
739void FlatStyle::drawSliderMask ( QPainter * p, int x, int y, int w, int h, 739void FlatStyle::drawSliderMask ( QPainter * p, int x, int y, int w, int h,
740 Orientation o, bool tickAbove, bool tickBelow ) 740 Orientation o, bool tickAbove, bool tickBelow )
741{ 741{
742 int a = tickAbove ? 3 : 0; 742 int a = tickAbove ? 3 : 0;
743 int b = tickBelow ? 3 : 0; 743 int b = tickBelow ? 3 : 0;
744 if ( o == Horizontal ) 744 if ( o == Horizontal )
745 p->fillRect( x, y+a, w, h-a-b, color1 ); 745 p->fillRect( x, y+a, w, h-a-b, color1 );
746 else 746 else
747 p->fillRect( x+a, y, w-a-b, h, color1 ); 747 p->fillRect( x+a, y, w-a-b, h, color1 );
748} 748}
749 749
750/*!\reimp 750/*!\reimp
751 */ 751 */
752void FlatStyle::drawSliderGrooveMask( QPainter *p, 752void FlatStyle::drawSliderGrooveMask( QPainter *p,
753 int x, int y, int w, int h, 753 int x, int y, int w, int h,
754 const QColorGroup& , QCOORD c, 754 const QColorGroup& , QCOORD c,
755 Orientation orient ) 755 Orientation orient )
756{ 756{
757 if ( orient == Horizontal ) 757 if ( orient == Horizontal )
758 p->fillRect( x, y + c - 2, w, 4, color1 ); 758 p->fillRect( x, y + c - 2, w, 4, color1 );
759 else 759 else
760 p->fillRect( x + c - 2, y, 4, h, color1 ); 760 p->fillRect( x + c - 2, y, 4, h, color1 );
761} 761}
762 762
763void FlatStyle::drawSliderGroove( QPainter *p, int x, int y, int w, int h, const QColorGroup &g, QCOORD c, Orientation orient ) 763void FlatStyle::drawSliderGroove( QPainter *p, int x, int y, int w, int h, const QColorGroup &g, QCOORD c, Orientation orient )
764{ 764{
765 if ( orient == Horizontal ) 765 if ( orient == Horizontal )
766 p->fillRect( x, y + c - 2, w, 4, g.foreground() ); 766 p->fillRect( x, y + c - 2, w, 4, g.foreground() );
767 else 767 else
768 p->fillRect( x + c - 2, y, 4, h, g.foreground() ); 768 p->fillRect( x + c - 2, y, 4, h, g.foreground() );
769} 769}
770 770
771void FlatStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected ) 771void FlatStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected )
772{ 772{
773 QRect r( t->rect() ); 773 QRect r( t->rect() );
774 if ( tb->shape() == QTabBar::RoundedAbove ) { 774 if ( tb->shape() == QTabBar::RoundedAbove ) {
775 p->setPen( tb->colorGroup().foreground() ); 775 p->setPen( tb->colorGroup().foreground() );
776 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 776 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
777 if ( r.left() == 0 ) 777 if ( r.left() == 0 )
778 p->drawPoint( tb->rect().bottomLeft() ); 778 p->drawPoint( tb->rect().bottomLeft() );
779 else 779 else
780 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 780 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
781 781
782 if ( selected ) { 782 if ( selected ) {
783 p->setPen( tb->colorGroup().background() ); 783 p->setPen( tb->colorGroup().background() );
784 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 784 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
785 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2), 785 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2),
786 tb->colorGroup().brush( QColorGroup::Background )); 786 tb->colorGroup().brush( QColorGroup::Background ));
787 } else { 787 } else {
788 r.setRect( r.left() + 2, r.top() + 2, 788 r.setRect( r.left() + 2, r.top() + 2,
789 r.width() - 4, r.height() - 2 ); 789 r.width() - 4, r.height() - 2 );
790 p->setPen( tb->colorGroup().button() ); 790 p->setPen( tb->colorGroup().button() );
791 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 791 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
792 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3), 792 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3),
793 tb->colorGroup().brush( QColorGroup::Button )); 793 tb->colorGroup().brush( QColorGroup::Button ));
794 } 794 }
795 795
796 p->setPen( tb->colorGroup().foreground() ); 796 p->setPen( tb->colorGroup().foreground() );
797 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 ); 797 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 );
798 p->drawPoint( r.left()+1, r.top() + 1 ); 798 p->drawPoint( r.left()+1, r.top() + 1 );
799 p->drawLine( r.left()+2, r.top(), 799 p->drawLine( r.left()+2, r.top(),
800 r.right() - 2, r.top() ); 800 r.right() - 2, r.top() );
801 801
802 p->drawPoint( r.right() - 1, r.top() + 1 ); 802 p->drawPoint( r.right() - 1, r.top() + 1 );
803 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1); 803 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1);
804 } else if ( tb->shape() == QTabBar::RoundedBelow ) { 804 } else if ( tb->shape() == QTabBar::RoundedBelow ) {
805 if ( selected ) { 805 if ( selected ) {
806 p->setPen( tb->colorGroup().background() ); 806 p->setPen( tb->colorGroup().background() );
807 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); 807 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 );
808 p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2), 808 p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2),
809 tb->palette().normal().brush( QColorGroup::Background )); 809 tb->palette().normal().brush( QColorGroup::Background ));
810 } else { 810 } else {
811 p->setPen( tb->colorGroup().foreground() ); 811 p->setPen( tb->colorGroup().foreground() );
812 p->drawLine( r.left(), r.top(), 812 p->drawLine( r.left(), r.top(),
813 r.right(), r.top() ); 813 r.right(), r.top() );
814 r.setRect( r.left() + 2, r.top(), 814 r.setRect( r.left() + 2, r.top(),
815 r.width() - 4, r.height() - 2 ); 815 r.width() - 4, r.height() - 2 );
816 p->setPen( tb->colorGroup().button() ); 816 p->setPen( tb->colorGroup().button() );
817 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); 817 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 );
818 p->fillRect( QRect( r.left()+1, r.top()+1, r.width()-2, r.height()-3), 818 p->fillRect( QRect( r.left()+1, r.top()+1, r.width()-2, r.height()-3),
819 tb->palette().normal().brush( QColorGroup::Button )); 819 tb->palette().normal().brush( QColorGroup::Button ));
820 } 820 }
821 821
822 p->setPen( tb->colorGroup().foreground() ); 822 p->setPen( tb->colorGroup().foreground() );
823 p->drawLine( r.right(), r.top(), 823 p->drawLine( r.right(), r.top(),
824 r.right(), r.bottom() - 2 ); 824 r.right(), r.bottom() - 2 );
825 p->drawPoint( r.right() - 1, r.bottom() - 1 ); 825 p->drawPoint( r.right() - 1, r.bottom() - 1 );
826 p->drawLine( r.right() - 2, r.bottom(), 826 p->drawLine( r.right() - 2, r.bottom(),
827 r.left() + 2, r.bottom() ); 827 r.left() + 2, r.bottom() );
828 828
829 p->drawLine( r.left(), r.top()+1, 829 p->drawLine( r.left(), r.top()+1,
830 r.left(), r.bottom() - 2 ); 830 r.left(), r.bottom() - 2 );
831 p->drawPoint( r.left() + 1, r.bottom() - 1 ); 831 p->drawPoint( r.left() + 1, r.bottom() - 1 );
832 if ( r.left() == 0 ) 832 if ( r.left() == 0 )
833 p->drawPoint( tb->rect().topLeft() ); 833 p->drawPoint( tb->rect().topLeft() );
834 834
835 } else { 835 } else {
836 QCommonStyle::drawTab( p, tb, t, selected ); 836 QCommonStyle::drawTab( p, tb, t, selected );
837 } 837 }
838} 838}
839 839
840 static const int motifItemFrame = 0;// menu item frame width 840 static const int motifItemFrame = 0;// menu item frame width
841 static const int motifSepHeight = 2;// separator item height 841 static const int motifSepHeight = 2;// separator item height
842 static const int motifItemHMargin = 1;// menu item hor text margin 842 static const int motifItemHMargin = 1;// menu item hor text margin
843 static const int motifItemVMargin = 2;// menu item ver text margin 843 static const int motifItemVMargin = 2;// menu item ver text margin
844 static const int motifArrowHMargin = 0;// arrow horizontal margin 844 static const int motifArrowHMargin = 0;// arrow horizontal margin
845 static const int motifTabSpacing = 12;// space between text and tab 845 static const int motifTabSpacing = 12;// space between text and tab
846 static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark 846 static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark
847 static const int windowsRightBorder= 8; // right border on windows 847 static const int windowsRightBorder= 8; // right border on windows
848static const int windowsCheckMarkWidth = 2; // checkmarks width on windows 848static const int windowsCheckMarkWidth = 2; // checkmarks width on windows
849 849
850void FlatStyle::polishPopupMenu ( QPopupMenu *m ) 850void FlatStyle::polishPopupMenu ( QPopupMenu *m )
851{ 851{
852 QWindowsStyle::polishPopupMenu( m ); 852 QWindowsStyle::polishPopupMenu( m );
853 m->setLineWidth( 1 ); 853 m->setLineWidth( 1 );
854} 854}
855 855
856/*! \reimp 856/*! \reimp
857*/ 857*/
858int FlatStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) 858int FlatStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ )
859{ 859{
860#ifndef QT_NO_MENUDATA 860#ifndef QT_NO_MENUDATA
861 int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm 861 int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm
862 862
863 if ( mi->isSeparator() ) 863 if ( mi->isSeparator() )
864 return 10; // arbitrary 864 return 10; // arbitrary
865 else if ( mi->pixmap() ) 865 else if ( mi->pixmap() )
866 w += mi->pixmap()->width();// pixmap only 866 w += mi->pixmap()->width();// pixmap only
867 867
868 if ( !mi->text().isNull() ) { 868 if ( !mi->text().isNull() ) {
869 if ( mi->text().find('\t') >= 0 )// string contains tab 869 if ( mi->text().find('\t') >= 0 )// string contains tab
870 w += motifTabSpacing; 870 w += motifTabSpacing;
871 } 871 }
872 872
873 if ( maxpmw ) { // we have iconsets 873 if ( maxpmw ) { // we have iconsets
874 w += maxpmw; 874 w += maxpmw;
875 w += 6; // add a little extra border around the iconset 875 w += 6; // add a little extra border around the iconset
876 } 876 }
877 877
878 if ( checkable && maxpmw < windowsCheckMarkWidth ) { 878 if ( checkable && maxpmw < windowsCheckMarkWidth ) {
879 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks 879 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks
880 } 880 }
881 881
882 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) 882 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks)
883 w += motifCheckMarkHMargin; // add space to separate the columns 883 w += motifCheckMarkHMargin; // add space to separate the columns
884 884
885 w += windowsRightBorder; // windows has a strange wide border on the right side 885 w += windowsRightBorder; // windows has a strange wide border on the right side
886 886
887 return w; 887 return w;
888#endif 888#endif
889} 889}
890 890
891/*! \reimp 891/*! \reimp
892*/ 892*/
893int FlatStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) 893int FlatStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm )
894{ 894{
895#ifndef QT_NO_MENUDATA 895#ifndef QT_NO_MENUDATA
896 int h = 0; 896 int h = 0;
897 if ( mi->isSeparator() ) // separator height 897 if ( mi->isSeparator() ) // separator height
898 h = motifSepHeight; 898 h = motifSepHeight;
899 else if ( mi->pixmap() ) // pixmap height 899 else if ( mi->pixmap() ) // pixmap height
900 h = mi->pixmap()->height() + 2*motifItemFrame; 900 h = mi->pixmap()->height() + 2*motifItemFrame;
901 else // text height 901 else // text height
902 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; 902 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1;
903 903
904 if ( !mi->isSeparator() && mi->iconSet() != 0 ) { 904 if ( !mi->isSeparator() && mi->iconSet() != 0 ) {
905 h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame ); 905 h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame );
906 } 906 }
907 if ( mi->custom() ) 907 if ( mi->custom() )
908 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; 908 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1;
909 return h; 909 return h;
910#endif 910#endif
911} 911}
912 912
913void FlatStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 913void FlatStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
914 const QPalette& pal, 914 const QPalette& pal,
915 bool act, bool enabled, int x, int y, int w, int h) 915 bool act, bool enabled, int x, int y, int w, int h)
916{ 916{
917#ifndef QT_NO_MENUDATA 917#ifndef QT_NO_MENUDATA
918 const QColorGroup & g = pal.active(); 918 const QColorGroup & g = pal.active();
919 bool dis = !enabled; 919 bool dis = !enabled;
920 QColorGroup itemg = dis ? pal.disabled() : pal.active(); 920 QColorGroup itemg = dis ? pal.disabled() : pal.active();
921 921
922 if ( checkable ) 922 if ( checkable )
923 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks 923 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks
924 924
925 int checkcol = maxpmw; 925 int checkcol = maxpmw;
926 926
927 if ( mi && mi->isSeparator() ) { // draw separator 927 if ( mi && mi->isSeparator() ) { // draw separator
928 p->setPen( g.dark() ); 928 p->setPen( g.dark() );
929 p->drawLine( x, y, x+w, y ); 929 p->drawLine( x, y, x+w, y );
930 return; 930 return;
931 } 931 }
932 932
933 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 933 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
934 g.brush( QColorGroup::Button ); 934 g.brush( QColorGroup::Button );
935 p->fillRect( x, y, w, h, fill); 935 p->fillRect( x, y, w, h, fill);
936 936
937 if ( !mi ) 937 if ( !mi )
938 return; 938 return;
939 939
940 if ( mi->isChecked() ) { 940 if ( mi->isChecked() ) {
941 if ( act && !dis ) { 941 if ( act && !dis ) {
942 qDrawShadePanel( p, x, y, checkcol, h, 942 qDrawShadePanel( p, x, y, checkcol, h,
943 g, TRUE, 1, &g.brush( QColorGroup::Button ) ); 943 g, TRUE, 1, &g.brush( QColorGroup::Button ) );
944 } else { 944 } else {
945 qDrawShadePanel( p, x, y, checkcol, h, 945 qDrawShadePanel( p, x, y, checkcol, h,
946 g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); 946 g, TRUE, 1, &g.brush( QColorGroup::Midlight ) );
947 } 947 }
948 } else if ( !act ) { 948 } else if ( !act ) {
949 p->fillRect(x, y, checkcol , h, 949 p->fillRect(x, y, checkcol , h,
950 g.brush( QColorGroup::Button )); 950 g.brush( QColorGroup::Button ));
951 } 951 }
952 952
953 if ( mi->iconSet() ) { // draw iconset 953 if ( mi->iconSet() ) { // draw iconset
954 QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; 954 QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal;
955 if (act && !dis ) 955 if (act && !dis )
956 mode = QIconSet::Active; 956 mode = QIconSet::Active;
957 QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode ); 957 QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode );
958 int pixw = pixmap.width(); 958 int pixw = pixmap.width();
959 int pixh = pixmap.height(); 959 int pixh = pixmap.height();
960 if ( act && !dis ) { 960 if ( act && !dis ) {
961 if ( !mi->isChecked() ) 961 if ( !mi->isChecked() )
962 qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); 962 qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) );
963 } 963 }
964 QRect cr( x, y, checkcol, h ); 964 QRect cr( x, y, checkcol, h );
965 QRect pmr( 0, 0, pixw, pixh ); 965 QRect pmr( 0, 0, pixw, pixh );
966 pmr.moveCenter( cr.center() ); 966 pmr.moveCenter( cr.center() );
967 p->setPen( itemg.text() ); 967 p->setPen( itemg.text() );
968 p->drawPixmap( pmr.topLeft(), pixmap ); 968 p->drawPixmap( pmr.topLeft(), pixmap );
969 969
970 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 970 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
971 g.brush( QColorGroup::Button ); 971 g.brush( QColorGroup::Button );
972 p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); 972 p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill);
973 } else if ( checkable ) {// just "checking"... 973 } else if ( checkable ) {// just "checking"...
974 int mw = checkcol + motifItemFrame; 974 int mw = checkcol + motifItemFrame;
975 int mh = h - 2*motifItemFrame; 975 int mh = h - 2*motifItemFrame;
976 if ( mi->isChecked() ) { 976 if ( mi->isChecked() ) {
977 drawCheckMark( p, x + motifItemFrame + 2, 977 drawCheckMark( p, x + motifItemFrame + 2,
978 y+motifItemFrame, mw, mh, itemg, act, dis ); 978 y+motifItemFrame, mw, mh, itemg, act, dis );
979 } 979 }
980 } 980 }
981 981
982 p->setPen( act ? g.highlightedText() : g.buttonText() ); 982 p->setPen( act ? g.highlightedText() : g.buttonText() );
983 983
984 QColor discol; 984 QColor discol;
985 if ( dis ) { 985 if ( dis ) {
986 discol = itemg.text(); 986 discol = itemg.text();
987 p->setPen( discol ); 987 p->setPen( discol );
988 } 988 }
989 989
990 int xm = motifItemFrame + checkcol + motifItemHMargin; 990 int xm = motifItemFrame + checkcol + motifItemHMargin;
991 991
992 if ( mi->custom() ) { 992 if ( mi->custom() ) {
993 int m = motifItemVMargin; 993 int m = motifItemVMargin;
994 p->save(); 994 p->save();
995 if ( dis && !act ) { 995 if ( dis && !act ) {
996 p->setPen( g.light() ); 996 p->setPen( g.light() );
997 mi->custom()->paint( p, itemg, act, enabled, 997 mi->custom()->paint( p, itemg, act, enabled,
998 x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); 998 x+xm+1, y+m+1, w-xm-tab+1, h-2*m );
999 p->setPen( discol ); 999 p->setPen( discol );
1000 } 1000 }
1001 mi->custom()->paint( p, itemg, act, enabled, 1001 mi->custom()->paint( p, itemg, act, enabled,
1002 x+xm, y+m, w-xm-tab+1, h-2*m ); 1002 x+xm, y+m, w-xm-tab+1, h-2*m );
1003 p->restore(); 1003 p->restore();
1004 } 1004 }
1005 QString s = mi->text(); 1005 QString s = mi->text();
1006 if ( !s.isNull() ) { // draw text 1006 if ( !s.isNull() ) { // draw text
1007 int t = s.find( '\t' ); 1007 int t = s.find( '\t' );
1008 int m = motifItemVMargin; 1008 int m = motifItemVMargin;
1009 const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; 1009 const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine;
1010 if ( t >= 0 ) { // draw tab text 1010 if ( t >= 0 ) { // draw tab text
1011 if ( dis && !act ) { 1011 if ( dis && !act ) {
1012 p->setPen( g.light() ); 1012 p->setPen( g.light() );
1013 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, 1013 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1,
1014 y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); 1014 y+m+1, tab, h-2*m, text_flags, s.mid( t+1 ));
1015 p->setPen( discol ); 1015 p->setPen( discol );
1016 } 1016 }
1017 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame, 1017 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame,
1018 y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); 1018 y+m, tab, h-2*m, text_flags, s.mid( t+1 ) );
1019 } 1019 }
1020 if ( dis && !act ) 1020 if ( dis && !act )
1021 p->setPen( discol ); 1021 p->setPen( discol );
1022 p->drawText( x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t ); 1022 p->drawText( x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t );
1023 } else if ( mi->pixmap() ) { // draw pixmap 1023 } else if ( mi->pixmap() ) { // draw pixmap
1024 QPixmap *pixmap = mi->pixmap(); 1024 QPixmap *pixmap = mi->pixmap();
1025 if ( pixmap->depth() == 1 ) 1025 if ( pixmap->depth() == 1 )
1026 p->setBackgroundMode( OpaqueMode ); 1026 p->setBackgroundMode( OpaqueMode );
1027 p->drawPixmap( x+xm, y+motifItemFrame, *pixmap ); 1027 p->drawPixmap( x+xm, y+motifItemFrame, *pixmap );
1028 if ( pixmap->depth() == 1 ) 1028 if ( pixmap->depth() == 1 )
1029 p->setBackgroundMode( TransparentMode ); 1029 p->setBackgroundMode( TransparentMode );
1030 } 1030 }
1031 if ( mi->popup() ) { // draw sub menu arrow 1031 if ( mi->popup() ) { // draw sub menu arrow
1032 int dim = (h-2*motifItemFrame) / 2; 1032 int dim = (h-2*motifItemFrame) / 2;
1033 if ( act ) { 1033 if ( act ) {
1034 if ( !dis ) 1034 if ( !dis )
1035 discol = white; 1035 discol = white;
1036 QColorGroup g2( discol, g.highlight(), 1036 QColorGroup g2( discol, g.highlight(),
1037 white, white, 1037 white, white,
1038 dis ? discol : white, 1038 dis ? discol : white,
1039 discol, white ); 1039 discol, white );
1040 drawArrow( p, RightArrow, FALSE, 1040 drawArrow( p, RightArrow, FALSE,
1041 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2, 1041 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2,
1042 dim, dim, g2, TRUE ); 1042 dim, dim, g2, TRUE );
1043 } else { 1043 } else {
1044 drawArrow( p, RightArrow, 1044 drawArrow( p, RightArrow,
1045 FALSE, 1045 FALSE,
1046 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2, 1046 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2,
1047 dim, dim, g, mi->isEnabled() ); 1047 dim, dim, g, mi->isEnabled() );
1048 } 1048 }
1049 } 1049 }
1050#endif 1050#endif
1051} 1051}
1052 1052
1053void FlatStyle::getButtonShift( int &x, int &y ) 1053void FlatStyle::getButtonShift( int &x, int &y )
1054{ 1054{
1055 x = 0; y = 0; 1055 x = 0; y = 0;
1056} 1056}
1057 1057
1058//=========================================================================== 1058//===========================================================================
1059 1059
1060FlatStyleImpl::FlatStyleImpl() 1060FlatStyleImpl::FlatStyleImpl()
1061 : flat(0), ref(0) 1061 : flat(0)
1062{ 1062{
1063} 1063}
1064 1064
1065FlatStyleImpl::~FlatStyleImpl() 1065FlatStyleImpl::~FlatStyleImpl()
1066{ 1066{
1067 // We do not delete the style because Qt does that when a new style 1067 // We do not delete the style because Qt does that when a new style
1068 // is set. 1068 // is set.
1069} 1069}
1070 1070
1071QStyle *FlatStyleImpl::style() 1071QStyle *FlatStyleImpl::style()
1072{ 1072{
1073 if ( !flat ) 1073 if ( !flat )
1074 flat = new FlatStyle(); 1074 flat = new FlatStyle();
1075 return flat; 1075 return flat;
1076} 1076}
1077 1077
1078QString FlatStyleImpl::name() const 1078QString FlatStyleImpl::name() const
1079{ 1079{
1080 return qApp->translate("FlatStyle", "Flat", "Name of the style Flat"); 1080 return qApp->translate("FlatStyle", "Flat", "Name of the style Flat");
1081} 1081}
1082 1082
1083QRESULT FlatStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 1083QRESULT FlatStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
1084{ 1084{
1085 *iface = 0; 1085 *iface = 0;
1086 if ( uuid == IID_QUnknown ) 1086 if ( uuid == IID_QUnknown )
1087 *iface = this; 1087 *iface = this;
1088 else if ( uuid == IID_Style ) 1088 else if ( uuid == IID_Style )
1089 *iface = this; 1089 *iface = this;
1090 else 1090 else
1091 return QS_FALSE; 1091 return QS_FALSE;
1092 1092
1093 (*iface)->addRef(); 1093 (*iface)->addRef();
1094 return QS_OK; 1094 return QS_OK;
1095} 1095}
1096 1096
1097Q_EXPORT_INTERFACE() 1097Q_EXPORT_INTERFACE()
1098{ 1098{
1099 Q_CREATE_INSTANCE( FlatStyleImpl ) 1099 Q_CREATE_INSTANCE( FlatStyleImpl )
1100} 1100}
1101 1101
1102#include "flat.moc" 1102#include "flat.moc"
diff --git a/noncore/styles/flat/flat.h b/noncore/styles/flat/flat.h
index ebea95b..4591852 100644
--- a/noncore/styles/flat/flat.h
+++ b/noncore/styles/flat/flat.h
@@ -1,118 +1,117 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#ifndef FLATSTYLE_H 21#ifndef FLATSTYLE_H
22#define FLATSTYLE_H 22#define FLATSTYLE_H
23 23
24#include <qcolor.h> 24#include <qcolor.h>
25#include <qwindowsstyle.h> 25#include <qwindowsstyle.h>
26#include <qpe/styleinterface.h> 26#include <qpe/styleinterface.h>
27 27
28class FlatStylePrivate; 28class FlatStylePrivate;
29 29
30class FlatStyle : public QWindowsStyle 30class FlatStyle : public QWindowsStyle
31{ 31{
32public: 32public:
33 FlatStyle(); 33 FlatStyle();
34 virtual ~FlatStyle(); 34 virtual ~FlatStyle();
35 virtual void polish( QPalette &p ); 35 virtual void polish( QPalette &p );
36 virtual void polish( QWidget *w ); 36 virtual void polish( QWidget *w );
37 virtual void unPolish( QWidget *w ); 37 virtual void unPolish( QWidget *w );
38 38
39 int defaultFrameWidth () const; 39 int defaultFrameWidth () const;
40 void drawItem( QPainter *p, int x, int y, int w, int h, 40 void drawItem( QPainter *p, int x, int y, int w, int h,
41 int flags, const QColorGroup &g, bool enabled, 41 int flags, const QColorGroup &g, bool enabled,
42 const QPixmap *pixmap, const QString& text, int len, const QColor* penColor ); 42 const QPixmap *pixmap, const QString& text, int len, const QColor* penColor );
43 void drawPanel ( QPainter * p, int x, int y, int w, int h, 43 void drawPanel ( QPainter * p, int x, int y, int w, int h,
44 const QColorGroup &, bool sunken=FALSE, int lineWidth = 1, const QBrush * fill = 0 ); 44 const QColorGroup &, bool sunken=FALSE, int lineWidth = 1, const QBrush * fill = 0 );
45 void drawButton( QPainter *p, int x, int y, int w, int h, 45 void drawButton( QPainter *p, int x, int y, int w, int h,
46 const QColorGroup &g, bool sunken, const QBrush* fill ); 46 const QColorGroup &g, bool sunken, const QBrush* fill );
47 void drawButtonMask ( QPainter * p, int x, int y, int w, int h ); 47 void drawButtonMask ( QPainter * p, int x, int y, int w, int h );
48 void drawBevelButton( QPainter *p, int x, int y, int w, int h, 48 void drawBevelButton( QPainter *p, int x, int y, int w, int h,
49 const QColorGroup &g, bool sunken=FALSE, const QBrush* fill=0 ); 49 const QColorGroup &g, bool sunken=FALSE, const QBrush* fill=0 );
50 void drawToolButton( QPainter *p, int x, int y, int w, int h, 50 void drawToolButton( QPainter *p, int x, int y, int w, int h,
51 const QColorGroup &g, bool sunken=FALSE, const QBrush* fill=0 ); 51 const QColorGroup &g, bool sunken=FALSE, const QBrush* fill=0 );
52 void drawPushButton( QPushButton *btn, QPainter *p ); 52 void drawPushButton( QPushButton *btn, QPainter *p );
53 void drawPushButtonLabel( QPushButton *btn, QPainter *p ); 53 void drawPushButtonLabel( QPushButton *btn, QPainter *p );
54 QRect comboButtonRect( int x, int y, int w, int h); 54 QRect comboButtonRect( int x, int y, int w, int h);
55 QRect comboButtonFocusRect( int x, int y, int w, int h); 55 QRect comboButtonFocusRect( int x, int y, int w, int h);
56 void drawComboButton( QPainter *p, int x, int y, int w, int h, 56 void drawComboButton( QPainter *p, int x, int y, int w, int h,
57 const QColorGroup &g, bool sunken, bool, bool enabled, 57 const QColorGroup &g, bool sunken, bool, bool enabled,
58 const QBrush *fill ); 58 const QBrush *fill );
59 void drawExclusiveIndicator ( QPainter * p, int x, int y, int w, int h, 59 void drawExclusiveIndicator ( QPainter * p, int x, int y, int w, int h,
60 const QColorGroup & g, bool on, bool down = FALSE, bool enabled = TRUE ); 60 const QColorGroup & g, bool on, bool down = FALSE, bool enabled = TRUE );
61 void drawIndicator ( QPainter * p, int x, int y, int w, int h, 61 void drawIndicator ( QPainter * p, int x, int y, int w, int h,
62 const QColorGroup & g, int state, bool down = FALSE, bool enabled = TRUE ); 62 const QColorGroup & g, int state, bool down = FALSE, bool enabled = TRUE );
63 void scrollBarMetrics( const QScrollBar*, int&, int&, int&, int&); 63 void scrollBarMetrics( const QScrollBar*, int&, int&, int&, int&);
64 void drawScrollBarControls( QPainter*, const QScrollBar*, int sliderStart, uint controls, uint activeControl ); 64 void drawScrollBarControls( QPainter*, const QScrollBar*, int sliderStart, uint controls, uint activeControl );
65 ScrollControl scrollBarPointOver( const QScrollBar* sb, int sliderStart, const QPoint& p ); 65 ScrollControl scrollBarPointOver( const QScrollBar* sb, int sliderStart, const QPoint& p );
66 void drawRiffles( QPainter* p, int x, int y, int w, int h, 66 void drawRiffles( QPainter* p, int x, int y, int w, int h,
67 const QColorGroup &g, bool horizontal ); 67 const QColorGroup &g, bool horizontal );
68 int sliderLength() const; 68 int sliderLength() const;
69 void drawSlider( QPainter *p, int x, int y, int w, int h, 69 void drawSlider( QPainter *p, int x, int y, int w, int h,
70 const QColorGroup &g, Orientation, bool tickAbove, bool tickBelow ); 70 const QColorGroup &g, Orientation, bool tickAbove, bool tickBelow );
71 void drawSliderMask( QPainter *p, int x, int y, int w, int h, 71 void drawSliderMask( QPainter *p, int x, int y, int w, int h,
72 Orientation, bool tickAbove, bool tickBelow ); 72 Orientation, bool tickAbove, bool tickBelow );
73 void drawSliderGrooveMask( QPainter *p, int x, int y, int w, int h, 73 void drawSliderGrooveMask( QPainter *p, int x, int y, int w, int h,
74 const QColorGroup& , QCOORD c, Orientation orient ); 74 const QColorGroup& , QCOORD c, Orientation orient );
75 void drawSliderGroove ( QPainter * p, int x, int y, int w, int h, const QColorGroup & g, QCOORD c, Orientation ); 75 void drawSliderGroove ( QPainter * p, int x, int y, int w, int h, const QColorGroup & g, QCOORD c, Orientation );
76 void drawTab( QPainter *, const QTabBar *, QTab *, bool selected ); 76 void drawTab( QPainter *, const QTabBar *, QTab *, bool selected );
77 void polishPopupMenu ( QPopupMenu * ); 77 void polishPopupMenu ( QPopupMenu * );
78 int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& ); 78 int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& );
79 int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& ); 79 int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& );
80 void drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 80 void drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
81 const QPalette& pal, 81 const QPalette& pal,
82 bool act, bool enabled, int x, int y, int w, int h); 82 bool act, bool enabled, int x, int y, int w, int h);
83 83
84 int buttonMargin() const; 84 int buttonMargin() const;
85 QSize scrollBarExtent() const; 85 QSize scrollBarExtent() const;
86 void getButtonShift( int &x, int &y ); 86 void getButtonShift( int &x, int &y );
87 87
88private: 88private:
89 FlatStylePrivate *d; 89 FlatStylePrivate *d;
90 bool revItem; 90 bool revItem;
91 bool fillBtnBorder; 91 bool fillBtnBorder;
92 QColor btnBg; 92 QColor btnBg;
93 // Disabled copy constructor and operator= 93 // Disabled copy constructor and operator=
94#if defined(Q_DISABLE_COPY) 94#if defined(Q_DISABLE_COPY)
95 FlatStyle( const FlatStyle & ); 95 FlatStyle( const FlatStyle & );
96 FlatStyle& operator=( const FlatStyle & ); 96 FlatStyle& operator=( const FlatStyle & );
97#endif 97#endif
98}; 98};
99 99
100 100
101class FlatStyleImpl : public StyleInterface 101class FlatStyleImpl : public StyleInterface
102{ 102{
103public: 103public:
104 FlatStyleImpl(); 104 FlatStyleImpl();
105 virtual ~FlatStyleImpl(); 105 virtual ~FlatStyleImpl();
106 106
107 QRESULT queryInterface( const QUuid&, QUnknownInterface** ); 107 QRESULT queryInterface( const QUuid&, QUnknownInterface** );
108 Q_REFCOUNT 108 Q_REFCOUNT
109 109
110 virtual QStyle *style(); 110 virtual QStyle *style();
111 virtual QString name() const; 111 virtual QString name() const;
112 112
113private: 113private:
114 FlatStyle *flat; 114 FlatStyle *flat;
115 ulong ref;
116}; 115};
117 116
118#endif // FLATSTYLE_H 117#endif // FLATSTYLE_H
diff --git a/noncore/styles/fresh/fresh.cpp b/noncore/styles/fresh/fresh.cpp
index 0730329..831b620 100644
--- a/noncore/styles/fresh/fresh.cpp
+++ b/noncore/styles/fresh/fresh.cpp
@@ -1,846 +1,848 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "fresh.h" 21#include "fresh.h"
22#include <qpe/qpeapplication.h> 22#include <qpe/qpeapplication.h>
23#include <qpushbutton.h> 23#include <qpushbutton.h>
24#include <qpainter.h> 24#include <qpainter.h>
25#include <qfontmetrics.h> 25#include <qfontmetrics.h>
26#include <qpalette.h> 26#include <qpalette.h>
27#include <qdrawutil.h> 27#include <qdrawutil.h>
28#include <qscrollbar.h> 28#include <qscrollbar.h>
29#include <qbutton.h> 29#include <qbutton.h>
30#include <qframe.h> 30#include <qframe.h>
31#include <qtabbar.h> 31#include <qtabbar.h>
32 32
33#define INCLUDE_MENUITEM_DEF 33#define INCLUDE_MENUITEM_DEF
34#include <qmenudata.h> 34#include <qmenudata.h>
35 35
36#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) 36#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2)
37 37
38FreshStyle::FreshStyle() 38FreshStyle::FreshStyle()
39{ 39{
40 setButtonMargin(2); 40 setButtonMargin(2);
41 setScrollBarExtent(13,13); 41 setScrollBarExtent(13,13);
42} 42}
43 43
44FreshStyle::~FreshStyle() 44FreshStyle::~FreshStyle()
45{ 45{
46} 46}
47 47
48int FreshStyle::buttonMargin() const 48int FreshStyle::buttonMargin() const
49{ 49{
50 return 2; 50 return 2;
51} 51}
52 52
53QSize FreshStyle::scrollBarExtent() const 53QSize FreshStyle::scrollBarExtent() const
54{ 54{
55 return QSize(13,13); 55 return QSize(13,13);
56} 56}
57 57
58void FreshStyle::polish ( QPalette & ) 58void FreshStyle::polish ( QPalette & )
59{ 59{
60} 60}
61 61
62void FreshStyle::polish( QWidget *w ) 62void FreshStyle::polish( QWidget *w )
63{ 63{
64 if ( w->inherits( "QListBox" ) || 64 if ( w->inherits( "QListBox" ) ||
65 w->inherits( "QListView" ) || 65 w->inherits( "QListView" ) ||
66 w->inherits( "QPopupMenu" ) || 66 w->inherits( "QPopupMenu" ) ||
67 w->inherits( "QSpinBox" ) ) { 67 w->inherits( "QSpinBox" ) ) {
68 QFrame *f = (QFrame *)w; 68 QFrame *f = (QFrame *)w;
69 f->setFrameShape( QFrame::StyledPanel ); 69 f->setFrameShape( QFrame::StyledPanel );
70 f->setLineWidth( 1 ); 70 f->setLineWidth( 1 );
71 } 71 }
72} 72}
73 73
74void FreshStyle::unPolish( QWidget *w ) 74void FreshStyle::unPolish( QWidget *w )
75{ 75{
76 if ( w->inherits( "QListBox" ) || 76 if ( w->inherits( "QListBox" ) ||
77 w->inherits( "QListView" ) || 77 w->inherits( "QListView" ) ||
78 w->inherits( "QPopupMenu" ) || 78 w->inherits( "QPopupMenu" ) ||
79 w->inherits( "QSpinBox" ) ) { 79 w->inherits( "QSpinBox" ) ) {
80 QFrame *f = (QFrame *)w; 80 QFrame *f = (QFrame *)w;
81 f->setFrameShape( QFrame::StyledPanel ); 81 f->setFrameShape( QFrame::StyledPanel );
82 f->setLineWidth( 2 ); 82 f->setLineWidth( 2 );
83 } 83 }
84} 84}
85 85
86int FreshStyle::defaultFrameWidth() const 86int FreshStyle::defaultFrameWidth() const
87{ 87{
88 return 1; 88 return 1;
89} 89}
90 90
91void FreshStyle::drawPanel ( QPainter * p, int x, int y, int w, int h, 91void FreshStyle::drawPanel ( QPainter * p, int x, int y, int w, int h,
92 const QColorGroup &g, bool sunken, int lineWidth, const QBrush * fill ) 92 const QColorGroup &g, bool sunken, int lineWidth, const QBrush * fill )
93{ 93{
94 qDrawShadePanel( p, QRect(x, y, w, h), g, sunken, lineWidth, fill ); 94 qDrawShadePanel( p, QRect(x, y, w, h), g, sunken, lineWidth, fill );
95} 95}
96 96
97void FreshStyle::drawButton( QPainter *p, int x, int y, int w, int h, 97void FreshStyle::drawButton( QPainter *p, int x, int y, int w, int h,
98 const QColorGroup &cg, bool sunken, const QBrush* fill ) 98 const QColorGroup &cg, bool sunken, const QBrush* fill )
99{ 99{
100 QPen oldPen = p->pen(); 100 QPen oldPen = p->pen();
101 int off = sunken ? 1 : 0; 101 int off = sunken ? 1 : 0;
102 p->fillRect( x+1+off, y+1+off, w-3, h-3, fill?(*fill):cg.brush(QColorGroup::Button) ); 102 p->fillRect( x+1+off, y+1+off, w-3, h-3, fill?(*fill):cg.brush(QColorGroup::Button) );
103 103
104 int x2 = x+w-1; 104 int x2 = x+w-1;
105 int y2 = y+h-1; 105 int y2 = y+h-1;
106 106
107 if ( sunken ) 107 if ( sunken )
108 p->setPen( cg.dark() ); 108 p->setPen( cg.dark() );
109 else 109 else
110 p->setPen( cg.light() ); 110 p->setPen( cg.light() );
111 p->drawLine( x, y, x, y2-1 ); 111 p->drawLine( x, y, x, y2-1 );
112 p->drawLine( x, y, x2, y ); 112 p->drawLine( x, y, x2, y );
113 113
114 if ( sunken ) { 114 if ( sunken ) {
115 p->setPen( white ); 115 p->setPen( white );
116 p->drawLine( x+1, y+1, x+1, y2-2 ); 116 p->drawLine( x+1, y+1, x+1, y2-2 );
117 p->drawLine( x+1, y+1, x2-2, y+1 ); 117 p->drawLine( x+1, y+1, x2-2, y+1 );
118 } 118 }
119 119
120 if ( sunken ) 120 if ( sunken )
121 p->setPen( cg.light() ); 121 p->setPen( cg.light() );
122 else 122 else
123 p->setPen( cg.dark() ); 123 p->setPen( cg.dark() );
124 p->drawLine( x2, y+1, x2, y2 ); 124 p->drawLine( x2, y+1, x2, y2 );
125 p->drawLine( x, y2, x2, y2 ); 125 p->drawLine( x, y2, x2, y2 );
126 126
127 if ( !sunken ) { 127 if ( !sunken ) {
128 p->setPen( white ); 128 p->setPen( white );
129 p->drawLine( x2-1, y+1, x2-1, y2-1 ); 129 p->drawLine( x2-1, y+1, x2-1, y2-1 );
130 p->drawLine( x+1, y2-1, x2-1, y2-1 ); 130 p->drawLine( x+1, y2-1, x2-1, y2-1 );
131 } 131 }
132 p->setPen( oldPen ); 132 p->setPen( oldPen );
133} 133}
134 134
135void FreshStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h ) 135void FreshStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h )
136{ 136{
137 p->fillRect( x, y, w, h, color1 ); 137 p->fillRect( x, y, w, h, color1 );
138} 138}
139 139
140void FreshStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h, 140void FreshStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h,
141 const QColorGroup &g, bool sunken, const QBrush* fill ) 141 const QColorGroup &g, bool sunken, const QBrush* fill )
142{ 142{
143 drawButton( p, x, y, w, h, g, sunken, fill ); 143 drawButton( p, x, y, w, h, g, sunken, fill );
144} 144}
145 145
146QRect FreshStyle::comboButtonRect( int x, int y, int w, int h) 146QRect FreshStyle::comboButtonRect( int x, int y, int w, int h)
147{ 147{
148 return QRect(x+1, y+1, w-2-14, h-2); 148 return QRect(x+1, y+1, w-2-14, h-2);
149} 149}
150 150
151 151
152QRect FreshStyle::comboButtonFocusRect( int x, int y, int w, int h) 152QRect FreshStyle::comboButtonFocusRect( int x, int y, int w, int h)
153{ 153{
154 return QRect(x+2, y+2, w-4-14, h-4); 154 return QRect(x+2, y+2, w-4-14, h-4);
155} 155}
156 156
157void FreshStyle::drawComboButton( QPainter *p, int x, int y, int w, int h, 157void FreshStyle::drawComboButton( QPainter *p, int x, int y, int w, int h,
158 const QColorGroup &g, bool sunken, 158 const QColorGroup &g, bool sunken,
159 bool /*editable*/, 159 bool /*editable*/,
160 bool enabled, 160 bool enabled,
161 const QBrush *fill ) 161 const QBrush *fill )
162{ 162{
163 drawBevelButton( p, x, y, w, h, g, FALSE, fill ); 163 drawBevelButton( p, x, y, w, h, g, FALSE, fill );
164 drawBevelButton( p, x+w-14, y, 14, h, g, sunken, fill ); 164 drawBevelButton( p, x+w-14, y, 14, h, g, sunken, fill );
165 drawArrow( p, QStyle::DownArrow, sunken, 165 drawArrow( p, QStyle::DownArrow, sunken,
166 x+w-14+ 2, y+ 2, 14- 4, h- 4, g, enabled, 166 x+w-14+ 2, y+ 2, 14- 4, h- 4, g, enabled,
167 &g.brush( QColorGroup::Button ) ); 167 &g.brush( QColorGroup::Button ) );
168 168
169} 169}
170 170
171 171
172void FreshStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w, 172void FreshStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w,
173 int h, const QColorGroup &cg, bool on, bool down, bool enabled ) 173 int h, const QColorGroup &cg, bool on, bool down, bool enabled )
174{ 174{
175 static const QCOORD pts1[] = { // dark lines 175 static const QCOORD pts1[] = { // dark lines
176 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; 176 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 };
177 static const QCOORD pts4[] = { // white lines 177 static const QCOORD pts4[] = { // white lines
178 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, 178 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7,
179 11,4, 10,3, 10,2 }; 179 11,4, 10,3, 10,2 };
180 static const QCOORD pts5[] = { // inner fill 180 static const QCOORD pts5[] = { // inner fill
181 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; 181 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 };
182 182
183 p->eraseRect( x, y, w, h ); 183 p->eraseRect( x, y, w, h );
184 QPointArray a( QCOORDARRLEN(pts1), pts4 ); 184 QPointArray a( QCOORDARRLEN(pts1), pts4 );
185 a.translate( x, y ); 185 a.translate( x, y );
186 p->setPen( cg.dark() ); 186 p->setPen( cg.dark() );
187 p->drawPolyline( a ); 187 p->drawPolyline( a );
188 a.setPoints( QCOORDARRLEN(pts4), pts1 ); 188 a.setPoints( QCOORDARRLEN(pts4), pts1 );
189 a.translate( x, y ); 189 a.translate( x, y );
190 p->setPen( cg.light() ); 190 p->setPen( cg.light() );
191 p->drawPolyline( a ); 191 p->drawPolyline( a );
192 a.setPoints( QCOORDARRLEN(pts5), pts5 ); 192 a.setPoints( QCOORDARRLEN(pts5), pts5 );
193 a.translate( x, y ); 193 a.translate( x, y );
194 QColor fillColor = ( down || !enabled ) ? cg.button() : cg.base(); 194 QColor fillColor = ( down || !enabled ) ? cg.button() : cg.base();
195 p->setPen( fillColor ); 195 p->setPen( fillColor );
196 p->setBrush( fillColor ) ; 196 p->setBrush( fillColor ) ;
197 p->drawPolygon( a ); 197 p->drawPolygon( a );
198 if ( on ) { 198 if ( on ) {
199 p->setPen( NoPen ); 199 p->setPen( NoPen );
200 p->setBrush( cg.text() ); 200 p->setBrush( cg.text() );
201 p->drawRect( x+5, y+4, 2, 4 ); 201 p->drawRect( x+5, y+4, 2, 4 );
202 p->drawRect( x+4, y+5, 4, 2 ); 202 p->drawRect( x+4, y+5, 4, 2 );
203 } 203 }
204} 204}
205 205
206void FreshStyle::drawIndicator ( QPainter * p, int x, int y, int w, int h, 206void FreshStyle::drawIndicator ( QPainter * p, int x, int y, int w, int h,
207 const QColorGroup &cg, int state, bool down, bool enabled ) 207 const QColorGroup &cg, int state, bool down, bool enabled )
208{ 208{
209 QColorGroup mycg( cg ); 209 QColorGroup mycg( cg );
210 mycg.setBrush( QColorGroup::Button, QBrush() ); 210 mycg.setBrush( QColorGroup::Button, QBrush() );
211 QBrush fill; 211 QBrush fill;
212 drawButton( p, x, y, w, h, mycg, TRUE, 0 ); 212 drawButton( p, x, y, w, h, mycg, TRUE, 0 );
213 if ( down ) 213 if ( down )
214 fill = cg.brush( QColorGroup::Button ); 214 fill = cg.brush( QColorGroup::Button );
215 else 215 else
216 fill = cg.brush( enabled ? QColorGroup::Base : QColorGroup::Background ); 216 fill = cg.brush( enabled ? QColorGroup::Base : QColorGroup::Background );
217 mycg.setBrush( QColorGroup::Button, fill ); 217 mycg.setBrush( QColorGroup::Button, fill );
218 p->fillRect( x+1, y+1, w-2, h-2, fill ); 218 p->fillRect( x+1, y+1, w-2, h-2, fill );
219 if ( state != QButton::Off ) { 219 if ( state != QButton::Off ) {
220 QPointArray a( 7*2 ); 220 QPointArray a( 7*2 );
221 int i, xx, yy; 221 int i, xx, yy;
222 xx = x+3; 222 xx = x+3;
223 yy = y+5; 223 yy = y+5;
224 for ( i=0; i<3; i++ ) { 224 for ( i=0; i<3; i++ ) {
225 a.setPoint( 2*i, xx, yy ); 225 a.setPoint( 2*i, xx, yy );
226 a.setPoint( 2*i+1, xx, yy+2 ); 226 a.setPoint( 2*i+1, xx, yy+2 );
227 xx++; yy++; 227 xx++; yy++;
228 } 228 }
229 yy -= 2; 229 yy -= 2;
230 for ( i=3; i<7; i++ ) { 230 for ( i=3; i<7; i++ ) {
231 a.setPoint( 2*i, xx, yy ); 231 a.setPoint( 2*i, xx, yy );
232 a.setPoint( 2*i+1, xx, yy+2 ); 232 a.setPoint( 2*i+1, xx, yy+2 );
233 xx++; yy--; 233 xx++; yy--;
234 } 234 }
235 if ( state == QButton::NoChange ) { 235 if ( state == QButton::NoChange ) {
236 p->setPen( mycg.dark() ); 236 p->setPen( mycg.dark() );
237 } else { 237 } else {
238 p->setPen( mycg.text() ); 238 p->setPen( mycg.text() );
239 } 239 }
240 p->drawLineSegments( a ); 240 p->drawLineSegments( a );
241 } 241 }
242} 242}
243 243
244 #define HORIZONTAL(sb->orientation() == QScrollBar::Horizontal) 244 #define HORIZONTAL(sb->orientation() == QScrollBar::Horizontal)
245 #define VERTICAL!HORIZONTAL 245 #define VERTICAL!HORIZONTAL
246 #define MOTIF_BORDER2 246 #define MOTIF_BORDER2
247 #define SLIDER_MIN9 // ### motif says 6 but that's too small 247 #define SLIDER_MIN9 // ### motif says 6 but that's too small
248 248
249/*! \reimp */ 249/*! \reimp */
250 250
251void FreshStyle::scrollBarMetrics( const QScrollBar* sb, int &sliderMin, int &sliderMax, int &sliderLength, int& buttonDim ) 251void FreshStyle::scrollBarMetrics( const QScrollBar* sb, int &sliderMin, int &sliderMax, int &sliderLength, int& buttonDim )
252{ 252{
253 int maxLength; 253 int maxLength;
254 int length = HORIZONTAL ? sb->width() : sb->height(); 254 int length = HORIZONTAL ? sb->width() : sb->height();
255 int extent = HORIZONTAL ? sb->height() : sb->width(); 255 int extent = HORIZONTAL ? sb->height() : sb->width();
256 256
257 if ( length > (extent - 1)*2 ) 257 if ( length > (extent - 1)*2 )
258 buttonDim = extent; 258 buttonDim = extent;
259 else 259 else
260 buttonDim = length/2 - 1; 260 buttonDim = length/2 - 1;
261 261
262 sliderMin = 0; 262 sliderMin = 0;
263 maxLength = length - buttonDim*2; 263 maxLength = length - buttonDim*2;
264 264
265 if ( sb->maxValue() == sb->minValue() ) { 265 if ( sb->maxValue() == sb->minValue() ) {
266 sliderLength = maxLength; 266 sliderLength = maxLength;
267 } else { 267 } else {
268 sliderLength = (sb->pageStep()*maxLength)/ 268 sliderLength = (sb->pageStep()*maxLength)/
269 (sb->maxValue()-sb->minValue()+sb->pageStep()); 269 (sb->maxValue()-sb->minValue()+sb->pageStep());
270 uint range = sb->maxValue()-sb->minValue(); 270 uint range = sb->maxValue()-sb->minValue();
271 if ( sliderLength < SLIDER_MIN || range > INT_MAX/2 ) 271 if ( sliderLength < SLIDER_MIN || range > INT_MAX/2 )
272 sliderLength = SLIDER_MIN; 272 sliderLength = SLIDER_MIN;
273 if ( sliderLength > maxLength ) 273 if ( sliderLength > maxLength )
274 sliderLength = maxLength; 274 sliderLength = maxLength;
275 } 275 }
276 276
277 sliderMax = sliderMin + maxLength - sliderLength; 277 sliderMax = sliderMin + maxLength - sliderLength;
278} 278}
279 279
280/*!\reimp 280/*!\reimp
281 */ 281 */
282QStyle::ScrollControl FreshStyle::scrollBarPointOver( const QScrollBar* sb, int sliderStart, const QPoint& p ) 282QStyle::ScrollControl FreshStyle::scrollBarPointOver( const QScrollBar* sb, int sliderStart, const QPoint& p )
283{ 283{
284 if ( !sb->rect().contains( p ) ) 284 if ( !sb->rect().contains( p ) )
285 return NoScroll; 285 return NoScroll;
286 int sliderMin, sliderMax, sliderLength, buttonDim, pos; 286 int sliderMin, sliderMax, sliderLength, buttonDim, pos;
287 scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim ); 287 scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim );
288 288
289 if (sb->orientation() == QScrollBar::Horizontal) 289 if (sb->orientation() == QScrollBar::Horizontal)
290 pos = p.x(); 290 pos = p.x();
291 else 291 else
292 pos = p.y(); 292 pos = p.y();
293 293
294 if (pos < sliderStart) 294 if (pos < sliderStart)
295 return SubPage; 295 return SubPage;
296 if (pos < sliderStart + sliderLength) 296 if (pos < sliderStart + sliderLength)
297 return Slider; 297 return Slider;
298 if (pos < sliderMax + sliderLength) 298 if (pos < sliderMax + sliderLength)
299 return AddPage; 299 return AddPage;
300 if (pos < sliderMax + sliderLength + buttonDim) 300 if (pos < sliderMax + sliderLength + buttonDim)
301 return SubLine; 301 return SubLine;
302 return AddLine; 302 return AddLine;
303} 303}
304 304
305/*! \reimp */ 305/*! \reimp */
306 306
307void FreshStyle::drawScrollBarControls( QPainter* p, const QScrollBar* sb, int sliderStart, uint controls, uint activeControl ) 307void FreshStyle::drawScrollBarControls( QPainter* p, const QScrollBar* sb, int sliderStart, uint controls, uint activeControl )
308{ 308{
309#define ADD_LINE_ACTIVE ( activeControl == AddLine ) 309#define ADD_LINE_ACTIVE ( activeControl == AddLine )
310#define SUB_LINE_ACTIVE ( activeControl == SubLine ) 310#define SUB_LINE_ACTIVE ( activeControl == SubLine )
311 QColorGroup g = sb->colorGroup(); 311 QColorGroup g = sb->colorGroup();
312 312
313 int sliderMin, sliderMax, sliderLength, buttonDim; 313 int sliderMin, sliderMax, sliderLength, buttonDim;
314 scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim ); 314 scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim );
315 315
316 if ( controls == (AddLine | SubLine | AddPage | SubPage | Slider | First | Last ) ) 316 if ( controls == (AddLine | SubLine | AddPage | SubPage | Slider | First | Last ) )
317 p->fillRect( 0, 0, sb->width(), sb->height(), g.brush( QColorGroup::Mid )); 317 p->fillRect( 0, 0, sb->width(), sb->height(), g.brush( QColorGroup::Mid ));
318 318
319 if (sliderStart > sliderMax) { // sanity check 319 if (sliderStart > sliderMax) { // sanity check
320 sliderStart = sliderMax; 320 sliderStart = sliderMax;
321 } 321 }
322 322
323 int dimB = buttonDim; 323 int dimB = buttonDim;
324 QRect addB; 324 QRect addB;
325 QRect subB; 325 QRect subB;
326 QRect addPageR; 326 QRect addPageR;
327 QRect subPageR; 327 QRect subPageR;
328 QRect sliderR; 328 QRect sliderR;
329 int addX, addY, subX, subY; 329 int addX, addY, subX, subY;
330 int length = HORIZONTAL ? sb->width() : sb->height(); 330 int length = HORIZONTAL ? sb->width() : sb->height();
331 int extent = HORIZONTAL ? sb->height() : sb->width(); 331 int extent = HORIZONTAL ? sb->height() : sb->width();
332 332
333 if ( HORIZONTAL ) { 333 if ( HORIZONTAL ) {
334 subY = addY = ( extent - dimB ) / 2; 334 subY = addY = ( extent - dimB ) / 2;
335 subX = length - dimB - dimB; 335 subX = length - dimB - dimB;
336 addX = length - dimB; 336 addX = length - dimB;
337 } else { 337 } else {
338 subX = addX = ( extent - dimB ) / 2; 338 subX = addX = ( extent - dimB ) / 2;
339 subY = length - dimB - dimB; 339 subY = length - dimB - dimB;
340 addY = length - dimB; 340 addY = length - dimB;
341 } 341 }
342 342
343 int sliderEnd = sliderStart + sliderLength; 343 int sliderEnd = sliderStart + sliderLength;
344 int sliderW = extent; 344 int sliderW = extent;
345 if ( HORIZONTAL ) { 345 if ( HORIZONTAL ) {
346 subB.setRect( subX,subY+1,dimB,dimB-1 ); 346 subB.setRect( subX,subY+1,dimB,dimB-1 );
347 addB.setRect( addX,addY+1,dimB,dimB-1 ); 347 addB.setRect( addX,addY+1,dimB,dimB-1 );
348 348
349 subPageR.setRect( 0, 0, 349 subPageR.setRect( 0, 0,
350 sliderStart+1, sliderW ); 350 sliderStart+1, sliderW );
351 addPageR.setRect( sliderEnd-1, 0, subX - sliderEnd+1, sliderW ); 351 addPageR.setRect( sliderEnd-1, 0, subX - sliderEnd+1, sliderW );
352 sliderR .setRect( sliderStart, 1, sliderLength, sliderW-1 ); 352 sliderR .setRect( sliderStart, 1, sliderLength, sliderW-1 );
353 353
354 } else { 354 } else {
355 subB.setRect( subX+1,subY,dimB-1,dimB ); 355 subB.setRect( subX+1,subY,dimB-1,dimB );
356 addB.setRect( addX+1,addY,dimB-1,dimB ); 356 addB.setRect( addX+1,addY,dimB-1,dimB );
357 357
358 subPageR.setRect( 0, 0, sliderW, 358 subPageR.setRect( 0, 0, sliderW,
359 sliderStart+1 ); 359 sliderStart+1 );
360 addPageR.setRect( 0, sliderEnd-1, sliderW, subY - sliderEnd+1 ); 360 addPageR.setRect( 0, sliderEnd-1, sliderW, subY - sliderEnd+1 );
361 sliderR .setRect( 1, sliderStart, sliderW-1, sliderLength ); 361 sliderR .setRect( 1, sliderStart, sliderW-1, sliderLength );
362 } 362 }
363 363
364 bool maxedOut = (sb->maxValue() == sb->minValue()); 364 bool maxedOut = (sb->maxValue() == sb->minValue());
365 if ( controls & AddLine ) { 365 if ( controls & AddLine ) {
366 drawBevelButton( p, addB.x(), addB.y(), 366 drawBevelButton( p, addB.x(), addB.y(),
367 addB.width(), addB.height(), g, 367 addB.width(), addB.height(), g,
368 ADD_LINE_ACTIVE); 368 ADD_LINE_ACTIVE);
369 p->setPen(g.shadow()); 369 p->setPen(g.shadow());
370 drawArrow( p, VERTICAL ? DownArrow : RightArrow, 370 drawArrow( p, VERTICAL ? DownArrow : RightArrow,
371 FALSE, addB.x()+2, addB.y()+2, 371 FALSE, addB.x()+2, addB.y()+2,
372 addB.width()-4, addB.height()-4, g, !maxedOut, 372 addB.width()-4, addB.height()-4, g, !maxedOut,
373 &g.brush( QColorGroup::Button )); 373 &g.brush( QColorGroup::Button ));
374 } 374 }
375 if ( controls & SubLine ) { 375 if ( controls & SubLine ) {
376 drawBevelButton( p, subB.x(), subB.y(), 376 drawBevelButton( p, subB.x(), subB.y(),
377 subB.width(), subB.height(), g, 377 subB.width(), subB.height(), g,
378 SUB_LINE_ACTIVE ); 378 SUB_LINE_ACTIVE );
379 p->setPen(g.shadow()); 379 p->setPen(g.shadow());
380 drawArrow( p, VERTICAL ? UpArrow : LeftArrow, 380 drawArrow( p, VERTICAL ? UpArrow : LeftArrow,
381 FALSE, subB.x()+2, subB.y()+2, 381 FALSE, subB.x()+2, subB.y()+2,
382 subB.width()-4, subB.height()-4, g, !maxedOut, 382 subB.width()-4, subB.height()-4, g, !maxedOut,
383 &g.brush( QColorGroup::Button )); 383 &g.brush( QColorGroup::Button ));
384 } 384 }
385 385
386 386
387 if ( controls & SubPage ) 387 if ( controls & SubPage )
388 p->fillRect( subPageR.x(), subPageR.y(), subPageR.width(), 388 p->fillRect( subPageR.x(), subPageR.y(), subPageR.width(),
389 subPageR.height(), g.brush( QColorGroup::Mid )); 389 subPageR.height(), g.brush( QColorGroup::Mid ));
390 if ( controls & AddPage ) 390 if ( controls & AddPage )
391 p->fillRect( addPageR.x(), addPageR.y(), addPageR.width(), 391 p->fillRect( addPageR.x(), addPageR.y(), addPageR.width(),
392 addPageR.height(), g.brush( QColorGroup::Mid )); 392 addPageR.height(), g.brush( QColorGroup::Mid ));
393 if ( controls & Slider ) { 393 if ( controls & Slider ) {
394 QPoint bo = p->brushOrigin(); 394 QPoint bo = p->brushOrigin();
395 p->setBrushOrigin(sliderR.topLeft()); 395 p->setBrushOrigin(sliderR.topLeft());
396 drawBevelButton( p, sliderR.x(), sliderR.y(), 396 drawBevelButton( p, sliderR.x(), sliderR.y(),
397 sliderR.width(), sliderR.height(), g, 397 sliderR.width(), sliderR.height(), g,
398 FALSE, &g.brush( QColorGroup::Button ) ); 398 FALSE, &g.brush( QColorGroup::Button ) );
399 p->setBrushOrigin(bo); 399 p->setBrushOrigin(bo);
400 drawRiffles( p, sliderR.x(), sliderR.y(), 400 drawRiffles( p, sliderR.x(), sliderR.y(),
401 sliderR.width(), sliderR.height(), g, HORIZONTAL ); 401 sliderR.width(), sliderR.height(), g, HORIZONTAL );
402 } 402 }
403 403
404 // ### perhaps this should not be able to accept focus if maxedOut? 404 // ### perhaps this should not be able to accept focus if maxedOut?
405 if ( sb->hasFocus() && (controls & Slider) ) 405 if ( sb->hasFocus() && (controls & Slider) )
406 p->drawWinFocusRect( sliderR.x()+2, sliderR.y()+2, 406 p->drawWinFocusRect( sliderR.x()+2, sliderR.y()+2,
407 sliderR.width()-5, sliderR.height()-5, 407 sliderR.width()-5, sliderR.height()-5,
408 sb->backgroundColor() ); 408 sb->backgroundColor() );
409 409
410} 410}
411 411
412void FreshStyle::drawRiffles( QPainter* p, int x, int y, int w, int h, 412void FreshStyle::drawRiffles( QPainter* p, int x, int y, int w, int h,
413 const QColorGroup &g, bool horizontal ) 413 const QColorGroup &g, bool horizontal )
414{ 414{
415 return; 415 return;
416 if (!horizontal) { 416 if (!horizontal) {
417 if (h > 20) { 417 if (h > 20) {
418 y += (h-20)/2 ; 418 y += (h-20)/2 ;
419 h = 20; 419 h = 20;
420 } 420 }
421 if (h > 12) { 421 if (h > 12) {
422 int n = 3; 422 int n = 3;
423 int my = y+h/2-4; 423 int my = y+h/2-4;
424 int i ; 424 int i ;
425 p->setPen(g.light()); 425 p->setPen(g.light());
426 for (i=0; i<n; i++) { 426 for (i=0; i<n; i++) {
427 p->drawLine(x+2, my+3*i, x+w-4, my+3*i); 427 p->drawLine(x+2, my+3*i, x+w-4, my+3*i);
428 } 428 }
429 p->setPen(g.dark()); 429 p->setPen(g.dark());
430 my++; 430 my++;
431 for (i=0; i<n; i++) { 431 for (i=0; i<n; i++) {
432 p->drawLine(x+2, my+3*i, x+w-4, my+3*i); 432 p->drawLine(x+2, my+3*i, x+w-4, my+3*i);
433 } 433 }
434 } 434 }
435 } 435 }
436 else { 436 else {
437 if (w > 20) { 437 if (w > 20) {
438 x += (w-20)/2 ; 438 x += (w-20)/2 ;
439 w = 20; 439 w = 20;
440 } 440 }
441 if (w > 12) { 441 if (w > 12) {
442 int n = 3; 442 int n = 3;
443 int mx = x+w/2-4; 443 int mx = x+w/2-4;
444 int i ; 444 int i ;
445 p->setPen(g.light()); 445 p->setPen(g.light());
446 for (i=0; i<n; i++) { 446 for (i=0; i<n; i++) {
447 p->drawLine(mx+3*i, y+2, mx + 3*i, y+h-4); 447 p->drawLine(mx+3*i, y+2, mx + 3*i, y+h-4);
448 } 448 }
449 p->setPen(g.dark()); 449 p->setPen(g.dark());
450 mx++; 450 mx++;
451 for (i=0; i<n; i++) { 451 for (i=0; i<n; i++) {
452 p->drawLine(mx+3*i, y+2, mx + 3*i, y+h-4); 452 p->drawLine(mx+3*i, y+2, mx + 3*i, y+h-4);
453 } 453 }
454 } 454 }
455 } 455 }
456} 456}
457 457
458int FreshStyle::sliderLength() const 458int FreshStyle::sliderLength() const
459{ 459{
460 return 12; 460 return 12;
461} 461}
462 462
463void FreshStyle::drawSlider( QPainter *p, int x, int y, int w, int h, 463void FreshStyle::drawSlider( QPainter *p, int x, int y, int w, int h,
464 const QColorGroup &g, Orientation o, bool tickAbove, bool tickBelow ) 464 const QColorGroup &g, Orientation o, bool tickAbove, bool tickBelow )
465{ 465{
466 int a = tickAbove ? 3 : 0; 466 int a = tickAbove ? 3 : 0;
467 int b = tickBelow ? 3 : 0; 467 int b = tickBelow ? 3 : 0;
468 468
469 if ( o == Horizontal ) { 469 if ( o == Horizontal ) {
470 drawBevelButton( p, x, y+a, w, h-a-b, g, FALSE, &g.brush( QColorGroup::Button ) ); 470 drawBevelButton( p, x, y+a, w, h-a-b, g, FALSE, &g.brush( QColorGroup::Button ) );
471 int xp = x + w/2; 471 int xp = x + w/2;
472 qDrawShadeLine( p, xp, y+a+2, xp, y+h-b-3, g ); 472 qDrawShadeLine( p, xp, y+a+2, xp, y+h-b-3, g );
473 } else { 473 } else {
474 drawBevelButton( p, x+a, y, w-a-b, h, g, FALSE, &g.brush( QColorGroup::Button ) ); 474 drawBevelButton( p, x+a, y, w-a-b, h, g, FALSE, &g.brush( QColorGroup::Button ) );
475 int yp = y + h/2; 475 int yp = y + h/2;
476 qDrawShadeLine( p, x+a+2, yp, x+w-b-3, yp, g ); 476 qDrawShadeLine( p, x+a+2, yp, x+w-b-3, yp, g );
477 } 477 }
478} 478}
479 479
480void FreshStyle::drawSliderMask ( QPainter * p, int x, int y, int w, int h, 480void FreshStyle::drawSliderMask ( QPainter * p, int x, int y, int w, int h,
481 Orientation o, bool tickAbove, bool tickBelow ) 481 Orientation o, bool tickAbove, bool tickBelow )
482{ 482{
483 int a = tickAbove ? 3 : 0; 483 int a = tickAbove ? 3 : 0;
484 int b = tickBelow ? 3 : 0; 484 int b = tickBelow ? 3 : 0;
485 if ( o == Horizontal ) 485 if ( o == Horizontal )
486 p->fillRect( x, y+a, w, h-a-b, color1 ); 486 p->fillRect( x, y+a, w, h-a-b, color1 );
487 else 487 else
488 p->fillRect( x+a, y, w-a-b, h, color1 ); 488 p->fillRect( x+a, y, w-a-b, h, color1 );
489} 489}
490 490
491/*!\reimp 491/*!\reimp
492 */ 492 */
493void FreshStyle::drawSliderGrooveMask( QPainter *p, 493void FreshStyle::drawSliderGrooveMask( QPainter *p,
494 int x, int y, int w, int h, 494 int x, int y, int w, int h,
495 const QColorGroup& , QCOORD c, 495 const QColorGroup& , QCOORD c,
496 Orientation orient ) 496 Orientation orient )
497{ 497{
498 if ( orient == Horizontal ) 498 if ( orient == Horizontal )
499 p->fillRect( x, y + c - 2, w, 4, color1 ); 499 p->fillRect( x, y + c - 2, w, 4, color1 );
500 else 500 else
501 p->fillRect( x + c - 2, y, 4, h, color1 ); 501 p->fillRect( x + c - 2, y, 4, h, color1 );
502} 502}
503 503
504void FreshStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected ) 504void FreshStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected )
505{ 505{
506 QRect r( t->rect() ); 506 QRect r( t->rect() );
507 if ( tb->shape() == QTabBar::RoundedAbove ) { 507 if ( tb->shape() == QTabBar::RoundedAbove ) {
508 p->setPen( tb->colorGroup().light() ); 508 p->setPen( tb->colorGroup().light() );
509 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 509 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
510 if ( r.left() == 0 ) 510 if ( r.left() == 0 )
511 p->drawPoint( tb->rect().bottomLeft() ); 511 p->drawPoint( tb->rect().bottomLeft() );
512 else { 512 else {
513 p->setPen( tb->colorGroup().light() ); 513 p->setPen( tb->colorGroup().light() );
514 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 514 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
515 } 515 }
516 516
517 if ( selected ) { 517 if ( selected ) {
518 p->setPen( tb->colorGroup().background() ); 518 p->setPen( tb->colorGroup().background() );
519 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 519 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
520 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2), 520 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2),
521 tb->colorGroup().brush( QColorGroup::Background )); 521 tb->colorGroup().brush( QColorGroup::Background ));
522 } else { 522 } else {
523 r.setRect( r.left() + 2, r.top() + 2, 523 r.setRect( r.left() + 2, r.top() + 2,
524 r.width() - 4, r.height() - 2 ); 524 r.width() - 4, r.height() - 2 );
525 p->setPen( tb->colorGroup().button() ); 525 p->setPen( tb->colorGroup().button() );
526 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 526 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
527 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3), 527 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3),
528 tb->colorGroup().brush( QColorGroup::Button )); 528 tb->colorGroup().brush( QColorGroup::Button ));
529 529
530 //do shading; will not work for pixmap brushes 530 //do shading; will not work for pixmap brushes
531 QColor bg = tb->colorGroup().button(); 531 QColor bg = tb->colorGroup().button();
532 // int h,s,v; 532 // int h,s,v;
533 // bg.hsv( &h, &s, &v ); 533 // bg.hsv( &h, &s, &v );
534 int n = r.height()/2; 534 int n = r.height()/2;
535 int dark = 100; 535 int dark = 100;
536 for ( int i = 1; i < n; i++ ) { 536 for ( int i = 1; i < n; i++ ) {
537 dark = (dark * (100+(i*15)/n) )/100; 537 dark = (dark * (100+(i*15)/n) )/100;
538 p->setPen( bg.dark( dark ) ); 538 p->setPen( bg.dark( dark ) );
539 int y = r.bottom()-n+i; 539 int y = r.bottom()-n+i;
540 int x1 = r.left()+1; 540 int x1 = r.left()+1;
541 int x2 = r.right()-1; 541 int x2 = r.right()-1;
542 p->drawLine( x1, y, x2, y ); 542 p->drawLine( x1, y, x2, y );
543 } 543 }
544 } 544 }
545 545
546 p->setPen( tb->colorGroup().light() ); 546 p->setPen( tb->colorGroup().light() );
547 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 ); 547 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 );
548 p->drawPoint( r.left()+1, r.top() + 1 ); 548 p->drawPoint( r.left()+1, r.top() + 1 );
549 p->drawLine( r.left()+2, r.top(), 549 p->drawLine( r.left()+2, r.top(),
550 r.right() - 2, r.top() ); 550 r.right() - 2, r.top() );
551 551
552 p->setPen( tb->colorGroup().dark() ); 552 p->setPen( tb->colorGroup().dark() );
553 p->drawPoint( r.right() - 1, r.top() + 1 ); 553 p->drawPoint( r.right() - 1, r.top() + 1 );
554 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1); 554 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1);
555 } else if ( tb->shape() == QTabBar::RoundedBelow ) { 555 } else if ( tb->shape() == QTabBar::RoundedBelow ) {
556 if ( selected ) { 556 if ( selected ) {
557 p->setPen( tb->colorGroup().background() ); 557 p->setPen( tb->colorGroup().background() );
558 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); 558 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 );
559 p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2), 559 p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2),
560 tb->palette().normal().brush( QColorGroup::Background )); 560 tb->palette().normal().brush( QColorGroup::Background ));
561 } else { 561 } else {
562 p->setPen( tb->colorGroup().dark() ); 562 p->setPen( tb->colorGroup().dark() );
563 p->drawLine( r.left(), r.top(), 563 p->drawLine( r.left(), r.top(),
564 r.right(), r.top() ); 564 r.right(), r.top() );
565 r.setRect( r.left() + 2, r.top(), 565 r.setRect( r.left() + 2, r.top(),
566 r.width() - 4, r.height() - 2 ); 566 r.width() - 4, r.height() - 2 );
567 p->setPen( tb->colorGroup().button() ); 567 p->setPen( tb->colorGroup().button() );
568 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); 568 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 );
569 p->fillRect( QRect( r.left()+1, r.top()+1, r.width()-2, r.height()-3), 569 p->fillRect( QRect( r.left()+1, r.top()+1, r.width()-2, r.height()-3),
570 tb->palette().normal().brush( QColorGroup::Button )); 570 tb->palette().normal().brush( QColorGroup::Button ));
571 } 571 }
572 572
573 p->setPen( tb->colorGroup().dark() ); 573 p->setPen( tb->colorGroup().dark() );
574 p->drawLine( r.right(), r.top(), 574 p->drawLine( r.right(), r.top(),
575 r.right(), r.bottom() - 2 ); 575 r.right(), r.bottom() - 2 );
576 p->drawPoint( r.right() - 1, r.bottom() - 1 ); 576 p->drawPoint( r.right() - 1, r.bottom() - 1 );
577 p->drawLine( r.right() - 2, r.bottom(), 577 p->drawLine( r.right() - 2, r.bottom(),
578 r.left() + 2, r.bottom() ); 578 r.left() + 2, r.bottom() );
579 579
580 p->setPen( tb->colorGroup().light() ); 580 p->setPen( tb->colorGroup().light() );
581 p->drawLine( r.left(), r.top()+1, 581 p->drawLine( r.left(), r.top()+1,
582 r.left(), r.bottom() - 2 ); 582 r.left(), r.bottom() - 2 );
583 p->drawPoint( r.left() + 1, r.bottom() - 1 ); 583 p->drawPoint( r.left() + 1, r.bottom() - 1 );
584 if ( r.left() == 0 ) 584 if ( r.left() == 0 )
585 p->drawPoint( tb->rect().topLeft() ); 585 p->drawPoint( tb->rect().topLeft() );
586 586
587 } else { 587 } else {
588 QCommonStyle::drawTab( p, tb, t, selected ); 588 QCommonStyle::drawTab( p, tb, t, selected );
589 } 589 }
590} 590}
591 591
592 static const int motifItemFrame = 0;// menu item frame width 592 static const int motifItemFrame = 0;// menu item frame width
593 static const int motifSepHeight = 2;// separator item height 593 static const int motifSepHeight = 2;// separator item height
594 static const int motifItemHMargin = 1;// menu item hor text margin 594 static const int motifItemHMargin = 1;// menu item hor text margin
595 static const int motifItemVMargin = 2;// menu item ver text margin 595 static const int motifItemVMargin = 2;// menu item ver text margin
596 static const int motifArrowHMargin = 0;// arrow horizontal margin 596 static const int motifArrowHMargin = 0;// arrow horizontal margin
597 static const int motifTabSpacing = 12;// space between text and tab 597 static const int motifTabSpacing = 12;// space between text and tab
598 static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark 598 static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark
599 static const int windowsRightBorder= 8; // right border on windows 599 static const int windowsRightBorder= 8; // right border on windows
600static const int windowsCheckMarkWidth = 2; // checkmarks width on windows 600static const int windowsCheckMarkWidth = 2; // checkmarks width on windows
601 601
602/*! \reimp 602/*! \reimp
603*/ 603*/
604int FreshStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) 604int FreshStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ )
605{ 605{
606#ifndef QT_NO_MENUDATA 606#ifndef QT_NO_MENUDATA
607 int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm 607 int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm
608 608
609 if ( mi->isSeparator() ) 609 if ( mi->isSeparator() )
610 return 10; // arbitrary 610 return 10; // arbitrary
611 else if ( mi->pixmap() ) 611 else if ( mi->pixmap() )
612 w += mi->pixmap()->width();// pixmap only 612 w += mi->pixmap()->width();// pixmap only
613 613
614 if ( !mi->text().isNull() ) { 614 if ( !mi->text().isNull() ) {
615 if ( mi->text().find('\t') >= 0 )// string contains tab 615 if ( mi->text().find('\t') >= 0 )// string contains tab
616 w += motifTabSpacing; 616 w += motifTabSpacing;
617 } 617 }
618 618
619 if ( maxpmw ) { // we have iconsets 619 if ( maxpmw ) { // we have iconsets
620 w += maxpmw; 620 w += maxpmw;
621 w += 6; // add a little extra border around the iconset 621 w += 6; // add a little extra border around the iconset
622 } 622 }
623 623
624 if ( checkable && maxpmw < windowsCheckMarkWidth ) { 624 if ( checkable && maxpmw < windowsCheckMarkWidth ) {
625 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks 625 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks
626 } 626 }
627 627
628 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) 628 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks)
629 w += motifCheckMarkHMargin; // add space to separate the columns 629 w += motifCheckMarkHMargin; // add space to separate the columns
630 630
631 w += windowsRightBorder; // windows has a strange wide border on the right side 631 w += windowsRightBorder; // windows has a strange wide border on the right side
632 632
633 return w; 633 return w;
634#endif 634#endif
635} 635}
636 636
637/*! \reimp 637/*! \reimp
638*/ 638*/
639int FreshStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) 639int FreshStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm )
640{ 640{
641#ifndef QT_NO_MENUDATA 641#ifndef QT_NO_MENUDATA
642 int h = 0; 642 int h = 0;
643 if ( mi->isSeparator() ) // separator height 643 if ( mi->isSeparator() ) // separator height
644 h = motifSepHeight; 644 h = motifSepHeight;
645 else if ( mi->pixmap() ) // pixmap height 645 else if ( mi->pixmap() ) // pixmap height
646 h = mi->pixmap()->height() + 2*motifItemFrame; 646 h = mi->pixmap()->height() + 2*motifItemFrame;
647 else // text height 647 else // text height
648 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; 648 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1;
649 649
650 if ( !mi->isSeparator() && mi->iconSet() != 0 ) { 650 if ( !mi->isSeparator() && mi->iconSet() != 0 ) {
651 h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame ); 651 h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame );
652 } 652 }
653 if ( mi->custom() ) 653 if ( mi->custom() )
654 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; 654 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1;
655 return h; 655 return h;
656#endif 656#endif
657} 657}
658 658
659void FreshStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 659void FreshStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
660 const QPalette& pal, 660 const QPalette& pal,
661 bool act, bool enabled, int x, int y, int w, int h) 661 bool act, bool enabled, int x, int y, int w, int h)
662{ 662{
663#ifndef QT_NO_MENUDATA 663#ifndef QT_NO_MENUDATA
664 const QColorGroup & g = pal.active(); 664 const QColorGroup & g = pal.active();
665 bool dis = !enabled; 665 bool dis = !enabled;
666 QColorGroup itemg = dis ? pal.disabled() : pal.active(); 666 QColorGroup itemg = dis ? pal.disabled() : pal.active();
667 667
668 if ( checkable ) 668 if ( checkable )
669 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks 669 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks
670 670
671 int checkcol = maxpmw; 671 int checkcol = maxpmw;
672 672
673 if ( mi && mi->isSeparator() ) { // draw separator 673 if ( mi && mi->isSeparator() ) { // draw separator
674 p->setPen( g.dark() ); 674 p->setPen( g.dark() );
675 p->drawLine( x, y, x+w, y ); 675 p->drawLine( x, y, x+w, y );
676 p->setPen( g.light() ); 676 p->setPen( g.light() );
677 p->drawLine( x, y+1, x+w, y+1 ); 677 p->drawLine( x, y+1, x+w, y+1 );
678 return; 678 return;
679 } 679 }
680 680
681 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 681 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
682 g.brush( QColorGroup::Button ); 682 g.brush( QColorGroup::Button );
683 p->fillRect( x, y, w, h, fill); 683 p->fillRect( x, y, w, h, fill);
684 684
685 if ( !mi ) 685 if ( !mi )
686 return; 686 return;
687 687
688 if ( mi->isChecked() ) { 688 if ( mi->isChecked() ) {
689 if ( act && !dis ) { 689 if ( act && !dis ) {
690 qDrawShadePanel( p, x, y, checkcol, h, 690 qDrawShadePanel( p, x, y, checkcol, h,
691 g, TRUE, 1, &g.brush( QColorGroup::Button ) ); 691 g, TRUE, 1, &g.brush( QColorGroup::Button ) );
692 } else { 692 } else {
693 qDrawShadePanel( p, x, y, checkcol, h, 693 qDrawShadePanel( p, x, y, checkcol, h,
694 g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); 694 g, TRUE, 1, &g.brush( QColorGroup::Midlight ) );
695 } 695 }
696 } else if ( !act ) { 696 } else if ( !act ) {
697 p->fillRect(x, y, checkcol , h, 697 p->fillRect(x, y, checkcol , h,
698 g.brush( QColorGroup::Button )); 698 g.brush( QColorGroup::Button ));
699 } 699 }
700 700
701 if ( mi->iconSet() ) { // draw iconset 701 if ( mi->iconSet() ) { // draw iconset
702 QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; 702 QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal;
703 if (act && !dis ) 703 if (act && !dis )
704 mode = QIconSet::Active; 704 mode = QIconSet::Active;
705 QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode ); 705 QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode );
706 int pixw = pixmap.width(); 706 int pixw = pixmap.width();
707 int pixh = pixmap.height(); 707 int pixh = pixmap.height();
708 if ( act && !dis ) { 708 if ( act && !dis ) {
709 if ( !mi->isChecked() ) 709 if ( !mi->isChecked() )
710 qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); 710 qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) );
711 } 711 }
712 QRect cr( x, y, checkcol, h ); 712 QRect cr( x, y, checkcol, h );
713 QRect pmr( 0, 0, pixw, pixh ); 713 QRect pmr( 0, 0, pixw, pixh );
714 pmr.moveCenter( cr.center() ); 714 pmr.moveCenter( cr.center() );
715 p->setPen( itemg.text() ); 715 p->setPen( itemg.text() );
716 p->drawPixmap( pmr.topLeft(), pixmap ); 716 p->drawPixmap( pmr.topLeft(), pixmap );
717 717
718 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 718 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
719 g.brush( QColorGroup::Button ); 719 g.brush( QColorGroup::Button );
720 p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); 720 p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill);
721 } else if ( checkable ) {// just "checking"... 721 } else if ( checkable ) {// just "checking"...
722 int mw = checkcol + motifItemFrame; 722 int mw = checkcol + motifItemFrame;
723 int mh = h - 2*motifItemFrame; 723 int mh = h - 2*motifItemFrame;
724 if ( mi->isChecked() ) { 724 if ( mi->isChecked() ) {
725 drawCheckMark( p, x + motifItemFrame + 2, 725 drawCheckMark( p, x + motifItemFrame + 2,
726 y+motifItemFrame, mw, mh, itemg, act, dis ); 726 y+motifItemFrame, mw, mh, itemg, act, dis );
727 } 727 }
728 } 728 }
729 729
730 p->setPen( act ? g.highlightedText() : g.buttonText() ); 730 p->setPen( act ? g.highlightedText() : g.buttonText() );
731 731
732 QColor discol; 732 QColor discol;
733 if ( dis ) { 733 if ( dis ) {
734 discol = itemg.text(); 734 discol = itemg.text();
735 p->setPen( discol ); 735 p->setPen( discol );
736 } 736 }
737 737
738 int xm = motifItemFrame + checkcol + motifItemHMargin; 738 int xm = motifItemFrame + checkcol + motifItemHMargin;
739 739
740 if ( mi->custom() ) { 740 if ( mi->custom() ) {
741 int m = motifItemVMargin; 741 int m = motifItemVMargin;
742 p->save(); 742 p->save();
743 if ( dis && !act ) { 743 if ( dis && !act ) {
744 p->setPen( g.light() ); 744 p->setPen( g.light() );
745 mi->custom()->paint( p, itemg, act, enabled, 745 mi->custom()->paint( p, itemg, act, enabled,
746 x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); 746 x+xm+1, y+m+1, w-xm-tab+1, h-2*m );
747 p->setPen( discol ); 747 p->setPen( discol );
748 } 748 }
749 mi->custom()->paint( p, itemg, act, enabled, 749 mi->custom()->paint( p, itemg, act, enabled,
750 x+xm, y+m, w-xm-tab+1, h-2*m ); 750 x+xm, y+m, w-xm-tab+1, h-2*m );
751 p->restore(); 751 p->restore();
752 } 752 }
753 QString s = mi->text(); 753 QString s = mi->text();
754 if ( !s.isNull() ) { // draw text 754 if ( !s.isNull() ) { // draw text
755 int t = s.find( '\t' ); 755 int t = s.find( '\t' );
756 int m = motifItemVMargin; 756 int m = motifItemVMargin;
757 const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; 757 const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine;
758 if ( t >= 0 ) { // draw tab text 758 if ( t >= 0 ) { // draw tab text
759 if ( dis && !act ) { 759 if ( dis && !act ) {
760 p->setPen( g.light() ); 760 p->setPen( g.light() );
761 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, 761 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1,
762 y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); 762 y+m+1, tab, h-2*m, text_flags, s.mid( t+1 ));
763 p->setPen( discol ); 763 p->setPen( discol );
764 } 764 }
765 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame, 765 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame,
766 y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); 766 y+m, tab, h-2*m, text_flags, s.mid( t+1 ) );
767 } 767 }
768 if ( dis && !act ) { 768 if ( dis && !act ) {
769 p->setPen( g.light() ); 769 p->setPen( g.light() );
770 p->drawText( x+xm+1, y+m+1, w-xm+1, h-2*m, text_flags, s, t ); 770 p->drawText( x+xm+1, y+m+1, w-xm+1, h-2*m, text_flags, s, t );
771 p->setPen( discol ); 771 p->setPen( discol );
772 } 772 }
773 p->drawText( x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t ); 773 p->drawText( x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t );
774 } else if ( mi->pixmap() ) { // draw pixmap 774 } else if ( mi->pixmap() ) { // draw pixmap
775 QPixmap *pixmap = mi->pixmap(); 775 QPixmap *pixmap = mi->pixmap();
776 if ( pixmap->depth() == 1 ) 776 if ( pixmap->depth() == 1 )
777 p->setBackgroundMode( OpaqueMode ); 777 p->setBackgroundMode( OpaqueMode );
778 p->drawPixmap( x+xm, y+motifItemFrame, *pixmap ); 778 p->drawPixmap( x+xm, y+motifItemFrame, *pixmap );
779 if ( pixmap->depth() == 1 ) 779 if ( pixmap->depth() == 1 )
780 p->setBackgroundMode( TransparentMode ); 780 p->setBackgroundMode( TransparentMode );
781 } 781 }
782 if ( mi->popup() ) { // draw sub menu arrow 782 if ( mi->popup() ) { // draw sub menu arrow
783 int dim = (h-2*motifItemFrame) / 2; 783 int dim = (h-2*motifItemFrame) / 2;
784 if ( act ) { 784 if ( act ) {
785 if ( !dis ) 785 if ( !dis )
786 discol = white; 786 discol = white;
787 QColorGroup g2( discol, g.highlight(), 787 QColorGroup g2( discol, g.highlight(),
788 white, white, 788 white, white,
789 dis ? discol : white, 789 dis ? discol : white,
790 discol, white ); 790 discol, white );
791 drawArrow( p, RightArrow, FALSE, 791 drawArrow( p, RightArrow, FALSE,
792 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2, 792 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2,
793 dim, dim, g2, TRUE ); 793 dim, dim, g2, TRUE );
794 } else { 794 } else {
795 drawArrow( p, RightArrow, 795 drawArrow( p, RightArrow,
796 FALSE, 796 FALSE,
797 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2, 797 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2,
798 dim, dim, g, mi->isEnabled() ); 798 dim, dim, g, mi->isEnabled() );
799 } 799 }
800 } 800 }
801#endif 801#endif
802} 802}
803 803
804//=========================================================================== 804//===========================================================================
805 805
806FreshStyleImpl::FreshStyleImpl() 806FreshStyleImpl::FreshStyleImpl()
807 : fresh(0), ref(0) 807 : fresh(0)
808{ 808{
809} 809}
810 810
811FreshStyleImpl::~FreshStyleImpl() 811FreshStyleImpl::~FreshStyleImpl()
812{ 812{
813 // We do not delete the style because Qt does that when a new style 813 // We do not delete the style because Qt does that when a new style
814 // is set. 814 // is set.
815} 815}
816 816
817QStyle *FreshStyleImpl::style() 817QStyle *FreshStyleImpl::style()
818{ 818{
819 if ( !fresh ) 819 if ( !fresh )
820 fresh = new FreshStyle(); 820 fresh = new FreshStyle();
821 return fresh; 821 return fresh;
822} 822}
823 823
824QString FreshStyleImpl::name() const 824QString FreshStyleImpl::name() const
825{ 825{
826 return QString("Fresh"); 826 return QString("Fresh");
827} 827}
828 828
829QRESULT FreshStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 829QRESULT FreshStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
830{ 830{
831 *iface = 0; 831 *iface = 0;
832 if ( uuid == IID_QUnknown ) 832 if ( uuid == IID_QUnknown )
833 *iface = this; 833 *iface = this;
834 else if ( uuid == IID_Style ) 834 else if ( uuid == IID_Style )
835 *iface = this; 835 *iface = this;
836 else
837 return QS_FALSE;
836 838
837 if ( *iface ) 839 if ( *iface )
838 (*iface)->addRef(); 840 (*iface)->addRef();
839 return QS_OK; 841 return QS_OK;
840} 842}
841 843
842Q_EXPORT_INTERFACE() 844Q_EXPORT_INTERFACE()
843{ 845{
844 Q_CREATE_INSTANCE( FreshStyleImpl ) 846 Q_CREATE_INSTANCE( FreshStyleImpl )
845} 847}
846 848
diff --git a/noncore/styles/fresh/fresh.h b/noncore/styles/fresh/fresh.h
index b4be7f3..a72a83f 100644
--- a/noncore/styles/fresh/fresh.h
+++ b/noncore/styles/fresh/fresh.h
@@ -1,100 +1,99 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of the Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#ifndef FRESHSTYLE_H 21#ifndef FRESHSTYLE_H
22#define FRESHSTYLE_H 22#define FRESHSTYLE_H
23 23
24#include <qwindowsstyle.h> 24#include <qwindowsstyle.h>
25#include <qpe/styleinterface.h> 25#include <qpe/styleinterface.h>
26 26
27class Q_EXPORT FreshStyle : public QWindowsStyle 27class Q_EXPORT FreshStyle : public QWindowsStyle
28{ 28{
29public: 29public:
30 FreshStyle(); 30 FreshStyle();
31 virtual ~FreshStyle(); 31 virtual ~FreshStyle();
32 virtual void polish( QPalette &p ); 32 virtual void polish( QPalette &p );
33 virtual void polish( QWidget *w ); 33 virtual void polish( QWidget *w );
34 virtual void unPolish( QWidget *w ); 34 virtual void unPolish( QWidget *w );
35 35
36 int defaultFrameWidth () const; 36 int defaultFrameWidth () const;
37 void drawPanel ( QPainter * p, int x, int y, int w, int h, 37 void drawPanel ( QPainter * p, int x, int y, int w, int h,
38 const QColorGroup &, bool sunken=FALSE, int lineWidth = 1, const QBrush * fill = 0 ); 38 const QColorGroup &, bool sunken=FALSE, int lineWidth = 1, const QBrush * fill = 0 );
39 void drawButton( QPainter *p, int x, int y, int w, int h, 39 void drawButton( QPainter *p, int x, int y, int w, int h,
40 const QColorGroup &g, bool sunken, const QBrush* fill ); 40 const QColorGroup &g, bool sunken, const QBrush* fill );
41 void drawButtonMask ( QPainter * p, int x, int y, int w, int h ); 41 void drawButtonMask ( QPainter * p, int x, int y, int w, int h );
42 void drawBevelButton( QPainter *p, int x, int y, int w, int h, 42 void drawBevelButton( QPainter *p, int x, int y, int w, int h,
43 const QColorGroup &g, bool sunken=FALSE, const QBrush* fill=0 ); 43 const QColorGroup &g, bool sunken=FALSE, const QBrush* fill=0 );
44 QRect comboButtonRect( int x, int y, int w, int h); 44 QRect comboButtonRect( int x, int y, int w, int h);
45 QRect comboButtonFocusRect( int x, int y, int w, int h); 45 QRect comboButtonFocusRect( int x, int y, int w, int h);
46 void drawComboButton( QPainter *p, int x, int y, int w, int h, 46 void drawComboButton( QPainter *p, int x, int y, int w, int h,
47 const QColorGroup &g, bool sunken, bool, bool enabled, 47 const QColorGroup &g, bool sunken, bool, bool enabled,
48 const QBrush *fill ); 48 const QBrush *fill );
49 void drawExclusiveIndicator ( QPainter * p, int x, int y, int w, int h, 49 void drawExclusiveIndicator ( QPainter * p, int x, int y, int w, int h,
50 const QColorGroup & g, bool on, bool down = FALSE, bool enabled = TRUE ); 50 const QColorGroup & g, bool on, bool down = FALSE, bool enabled = TRUE );
51 void drawIndicator ( QPainter * p, int x, int y, int w, int h, 51 void drawIndicator ( QPainter * p, int x, int y, int w, int h,
52 const QColorGroup & g, int state, bool down = FALSE, bool enabled = TRUE ); 52 const QColorGroup & g, int state, bool down = FALSE, bool enabled = TRUE );
53 void scrollBarMetrics( const QScrollBar*, int&, int&, int&, int&); 53 void scrollBarMetrics( const QScrollBar*, int&, int&, int&, int&);
54 void drawScrollBarControls( QPainter*, const QScrollBar*, int sliderStart, uint controls, uint activeControl ); 54 void drawScrollBarControls( QPainter*, const QScrollBar*, int sliderStart, uint controls, uint activeControl );
55 ScrollControl scrollBarPointOver( const QScrollBar* sb, int sliderStart, const QPoint& p ); 55 ScrollControl scrollBarPointOver( const QScrollBar* sb, int sliderStart, const QPoint& p );
56 void drawRiffles( QPainter* p, int x, int y, int w, int h, 56 void drawRiffles( QPainter* p, int x, int y, int w, int h,
57 const QColorGroup &g, bool horizontal ); 57 const QColorGroup &g, bool horizontal );
58 int sliderLength() const; 58 int sliderLength() const;
59 void drawSlider( QPainter *p, int x, int y, int w, int h, 59 void drawSlider( QPainter *p, int x, int y, int w, int h,
60 const QColorGroup &g, Orientation, bool tickAbove, bool tickBelow ); 60 const QColorGroup &g, Orientation, bool tickAbove, bool tickBelow );
61 void drawSliderMask( QPainter *p, int x, int y, int w, int h, 61 void drawSliderMask( QPainter *p, int x, int y, int w, int h,
62 Orientation, bool tickAbove, bool tickBelow ); 62 Orientation, bool tickAbove, bool tickBelow );
63 void drawSliderGrooveMask( QPainter *p, int x, int y, int w, int h, 63 void drawSliderGrooveMask( QPainter *p, int x, int y, int w, int h,
64 const QColorGroup& , QCOORD c, Orientation orient ); 64 const QColorGroup& , QCOORD c, Orientation orient );
65 void drawTab( QPainter *, const QTabBar *, QTab *, bool selected ); 65 void drawTab( QPainter *, const QTabBar *, QTab *, bool selected );
66 int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& ); 66 int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& );
67 int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& ); 67 int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& );
68 void drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 68 void drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
69 const QPalette& pal, 69 const QPalette& pal,
70 bool act, bool enabled, int x, int y, int w, int h); 70 bool act, bool enabled, int x, int y, int w, int h);
71 71
72 int buttonMargin() const; 72 int buttonMargin() const;
73 QSize scrollBarExtent() const; 73 QSize scrollBarExtent() const;
74 74
75 private:// Disabled copy constructor and operator= 75 private:// Disabled copy constructor and operator=
76#if defined(Q_DISABLE_COPY) 76#if defined(Q_DISABLE_COPY)
77 FreshStyle( const FreshStyle & ); 77 FreshStyle( const FreshStyle & );
78 FreshStyle& operator=( const FreshStyle & ); 78 FreshStyle& operator=( const FreshStyle & );
79#endif 79#endif
80}; 80};
81 81
82 82
83class FreshStyleImpl : public StyleInterface 83class FreshStyleImpl : public StyleInterface
84{ 84{
85public: 85public:
86 FreshStyleImpl(); 86 FreshStyleImpl();
87 virtual ~FreshStyleImpl(); 87 virtual ~FreshStyleImpl();
88 88
89 QRESULT queryInterface( const QUuid&, QUnknownInterface** ); 89 QRESULT queryInterface( const QUuid&, QUnknownInterface** );
90 Q_REFCOUNT 90 Q_REFCOUNT
91 91
92 virtual QStyle *style(); 92 virtual QStyle *style();
93 virtual QString name() const; 93 virtual QString name() const;
94 94
95private: 95private:
96 FreshStyle *fresh; 96 FreshStyle *fresh;
97 ulong ref;
98}; 97};
99 98
100#endif // FRESHSTYLE_H 99#endif // FRESHSTYLE_H
diff --git a/noncore/styles/liquid/plugin.cpp b/noncore/styles/liquid/plugin.cpp
index 6813fc5..fb322a9 100644
--- a/noncore/styles/liquid/plugin.cpp
+++ b/noncore/styles/liquid/plugin.cpp
@@ -1,79 +1,81 @@
1#include <qapplication.h> 1#include <qapplication.h>
2 2
3#include "liquid.h" 3#include "liquid.h"
4#include "liquidset.h" 4#include "liquidset.h"
5#include "plugin.h" 5#include "plugin.h"
6 6
7 7
8 8
9LiquidInterface::LiquidInterface ( ) : ref ( 0 ) 9LiquidInterface::LiquidInterface ( )
10{ 10{
11 m_widget = 0; 11 m_widget = 0;
12} 12}
13 13
14LiquidInterface::~LiquidInterface ( ) 14LiquidInterface::~LiquidInterface ( )
15{ 15{
16} 16}
17 17
18QStyle *LiquidInterface::style ( ) 18QStyle *LiquidInterface::style ( )
19{ 19{
20 return new LiquidStyle ( ); 20 return new LiquidStyle ( );
21} 21}
22 22
23QString LiquidInterface::name ( ) const 23QString LiquidInterface::name ( ) const
24{ 24{
25 return qApp-> translate ( "Styles", "Liquid" ); 25 return qApp-> translate ( "Styles", "Liquid" );
26} 26}
27 27
28QString LiquidInterface::description ( ) const 28QString LiquidInterface::description ( ) const
29{ 29{
30 return qApp-> translate ( "Styles", "High Performance Liquid style by Mosfet" ); 30 return qApp-> translate ( "Styles", "High Performance Liquid style by Mosfet" );
31} 31}
32 32
33bool LiquidInterface::hasSettings ( ) const 33bool LiquidInterface::hasSettings ( ) const
34{ 34{
35 return true; 35 return true;
36} 36}
37 37
38QWidget *LiquidInterface::create ( QWidget *parent, const char *name ) 38QWidget *LiquidInterface::create ( QWidget *parent, const char *name )
39{ 39{
40 m_widget = new LiquidSettings ( parent, name ? name : "LIQUID-SETTINGS" ); 40 m_widget = new LiquidSettings ( parent, name ? name : "LIQUID-SETTINGS" );
41 41
42 return m_widget; 42 return m_widget;
43} 43}
44 44
45bool LiquidInterface::accept ( ) 45bool LiquidInterface::accept ( )
46{ 46{
47 if ( !m_widget ) 47 if ( !m_widget )
48 return false; 48 return false;
49 49
50 return m_widget-> writeConfig ( ); 50 return m_widget-> writeConfig ( );
51} 51}
52 52
53void LiquidInterface::reject ( ) 53void LiquidInterface::reject ( )
54{ 54{
55} 55}
56 56
57 57
58QRESULT LiquidInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) 58QRESULT LiquidInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
59{ 59{
60 *iface = 0; 60 *iface = 0;
61 61
62 if ( uuid == IID_QUnknown ) 62 if ( uuid == IID_QUnknown )
63 *iface = this; 63 *iface = this;
64 else if ( uuid == IID_Style ) 64 else if ( uuid == IID_Style )
65 *iface = this; 65 *iface = this;
66 else if ( uuid == IID_StyleExtended ) 66 else if ( uuid == IID_StyleExtended )
67 *iface = this; 67 *iface = this;
68 else
69 return QS_FALSE;
68 70
69 if ( *iface ) 71 if ( *iface )
70 (*iface)-> addRef ( ); 72 (*iface)-> addRef ( );
71 73
72 return QS_OK; 74 return QS_OK;
73} 75}
74 76
75Q_EXPORT_INTERFACE() 77Q_EXPORT_INTERFACE()
76{ 78{
77 Q_CREATE_INSTANCE( LiquidInterface ) 79 Q_CREATE_INSTANCE( LiquidInterface )
78} 80}
79 81
diff --git a/noncore/styles/liquid/plugin.h b/noncore/styles/liquid/plugin.h
index 6a9b7ac..9188a09 100644
--- a/noncore/styles/liquid/plugin.h
+++ b/noncore/styles/liquid/plugin.h
@@ -1,34 +1,33 @@
1#ifndef __OPIE_LIQUID_PLUGIN_H__ 1#ifndef __OPIE_LIQUID_PLUGIN_H__
2#define __OPIE_LIQUID_PLUGIN_H__ 2#define __OPIE_LIQUID_PLUGIN_H__
3 3
4#include <qpe/styleinterface.h> 4#include <qpe/styleinterface.h>
5 5
6class LiquidSettings; 6class LiquidSettings;
7 7
8class LiquidInterface : public StyleExtendedInterface { 8class LiquidInterface : public StyleExtendedInterface {
9public: 9public:
10 LiquidInterface ( ); 10 LiquidInterface ( );
11 virtual ~LiquidInterface ( ); 11 virtual ~LiquidInterface ( );
12 12
13 QRESULT queryInterface ( const QUuid &, QUnknownInterface ** ); 13 QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
14 Q_REFCOUNT 14 Q_REFCOUNT
15 15
16 virtual QStyle *style ( ); 16 virtual QStyle *style ( );
17 17
18 virtual QString name ( ) const; 18 virtual QString name ( ) const;
19 19
20 virtual QString description ( ) const; 20 virtual QString description ( ) const;
21 21
22 virtual bool hasSettings ( ) const; 22 virtual bool hasSettings ( ) const;
23 23
24 virtual QWidget *create ( QWidget *parent, const char *name = 0 ); 24 virtual QWidget *create ( QWidget *parent, const char *name = 0 );
25 25
26 virtual bool accept ( ); 26 virtual bool accept ( );
27 virtual void reject ( ); 27 virtual void reject ( );
28 28
29private: 29private:
30 LiquidSettings *m_widget; 30 LiquidSettings *m_widget;
31 ulong ref;
32}; 31};
33 32
34#endif 33#endif
diff --git a/noncore/styles/metal/plugin.cpp b/noncore/styles/metal/plugin.cpp
index 4c9f64d..2f0f530 100644
--- a/noncore/styles/metal/plugin.cpp
+++ b/noncore/styles/metal/plugin.cpp
@@ -1,45 +1,47 @@
1#include <qapplication.h> 1#include <qapplication.h>
2 2
3#include "metal.h" 3#include "metal.h"
4#include "plugin.h" 4#include "plugin.h"
5 5
6 6
7MetalInterface::MetalInterface ( ) : ref ( 0 ) 7MetalInterface::MetalInterface ( )
8{ 8{
9} 9}
10 10
11MetalInterface::~MetalInterface ( ) 11MetalInterface::~MetalInterface ( )
12{ 12{
13} 13}
14 14
15QStyle *MetalInterface::style ( ) 15QStyle *MetalInterface::style ( )
16{ 16{
17 return new MetalStyle ( ); 17 return new MetalStyle ( );
18} 18}
19 19
20QString MetalInterface::name ( ) const 20QString MetalInterface::name ( ) const
21{ 21{
22 return qApp-> translate ( "Styles", "Metal" ); 22 return qApp-> translate ( "Styles", "Metal" );
23} 23}
24 24
25 25
26QRESULT MetalInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) 26QRESULT MetalInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
27{ 27{
28 *iface = 0; 28 *iface = 0;
29 29
30 if ( uuid == IID_QUnknown ) 30 if ( uuid == IID_QUnknown )
31 *iface = this; 31 *iface = this;
32 else if ( uuid == IID_Style ) 32 else if ( uuid == IID_Style )
33 *iface = this; 33 *iface = this;
34 else
35 return QS_FALSE;
34 36
35 if ( *iface ) 37 if ( *iface )
36 (*iface)-> addRef ( ); 38 (*iface)-> addRef ( );
37 39
38 return QS_OK; 40 return QS_OK;
39} 41}
40 42
41Q_EXPORT_INTERFACE() 43Q_EXPORT_INTERFACE()
42{ 44{
43 Q_CREATE_INSTANCE( MetalInterface ) 45 Q_CREATE_INSTANCE( MetalInterface )
44} 46}
45 47
diff --git a/noncore/styles/metal/plugin.h b/noncore/styles/metal/plugin.h
index 545aea9..7a38d62 100644
--- a/noncore/styles/metal/plugin.h
+++ b/noncore/styles/metal/plugin.h
@@ -1,22 +1,20 @@
1#ifndef __OPIE_METAL_PLUGIN_H__ 1#ifndef __OPIE_METAL_PLUGIN_H__
2#define __OPIE_METAL_PLUGIN_H__ 2#define __OPIE_METAL_PLUGIN_H__
3 3
4#include <qpe/styleinterface.h> 4#include <qpe/styleinterface.h>
5 5
6 6
7class MetalInterface : public StyleInterface { 7class MetalInterface : public StyleInterface {
8public: 8public:
9 MetalInterface ( ); 9 MetalInterface ( );
10 virtual ~MetalInterface ( ); 10 virtual ~MetalInterface ( );
11 11
12 QRESULT queryInterface ( const QUuid &, QUnknownInterface ** ); 12 QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
13 Q_REFCOUNT 13 Q_REFCOUNT
14 14
15 virtual QStyle *style ( ); 15 virtual QStyle *style ( );
16 virtual QString name ( ) const; 16 virtual QString name ( ) const;
17 17
18private:
19 ulong ref;
20}; 18};
21 19
22#endif 20#endif
diff --git a/noncore/styles/theme/plugin.cpp b/noncore/styles/theme/plugin.cpp
index 2560720..dca8685 100644
--- a/noncore/styles/theme/plugin.cpp
+++ b/noncore/styles/theme/plugin.cpp
@@ -1,81 +1,83 @@
1#include <qapplication.h> 1#include <qapplication.h>
2 2
3#include "othemestyle.h" 3#include "othemestyle.h"
4#include "themeset.h" 4#include "themeset.h"
5#include "plugin.h" 5#include "plugin.h"
6 6
7 7
8 8
9ThemeInterface::ThemeInterface ( ) : ref ( 0 ) 9ThemeInterface::ThemeInterface ( )
10{ 10{
11 m_widget = 0; 11 m_widget = 0;
12} 12}
13 13
14ThemeInterface::~ThemeInterface ( ) 14ThemeInterface::~ThemeInterface ( )
15{ 15{
16} 16}
17 17
18QStyle *ThemeInterface::style ( ) 18QStyle *ThemeInterface::style ( )
19{ 19{
20 return new OThemeStyle ( "" ); 20 return new OThemeStyle ( "" );
21} 21}
22 22
23QString ThemeInterface::name ( ) const 23QString ThemeInterface::name ( ) const
24{ 24{
25 return qApp-> translate ( "Styles", "Themed style" ); 25 return qApp-> translate ( "Styles", "Themed style" );
26} 26}
27 27
28QString ThemeInterface::description ( ) const 28QString ThemeInterface::description ( ) const
29{ 29{
30 return qApp-> translate ( "Styles", "KDE2 theme compatible style engine" ); 30 return qApp-> translate ( "Styles", "KDE2 theme compatible style engine" );
31} 31}
32 32
33bool ThemeInterface::hasSettings ( ) const 33bool ThemeInterface::hasSettings ( ) const
34{ 34{
35 return true; 35 return true;
36} 36}
37 37
38QWidget *ThemeInterface::create ( QWidget *parent, const char *name ) 38QWidget *ThemeInterface::create ( QWidget *parent, const char *name )
39{ 39{
40 m_widget = new ThemeSettings ( parent, name ? name : "THEME-SETTINGS" ); 40 m_widget = new ThemeSettings ( parent, name ? name : "THEME-SETTINGS" );
41 41
42 return m_widget; 42 return m_widget;
43} 43}
44 44
45bool ThemeInterface::accept ( ) 45bool ThemeInterface::accept ( )
46{ 46{
47 if ( !m_widget ) 47 if ( !m_widget )
48 return false; 48 return false;
49 49
50 return m_widget-> writeConfig ( ); 50 return m_widget-> writeConfig ( );
51} 51}
52 52
53void ThemeInterface::reject ( ) 53void ThemeInterface::reject ( )
54{ 54{
55} 55}
56 56
57 57
58QRESULT ThemeInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) 58QRESULT ThemeInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
59{ 59{
60 *iface = 0; 60 *iface = 0;
61 61
62 if ( uuid == IID_QUnknown ) 62 if ( uuid == IID_QUnknown )
63 *iface = this; 63 *iface = this;
64 else if ( uuid == IID_Style ) 64 else if ( uuid == IID_Style )
65 *iface = this; 65 *iface = this;
66 else if ( uuid == IID_StyleExtended ) 66 else if ( uuid == IID_StyleExtended )
67 *iface = this; 67 *iface = this;
68 else
69 return QS_FALSE;
68 70
69 if ( *iface ) 71 if ( *iface )
70 (*iface)-> addRef ( ); 72 (*iface)-> addRef ( );
71 73
72 return QS_OK; 74 return QS_OK;
73} 75}
74 76
75Q_EXPORT_INTERFACE() 77Q_EXPORT_INTERFACE()
76{ 78{
77 Q_CREATE_INSTANCE( ThemeInterface ) 79 Q_CREATE_INSTANCE( ThemeInterface )
78} 80}
79 81
80 82
81 83
diff --git a/noncore/styles/theme/plugin.h b/noncore/styles/theme/plugin.h
index 60cae97..c67f1e4 100644
--- a/noncore/styles/theme/plugin.h
+++ b/noncore/styles/theme/plugin.h
@@ -1,33 +1,32 @@
1#ifndef __OPIE_THEME_PLUGIN_H__ 1#ifndef __OPIE_THEME_PLUGIN_H__
2#define __OPIE_THEME_PLUGIN_H__ 2#define __OPIE_THEME_PLUGIN_H__
3 3
4#include <qpe/styleinterface.h> 4#include <qpe/styleinterface.h>
5 5
6class ThemeSettings; 6class ThemeSettings;
7 7
8class ThemeInterface : public StyleExtendedInterface { 8class ThemeInterface : public StyleExtendedInterface {
9public: 9public:
10 ThemeInterface ( ); 10 ThemeInterface ( );
11 virtual ~ThemeInterface ( ); 11 virtual ~ThemeInterface ( );
12 12
13 QRESULT queryInterface ( const QUuid &, QUnknownInterface ** ); 13 QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
14 Q_REFCOUNT 14 Q_REFCOUNT
15 15
16 virtual QStyle *style ( ); 16 virtual QStyle *style ( );
17 virtual QString name ( ) const; 17 virtual QString name ( ) const;
18 18
19 virtual QString description ( ) const; 19 virtual QString description ( ) const;
20 20
21 virtual bool hasSettings ( ) const; 21 virtual bool hasSettings ( ) const;
22 22
23 virtual QWidget *create ( QWidget *parent, const char *name = 0 ); 23 virtual QWidget *create ( QWidget *parent, const char *name = 0 );
24 24
25 virtual bool accept ( ); 25 virtual bool accept ( );
26 virtual void reject ( ); 26 virtual void reject ( );
27 27
28private: 28private:
29 ThemeSettings *m_widget; 29 ThemeSettings *m_widget;
30 ulong ref;
31}; 30};
32 31
33#endif 32#endif
diff --git a/noncore/todayplugins/fortune/fortunepluginimpl.h b/noncore/todayplugins/fortune/fortunepluginimpl.h
index 070f03e..8e380f5 100644
--- a/noncore/todayplugins/fortune/fortunepluginimpl.h
+++ b/noncore/todayplugins/fortune/fortunepluginimpl.h
@@ -1,41 +1,40 @@
1/* 1/*
2 * todopluginimpl.h 2 * todopluginimpl.h
3 * 3 *
4 * copyright : (c) 2002 by Maximilian Reiß 4 * copyright : (c) 2002 by Maximilian Reiß
5 * email : harlekin@handhelds.org 5 * email : harlekin@handhelds.org
6 * 6 *
7 */ 7 */
8/*************************************************************************** 8/***************************************************************************
9 * * 9 * *
10 * This program is free software; you can redistribute it and/or modify * 10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by * 11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or * 12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. * 13 * (at your option) any later version. *
14 * * 14 * *
15 ***************************************************************************/ 15 ***************************************************************************/
16 16
17#ifndef FORTUNE_PLUGIN_IMPL_H 17#ifndef FORTUNE_PLUGIN_IMPL_H
18#define FORTUNE_PLUGIN_IMPL_H 18#define FORTUNE_PLUGIN_IMPL_H
19 19
20#include <opie/todayplugininterface.h> 20#include <opie/todayplugininterface.h>
21 21
22class FortunePlugin; 22class FortunePlugin;
23 23
24class FortunePluginImpl : public TodayPluginInterface 24class FortunePluginImpl : public TodayPluginInterface
25{ 25{
26 26
27public: 27public:
28 FortunePluginImpl(); 28 FortunePluginImpl();
29 virtual ~FortunePluginImpl(); 29 virtual ~FortunePluginImpl();
30 30
31 QRESULT queryInterface( const QUuid &, QUnknownInterface** ); 31 QRESULT queryInterface( const QUuid &, QUnknownInterface** );
32 Q_REFCOUNT 32 Q_REFCOUNT
33 33
34 virtual TodayPluginObject *guiPart(); 34 virtual TodayPluginObject *guiPart();
35 35
36private: 36private:
37 FortunePlugin *fortunePlugin; 37 FortunePlugin *fortunePlugin;
38 ulong ref;
39}; 38};
40 39
41#endif 40#endif
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h
index 300c545..db5b8f9 100644
--- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginimpl.h
@@ -1,40 +1,39 @@
1/* 1/*
2 * stocktickerpluginimpl.h 2 * stocktickerpluginimpl.h
3 * 3 *
4 * copyright : (c) 2002 by L.J. Potter 4 * copyright : (c) 2002 by L.J. Potter
5 * email : llornkcor@handhelds.org 5 * email : llornkcor@handhelds.org
6 * 6 *
7 */ 7 */
8/*************************************************************************** 8/***************************************************************************
9 * * 9 * *
10 * This program is free software; you can redistribute it and/or modify * 10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by * 11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or * 12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. * 13 * (at your option) any later version. *
14 * * 14 * *
15 ***************************************************************************/ 15 ***************************************************************************/
16 16
17#ifndef STOCKTICKER_PLUGIN_IMPL_H 17#ifndef STOCKTICKER_PLUGIN_IMPL_H
18#define STOCKTICKER_PLUGIN_IMPL_H 18#define STOCKTICKER_PLUGIN_IMPL_H
19 19
20#include <opie/todayplugininterface.h> 20#include <opie/todayplugininterface.h>
21 21
22class StockTickerPlugin; 22class StockTickerPlugin;
23 23
24class StockTickerPluginImpl : public TodayPluginInterface{ 24class StockTickerPluginImpl : public TodayPluginInterface{
25 25
26public: 26public:
27 StockTickerPluginImpl(); 27 StockTickerPluginImpl();
28 virtual ~StockTickerPluginImpl(); 28 virtual ~StockTickerPluginImpl();
29 29
30 QRESULT queryInterface( const QUuid &, QUnknownInterface** ); 30 QRESULT queryInterface( const QUuid &, QUnknownInterface** );
31 Q_REFCOUNT 31 Q_REFCOUNT
32 32
33 virtual TodayPluginObject *guiPart(); 33 virtual TodayPluginObject *guiPart();
34 34
35private: 35private:
36 StockTickerPlugin *stocktickerPlugin; 36 StockTickerPlugin *stocktickerPlugin;
37 ulong ref;
38}; 37};
39 38
40#endif 39#endif
diff --git a/noncore/todayplugins/weather/weatherpluginimpl.h b/noncore/todayplugins/weather/weatherpluginimpl.h
index aad8958..eaaae1d 100644
--- a/noncore/todayplugins/weather/weatherpluginimpl.h
+++ b/noncore/todayplugins/weather/weatherpluginimpl.h
@@ -1,52 +1,51 @@
1/* 1/*
2                This file is part of the OPIE Project 2                This file is part of the OPIE Project
3 =. 3 =.
4             .=l. Copyright (c) 2002 Dan Williams <williamsdr@acm.org> 4             .=l. Copyright (c) 2002 Dan Williams <williamsdr@acm.org>
5           .>+-= 5           .>+-=
6 _;:,     .>    :=|. This file is free software; you can 6 _;:,     .>    :=|. This file is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under 7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU General Public 8:`=1 )Y*s>-.--   : the terms of the GNU General Public
9.="- .-=="i,     .._ License as published by the Free Software 9.="- .-=="i,     .._ License as published by the Free Software
10 - .   .-<_>     .<> Foundation; either version 2 of the License, 10 - .   .-<_>     .<> Foundation; either version 2 of the License,
11     ._= =}       : or (at your option) any later version. 11     ._= =}       : or (at your option) any later version.
12    .%`+i>       _;_. 12    .%`+i>       _;_.
13    .i_,=:_.      -<s. This file is distributed in the hope that 13    .i_,=:_.      -<s. This file is distributed in the hope that
14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15    : ..    .:,     . . . without even the implied warranty of 15    : ..    .:,     . . . without even the implied warranty of
16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General 17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
18..}^=.=       =       ; Public License for more details. 18..}^=.=       =       ; Public License for more details.
19++=   -.     .`     .: 19++=   -.     .`     .:
20 :     =  ...= . :.=- You should have received a copy of the GNU 20 :     =  ...= . :.=- You should have received a copy of the GNU
21 -.   .:....=;==+<; General Public License along with this file; 21 -.   .:....=;==+<; General Public License along with this file;
22  -_. . .   )=.  = see the file COPYING. If not, write to the 22  -_. . .   )=.  = see the file COPYING. If not, write to the
23    --        :-=` Free Software Foundation, Inc., 23    --        :-=` Free Software Foundation, Inc.,
24 59 Temple Place - Suite 330, 24 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29#ifndef WEATHER_PLUGIN_IMPL_H 29#ifndef WEATHER_PLUGIN_IMPL_H
30#define WEATHER_PLUGIN_IMPL_H 30#define WEATHER_PLUGIN_IMPL_H
31 31
32#include <opie/todayplugininterface.h> 32#include <opie/todayplugininterface.h>
33 33
34class WeatherPlugin; 34class WeatherPlugin;
35 35
36class WeatherPluginImpl : public TodayPluginInterface 36class WeatherPluginImpl : public TodayPluginInterface
37{ 37{
38 public: 38 public:
39 WeatherPluginImpl(); 39 WeatherPluginImpl();
40 virtual ~WeatherPluginImpl(); 40 virtual ~WeatherPluginImpl();
41 41
42 QRESULT queryInterface( const QUuid &, QUnknownInterface ** ); 42 QRESULT queryInterface( const QUuid &, QUnknownInterface ** );
43 Q_REFCOUNT 43 Q_REFCOUNT
44 44
45 virtual TodayPluginObject *guiPart(); 45 virtual TodayPluginObject *guiPart();
46 46
47 private: 47 private:
48 WeatherPlugin *weatherPlugin; 48 WeatherPlugin *weatherPlugin;
49 ulong ref;
50}; 49};
51 50
52#endif 51#endif