summaryrefslogtreecommitdiff
path: root/library/lightstyle.cpp
authorerik <erik>2007-01-10 17:24:23 (UTC)
committer erik <erik>2007-01-10 17:24:23 (UTC)
commite7d3e1d0f3c75979c01ea6373ed3c80d0c986000 (patch) (unidiff)
tree34a6e8aa3de82f07c0531e59f375da216fbfb97a /library/lightstyle.cpp
parent51bd5e8d542372ad54898ce642fe9b82b8ba83f3 (diff)
downloadopie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.zip
opie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.tar.gz
opie-e7d3e1d0f3c75979c01ea6373ed3c80d0c986000.tar.bz2
All of the files in this commit have an inheritance member function
mismatch correction. None are serious, but all would have been improperly mislinked in the inheritance hierarchy if attempted to be used.
Diffstat (limited to 'library/lightstyle.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/lightstyle.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/library/lightstyle.cpp b/library/lightstyle.cpp
index c5073ca..3d5adfb 100644
--- a/library/lightstyle.cpp
+++ b/library/lightstyle.cpp
@@ -1,1288 +1,1288 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of 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#include "lightstyle.h" 20#include "lightstyle.h"
21 21
22#if QT_VERSION < 0x030000 22#if QT_VERSION < 0x030000
23 23
24#define INCLUDE_MENUITEM_DEF 24#define INCLUDE_MENUITEM_DEF
25#include "qmenubar.h" 25#include "qmenubar.h"
26#include "qapplication.h" 26#include "qapplication.h"
27#include "qpainter.h" 27#include "qpainter.h"
28#include "qpalette.h" 28#include "qpalette.h"
29#include "qframe.h" 29#include "qframe.h"
30#include "qpushbutton.h" 30#include "qpushbutton.h"
31#include "qdrawutil.h" 31#include "qdrawutil.h"
32#include "qscrollbar.h" 32#include "qscrollbar.h"
33#include "qtabbar.h" 33#include "qtabbar.h"
34#include "qguardedptr.h" 34#include "qguardedptr.h"
35#include "qlayout.h" 35#include "qlayout.h"
36#include "qlineedit.h" 36#include "qlineedit.h"
37 37
38 38
39class LightStylePrivate 39class LightStylePrivate
40{ 40{
41public: 41public:
42 LightStylePrivate() 42 LightStylePrivate()
43 : hoverWidget(0), ref(1), savePalette(0) 43 : hoverWidget(0), ref(1), savePalette(0)
44 { 44 {
45 } 45 }
46 46
47 QGuardedPtr<QWidget> hoverWidget; 47 QGuardedPtr<QWidget> hoverWidget;
48 QPalette oldPalette, hoverPalette; 48 QPalette oldPalette, hoverPalette;
49 int ref; 49 int ref;
50 QPoint mousePos; 50 QPoint mousePos;
51 QPalette *savePalette; 51 QPalette *savePalette;
52}; 52};
53 53
54 54
55static LightStylePrivate *singleton = 0; 55static LightStylePrivate *singleton = 0;
56 56
57 57
58LightStyle::LightStyle() 58LightStyle::LightStyle()
59 : QWindowsStyle() 59 : QWindowsStyle()
60{ 60{
61 if (! singleton) { 61 if (! singleton) {
62 singleton = new LightStylePrivate; 62 singleton = new LightStylePrivate;
63 63
64 QPalette pal = QApplication::palette(); 64 QPalette pal = QApplication::palette();
65 singleton->oldPalette = pal; 65 singleton->oldPalette = pal;
66 66
67 QColor bg = pal.color(QPalette::Active, QColorGroup::Background); 67 QColor bg = pal.color(QPalette::Active, QColorGroup::Background);
68 QColor prelight; 68 QColor prelight;
69 69
70 if ( (bg.red() + bg.green() + bg.blue()) / 3 > 128) 70 if ( (bg.red() + bg.green() + bg.blue()) / 3 > 128)
71 prelight = pal.color(QPalette::Active, 71 prelight = pal.color(QPalette::Active,
72 QColorGroup::Background).light(110); 72 QColorGroup::Background).light(110);
73 else 73 else
74 prelight = pal.color(QPalette::Active, 74 prelight = pal.color(QPalette::Active,
75 QColorGroup::Background).light(120); 75 QColorGroup::Background).light(120);
76 76
77 QColorGroup active2(pal.color(QPalette::Active, 77 QColorGroup active2(pal.color(QPalette::Active,
78 QColorGroup::Foreground), // foreground 78 QColorGroup::Foreground), // foreground
79 prelight, // button 79 prelight, // button
80 prelight.light(), // light 80 prelight.light(), // light
81 prelight.dark(), // dark 81 prelight.dark(), // dark
82 prelight.dark(120), // mid 82 prelight.dark(120), // mid
83 pal.color(QPalette::Active, 83 pal.color(QPalette::Active,
84 QColorGroup::Text), // text 84 QColorGroup::Text), // text
85 pal.color(QPalette::Active, 85 pal.color(QPalette::Active,
86 QColorGroup::BrightText), // bright text 86 QColorGroup::BrightText), // bright text
87 pal.color(QPalette::Active, 87 pal.color(QPalette::Active,
88 QColorGroup::Base), // base 88 QColorGroup::Base), // base
89 bg); // background 89 bg); // background
90 active2.setColor(QColorGroup::Highlight, 90 active2.setColor(QColorGroup::Highlight,
91 pal.color(QPalette::Active, QColorGroup::Highlight)); 91 pal.color(QPalette::Active, QColorGroup::Highlight));
92 92
93 singleton->hoverPalette = pal; 93 singleton->hoverPalette = pal;
94 singleton->hoverPalette.setActive(active2); 94 singleton->hoverPalette.setActive(active2);
95 singleton->hoverPalette.setInactive(active2); 95 singleton->hoverPalette.setInactive(active2);
96 } else 96 } else
97 singleton->ref++; 97 singleton->ref++;
98} 98}
99 99
100 100
101LightStyle::~LightStyle() 101LightStyle::~LightStyle()
102{ 102{
103 if (singleton && singleton->ref-- <= 0) { 103 if (singleton && singleton->ref-- <= 0) {
104 delete singleton; 104 delete singleton;
105 singleton = 0; 105 singleton = 0;
106 } 106 }
107} 107}
108 108
109 109
110QSize LightStyle::scrollBarExtent() const 110QSize LightStyle::scrollBarExtent() const
111{ 111{
112 return QSize(12 + defaultFrameWidth(), 12 + defaultFrameWidth()); 112 return QSize(12 + defaultFrameWidth(), 12 + defaultFrameWidth());
113} 113}
114 114
115 115
116int LightStyle::buttonDefaultIndicatorWidth() const 116int LightStyle::buttonDefaultIndicatorWidth() const
117{ 117{
118 return 2; 118 return 2;
119} 119}
120 120
121 121
122int LightStyle::sliderThickness() const 122int LightStyle::sliderThickness() const
123{ 123{
124 return 16; 124 return 16;
125} 125}
126 126
127int LightStyle::sliderLength() const 127int LightStyle::sliderLength() const
128{ 128{
129 return 13; 129 return 13;
130} 130}
131 131
132 132
133int LightStyle::buttonMargin() const 133int LightStyle::buttonMargin() const
134{ 134{
135 return 4; 135 return 4;
136} 136}
137 137
138 138
139QSize LightStyle::exclusiveIndicatorSize() const 139QSize LightStyle::exclusiveIndicatorSize() const
140{ 140{
141 return QSize(13, 13); 141 return QSize(13, 13);
142} 142}
143 143
144 144
145int LightStyle::defaultFrameWidth() const 145int LightStyle::defaultFrameWidth() const
146{ 146{
147 return 2; 147 return 2;
148} 148}
149 149
150 150
151QSize LightStyle::indicatorSize() const 151QSize LightStyle::indicatorSize() const
152{ 152{
153 return QSize(13, 13); 153 return QSize(13, 13);
154} 154}
155 155
156 156
157void LightStyle::polish(QWidget *widget) 157void LightStyle::polish(QWidget *widget)
158{ 158{
159 if (widget->inherits("QPushButton")) 159 if (widget->inherits("QPushButton"))
160 widget->installEventFilter(this); 160 widget->installEventFilter(this);
161 161
162#if QT_VERSION >= 0x030000 162#if QT_VERSION >= 0x030000
163 if (widget->inherits("QLineEdit")) { 163 if (widget->inherits("QLineEdit")) {
164 QLineEdit *lineedit = (QLineEdit *) widget; 164 QLineEdit *lineedit = (QLineEdit *) widget;
165 lineedit->setFrameShape(QFrame::StyledPanel); 165 lineedit->setFrameShape(QFrame::StyledPanel);
166 lineedit->setLineWidth(2); 166 lineedit->setLineWidth(2);
167 } 167 }
168#endif 168#endif
169 169
170 QWindowsStyle::polish(widget); 170 QWindowsStyle::polish(widget);
171} 171}
172 172
173 173
174void LightStyle::unPolish(QWidget *widget) 174void LightStyle::unPolish(QWidget *widget)
175{ 175{
176 if (widget->inherits("QPushButton")) 176 if (widget->inherits("QPushButton"))
177 widget->removeEventFilter(this); 177 widget->removeEventFilter(this);
178 178
179#if QT_VERSION >= 0x030000 179#if QT_VERSION >= 0x030000
180 if (widget->inherits("QLineEdit")) { 180 if (widget->inherits("QLineEdit")) {
181 QLineEdit *lineedit = (QLineEdit *) widget; 181 QLineEdit *lineedit = (QLineEdit *) widget;
182 lineedit->setLineWidth(1); 182 lineedit->setLineWidth(1);
183 lineedit->setFrameShape(QFrame::WinPanel); 183 lineedit->setFrameShape(QFrame::WinPanel);
184 } 184 }
185#endif 185#endif
186 186
187 QWindowsStyle::unPolish(widget); 187 QWindowsStyle::unPolish(widget);
188} 188}
189 189
190 190
191void LightStyle::polish(QApplication *app) 191void LightStyle::polish(QApplication *app)
192{ 192{
193 QPalette pal = app->palette(); 193 QPalette pal = app->palette();
194 194
195 QColorGroup active(pal.color(QPalette::Active, 195 QColorGroup active(pal.color(QPalette::Active,
196 QColorGroup::Foreground), // foreground 196 QColorGroup::Foreground), // foreground
197 pal.color(QPalette::Active, 197 pal.color(QPalette::Active,
198 QColorGroup::Button), // button 198 QColorGroup::Button), // button
199 pal.color(QPalette::Active, 199 pal.color(QPalette::Active,
200 QColorGroup::Background).light(), // light 200 QColorGroup::Background).light(), // light
201 pal.color(QPalette::Active, 201 pal.color(QPalette::Active,
202 QColorGroup::Background).dark(175), // dark 202 QColorGroup::Background).dark(175), // dark
203 pal.color(QPalette::Active, 203 pal.color(QPalette::Active,
204 QColorGroup::Background).dark(110), // mid 204 QColorGroup::Background).dark(110), // mid
205 pal.color(QPalette::Active, 205 pal.color(QPalette::Active,
206 QColorGroup::Text), // text 206 QColorGroup::Text), // text
207 pal.color(QPalette::Active, 207 pal.color(QPalette::Active,
208 QColorGroup::BrightText), // bright text 208 QColorGroup::BrightText), // bright text
209 pal.color(QPalette::Active, 209 pal.color(QPalette::Active,
210 QColorGroup::Base), // base 210 QColorGroup::Base), // base
211 pal.color(QPalette::Active, 211 pal.color(QPalette::Active,
212 QColorGroup::Background)), // background 212 QColorGroup::Background)), // background
213 213
214 214
215 disabled(pal.color(QPalette::Disabled, 215 disabled(pal.color(QPalette::Disabled,
216 QColorGroup::Foreground), // foreground 216 QColorGroup::Foreground), // foreground
217 pal.color(QPalette::Disabled, 217 pal.color(QPalette::Disabled,
218 QColorGroup::Button), // button 218 QColorGroup::Button), // button
219 pal.color(QPalette::Disabled, 219 pal.color(QPalette::Disabled,
220 QColorGroup::Background).light(), // light 220 QColorGroup::Background).light(), // light
221 pal.color(QPalette::Disabled, 221 pal.color(QPalette::Disabled,
222 QColorGroup::Background).dark(), // dark 222 QColorGroup::Background).dark(), // dark
223 pal.color(QPalette::Disabled, 223 pal.color(QPalette::Disabled,
224 QColorGroup::Background).dark(110), // mid 224 QColorGroup::Background).dark(110), // mid
225 pal.color(QPalette::Disabled, 225 pal.color(QPalette::Disabled,
226 QColorGroup::Text), // text 226 QColorGroup::Text), // text
227 pal.color(QPalette::Disabled, 227 pal.color(QPalette::Disabled,
228 QColorGroup::BrightText), // bright text 228 QColorGroup::BrightText), // bright text
229 pal.color(QPalette::Disabled, 229 pal.color(QPalette::Disabled,
230 QColorGroup::Base), // base 230 QColorGroup::Base), // base
231 pal.color(QPalette::Disabled, 231 pal.color(QPalette::Disabled,
232 QColorGroup::Background)); // background 232 QColorGroup::Background)); // background
233 233
234 active.setColor(QColorGroup::Highlight, 234 active.setColor(QColorGroup::Highlight,
235 pal.color(QPalette::Active, QColorGroup::Highlight)); 235 pal.color(QPalette::Active, QColorGroup::Highlight));
236 disabled.setColor(QColorGroup::Highlight, 236 disabled.setColor(QColorGroup::Highlight,
237 pal.color(QPalette::Disabled, QColorGroup::Highlight)); 237 pal.color(QPalette::Disabled, QColorGroup::Highlight));
238 238
239 active.setColor(QColorGroup::HighlightedText, 239 active.setColor(QColorGroup::HighlightedText,
240 pal.color(QPalette::Active, QColorGroup::HighlightedText)); 240 pal.color(QPalette::Active, QColorGroup::HighlightedText));
241 disabled.setColor(QColorGroup::HighlightedText, 241 disabled.setColor(QColorGroup::HighlightedText,
242 pal.color(QPalette::Disabled, QColorGroup::HighlightedText)); 242 pal.color(QPalette::Disabled, QColorGroup::HighlightedText));
243 243
244 pal.setActive(active); 244 pal.setActive(active);
245 pal.setInactive(active); 245 pal.setInactive(active);
246 pal.setDisabled(disabled); 246 pal.setDisabled(disabled);
247 247
248 singleton->oldPalette = pal; 248 singleton->oldPalette = pal;
249 249
250 QColor bg = pal.color(QPalette::Active, QColorGroup::Background); 250 QColor bg = pal.color(QPalette::Active, QColorGroup::Background);
251 QColor prelight; 251 QColor prelight;
252 252
253 if ( (bg.red() + bg.green() + bg.blue()) / 3 > 128) 253 if ( (bg.red() + bg.green() + bg.blue()) / 3 > 128)
254 prelight = pal.color(QPalette::Active, 254 prelight = pal.color(QPalette::Active,
255 QColorGroup::Background).light(110); 255 QColorGroup::Background).light(110);
256 else 256 else
257 prelight = pal.color(QPalette::Active, 257 prelight = pal.color(QPalette::Active,
258 QColorGroup::Background).light(120); 258 QColorGroup::Background).light(120);
259 259
260 QColorGroup active2(pal.color(QPalette::Active, 260 QColorGroup active2(pal.color(QPalette::Active,
261 QColorGroup::Foreground), // foreground 261 QColorGroup::Foreground), // foreground
262 prelight, // button 262 prelight, // button
263 prelight.light(), // light 263 prelight.light(), // light
264 prelight.dark(), // dark 264 prelight.dark(), // dark
265 prelight.dark(120), // mid 265 prelight.dark(120), // mid
266 pal.color(QPalette::Active, 266 pal.color(QPalette::Active,
267 QColorGroup::Text), // text 267 QColorGroup::Text), // text
268 pal.color(QPalette::Active, 268 pal.color(QPalette::Active,
269 QColorGroup::BrightText), // bright text 269 QColorGroup::BrightText), // bright text
270 pal.color(QPalette::Active, 270 pal.color(QPalette::Active,
271 QColorGroup::Base), // base 271 QColorGroup::Base), // base
272 bg); // background 272 bg); // background
273 active2.setColor(QColorGroup::Highlight, 273 active2.setColor(QColorGroup::Highlight,
274 pal.color(QPalette::Active, QColorGroup::Highlight)); 274 pal.color(QPalette::Active, QColorGroup::Highlight));
275 275
276 singleton->hoverPalette = pal; 276 singleton->hoverPalette = pal;
277 singleton->hoverPalette.setActive(active2); 277 singleton->hoverPalette.setActive(active2);
278 singleton->hoverPalette.setInactive(active2); 278 singleton->hoverPalette.setInactive(active2);
279 279
280 app->setPalette(pal); 280 app->setPalette(pal);
281} 281}
282 282
283 283
284void LightStyle::unPolish(QApplication *app) 284void LightStyle::unPolish(QApplication *app)
285{ 285{
286 app->setPalette(singleton->oldPalette); 286 app->setPalette(singleton->oldPalette);
287} 287}
288 288
289 289
290void LightStyle::polishPopupMenu(QPopupMenu *menu) 290void LightStyle::polishPopupMenu(QPopupMenu *menu)
291{ 291{
292 menu->setMouseTracking(TRUE); 292 menu->setMouseTracking(TRUE);
293} 293}
294 294
295 295
296void LightStyle::drawPushButton(QPushButton *button, QPainter *p) 296void LightStyle::drawPushButton(QPushButton *button, QPainter *p)
297{ 297{
298 int x1, y1, x2, y2; 298 int x1, y1, x2, y2;
299 button->rect().coords(&x1, &y1, &x2, &y2); 299 button->rect().coords(&x1, &y1, &x2, &y2);
300 300
301 if (button->isDefault()) { 301 if (button->isDefault()) {
302 p->save(); 302 p->save();
303 p->setPen(button->palette().active().color(QColorGroup::Highlight)); 303 p->setPen(button->palette().active().color(QColorGroup::Highlight));
304 p->setBrush(button->palette().active().brush(QColorGroup::Highlight)); 304 p->setBrush(button->palette().active().brush(QColorGroup::Highlight));
305 p->drawRoundRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1, 15, 15); 305 p->drawRoundRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1, 15, 15);
306 p->restore(); 306 p->restore();
307 } 307 }
308 308
309 if (button->isDefault() || button->autoDefault()) { 309 if (button->isDefault() || button->autoDefault()) {
310 x1 += buttonDefaultIndicatorWidth(); 310 x1 += buttonDefaultIndicatorWidth();
311 y1 += buttonDefaultIndicatorWidth(); 311 y1 += buttonDefaultIndicatorWidth();
312 x2 -= buttonDefaultIndicatorWidth(); 312 x2 -= buttonDefaultIndicatorWidth();
313 y2 -= buttonDefaultIndicatorWidth(); 313 y2 -= buttonDefaultIndicatorWidth();
314 314
315 if (button->isDefault()) { 315 if (button->isDefault()) {
316 QPointArray pa(8); 316 QPointArray pa(8);
317 pa.setPoint(0, x1 + 2, y1 ); 317 pa.setPoint(0, x1 + 2, y1 );
318 pa.setPoint(1, x2 - 1, y1 ); 318 pa.setPoint(1, x2 - 1, y1 );
319 pa.setPoint(2, x2 + 1, y1 + 2); 319 pa.setPoint(2, x2 + 1, y1 + 2);
320 pa.setPoint(3, x2 + 1, y2 - 2); 320 pa.setPoint(3, x2 + 1, y2 - 2);
321 pa.setPoint(4, x2 - 2, y2 + 1); 321 pa.setPoint(4, x2 - 2, y2 + 1);
322 pa.setPoint(5, x1 + 2, y2 + 1); 322 pa.setPoint(5, x1 + 2, y2 + 1);
323 pa.setPoint(6, x1, y2 - 1); 323 pa.setPoint(6, x1, y2 - 1);
324 pa.setPoint(7, x1, y1 + 2); 324 pa.setPoint(7, x1, y1 + 2);
325 QRegion r(pa); 325 QRegion r(pa);
326 p->setClipRegion(r); 326 p->setClipRegion(r);
327 } 327 }
328 } 328 }
329 329
330 QBrush fill; 330 QBrush fill;
331 if (button->isDown() || button->isOn()) 331 if (button->isDown() || button->isOn())
332 fill = button->colorGroup().brush(QColorGroup::Mid); 332 fill = button->colorGroup().brush(QColorGroup::Mid);
333 else 333 else
334 fill = button->colorGroup().brush(QColorGroup::Button); 334 fill = button->colorGroup().brush(QColorGroup::Button);
335 335
336 if ( !button->isFlat() || button->isOn() || button->isDown() ) 336 if ( !button->isFlat() || button->isOn() || button->isDown() )
337 drawButton(p, x1, y1, x2 - x1 + 1, y2 - y1 + 1, 337 drawButton(p, x1, y1, x2 - x1 + 1, y2 - y1 + 1,
338 button->colorGroup(), button->isOn() || button->isDown(), &fill); 338 button->colorGroup(), button->isOn() || button->isDown(), &fill);
339} 339}
340 340
341 341
342void LightStyle::drawButton(QPainter *p, int x, int y, int w, int h, 342void LightStyle::drawButton(QPainter *p, int x, int y, int w, int h,
343 const QColorGroup &g, 343 const QColorGroup &g,
344 bool sunken, const QBrush *fill) 344 bool sunken, const QBrush *fill)
345{ 345{
346 p->save(); 346 p->save();
347 if ( fill ) 347 if ( fill )
348 p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill); 348 p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill);
349 else 349 else
350 p->fillRect(x + 2, y + 2, w - 4, h - 4, 350 p->fillRect(x + 2, y + 2, w - 4, h - 4,
351 QBrush(sunken ? g.mid() : g.button())); 351 QBrush(sunken ? g.mid() : g.button()));
352 352
353 // frame 353 // frame
354 p->setPen(g.dark()); 354 p->setPen(g.dark());
355 p->drawLine(x, y + 2, x, y + h - 3); // left 355 p->drawLine(x, y + 2, x, y + h - 3); // left
356 p->drawLine(x + 2, y, x + w - 3, y); // top 356 p->drawLine(x + 2, y, x + w - 3, y); // top
357 p->drawLine(x + w - 1, y + 2, x + w - 1, y + h - 3); // right 357 p->drawLine(x + w - 1, y + 2, x + w - 1, y + h - 3); // right
358 p->drawLine(x + 2, y + h - 1, x + w - 3, y + h - 1); // bottom 358 p->drawLine(x + 2, y + h - 1, x + w - 3, y + h - 1); // bottom
359 p->drawPoint(x + 1, y + 1); 359 p->drawPoint(x + 1, y + 1);
360 p->drawPoint(x + 1, y + h - 2); 360 p->drawPoint(x + 1, y + h - 2);
361 p->drawPoint(x + w - 2, y + 1); 361 p->drawPoint(x + w - 2, y + 1);
362 p->drawPoint(x + w - 2, y + h - 2); 362 p->drawPoint(x + w - 2, y + h - 2);
363 363
364 // bevel 364 // bevel
365 if (sunken) 365 if (sunken)
366 p->setPen(g.mid()); 366 p->setPen(g.mid());
367 else 367 else
368 p->setPen(g.light()); 368 p->setPen(g.light());
369 369
370 p->drawLine(x + 1, y + 2, x + 1, y + h - 3); // left 370 p->drawLine(x + 1, y + 2, x + 1, y + h - 3); // left
371 p->drawLine(x + 2, y + 1, x + w - 3, y + 1); // top 371 p->drawLine(x + 2, y + 1, x + w - 3, y + 1); // top
372 372
373 if (sunken) 373 if (sunken)
374 p->setPen(g.light()); 374 p->setPen(g.light());
375 else 375 else
376 p->setPen(g.mid()); 376 p->setPen(g.mid());
377 377
378 p->drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); // right + 1 378 p->drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); // right + 1
379 p->drawLine(x + 2, y + h - 2, x + w - 3, y + h - 2); // bottom + 1 379 p->drawLine(x + 2, y + h - 2, x + w - 3, y + h - 2); // bottom + 1
380 380
381 p->restore(); 381 p->restore();
382} 382}
383 383
384 384
385void LightStyle::drawBevelButton(QPainter *p, int x, int y, int w, int h, 385void LightStyle::drawBevelButton(QPainter *p, int x, int y, int w, int h,
386 const QColorGroup &g, 386 const QColorGroup &g,
387 bool sunken, const QBrush *fill) 387 bool sunken, const QBrush *fill)
388{ 388{
389 drawButton(p, x, y, w, h, g, sunken, fill); 389 drawButton(p, x, y, w, h, g, sunken, fill);
390} 390}
391 391
392 392
393void LightStyle::getButtonShift(int &x, int &y) const 393void LightStyle::getButtonShift(int &x, int &y)
394{ 394{
395 x = y = 0; 395 x = y = 0;
396} 396}
397 397
398 398
399void LightStyle::drawComboButton(QPainter *p, int x, int y, int w, int h, 399void LightStyle::drawComboButton(QPainter *p, int x, int y, int w, int h,
400 const QColorGroup &g, bool, 400 const QColorGroup &g, bool,
401 bool editable, bool, 401 bool editable, bool,
402 const QBrush *fill) 402 const QBrush *fill)
403{ 403{
404 drawButton(p, x, y, w, h, g, FALSE, fill); 404 drawButton(p, x, y, w, h, g, FALSE, fill);
405 405
406 if (editable) { 406 if (editable) {
407 QRect r = comboButtonRect(x, y, w, h); 407 QRect r = comboButtonRect(x, y, w, h);
408 qDrawShadePanel(p, r.x() - 1, r.y() - 1, 408 qDrawShadePanel(p, r.x() - 1, r.y() - 1,
409 r.width() + defaultFrameWidth(), 409 r.width() + defaultFrameWidth(),
410 r.height() + defaultFrameWidth(), 410 r.height() + defaultFrameWidth(),
411 g, TRUE); 411 g, TRUE);
412 } 412 }
413 413
414 int indent = ((y + h) / 2) - 3; 414 int indent = ((y + h) / 2) - 3;
415 int xpos = x; 415 int xpos = x;
416 416
417#if QT_VERSION >= 0x030000 417#if QT_VERSION >= 0x030000
418 if( QApplication::reverseLayout() ) 418 if( QApplication::reverseLayout() )
419 xpos += indent; 419 xpos += indent;
420 else 420 else
421#endif 421#endif
422 xpos += w - indent - 5; 422 xpos += w - indent - 5;
423 423
424 drawArrow(p, Qt::DownArrow, TRUE, xpos, indent, 5, 5, g, TRUE, fill); 424 drawArrow(p, Qt::DownArrow, TRUE, xpos, indent, 5, 5, g, TRUE, fill);
425} 425}
426 426
427 427
428QRect LightStyle::comboButtonRect( int x, int y, int w, int h ) const 428QRect LightStyle::comboButtonRect( int x, int y, int w, int h )
429{ 429{
430 QRect r(x + 3, y + 3, w - 6, h - 6); 430 QRect r(x + 3, y + 3, w - 6, h - 6);
431 int indent = ((y + h) / 2) - 3; 431 int indent = ((y + h) / 2) - 3;
432 r.setRight(r.right() - indent - 10); 432 r.setRight(r.right() - indent - 10);
433 433
434#if QT_VERSION >= 0x030000 434#if QT_VERSION >= 0x030000
435 if( QApplication::reverseLayout() ) 435 if( QApplication::reverseLayout() )
436 r.moveBy( indent + 10, 0 ); 436 r.moveBy( indent + 10, 0 );
437#endif 437#endif
438 438
439 return r; 439 return r;
440} 440}
441 441
442 442
443QRect LightStyle::comboButtonFocusRect(int x, int y, int w, int h ) const 443QRect LightStyle::comboButtonFocusRect(int x, int y, int w, int h )
444{ 444{
445 return comboButtonRect(x, y, w, h); 445 return comboButtonRect(x, y, w, h);
446} 446}
447 447
448 448
449void LightStyle::drawPanel(QPainter *p, int x, int y, int w, int h, 449void LightStyle::drawPanel(QPainter *p, int x, int y, int w, int h,
450 const QColorGroup &g, bool sunken, 450 const QColorGroup &g, bool sunken,
451 int lw, const QBrush *fill) 451 int lw, const QBrush *fill)
452{ 452{
453 if (lw >= 2) { 453 if (lw >= 2) {
454 if ( fill ) 454 if ( fill )
455 p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill); 455 p->fillRect(x + 2, y + 2, w - 4, h - 4, *fill);
456 456
457 QPen oldpen = p->pen(); 457 QPen oldpen = p->pen();
458 458
459 // frame 459 // frame
460 p->setPen(g.dark()); 460 p->setPen(g.dark());
461 p->drawLine(x, y + 2, x, y + h - 3); // left 461 p->drawLine(x, y + 2, x, y + h - 3); // left
462 p->drawLine(x + 2, y, x + w - 3, y); // top 462 p->drawLine(x + 2, y, x + w - 3, y); // top
463 p->drawLine(x + w - 1, y + 2, x + w - 1, y + h - 3); // right 463 p->drawLine(x + w - 1, y + 2, x + w - 1, y + h - 3); // right
464 p->drawLine(x + 2, y + h - 1, x + w - 3, y + h - 1); // bottom 464 p->drawLine(x + 2, y + h - 1, x + w - 3, y + h - 1); // bottom
465 p->drawPoint(x + 1, y + 1); 465 p->drawPoint(x + 1, y + 1);
466 p->drawPoint(x + 1, y + h - 2); 466 p->drawPoint(x + 1, y + h - 2);
467 p->drawPoint(x + w - 2, y + 1); 467 p->drawPoint(x + w - 2, y + 1);
468 p->drawPoint(x + w - 2, y + h - 2); 468 p->drawPoint(x + w - 2, y + h - 2);
469 469
470 // bevel 470 // bevel
471 if (sunken) 471 if (sunken)
472 p->setPen(g.mid()); 472 p->setPen(g.mid());
473 else 473 else
474 p->setPen(g.light()); 474 p->setPen(g.light());
475 475
476 p->drawLine(x + 1, y + 2, x + 1, y + h - 3); // left 476 p->drawLine(x + 1, y + 2, x + 1, y + h - 3); // left
477 p->drawLine(x + 2, y + 1, x + w - 3, y + 1); // top 477 p->drawLine(x + 2, y + 1, x + w - 3, y + 1); // top
478 478
479 if (sunken) 479 if (sunken)
480 p->setPen(g.light()); 480 p->setPen(g.light());
481 else 481 else
482 p->setPen(g.mid()); 482 p->setPen(g.mid());
483 483
484 p->drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); // right + 1 484 p->drawLine(x + w - 2, y + 2, x + w - 2, y + h - 3); // right + 1
485 p->drawLine(x + 2, y + h - 2, x + w - 3, y + h - 2); // bottom + 1 485 p->drawLine(x + 2, y + h - 2, x + w - 3, y + h - 2); // bottom + 1
486 486
487 // corners 487 // corners
488 p->setPen(g.background()); 488 p->setPen(g.background());
489 p->drawLine(x, y, x + 1, y); 489 p->drawLine(x, y, x + 1, y);
490 p->drawLine(x, y + h - 1, x + 1, y + h - 1); 490 p->drawLine(x, y + h - 1, x + 1, y + h - 1);
491 p->drawLine(x + w - 2, y, x + w - 1, y); 491 p->drawLine(x + w - 2, y, x + w - 1, y);
492 p->drawLine(x + w - 2, y + h - 1, x + w - 1, y + h - 1); 492 p->drawLine(x + w - 2, y + h - 1, x + w - 1, y + h - 1);
493 p->drawPoint(x, y + 1); 493 p->drawPoint(x, y + 1);
494 p->drawPoint(x, y + h - 2); 494 p->drawPoint(x, y + h - 2);
495 p->drawPoint(x + w - 1, y + 1); 495 p->drawPoint(x + w - 1, y + 1);
496 p->drawPoint(x + w - 1, y + h - 2); 496 p->drawPoint(x + w - 1, y + h - 2);
497 497
498 p->setPen(oldpen); 498 p->setPen(oldpen);
499 } else 499 } else
500 qDrawShadePanel(p, x, y, w, h, g, sunken, lw, fill); 500 qDrawShadePanel(p, x, y, w, h, g, sunken, lw, fill);
501} 501}
502 502
503 503
504void LightStyle::drawIndicator(QPainter *p, int x, int y ,int w, int h, 504void LightStyle::drawIndicator(QPainter *p, int x, int y ,int w, int h,
505 const QColorGroup &g, int state, 505 const QColorGroup &g, int state,
506 bool down, bool) 506 bool down, bool)
507{ 507{
508 drawButton(p, x, y, w, h, g, TRUE, 508 drawButton(p, x, y, w, h, g, TRUE,
509 &g.brush(down ? QColorGroup::Mid : QColorGroup::Base)); 509 &g.brush(down ? QColorGroup::Mid : QColorGroup::Base));
510 510
511 p->save(); 511 p->save();
512 512
513 p->setPen(g.foreground()); 513 p->setPen(g.foreground());
514 if (state == QButton::NoChange) { 514 if (state == QButton::NoChange) {
515 p->drawLine(x + 3, y + h / 2, x + w - 4, y + h / 2); 515 p->drawLine(x + 3, y + h / 2, x + w - 4, y + h / 2);
516 p->drawLine(x + 3, y + 1 + h / 2, x + w - 4, y + 1 + h / 2); 516 p->drawLine(x + 3, y + 1 + h / 2, x + w - 4, y + 1 + h / 2);
517 p->drawLine(x + 3, y - 1 + h / 2, x + w - 4, y - 1 + h / 2); 517 p->drawLine(x + 3, y - 1 + h / 2, x + w - 4, y - 1 + h / 2);
518 } else if (state == QButton::On) { 518 } else if (state == QButton::On) {
519 p->drawLine(x + 4, y + 3, x + w - 4, y + h - 5); 519 p->drawLine(x + 4, y + 3, x + w - 4, y + h - 5);
520 p->drawLine(x + 3, y + 3, x + w - 4, y + h - 4); 520 p->drawLine(x + 3, y + 3, x + w - 4, y + h - 4);
521 p->drawLine(x + 3, y + 4, x + w - 5, y + h - 4); 521 p->drawLine(x + 3, y + 4, x + w - 5, y + h - 4);
522 p->drawLine(x + 3, y + h - 5, x + w - 5, y + 3); 522 p->drawLine(x + 3, y + h - 5, x + w - 5, y + 3);
523 p->drawLine(x + 3, y + h - 4, x + w - 4, y + 3); 523 p->drawLine(x + 3, y + h - 4, x + w - 4, y + 3);
524 p->drawLine(x + 4, y + h - 4, x + w - 4, y + 4); 524 p->drawLine(x + 4, y + h - 4, x + w - 4, y + 4);
525 } 525 }
526 526
527 p->restore(); 527 p->restore();
528} 528}
529 529
530 530
531void LightStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int w, int h, 531void LightStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int w, int h,
532 const QColorGroup &g, bool on, 532 const QColorGroup &g, bool on,
533 bool down, bool) 533 bool down, bool)
534{ 534{
535 p->save(); 535 p->save();
536 536
537 p->fillRect(x, y, w, h, g.brush(QColorGroup::Background)); 537 p->fillRect(x, y, w, h, g.brush(QColorGroup::Background));
538 538
539 p->setPen(g.dark()); 539 p->setPen(g.dark());
540 p->drawArc(x, y, w, h, 0, 16*360); 540 p->drawArc(x, y, w, h, 0, 16*360);
541 p->setPen(g.mid()); 541 p->setPen(g.mid());
542 p->drawArc(x + 1, y + 1, w - 2, h - 2, 45*16, 180*16); 542 p->drawArc(x + 1, y + 1, w - 2, h - 2, 45*16, 180*16);
543 p->setPen(g.light()); 543 p->setPen(g.light());
544 p->drawArc(x + 1, y + 1, w - 2, h - 2, 235*16, 180*16); 544 p->drawArc(x + 1, y + 1, w - 2, h - 2, 235*16, 180*16);
545 545
546 p->setPen(down ? g.mid() : g.base()); 546 p->setPen(down ? g.mid() : g.base());
547 p->setBrush(down ? g.mid() : g.base()); 547 p->setBrush(down ? g.mid() : g.base());
548 p->drawEllipse(x + 2, y + 2, w - 4, h - 4); 548 p->drawEllipse(x + 2, y + 2, w - 4, h - 4);
549 549
550 if (on) { 550 if (on) {
551 p->setBrush(g.foreground()); 551 p->setBrush(g.foreground());
552 p->drawEllipse(x + 3, y + 3, w - x - 6, h - y - 6); 552 p->drawEllipse(x + 3, y + 3, w - x - 6, h - y - 6);
553 } 553 }
554 554
555 p->restore(); 555 p->restore();
556} 556}
557 557
558 558
559 559
560#if 1 560#if 1
561//copied from QPE style 561//copied from QPE style
562void LightStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected ) 562void LightStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected )
563{ 563{
564#if 0 564#if 0
565 //We can't do this, because QTabBar::focusInEvent redraws the 565 //We can't do this, because QTabBar::focusInEvent redraws the
566 // tab label with the default font. 566 // tab label with the default font.
567 QFont f = tb->font(); 567 QFont f = tb->font();
568 f.setBold( selected ); 568 f.setBold( selected );
569 p->setFont( f ); 569 p->setFont( f );
570#endif 570#endif
571 QRect r( t->rect() ); 571 QRect r( t->rect() );
572 if ( tb->shape() == QTabBar::RoundedAbove ) { 572 if ( tb->shape() == QTabBar::RoundedAbove ) {
573 p->setPen( tb->colorGroup().light() ); 573 p->setPen( tb->colorGroup().light() );
574 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 574 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
575 if ( r.left() == 0 ) 575 if ( r.left() == 0 )
576 p->drawPoint( tb->rect().bottomLeft() ); 576 p->drawPoint( tb->rect().bottomLeft() );
577 else { 577 else {
578 p->setPen( tb->colorGroup().light() ); 578 p->setPen( tb->colorGroup().light() );
579 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 579 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
580 } 580 }
581 581
582 if ( selected ) { 582 if ( selected ) {
583 p->setPen( tb->colorGroup().background() ); 583 p->setPen( tb->colorGroup().background() );
584 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 584 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
585 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2), 585 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2),
586 tb->colorGroup().brush( QColorGroup::Background )); 586 tb->colorGroup().brush( QColorGroup::Background ));
587 587
588 } else { 588 } else {
589 r.setRect( r.left() + 2, r.top() + 2, 589 r.setRect( r.left() + 2, r.top() + 2,
590 r.width() - 4, r.height() - 2 ); 590 r.width() - 4, r.height() - 2 );
591 p->setPen( tb->colorGroup().button() ); 591 p->setPen( tb->colorGroup().button() );
592 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 592 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
593 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3), 593 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3),
594 tb->colorGroup().brush( QColorGroup::Button )); 594 tb->colorGroup().brush( QColorGroup::Button ));
595 //do shading; will not work for pixmap brushes 595 //do shading; will not work for pixmap brushes
596 QColor bg = tb->colorGroup().button(); 596 QColor bg = tb->colorGroup().button();
597 // int h,s,v; 597 // int h,s,v;
598 // bg.hsv( &h, &s, &v ); 598 // bg.hsv( &h, &s, &v );
599 int n = r.height()/2; 599 int n = r.height()/2;
600 int dark = 100; 600 int dark = 100;
601 for ( int i = 1; i < n; i++ ) { 601 for ( int i = 1; i < n; i++ ) {
602 dark = (dark * (100+(i*15)/n) )/100; 602 dark = (dark * (100+(i*15)/n) )/100;
603 p->setPen( bg.dark( dark ) ); 603 p->setPen( bg.dark( dark ) );
604 int y = r.bottom()-n+i; 604 int y = r.bottom()-n+i;
605 int x1 = r.left()+1; 605 int x1 = r.left()+1;
606 int x2 = r.right()-1; 606 int x2 = r.right()-1;
607 p->drawLine( x1, y, x2, y ); 607 p->drawLine( x1, y, x2, y );
608 } 608 }
609 609
610 } 610 }
611 611
612 p->setPen( tb->colorGroup().light() ); 612 p->setPen( tb->colorGroup().light() );
613 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 ); 613 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 );
614 p->drawPoint( r.left()+1, r.top() + 1 ); 614 p->drawPoint( r.left()+1, r.top() + 1 );
615 p->drawLine( r.left()+2, r.top(), 615 p->drawLine( r.left()+2, r.top(),
616 r.right() - 2, r.top() ); 616 r.right() - 2, r.top() );
617 617
618 p->setPen( tb->colorGroup().dark() ); 618 p->setPen( tb->colorGroup().dark() );
619 p->drawPoint( r.right() - 1, r.top() + 1 ); 619 p->drawPoint( r.right() - 1, r.top() + 1 );
620 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1); 620 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1);
621 } else if ( tb->shape() == QTabBar::RoundedBelow ) { 621 } else if ( tb->shape() == QTabBar::RoundedBelow ) {
622 if ( selected ) { 622 if ( selected ) {
623 p->setPen( tb->colorGroup().background() ); 623 p->setPen( tb->colorGroup().background() );
624 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); 624 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 );
625 p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2), 625 p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2),
626 tb->palette().normal().brush( QColorGroup::Background )); 626 tb->palette().normal().brush( QColorGroup::Background ));
627 } else { 627 } else {
628 p->setPen( tb->colorGroup().dark() ); 628 p->setPen( tb->colorGroup().dark() );
629 p->drawLine( r.left(), r.top(), 629 p->drawLine( r.left(), r.top(),
630 r.right(), r.top() ); 630 r.right(), r.top() );
631 r.setRect( r.left() + 2, r.top(), 631 r.setRect( r.left() + 2, r.top(),
632 r.width() - 4, r.height() - 2 ); 632 r.width() - 4, r.height() - 2 );
633 p->setPen( tb->colorGroup().button() ); 633 p->setPen( tb->colorGroup().button() );
634 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); 634 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 );
635 p->fillRect( QRect( r.left()+1, r.top()+1, r.width()-2, r.height()-3), 635 p->fillRect( QRect( r.left()+1, r.top()+1, r.width()-2, r.height()-3),
636 tb->palette().normal().brush( QColorGroup::Button )); 636 tb->palette().normal().brush( QColorGroup::Button ));
637 } 637 }
638 638
639 p->setPen( tb->colorGroup().dark() ); 639 p->setPen( tb->colorGroup().dark() );
640 p->drawLine( r.right(), r.top(), 640 p->drawLine( r.right(), r.top(),
641 r.right(), r.bottom() - 2 ); 641 r.right(), r.bottom() - 2 );
642 p->drawPoint( r.right() - 1, r.bottom() - 1 ); 642 p->drawPoint( r.right() - 1, r.bottom() - 1 );
643 p->drawLine( r.right() - 2, r.bottom(), 643 p->drawLine( r.right() - 2, r.bottom(),
644 r.left() + 2, r.bottom() ); 644 r.left() + 2, r.bottom() );
645 645
646 p->setPen( tb->colorGroup().light() ); 646 p->setPen( tb->colorGroup().light() );
647 p->drawLine( r.left(), r.top()+1, 647 p->drawLine( r.left(), r.top()+1,
648 r.left(), r.bottom() - 2 ); 648 r.left(), r.bottom() - 2 );
649 p->drawPoint( r.left() + 1, r.bottom() - 1 ); 649 p->drawPoint( r.left() + 1, r.bottom() - 1 );
650 if ( r.left() == 0 ) 650 if ( r.left() == 0 )
651 p->drawPoint( tb->rect().topLeft() ); 651 p->drawPoint( tb->rect().topLeft() );
652 652
653 } else { 653 } else {
654 QCommonStyle::drawTab( p, tb, t, selected ); 654 QCommonStyle::drawTab( p, tb, t, selected );
655 } 655 }
656} 656}
657 657
658#else 658#else
659 659
660void LightStyle::drawTab(QPainter *p, const QTabBar *tabbar, QTab *tab, 660void LightStyle::drawTab(QPainter *p, const QTabBar *tabbar, QTab *tab,
661 bool selected) 661 bool selected)
662{ 662{
663 p->save(); 663 p->save();
664 664
665 QColorGroup g = tabbar->colorGroup(); 665 QColorGroup g = tabbar->colorGroup();
666 QRect fr(tab->r); 666 QRect fr(tab->r);
667 fr.setLeft(fr.left() + 2); 667 fr.setLeft(fr.left() + 2);
668 668
669 if (! selected) { 669 if (! selected) {
670 if (tabbar->shape() == QTabBar::RoundedAbove || 670 if (tabbar->shape() == QTabBar::RoundedAbove ||
671 tabbar->shape() == QTabBar::TriangularAbove) { 671 tabbar->shape() == QTabBar::TriangularAbove) {
672 672
673 fr.setTop(fr.top() + 2); 673 fr.setTop(fr.top() + 2);
674 } else { 674 } else {
675 fr.setBottom(fr.bottom() - 2); 675 fr.setBottom(fr.bottom() - 2);
676 } 676 }
677 } 677 }
678 678
679 QRegion tabr(tab->r); 679 QRegion tabr(tab->r);
680 680
681 QPointArray cliptri(4); 681 QPointArray cliptri(4);
682 cliptri.setPoint(0, fr.left(), fr.top()); 682 cliptri.setPoint(0, fr.left(), fr.top());
683 cliptri.setPoint(1, fr.left(), fr.top() + 5); 683 cliptri.setPoint(1, fr.left(), fr.top() + 5);
684 cliptri.setPoint(2, fr.left() + 5, fr.top()); 684 cliptri.setPoint(2, fr.left() + 5, fr.top());
685 cliptri.setPoint(3, fr.left(), fr.top()); 685 cliptri.setPoint(3, fr.left(), fr.top());
686 QRegion trir(cliptri); 686 QRegion trir(cliptri);
687 p->setClipRegion(tabr - trir); 687 p->setClipRegion(tabr - trir);
688 688
689 p->setPen( NoPen ); 689 p->setPen( NoPen );
690 p->setBrush(g.brush(selected ? QColorGroup::Background : QColorGroup::Mid)); 690 p->setBrush(g.brush(selected ? QColorGroup::Background : QColorGroup::Mid));
691 691
692 fr.setWidth(fr.width() - 1); 692 fr.setWidth(fr.width() - 1);
693 p->drawRect(fr.left() + 1, fr.top() + 1, fr.width() - 2, fr.height() - 2); 693 p->drawRect(fr.left() + 1, fr.top() + 1, fr.width() - 2, fr.height() - 2);
694 694
695 if (tabbar->shape() == QTabBar::RoundedAbove) { 695 if (tabbar->shape() == QTabBar::RoundedAbove) {
696 // "rounded" tabs on top 696 // "rounded" tabs on top
697 fr.setBottom(fr.bottom() - 1); 697 fr.setBottom(fr.bottom() - 1);
698 698
699 p->setPen(g.dark()); 699 p->setPen(g.dark());
700 p->drawLine(fr.left(), fr.top() + 5, fr.left(), fr.bottom() - 1); 700 p->drawLine(fr.left(), fr.top() + 5, fr.left(), fr.bottom() - 1);
701 p->drawLine(fr.left(), fr.top() + 5, fr.left() + 5, fr.top()); 701 p->drawLine(fr.left(), fr.top() + 5, fr.left() + 5, fr.top());
702 p->drawLine(fr.left() + 5, fr.top(), fr.right() - 1, fr.top()); 702 p->drawLine(fr.left() + 5, fr.top(), fr.right() - 1, fr.top());
703 p->drawLine(fr.right(), fr.top() + 1, fr.right(), fr.bottom() - 1); 703 p->drawLine(fr.right(), fr.top() + 1, fr.right(), fr.bottom() - 1);
704 704
705 if (selected) { 705 if (selected) {
706 p->drawLine(fr.right(), fr.bottom(), fr.right() + 2, fr.bottom()); 706 p->drawLine(fr.right(), fr.bottom(), fr.right() + 2, fr.bottom());
707 p->drawPoint(fr.left(), fr.bottom()); 707 p->drawPoint(fr.left(), fr.bottom());
708 } else 708 } else
709 p->drawLine(fr.left(), fr.bottom(), fr.right() + 2, fr.bottom()); 709 p->drawLine(fr.left(), fr.bottom(), fr.right() + 2, fr.bottom());
710 710
711 if (fr.left() == 2) { 711 if (fr.left() == 2) {
712 p->drawPoint(fr.left() - 1, fr.bottom() + 1); 712 p->drawPoint(fr.left() - 1, fr.bottom() + 1);
713 p->drawPoint(fr.left() - 2, fr.bottom() + 2); 713 p->drawPoint(fr.left() - 2, fr.bottom() + 2);
714 } 714 }
715 715
716 if (selected) { 716 if (selected) {
717 p->setPen(g.mid()); 717 p->setPen(g.mid());
718 p->drawLine(fr.right() - 1, fr.top() + 1, fr.right() - 1, fr.bottom() - 2); 718 p->drawLine(fr.right() - 1, fr.top() + 1, fr.right() - 1, fr.bottom() - 2);
719 } 719 }
720 720
721 p->setPen(g.light()); p->setPen(red); 721 p->setPen(g.light()); p->setPen(red);
722 p->drawLine(fr.left() + 1, fr.top() + 6, fr.left() + 1, 722 p->drawLine(fr.left() + 1, fr.top() + 6, fr.left() + 1,
723 fr.bottom() - (selected ? 0 : 1)); 723 fr.bottom() - (selected ? 0 : 1));
724 p->drawLine(fr.left() + 1, fr.top() + 5, fr.left() + 5, fr.top() + 1); 724 p->drawLine(fr.left() + 1, fr.top() + 5, fr.left() + 5, fr.top() + 1);
725 p->drawLine(fr.left() + 6, fr.top() + 1, fr.right() - 3, fr.top() + 1); 725 p->drawLine(fr.left() + 6, fr.top() + 1, fr.right() - 3, fr.top() + 1);
726 if (selected) { 726 if (selected) {
727 p->drawLine(fr.right() + 1, fr.bottom() + 1, 727 p->drawLine(fr.right() + 1, fr.bottom() + 1,
728 fr.right() + 2, fr.bottom() + 1); 728 fr.right() + 2, fr.bottom() + 1);
729 p->drawLine(fr.left(), fr.bottom() + 1, fr.left() + 1, fr.bottom() + 1); 729 p->drawLine(fr.left(), fr.bottom() + 1, fr.left() + 1, fr.bottom() + 1);
730 } else 730 } else
731 p->drawLine(fr.left(), fr.bottom() + 1, 731 p->drawLine(fr.left(), fr.bottom() + 1,
732 fr.right() + 2, fr.bottom() + 1); 732 fr.right() + 2, fr.bottom() + 1);
733 } else if (tabbar->shape() == QTabBar::RoundedBelow) { 733 } else if (tabbar->shape() == QTabBar::RoundedBelow) {
734 // "rounded" tabs on bottom 734 // "rounded" tabs on bottom
735 fr.setTop(fr.top() + 1); 735 fr.setTop(fr.top() + 1);
736 736
737 p->setPen(g.dark()); 737 p->setPen(g.dark());
738 p->drawLine(fr.left(), fr.top(), fr.left(), fr.bottom() - 1); 738 p->drawLine(fr.left(), fr.top(), fr.left(), fr.bottom() - 1);
739 p->drawLine(fr.left() + 1, fr.bottom(), fr.right() - 1, fr.bottom()); 739 p->drawLine(fr.left() + 1, fr.bottom(), fr.right() - 1, fr.bottom());
740 p->drawLine(fr.right(), fr.top(), fr.right(), fr.bottom() - 1); 740 p->drawLine(fr.right(), fr.top(), fr.right(), fr.bottom() - 1);
741 741
742 if (! selected) 742 if (! selected)
743 p->drawLine(fr.left(), fr.top(), fr.right() + 3, fr.top()); 743 p->drawLine(fr.left(), fr.top(), fr.right() + 3, fr.top());
744 else 744 else
745 p->drawLine(fr.right(), fr.top(), fr.right() + 3, fr.top()); 745 p->drawLine(fr.right(), fr.top(), fr.right() + 3, fr.top());
746 746
747 p->setPen(g.mid()); 747 p->setPen(g.mid());
748 if (selected) 748 if (selected)
749 p->drawLine(fr.right() - 1, fr.top() + 1, fr.right() - 1, fr.bottom() - 1); 749 p->drawLine(fr.right() - 1, fr.top() + 1, fr.right() - 1, fr.bottom() - 1);
750 else 750 else
751 p->drawLine(fr.left(), fr.top() - 1, fr.right() + 3, fr.top() - 1); 751 p->drawLine(fr.left(), fr.top() - 1, fr.right() + 3, fr.top() - 1);
752 752
753 p->setPen(g.light()); 753 p->setPen(g.light());
754 p->drawLine(fr.left() + 1, fr.top() + (selected ? -1 : 2), 754 p->drawLine(fr.left() + 1, fr.top() + (selected ? -1 : 2),
755 fr.left() + 1, fr.bottom() - 1); 755 fr.left() + 1, fr.bottom() - 1);
756 756
757 } else { 757 } else {
758 // triangular drawing code 758 // triangular drawing code
759 QCommonStyle::drawTab(p, tabbar, tab, selected); 759 QCommonStyle::drawTab(p, tabbar, tab, selected);
760 } 760 }
761 761
762 p->restore(); 762 p->restore();
763} 763}
764#endif 764#endif
765 765
766void LightStyle::drawSlider(QPainter *p, int x, int y, int w, int h, 766void LightStyle::drawSlider(QPainter *p, int x, int y, int w, int h,
767 const QColorGroup &g, Qt::Orientation orientation, 767 const QColorGroup &g, Qt::Orientation orientation,
768 bool above, bool below) 768 bool above, bool below)
769{ 769{
770 drawButton(p, x, y, w, h, g, FALSE, &g.brush(QColorGroup::Button)); 770 drawButton(p, x, y, w, h, g, FALSE, &g.brush(QColorGroup::Button));
771 771
772 if (orientation == Horizontal) { 772 if (orientation == Horizontal) {
773 if (above && below) { 773 if (above && below) {
774 drawArrow(p, Qt::UpArrow, FALSE, x + 1, y + 1, w, h / 2, g, TRUE); 774 drawArrow(p, Qt::UpArrow, FALSE, x + 1, y + 1, w, h / 2, g, TRUE);
775 drawArrow(p, Qt::DownArrow, FALSE, x + 1, y + (h / 2) - 1, 775 drawArrow(p, Qt::DownArrow, FALSE, x + 1, y + (h / 2) - 1,
776 w, h / 2, g, TRUE); 776 w, h / 2, g, TRUE);
777 } else 777 } else
778 drawArrow(p, (above) ? Qt::UpArrow : Qt::DownArrow, 778 drawArrow(p, (above) ? Qt::UpArrow : Qt::DownArrow,
779 FALSE, x + 1, y, w, h, g, TRUE); 779 FALSE, x + 1, y, w, h, g, TRUE);
780 } else { 780 } else {
781 if (above && below) { 781 if (above && below) {
782 drawArrow(p, Qt::LeftArrow, FALSE, x + 1, y, w / 2, h, g, TRUE); 782 drawArrow(p, Qt::LeftArrow, FALSE, x + 1, y, w / 2, h, g, TRUE);
783 drawArrow(p, Qt::RightArrow, FALSE, x + (w / 2) - 2, y, w / 2, h, g, TRUE); 783 drawArrow(p, Qt::RightArrow, FALSE, x + (w / 2) - 2, y, w / 2, h, g, TRUE);
784 } else 784 } else
785 drawArrow(p, (above) ? Qt::LeftArrow : Qt::RightArrow, 785 drawArrow(p, (above) ? Qt::LeftArrow : Qt::RightArrow,
786 FALSE, x, y, w, h, g, TRUE); 786 FALSE, x, y, w, h, g, TRUE);
787 } 787 }
788} 788}
789 789
790 790
791void LightStyle::drawSliderGroove(QPainter *p, int x, int y, int w, int h, 791void LightStyle::drawSliderGroove(QPainter *p, int x, int y, int w, int h,
792 const QColorGroup& g, QCOORD c, 792 const QColorGroup& g, QCOORD c,
793 Qt::Orientation orientation) 793 Qt::Orientation orientation)
794{ 794{
795 if (orientation == Horizontal) 795 if (orientation == Horizontal)
796 drawButton(p, x, y+c - 3, w, 6, g, TRUE, &g.brush(QColorGroup::Mid)); 796 drawButton(p, x, y+c - 3, w, 6, g, TRUE, &g.brush(QColorGroup::Mid));
797 else 797 else
798 drawButton(p, x+c - 3, y, 6, h, g, TRUE, &g.brush(QColorGroup::Mid)); 798 drawButton(p, x+c - 3, y, 6, h, g, TRUE, &g.brush(QColorGroup::Mid));
799} 799}
800 800
801 801
802void LightStyle::scrollBarMetrics(const QScrollBar *scrollbar, 802void LightStyle::scrollBarMetrics(const QScrollBar *scrollbar,
803 int &sliderMin, int &sliderMax, 803 int &sliderMin, int &sliderMax,
804 int &sliderLength, int &buttonDim) const 804 int &sliderLength, int &buttonDim)
805{ 805{
806 int maxLength; 806 int maxLength;
807 int length = ((scrollbar->orientation() == Horizontal) ? 807 int length = ((scrollbar->orientation() == Horizontal) ?
808 scrollbar->width() : scrollbar->height()); 808 scrollbar->width() : scrollbar->height());
809 int extent = ((scrollbar->orientation() == Horizontal) ? 809 int extent = ((scrollbar->orientation() == Horizontal) ?
810 scrollbar->height() : scrollbar->width()); 810 scrollbar->height() : scrollbar->width());
811 extent--; 811 extent--;
812 812
813 if (length > (extent + defaultFrameWidth() - 1) * 2 + defaultFrameWidth()) 813 if (length > (extent + defaultFrameWidth() - 1) * 2 + defaultFrameWidth())
814 buttonDim = extent - defaultFrameWidth(); 814 buttonDim = extent - defaultFrameWidth();
815 else 815 else
816 buttonDim = (length - defaultFrameWidth()) / 2 - 1; 816 buttonDim = (length - defaultFrameWidth()) / 2 - 1;
817 817
818 sliderMin = buttonDim; 818 sliderMin = buttonDim;
819 maxLength = length - buttonDim * 3; 819 maxLength = length - buttonDim * 3;
820 820
821 if (scrollbar->maxValue() != scrollbar->minValue()) { 821 if (scrollbar->maxValue() != scrollbar->minValue()) {
822 uint range = scrollbar->maxValue() - scrollbar->minValue(); 822 uint range = scrollbar->maxValue() - scrollbar->minValue();
823 sliderLength = (scrollbar->pageStep() * maxLength) / 823 sliderLength = (scrollbar->pageStep() * maxLength) /
824 (range + scrollbar->pageStep()); 824 (range + scrollbar->pageStep());
825 825
826 if (sliderLength < buttonDim || range > INT_MAX / 2) 826 if (sliderLength < buttonDim || range > INT_MAX / 2)
827 sliderLength = buttonDim; 827 sliderLength = buttonDim;
828 if (sliderLength > maxLength) 828 if (sliderLength > maxLength)
829 sliderLength = maxLength; 829 sliderLength = maxLength;
830 } else 830 } else
831 sliderLength = maxLength; 831 sliderLength = maxLength;
832 832
833 sliderMax = sliderMin + maxLength - sliderLength; 833 sliderMax = sliderMin + maxLength - sliderLength;
834} 834}
835 835
836 836
837QStyle::ScrollControl LightStyle::scrollBarPointOver(const QScrollBar *scrollbar, 837QStyle::ScrollControl LightStyle::scrollBarPointOver(const QScrollBar *scrollbar,
838 int sliderStart, const QPoint &p) 838 int sliderStart, const QPoint &p)
839{ 839{
840 if (! scrollbar->rect().contains(p)) 840 if (! scrollbar->rect().contains(p))
841 return NoScroll; 841 return NoScroll;
842 842
843 int sliderMin, sliderMax, sliderLength, buttonDim, pos; 843 int sliderMin, sliderMax, sliderLength, buttonDim, pos;
844 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim ); 844 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim );
845 845
846 if (scrollbar->orientation() == Horizontal) 846 if (scrollbar->orientation() == Horizontal)
847 pos = p.x(); 847 pos = p.x();
848 else 848 else
849 pos = p.y(); 849 pos = p.y();
850 850
851 if (pos < buttonDim) 851 if (pos < buttonDim)
852 return SubLine; 852 return SubLine;
853 if (pos < sliderStart) 853 if (pos < sliderStart)
854 return SubPage; 854 return SubPage;
855 if (pos < sliderStart + sliderLength) 855 if (pos < sliderStart + sliderLength)
856 return Slider; 856 return Slider;
857 if (pos < sliderMax + sliderLength) 857 if (pos < sliderMax + sliderLength)
858 return AddPage; 858 return AddPage;
859 if (pos < sliderMax + sliderLength + buttonDim) 859 if (pos < sliderMax + sliderLength + buttonDim)
860 return SubLine; 860 return SubLine;
861 return AddLine; 861 return AddLine;
862} 862}
863 863
864 864
865 865
866void LightStyle::drawScrollBarControls( QPainter* p, const QScrollBar* scrollbar, 866void LightStyle::drawScrollBarControls( QPainter* p, const QScrollBar* scrollbar,
867 int sliderStart, uint controls, 867 int sliderStart, uint controls,
868 uint activeControl ) 868 uint activeControl )
869{ 869{
870 QColorGroup g = scrollbar->colorGroup(); 870 QColorGroup g = scrollbar->colorGroup();
871 871
872 int sliderMin, sliderMax, sliderLength, buttonDim; 872 int sliderMin, sliderMax, sliderLength, buttonDim;
873 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim ); 873 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim );
874 874
875 if (sliderStart > sliderMax) { // sanity check 875 if (sliderStart > sliderMax) { // sanity check
876 sliderStart = sliderMax; 876 sliderStart = sliderMax;
877 } 877 }
878 878
879 QRect addR, subR, subR2, addPageR, subPageR, sliderR; 879 QRect addR, subR, subR2, addPageR, subPageR, sliderR;
880 int length = ((scrollbar->orientation() == Horizontal) ? 880 int length = ((scrollbar->orientation() == Horizontal) ?
881 scrollbar->width() : scrollbar->height()); 881 scrollbar->width() : scrollbar->height());
882 int extent = ((scrollbar->orientation() == Horizontal) ? 882 int extent = ((scrollbar->orientation() == Horizontal) ?
883 scrollbar->height() : scrollbar->width()); 883 scrollbar->height() : scrollbar->width());
884 884
885 885
886 int fudge = 3; //####disgusting hack 886 int fudge = 3; //####disgusting hack
887 887
888 if (scrollbar->orientation() == Horizontal) { 888 if (scrollbar->orientation() == Horizontal) {
889 subR.setRect(0, defaultFrameWidth(), 889 subR.setRect(0, defaultFrameWidth(),
890 buttonDim + fudge, buttonDim); 890 buttonDim + fudge, buttonDim);
891 subR2.setRect(length - (buttonDim * 2), defaultFrameWidth() , 891 subR2.setRect(length - (buttonDim * 2), defaultFrameWidth() ,
892 buttonDim, buttonDim); 892 buttonDim, buttonDim);
893 addR.setRect(length - buttonDim, defaultFrameWidth(), 893 addR.setRect(length - buttonDim, defaultFrameWidth(),
894 buttonDim, buttonDim); 894 buttonDim, buttonDim);
895 } else { 895 } else {
896 subR.setRect(defaultFrameWidth() + 1, 0, 896 subR.setRect(defaultFrameWidth() + 1, 0,
897 buttonDim, buttonDim + fudge); 897 buttonDim, buttonDim + fudge);
898 subR2.setRect(defaultFrameWidth() + 1, length - (buttonDim * 2), 898 subR2.setRect(defaultFrameWidth() + 1, length - (buttonDim * 2),
899 buttonDim, buttonDim); 899 buttonDim, buttonDim);
900 addR.setRect(defaultFrameWidth() + 1, length - buttonDim, 900 addR.setRect(defaultFrameWidth() + 1, length - buttonDim,
901 buttonDim, buttonDim); 901 buttonDim, buttonDim);
902 } 902 }
903 903
904 int sliderEnd = sliderStart + sliderLength; 904 int sliderEnd = sliderStart + sliderLength;
905 int sliderW = extent - defaultFrameWidth() - 1; 905 int sliderW = extent - defaultFrameWidth() - 1;
906 if (scrollbar->orientation() == Horizontal) { 906 if (scrollbar->orientation() == Horizontal) {
907 subPageR.setRect( subR.right() + 1, defaultFrameWidth(), 907 subPageR.setRect( subR.right() + 1, defaultFrameWidth(),
908 sliderStart - subR.right() - 1 , sliderW ); 908 sliderStart - subR.right() - 1 , sliderW );
909 addPageR.setRect( sliderEnd, defaultFrameWidth(), 909 addPageR.setRect( sliderEnd, defaultFrameWidth(),
910 subR2.left() - sliderEnd, sliderW ); 910 subR2.left() - sliderEnd, sliderW );
911 sliderR.setRect( sliderStart, defaultFrameWidth(), sliderLength, sliderW ); 911 sliderR.setRect( sliderStart, defaultFrameWidth(), sliderLength, sliderW );
912 } else { 912 } else {
913 subPageR.setRect( defaultFrameWidth(), subR.bottom() + 1, 913 subPageR.setRect( defaultFrameWidth(), subR.bottom() + 1,
914 sliderW, sliderStart - subR.bottom() - 1 ); 914 sliderW, sliderStart - subR.bottom() - 1 );
915 addPageR.setRect( defaultFrameWidth(), sliderEnd, 915 addPageR.setRect( defaultFrameWidth(), sliderEnd,
916 sliderW, subR2.top() - sliderEnd ); 916 sliderW, subR2.top() - sliderEnd );
917 sliderR .setRect( defaultFrameWidth(), sliderStart, 917 sliderR .setRect( defaultFrameWidth(), sliderStart,
918 sliderW, sliderLength ); 918 sliderW, sliderLength );
919 } 919 }
920 920
921 if ( controls == ( AddLine | SubLine | AddPage | SubPage | 921 if ( controls == ( AddLine | SubLine | AddPage | SubPage |
922 Slider | First | Last ) ) { 922 Slider | First | Last ) ) {
923 if (scrollbar->orientation() == Horizontal) 923 if (scrollbar->orientation() == Horizontal)
924 qDrawShadePanel(p, 0, 0, length, 2, g, TRUE, 1, 924 qDrawShadePanel(p, 0, 0, length, 2, g, TRUE, 1,
925 &g.brush(QColorGroup::Background)); 925 &g.brush(QColorGroup::Background));
926 else 926 else
927 qDrawShadePanel(p, 0, 0, 2, length, g, TRUE, 1, 927 qDrawShadePanel(p, 0, 0, 2, length, g, TRUE, 1,
928 &g.brush(QColorGroup::Background)); 928 &g.brush(QColorGroup::Background));
929 } 929 }
930 930
931 if ( controls & AddLine ) 931 if ( controls & AddLine )
932 drawArrow( p, (scrollbar->orientation() == Vertical) ? DownArrow : RightArrow, 932 drawArrow( p, (scrollbar->orientation() == Vertical) ? DownArrow : RightArrow,
933 FALSE, addR.x(), addR.y(), 933 FALSE, addR.x(), addR.y(),
934 addR.width(), addR.height(), 934 addR.width(), addR.height(),
935 (( activeControl == AddLine ) ? 935 (( activeControl == AddLine ) ?
936 singleton->hoverPalette.active() : g), 936 singleton->hoverPalette.active() : g),
937 TRUE, &g.brush(QColorGroup::Background)); 937 TRUE, &g.brush(QColorGroup::Background));
938 if ( controls & SubLine ) { 938 if ( controls & SubLine ) {
939 drawArrow( p, (scrollbar->orientation() == Vertical) ? UpArrow : LeftArrow, 939 drawArrow( p, (scrollbar->orientation() == Vertical) ? UpArrow : LeftArrow,
940 FALSE, subR.x(), subR.y(), 940 FALSE, subR.x(), subR.y(),
941 subR.width(), subR.height(), 941 subR.width(), subR.height(),
942 (( activeControl == SubLine ) ? 942 (( activeControl == SubLine ) ?
943 singleton->hoverPalette.active() : g), 943 singleton->hoverPalette.active() : g),
944 TRUE, &g.brush(QColorGroup::Background)); 944 TRUE, &g.brush(QColorGroup::Background));
945 drawArrow( p, (scrollbar->orientation() == Vertical) ? UpArrow : LeftArrow, 945 drawArrow( p, (scrollbar->orientation() == Vertical) ? UpArrow : LeftArrow,
946 FALSE, subR2.x(), subR2.y(), 946 FALSE, subR2.x(), subR2.y(),
947 subR2.width(), subR2.height(), 947 subR2.width(), subR2.height(),
948 (( activeControl == SubLine ) ? 948 (( activeControl == SubLine ) ?
949 singleton->hoverPalette.active() : g), 949 singleton->hoverPalette.active() : g),
950 TRUE, &g.brush(QColorGroup::Background)); 950 TRUE, &g.brush(QColorGroup::Background));
951 } 951 }
952 952
953 if ( controls & SubPage ) 953 if ( controls & SubPage )
954 p->fillRect( subPageR, 954 p->fillRect( subPageR,
955 ((activeControl == SubPage) ? 955 ((activeControl == SubPage) ?
956 g.brush( QColorGroup::Dark ) : 956 g.brush( QColorGroup::Dark ) :
957 g.brush( QColorGroup::Mid ))); 957 g.brush( QColorGroup::Mid )));
958 if ( controls & AddPage ) 958 if ( controls & AddPage )
959 p->fillRect( addPageR, 959 p->fillRect( addPageR,
960 ((activeControl == AddPage) ? 960 ((activeControl == AddPage) ?
961 g.brush( QColorGroup::Dark ) : 961 g.brush( QColorGroup::Dark ) :
962 g.brush( QColorGroup::Mid ))); 962 g.brush( QColorGroup::Mid )));
963 963
964 if ( controls & Slider ) { 964 if ( controls & Slider ) {
965 965
966 QPoint bo = p->brushOrigin(); 966 QPoint bo = p->brushOrigin();
967 p->setBrushOrigin(sliderR.topLeft()); 967 p->setBrushOrigin(sliderR.topLeft());
968 if ( sliderR.isValid() ) { 968 if ( sliderR.isValid() ) {
969 p->fillRect( sliderR.x(), sliderR.y(), 2, 2, 969 p->fillRect( sliderR.x(), sliderR.y(), 2, 2,
970 g.brush( QColorGroup::Mid )); 970 g.brush( QColorGroup::Mid ));
971 p->fillRect( sliderR.x() + sliderR.width() - 2, 971 p->fillRect( sliderR.x() + sliderR.width() - 2,
972 sliderR.y(), 2, 2, 972 sliderR.y(), 2, 2,
973 g.brush( QColorGroup::Mid )); 973 g.brush( QColorGroup::Mid ));
974 p->fillRect( sliderR.x() + sliderR.width() - 2, 974 p->fillRect( sliderR.x() + sliderR.width() - 2,
975 sliderR.y() + sliderR.height() - 2, 2, 2, 975 sliderR.y() + sliderR.height() - 2, 2, 2,
976 g.brush( QColorGroup::Mid )); 976 g.brush( QColorGroup::Mid ));
977 p->fillRect( sliderR.x(), 977 p->fillRect( sliderR.x(),
978 sliderR.y() + sliderR.height() - 2, 2, 2, 978 sliderR.y() + sliderR.height() - 2, 2, 2,
979 g.brush( QColorGroup::Mid )); 979 g.brush( QColorGroup::Mid ));
980 980
981 QColorGroup cg( g ); 981 QColorGroup cg( g );
982 cg.setBrush( QColorGroup::Background, g.brush( QColorGroup::Mid ) ); 982 cg.setBrush( QColorGroup::Background, g.brush( QColorGroup::Mid ) );
983 drawBevelButton( p, sliderR.x(), sliderR.y(), 983 drawBevelButton( p, sliderR.x(), sliderR.y(),
984 sliderR.width(), sliderR.height(), 984 sliderR.width(), sliderR.height(),
985 cg, FALSE, &g.brush( QColorGroup::Button ) ); 985 cg, FALSE, &g.brush( QColorGroup::Button ) );
986 } 986 }
987 987
988 p->setBrushOrigin(bo); 988 p->setBrushOrigin(bo);
989 } 989 }
990} 990}
991 991
992 992
993void LightStyle::drawToolBarHandle(QPainter *p, const QRect &rect, 993void LightStyle::drawToolBarHandle(QPainter *p, const QRect &rect,
994 Qt::Orientation orientation, 994 Qt::Orientation orientation,
995 bool, const QColorGroup &g, bool) 995 bool, const QColorGroup &g, bool)
996{ 996{
997 p->save(); 997 p->save();
998 p->setPen(g.mid()); 998 p->setPen(g.mid());
999 p->setBrush(g.brush(QColorGroup::Mid)); 999 p->setBrush(g.brush(QColorGroup::Mid));
1000 1000
1001 if (orientation == Qt::Horizontal) { 1001 if (orientation == Qt::Horizontal) {
1002 QRect l, r; 1002 QRect l, r;
1003 l.setRect(rect.x() + 1, rect.y() + 1, rect.width() - 5, rect.height() - 2); 1003 l.setRect(rect.x() + 1, rect.y() + 1, rect.width() - 5, rect.height() - 2);
1004 r.setRect(l.right() + 1, l.y(), 3, l.height()); 1004 r.setRect(l.right() + 1, l.y(), 3, l.height());
1005 1005
1006 p->drawRect(l); 1006 p->drawRect(l);
1007 qDrawShadePanel(p, r, g, FALSE); 1007 qDrawShadePanel(p, r, g, FALSE);
1008 } else { 1008 } else {
1009 QRect t, b; 1009 QRect t, b;
1010 t.setRect(rect.x() + 1, rect.y() + 1, rect.width() - 2, rect.height() - 5); 1010 t.setRect(rect.x() + 1, rect.y() + 1, rect.width() - 2, rect.height() - 5);
1011 b.setRect(t.x(), t.bottom() + 1, t.width(), 3); 1011 b.setRect(t.x(), t.bottom() + 1, t.width(), 3);
1012 1012
1013 p->drawRect(t); 1013 p->drawRect(t);
1014 qDrawShadePanel(p, b, g, FALSE); 1014 qDrawShadePanel(p, b, g, FALSE);
1015 } 1015 }
1016 1016
1017 p->restore(); 1017 p->restore();
1018} 1018}
1019 1019
1020 1020
1021bool LightStyle::eventFilter(QObject *object, QEvent *event) 1021bool LightStyle::eventFilter(QObject *object, QEvent *event)
1022{ 1022{
1023 switch(event->type()) { 1023 switch(event->type()) {
1024 case QEvent::Enter: 1024 case QEvent::Enter:
1025 { 1025 {
1026 if (! object->isWidgetType() || 1026 if (! object->isWidgetType() ||
1027 ! object->inherits("QPushButton")) 1027 ! object->inherits("QPushButton"))
1028 break; 1028 break;
1029 1029
1030 singleton->hoverWidget = (QWidget *) object; 1030 singleton->hoverWidget = (QWidget *) object;
1031 if (! singleton->hoverWidget->isEnabled()) { 1031 if (! singleton->hoverWidget->isEnabled()) {
1032 singleton->hoverWidget = 0; 1032 singleton->hoverWidget = 0;
1033 break; 1033 break;
1034 } 1034 }
1035 1035
1036 QPalette pal = singleton->hoverWidget->palette(); 1036 QPalette pal = singleton->hoverWidget->palette();
1037 if (singleton->hoverWidget->ownPalette()) 1037 if (singleton->hoverWidget->ownPalette())
1038 singleton->savePalette = new QPalette(pal); 1038 singleton->savePalette = new QPalette(pal);
1039 1039
1040 singleton->hoverWidget->setPalette(singleton->hoverPalette); 1040 singleton->hoverWidget->setPalette(singleton->hoverPalette);
1041 1041
1042 break; 1042 break;
1043 } 1043 }
1044 1044
1045 case QEvent::Leave: 1045 case QEvent::Leave:
1046 { 1046 {
1047 if (object != singleton->hoverWidget) 1047 if (object != singleton->hoverWidget)
1048 break; 1048 break;
1049 1049
1050 if (singleton->savePalette) { 1050 if (singleton->savePalette) {
1051 singleton->hoverWidget->setPalette(*(singleton->savePalette)); 1051 singleton->hoverWidget->setPalette(*(singleton->savePalette));
1052 delete singleton->savePalette; 1052 delete singleton->savePalette;
1053 singleton->savePalette = 0; 1053 singleton->savePalette = 0;
1054 } else 1054 } else
1055 singleton->hoverWidget->unsetPalette(); 1055 singleton->hoverWidget->unsetPalette();
1056 1056
1057 singleton->hoverWidget = 0; 1057 singleton->hoverWidget = 0;
1058 1058
1059 break; 1059 break;
1060 } 1060 }
1061 1061
1062 default: 1062 default:
1063 { 1063 {
1064 ; 1064 ;
1065 } 1065 }
1066 } 1066 }
1067 1067
1068 return QWindowsStyle::eventFilter(object, event); 1068 return QWindowsStyle::eventFilter(object, event);
1069} 1069}
1070 1070
1071 1071
1072 static const int motifItemFrame = 1;// menu item frame width 1072 static const int motifItemFrame = 1;// menu item frame width
1073 static const int motifSepHeight = 2;// separator item height 1073 static const int motifSepHeight = 2;// separator item height
1074 static const int motifItemHMargin = 1;// menu item hor text margin 1074 static const int motifItemHMargin = 1;// menu item hor text margin
1075 static const int motifItemVMargin = 2;// menu item ver text margin 1075 static const int motifItemVMargin = 2;// menu item ver text margin
1076 static const int motifArrowHMargin = 0;// arrow horizontal margin 1076 static const int motifArrowHMargin = 0;// arrow horizontal margin
1077 static const int motifTabSpacing = 12;// space between text and tab 1077 static const int motifTabSpacing = 12;// space between text and tab
1078 static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark 1078 static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark
1079 static const int windowsRightBorder= 8; // right border on windows 1079 static const int windowsRightBorder= 8; // right border on windows
1080static const int windowsCheckMarkWidth = 2; // checkmarks width on windows 1080static const int windowsCheckMarkWidth = 2; // checkmarks width on windows
1081 1081
1082/*! \reimp 1082/*! \reimp
1083*/ 1083*/
1084int LightStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) 1084int LightStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ )
1085{ 1085{
1086#ifndef QT_NO_MENUDATA 1086#ifndef QT_NO_MENUDATA
1087 int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm 1087 int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm
1088 1088
1089 if ( mi->isSeparator() ) 1089 if ( mi->isSeparator() )
1090 return 10; // arbitrary 1090 return 10; // arbitrary
1091 else if ( mi->pixmap() ) 1091 else if ( mi->pixmap() )
1092 w += mi->pixmap()->width();// pixmap only 1092 w += mi->pixmap()->width();// pixmap only
1093 1093
1094 if ( !mi->text().isNull() ) { 1094 if ( !mi->text().isNull() ) {
1095 if ( mi->text().find('\t') >= 0 )// string contains tab 1095 if ( mi->text().find('\t') >= 0 )// string contains tab
1096 w += motifTabSpacing; 1096 w += motifTabSpacing;
1097 } 1097 }
1098 1098
1099 if ( maxpmw ) { // we have iconsets 1099 if ( maxpmw ) { // we have iconsets
1100 w += maxpmw; 1100 w += maxpmw;
1101 w += 6; // add a little extra border around the iconset 1101 w += 6; // add a little extra border around the iconset
1102 } 1102 }
1103 1103
1104 if ( checkable && maxpmw < windowsCheckMarkWidth ) { 1104 if ( checkable && maxpmw < windowsCheckMarkWidth ) {
1105 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks 1105 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks
1106 } 1106 }
1107 1107
1108 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) 1108 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks)
1109 w += motifCheckMarkHMargin; // add space to separate the columns 1109 w += motifCheckMarkHMargin; // add space to separate the columns
1110 1110
1111 w += windowsRightBorder; // windows has a strange wide border on the right side 1111 w += windowsRightBorder; // windows has a strange wide border on the right side
1112 1112
1113 return w; 1113 return w;
1114#endif 1114#endif
1115} 1115}
1116 1116
1117/*! \reimp 1117/*! \reimp
1118*/ 1118*/
1119int LightStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) 1119int LightStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm )
1120{ 1120{
1121#ifndef QT_NO_MENUDATA 1121#ifndef QT_NO_MENUDATA
1122 int h = 0; 1122 int h = 0;
1123 if ( mi->isSeparator() ) // separator height 1123 if ( mi->isSeparator() ) // separator height
1124 h = motifSepHeight; 1124 h = motifSepHeight;
1125 else if ( mi->pixmap() ) // pixmap height 1125 else if ( mi->pixmap() ) // pixmap height
1126 h = mi->pixmap()->height() + 2*motifItemFrame; 1126 h = mi->pixmap()->height() + 2*motifItemFrame;
1127 else // text height 1127 else // text height
1128 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame; 1128 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame;
1129 1129
1130 if ( !mi->isSeparator() && mi->iconSet() != 0 ) { 1130 if ( !mi->isSeparator() && mi->iconSet() != 0 ) {
1131 h = QMAX( h, mi->iconSet()->pixmap().height() + 2*motifItemFrame ); 1131 h = QMAX( h, mi->iconSet()->pixmap().height() + 2*motifItemFrame );
1132 } 1132 }
1133 if ( mi->custom() ) 1133 if ( mi->custom() )
1134 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; 1134 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1;
1135 return h; 1135 return h;
1136#endif 1136#endif
1137} 1137}
1138 1138
1139void LightStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 1139void LightStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
1140 const QPalette& pal, 1140 const QPalette& pal,
1141 bool act, bool enabled, int x, int y, int w, int h) 1141 bool act, bool enabled, int x, int y, int w, int h)
1142{ 1142{
1143#ifndef QT_NO_MENUDATA 1143#ifndef QT_NO_MENUDATA
1144 const QColorGroup & g = pal.active(); 1144 const QColorGroup & g = pal.active();
1145 bool dis = !enabled; 1145 bool dis = !enabled;
1146 QColorGroup itemg = dis ? pal.disabled() : pal.active(); 1146 QColorGroup itemg = dis ? pal.disabled() : pal.active();
1147 1147
1148 if ( checkable ) 1148 if ( checkable )
1149 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks 1149 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks
1150 1150
1151 int checkcol = maxpmw; 1151 int checkcol = maxpmw;
1152 1152
1153 if ( mi && mi->isSeparator() ) { // draw separator 1153 if ( mi && mi->isSeparator() ) { // draw separator
1154 p->setPen( g.dark() ); 1154 p->setPen( g.dark() );
1155 p->drawLine( x, y, x+w, y ); 1155 p->drawLine( x, y, x+w, y );
1156 p->setPen( g.light() ); 1156 p->setPen( g.light() );
1157 p->drawLine( x, y+1, x+w, y+1 ); 1157 p->drawLine( x, y+1, x+w, y+1 );
1158 return; 1158 return;
1159 } 1159 }
1160 1160
1161 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 1161 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
1162 g.brush( QColorGroup::Button ); 1162 g.brush( QColorGroup::Button );
1163 p->fillRect( x, y, w, h, fill); 1163 p->fillRect( x, y, w, h, fill);
1164 1164
1165 if ( !mi ) 1165 if ( !mi )
1166 return; 1166 return;
1167 1167
1168 if ( mi->isChecked() ) { 1168 if ( mi->isChecked() ) {
1169 if ( act && !dis ) { 1169 if ( act && !dis ) {
1170 qDrawShadePanel( p, x, y, checkcol, h, 1170 qDrawShadePanel( p, x, y, checkcol, h,
1171 g, TRUE, 1, &g.brush( QColorGroup::Button ) ); 1171 g, TRUE, 1, &g.brush( QColorGroup::Button ) );
1172 } else { 1172 } else {
1173 qDrawShadePanel( p, x, y, checkcol, h, 1173 qDrawShadePanel( p, x, y, checkcol, h,
1174 g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); 1174 g, TRUE, 1, &g.brush( QColorGroup::Midlight ) );
1175 } 1175 }
1176 } else if ( !act ) { 1176 } else if ( !act ) {
1177 p->fillRect(x, y, checkcol , h, 1177 p->fillRect(x, y, checkcol , h,
1178 g.brush( QColorGroup::Button )); 1178 g.brush( QColorGroup::Button ));
1179 } 1179 }
1180 1180
1181 if ( mi->iconSet() ) { // draw iconset 1181 if ( mi->iconSet() ) { // draw iconset
1182 QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; 1182 QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal;
1183 if (act && !dis ) 1183 if (act && !dis )
1184 mode = QIconSet::Active; 1184 mode = QIconSet::Active;
1185 QPixmap pixmap; 1185 QPixmap pixmap;
1186 if ( mode == QIconSet::Disabled ) 1186 if ( mode == QIconSet::Disabled )
1187 pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode ); 1187 pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode );
1188 else 1188 else
1189 pixmap = mi->iconSet()->pixmap(); 1189 pixmap = mi->iconSet()->pixmap();
1190 int pixw = pixmap.width(); 1190 int pixw = pixmap.width();
1191 int pixh = pixmap.height(); 1191 int pixh = pixmap.height();
1192 if ( act && !dis ) { 1192 if ( act && !dis ) {
1193 if ( !mi->isChecked() ) 1193 if ( !mi->isChecked() )
1194 qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); 1194 qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) );
1195 } 1195 }
1196 QRect cr( x, y, checkcol, h ); 1196 QRect cr( x, y, checkcol, h );
1197 QRect pmr( 0, 0, pixw, pixh ); 1197 QRect pmr( 0, 0, pixw, pixh );
1198 pmr.moveCenter( cr.center() ); 1198 pmr.moveCenter( cr.center() );
1199 p->setPen( itemg.text() ); 1199 p->setPen( itemg.text() );
1200 p->drawPixmap( pmr.topLeft(), pixmap ); 1200 p->drawPixmap( pmr.topLeft(), pixmap );
1201 1201
1202 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 1202 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
1203 g.brush( QColorGroup::Button ); 1203 g.brush( QColorGroup::Button );
1204 p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); 1204 p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill);
1205 } else if ( checkable ) {// just "checking"... 1205 } else if ( checkable ) {// just "checking"...
1206 int mw = checkcol + motifItemFrame; 1206 int mw = checkcol + motifItemFrame;
1207 int mh = h - 2*motifItemFrame; 1207 int mh = h - 2*motifItemFrame;
1208 if ( mi->isChecked() ) { 1208 if ( mi->isChecked() ) {
1209 drawCheckMark( p, x + motifItemFrame + 2, 1209 drawCheckMark( p, x + motifItemFrame + 2,
1210 y+motifItemFrame, mw, mh, itemg, act, dis ); 1210 y+motifItemFrame, mw, mh, itemg, act, dis );
1211 } 1211 }
1212 } 1212 }
1213 1213
1214 p->setPen( act ? g.highlightedText() : g.buttonText() ); 1214 p->setPen( act ? g.highlightedText() : g.buttonText() );
1215 1215
1216 QColor discol; 1216 QColor discol;
1217 if ( dis ) { 1217 if ( dis ) {
1218 discol = itemg.text(); 1218 discol = itemg.text();
1219 p->setPen( discol ); 1219 p->setPen( discol );
1220 } 1220 }
1221 1221
1222 int xm = motifItemFrame + checkcol + motifItemHMargin; 1222 int xm = motifItemFrame + checkcol + motifItemHMargin;
1223 1223
1224 if ( mi->custom() ) { 1224 if ( mi->custom() ) {
1225 int m = motifItemVMargin; 1225 int m = motifItemVMargin;
1226 p->save(); 1226 p->save();
1227 if ( dis && !act ) { 1227 if ( dis && !act ) {
1228 p->setPen( g.light() ); 1228 p->setPen( g.light() );
1229 mi->custom()->paint( p, itemg, act, enabled, 1229 mi->custom()->paint( p, itemg, act, enabled,
1230 x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); 1230 x+xm+1, y+m+1, w-xm-tab+1, h-2*m );
1231 p->setPen( discol ); 1231 p->setPen( discol );
1232 } 1232 }
1233 mi->custom()->paint( p, itemg, act, enabled, 1233 mi->custom()->paint( p, itemg, act, enabled,
1234 x+xm, y+m, w-xm-tab+1, h-2*m ); 1234 x+xm, y+m, w-xm-tab+1, h-2*m );
1235 p->restore(); 1235 p->restore();
1236 } 1236 }
1237 QString s = mi->text(); 1237 QString s = mi->text();
1238 if ( !s.isNull() ) { // draw text 1238 if ( !s.isNull() ) { // draw text
1239 int t = s.find( '\t' ); 1239 int t = s.find( '\t' );
1240 int m = motifItemVMargin; 1240 int m = motifItemVMargin;
1241 const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; 1241 const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine;
1242 if ( t >= 0 ) { // draw tab text 1242 if ( t >= 0 ) { // draw tab text
1243 if ( dis && !act ) { 1243 if ( dis && !act ) {
1244 p->setPen( g.light() ); 1244 p->setPen( g.light() );
1245 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, 1245 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1,
1246 y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); 1246 y+m+1, tab, h-2*m, text_flags, s.mid( t+1 ));
1247 p->setPen( discol ); 1247 p->setPen( discol );
1248 } 1248 }
1249 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame, 1249 p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame,
1250 y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); 1250 y+m, tab, h-2*m, text_flags, s.mid( t+1 ) );
1251 } 1251 }
1252 if ( dis && !act ) { 1252 if ( dis && !act ) {
1253 p->setPen( g.light() ); 1253 p->setPen( g.light() );
1254 p->drawText( x+xm+1, y+m+1, w-xm+1, h-2*m, text_flags, s, t ); 1254 p->drawText( x+xm+1, y+m+1, w-xm+1, h-2*m, text_flags, s, t );
1255 p->setPen( discol ); 1255 p->setPen( discol );
1256 } 1256 }
1257 p->drawText( x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t ); 1257 p->drawText( x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t );
1258 } else if ( mi->pixmap() ) { // draw pixmap 1258 } else if ( mi->pixmap() ) { // draw pixmap
1259 QPixmap *pixmap = mi->pixmap(); 1259 QPixmap *pixmap = mi->pixmap();
1260 if ( pixmap->depth() == 1 ) 1260 if ( pixmap->depth() == 1 )
1261 p->setBackgroundMode( OpaqueMode ); 1261 p->setBackgroundMode( OpaqueMode );
1262 p->drawPixmap( x+xm, y+motifItemFrame, *pixmap ); 1262 p->drawPixmap( x+xm, y+motifItemFrame, *pixmap );
1263 if ( pixmap->depth() == 1 ) 1263 if ( pixmap->depth() == 1 )
1264 p->setBackgroundMode( TransparentMode ); 1264 p->setBackgroundMode( TransparentMode );
1265 } 1265 }
1266 if ( mi->popup() ) { // draw sub menu arrow 1266 if ( mi->popup() ) { // draw sub menu arrow
1267 int dim = (h-2*motifItemFrame) / 2; 1267 int dim = (h-2*motifItemFrame) / 2;
1268 if ( act ) { 1268 if ( act ) {
1269 if ( !dis ) 1269 if ( !dis )
1270 discol = white; 1270 discol = white;
1271 QColorGroup g2( discol, g.highlight(), 1271 QColorGroup g2( discol, g.highlight(),
1272 white, white, 1272 white, white,
1273 dis ? discol : white, 1273 dis ? discol : white,
1274 discol, white ); 1274 discol, white );
1275 drawArrow( p, RightArrow, FALSE, 1275 drawArrow( p, RightArrow, FALSE,
1276 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2, 1276 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2,
1277 dim, dim, g2, TRUE ); 1277 dim, dim, g2, TRUE );
1278 } else { 1278 } else {
1279 drawArrow( p, RightArrow, 1279 drawArrow( p, RightArrow,
1280 FALSE, 1280 FALSE,
1281 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2, 1281 x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2,
1282 dim, dim, g, mi->isEnabled() ); 1282 dim, dim, g, mi->isEnabled() );
1283 } 1283 }
1284 } 1284 }
1285#endif 1285#endif
1286} 1286}
1287 1287
1288#endif 1288#endif