summaryrefslogtreecommitdiff
authoralwin <alwin>2005-03-07 09:42:21 (UTC)
committer alwin <alwin>2005-03-07 09:42:21 (UTC)
commitd6fc7417f752867c14a0b6555c32f2d768736fe8 (patch) (unidiff)
tree29b1780ed157b799cbcf8133f846b74da248e8e5
parentf312f32d624c6198c63890e141e8658bc492cf37 (diff)
downloadopie-d6fc7417f752867c14a0b6555c32f2d768736fe8.zip
opie-d6fc7417f752867c14a0b6555c32f2d768736fe8.tar.gz
opie-d6fc7417f752867c14a0b6555c32f2d768736fe8.tar.bz2
applied patch from Paul Eggleton
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/phase/phasestyle.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/styles/phase/phasestyle.cpp b/noncore/styles/phase/phasestyle.cpp
index 906ccee..746354e 100644
--- a/noncore/styles/phase/phasestyle.cpp
+++ b/noncore/styles/phase/phasestyle.cpp
@@ -1,947 +1,947 @@
1////////////////////////////////////////////////////////////////////////////// 1//////////////////////////////////////////////////////////////////////////////
2// phasestyle.h 2// phasestyle.h
3// ------------------- 3// -------------------
4// A style for KDE 4// A style for KDE
5// ------------------- 5// -------------------
6// Copyright (c) 2004 David Johnson <david@usermode.org> 6// Copyright (c) 2004 David Johnson <david@usermode.org>
7// 7//
8// Permission is hereby granted, free of charge, to any person obtaining a copy 8// Permission is hereby granted, free of charge, to any person obtaining a copy
9// of this software and associated documentation files (the "Software"), to 9// of this software and associated documentation files (the "Software"), to
10// deal in the Software without restriction, including without limitation the 10// deal in the Software without restriction, including without limitation the
11// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 11// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12// sell copies of the Software, and to permit persons to whom the Software is 12// sell copies of the Software, and to permit persons to whom the Software is
13// furnished to do so, subject to the following conditions: 13// furnished to do so, subject to the following conditions:
14// 14//
15// The above copyright notice and this permission notice shall be included in 15// The above copyright notice and this permission notice shall be included in
16// all copies or substantial portions of the Software. 16// all copies or substantial portions of the Software.
17// 17//
18// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 23// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24// IN THE SOFTWARE. 24// IN THE SOFTWARE.
25////////////////////////////////////////////////////////////////////////////// 25//////////////////////////////////////////////////////////////////////////////
26 26
27#include "phasestyle.h" 27#include "phasestyle.h"
28 28
29#include "bitmaps.h" 29#include "bitmaps.h"
30 30
31#define INCLUDE_MENUITEM_DEF 31#define INCLUDE_MENUITEM_DEF
32#include <qpopupmenu.h> 32#include <qpopupmenu.h>
33#include <qpushbutton.h> 33#include <qpushbutton.h>
34#include <qtoolbutton.h> 34#include <qtoolbutton.h>
35#include <qpainter.h> 35#include <qpainter.h>
36#include <qbrush.h> 36#include <qbrush.h>
37#include <qiconset.h> 37#include <qiconset.h>
38#include <qtabbar.h> 38#include <qtabbar.h>
39#include <qscrollbar.h> 39#include <qscrollbar.h>
40 40
41 41
42/* Spacing and sizeHint */ 42/* Spacing and sizeHint */
43static unsigned contrast = 110; 43static unsigned contrast = 110;
44 44
45static const int ITEMFRAME = 1; // menu stuff 45static const int ITEMFRAME = 1; // menu stuff
46static const int ITEMHMARGIN = 3; 46static const int ITEMHMARGIN = 3;
47static const int ITEMVMARGIN = 0; 47static const int ITEMVMARGIN = 0;
48 48
49static const int ARROWMARGIN = 6; 49static const int ARROWMARGIN = 6;
50static const int RIGHTBORDER = 10; 50static const int RIGHTBORDER = 10;
51static const int MINICONSIZE = 12; 51static const int MINICONSIZE = 12;
52static const int CHECKSIZE = 9; 52static const int CHECKSIZE = 9;
53static const int SCROLLBAR_EXTENT = 12; 53static const int SCROLLBAR_EXTENT = 12;
54 54
55 55
56/* 56/*
57 * Copyright (C) 1999 Daniel M. Duley <mosfet@kde.org> 57 * Copyright (C) 1999 Daniel M. Duley <mosfet@kde.org>
58 * LGPLv2 from kdelibs/kdefx/kdrawutil.cpp 58 * LGPLv2 from kdelibs/kdefx/kdrawutil.cpp
59 */ 59 */
60void kColorBitmaps(QPainter *p, const QColorGroup &g, int x, int y, 60void kColorBitmaps(QPainter *p, const QColorGroup &g, int x, int y,
61 QBitmap *lightColor, QBitmap *midColor, 61 QBitmap *lightColor, QBitmap *midColor,
62 QBitmap *midlightColor, QBitmap *darkColor, 62 QBitmap *midlightColor, QBitmap *darkColor,
63 QBitmap *blackColor, QBitmap *whiteColor) 63 QBitmap *blackColor, QBitmap *whiteColor)
64{ 64{
65 QBitmap *bitmaps[]={lightColor, midColor, midlightColor, darkColor, 65 QBitmap *bitmaps[]={lightColor, midColor, midlightColor, darkColor,
66 blackColor, whiteColor}; 66 blackColor, whiteColor};
67 67
68 QColor colors[]={g.light(), g.mid(), g.midlight(), g.dark(), 68 QColor colors[]={g.light(), g.mid(), g.midlight(), g.dark(),
69 Qt::black, Qt::white}; 69 Qt::black, Qt::white};
70 70
71 int i; 71 int i;
72 for(i=0; i < 6; ++i){ 72 for(i=0; i < 6; ++i){
73 if(bitmaps[i]){ 73 if(bitmaps[i]){
74 if(!bitmaps[i]->mask()) 74 if(!bitmaps[i]->mask())
75 bitmaps[i]->setMask(*bitmaps[i]); 75 bitmaps[i]->setMask(*bitmaps[i]);
76 p->setPen(colors[i]); 76 p->setPen(colors[i]);
77 p->drawPixmap(x, y, *bitmaps[i]); 77 p->drawPixmap(x, y, *bitmaps[i]);
78 } 78 }
79 } 79 }
80} 80}
81 81
82 82
83/* 83/*
84 * drawMenuBarItem is not virtual 84 * drawMenuBarItem is not virtual
85 * this way we define our draw handler 85 * this way we define our draw handler
86 */ 86 */
87typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, 87typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *,
88 QColorGroup &, bool, bool); 88 QColorGroup &, bool, bool);
89 89
90extern QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl); 90extern QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl);
91 91
92 92
93PhaseStyle::PhaseStyle() 93PhaseStyle::PhaseStyle()
94 : QWindowsStyle() 94 : QWindowsStyle()
95{ 95{
96 setName( "PhaseStyle" ); 96 setName( "PhaseStyle" );
97 97
98 /* small default sizes */ 98 /* small default sizes */
99 setButtonDefaultIndicatorWidth(1); 99 setButtonDefaultIndicatorWidth(1);
100 setScrollBarExtent(SCROLLBAR_EXTENT, SCROLLBAR_EXTENT); 100 setScrollBarExtent(SCROLLBAR_EXTENT, SCROLLBAR_EXTENT);
101 setSliderThickness(12); 101 setSliderThickness(12);
102 setButtonMargin( 1 ); 102 setButtonMargin( 1 );
103 103
104 // create bitmaps 104 // create bitmaps
105 uarrow = QBitmap(6, 6, uarrow_bits, true); 105 uarrow = QBitmap(6, 6, uarrow_bits, true);
106 uarrow.setMask(uarrow); 106 uarrow.setMask(uarrow);
107 darrow = QBitmap(6, 6, darrow_bits, true); 107 darrow = QBitmap(6, 6, darrow_bits, true);
108 darrow.setMask(darrow); 108 darrow.setMask(darrow);
109 larrow = QBitmap(6, 6, larrow_bits, true); 109 larrow = QBitmap(6, 6, larrow_bits, true);
110 larrow.setMask(larrow); 110 larrow.setMask(larrow);
111 rarrow = QBitmap(6, 6, rarrow_bits, true); 111 rarrow = QBitmap(6, 6, rarrow_bits, true);
112 rarrow.setMask(rarrow); 112 rarrow.setMask(rarrow);
113 bplus = QBitmap(6, 6, bplus_bits, true); 113 bplus = QBitmap(6, 6, bplus_bits, true);
114 bplus.setMask(bplus); 114 bplus.setMask(bplus);
115 bminus = QBitmap(6, 6, bminus_bits, true); 115 bminus = QBitmap(6, 6, bminus_bits, true);
116 bminus.setMask(bminus); 116 bminus.setMask(bminus);
117 bcheck = QBitmap(9, 9, bcheck_bits, true); 117 bcheck = QBitmap(9, 9, bcheck_bits, true);
118 bcheck.setMask(bcheck); 118 bcheck.setMask(bcheck);
119 dexpand = QBitmap(9, 9, dexpand_bits, true); 119 dexpand = QBitmap(9, 9, dexpand_bits, true);
120 dexpand.setMask(dexpand); 120 dexpand.setMask(dexpand);
121 rexpand = QBitmap(9, 9, rexpand_bits, true); 121 rexpand = QBitmap(9, 9, rexpand_bits, true);
122 rexpand.setMask(rexpand); 122 rexpand.setMask(rexpand);
123 doodad_mid = QBitmap(4, 4, doodad_mid_bits, true); 123 doodad_mid = QBitmap(4, 4, doodad_mid_bits, true);
124 doodad_light = QBitmap(4, 4, doodad_light_bits, true); 124 doodad_light = QBitmap(4, 4, doodad_light_bits, true);
125} 125}
126 126
127PhaseStyle::~PhaseStyle() { 127PhaseStyle::~PhaseStyle() {
128 /* deleted by Qt */ 128 /* deleted by Qt */
129} 129}
130 130
131void PhaseStyle::drawCheckMark ( QPainter * p, int x, int y, int w, 131void PhaseStyle::drawCheckMark ( QPainter * p, int x, int y, int w,
132 int h, const QColorGroup & g, 132 int h, const QColorGroup & g,
133 bool , bool) { 133 bool , bool) {
134 p->setPen(g.text()); 134 p->setPen(g.text());
135 p->drawPixmap(x+w/2-4, y+h/2-4, bcheck); 135 p->drawPixmap(x+w/2-4, y+h/2-4, bcheck);
136} 136}
137 137
138void PhaseStyle::drawArrow(QPainter *painter, Qt::ArrowType type, bool down, 138void PhaseStyle::drawArrow(QPainter *painter, Qt::ArrowType type, bool down,
139 int x, int y, int w, int h, const QColorGroup &group, 139 int x, int y, int w, int h, const QColorGroup &group,
140 bool enabled , const QBrush * ) { 140 bool enabled , const QBrush * ) {
141 switch( type ) { 141 switch( type ) {
142 case UpArrow: 142 case UpArrow:
143 if (enabled) 143 if (enabled)
144 painter->setPen(down ? group.midlight() : group.dark()); 144 painter->setPen(down ? group.midlight() : group.dark());
145 else painter->setPen(group.mid()); 145 else painter->setPen(group.mid());
146 painter->drawPixmap(x+w/2-3, y+h/2-3, uarrow); 146 painter->drawPixmap(x+w/2-3, y+h/2-3, uarrow);
147 break; 147 break;
148 case DownArrow: 148 case DownArrow:
149 if (enabled) painter->setPen(down ? group.midlight() : group.dark()); 149 if (enabled) painter->setPen(down ? group.midlight() : group.dark());
150 else painter->setPen(group.mid()); 150 else painter->setPen(group.mid());
151 painter->drawPixmap(x+w/2-3, y+h/2-3, darrow); 151 painter->drawPixmap(x+w/2-3, y+h/2-3, darrow);
152 break; 152 break;
153 case LeftArrow: 153 case LeftArrow:
154 if (enabled) painter->setPen(down ? group.midlight() : group.dark()); 154 if (enabled) painter->setPen(down ? group.midlight() : group.dark());
155 else painter->setPen(group.mid()); 155 else painter->setPen(group.mid());
156 painter->drawPixmap(x+w/2-3, y+h/2-3, larrow); 156 painter->drawPixmap(x+w/2-3, y+h/2-3, larrow);
157 break; 157 break;
158 case RightArrow: 158 case RightArrow:
159 if (enabled) painter->setPen(down ? group.midlight() : group.dark()); 159 if (enabled) painter->setPen(down ? group.midlight() : group.dark());
160 else painter->setPen(group.mid()); 160 else painter->setPen(group.mid());
161 painter->drawPixmap(x+w/2-3, y+h/2-3, rarrow); 161 painter->drawPixmap(x+w/2-3, y+h/2-3, rarrow);
162 break; 162 break;
163 } 163 }
164} 164}
165 165
166void PhaseStyle::drawPushButton(QPushButton *btn, QPainter *painter) { 166void PhaseStyle::drawPushButton(QPushButton *btn, QPainter *painter) {
167 QRect r = btn->rect(); 167 QRect r = btn->rect();
168 int x = r.x(); 168 int x = r.x();
169 int y = r.y(); 169 int y = r.y();
170 int h = r.height(); 170 int h = r.height();
171 int w = r.width(); 171 int w = r.width();
172 bool depress = btn->isOn() || btn->isDown(); 172 bool depress = btn->isOn() || btn->isDown();
173 QColorGroup group = btn->colorGroup(); 173 QColorGroup group = btn->colorGroup();
174 QBrush brush(group.button() ); 174 QBrush brush(group.button() );
175// int bd = pixelMetric(PM_ButtonDefaultIndicator, widget) + 1; 175// int bd = pixelMetric(PM_ButtonDefaultIndicator, widget) + 1;
176 static int bd = 2; 176 static int bd = 2;
177 177
178 if (btn->isDefault() && !depress) { 178 if (btn->isDefault() && !depress) {
179 drawPanel(painter, x, y, h, w, group, 179 drawPanel(painter, x, y, w, h, group,
180 &group.brush(QColorGroup::Mid), true); 180 &group.brush(QColorGroup::Mid), true);
181 drawBevelButton(painter, x+bd, y+bd, w-bd*2, h-bd*2, group, 181 drawBevelButton(painter, x+bd, y+bd, w-bd*2, h-bd*2, group,
182 false, &brush ); 182 false, &brush );
183 } else { 183 } else {
184 drawButton(painter, x, y, w, h, group, depress, 184 drawButton(painter, x, y, w, h, group, depress,
185 &brush ); 185 &brush );
186 } 186 }
187 187
188 if (btn->hasFocus() ) { // draw focus 188 if (btn->hasFocus() ) { // draw focus
189 QColor col; 189 QColor col;
190 drawFocusRect(painter, r, group, 190 drawFocusRect(painter, r, group,
191 &col, false ); 191 &col, false );
192 } 192 }
193} 193}
194 194
195 195
196void PhaseStyle::drawPanel(QPainter* painter, int x, int y, int w, int h, 196void PhaseStyle::drawPanel(QPainter* painter, int x, int y, int w, int h,
197 const QColorGroup& group, bool sunken, 197 const QColorGroup& group, bool sunken,
198 int , const QBrush* fill) { 198 int , const QBrush* fill) {
199 int x2 = x + w - 1; 199 int x2 = x + w - 1;
200 int y2 = y + h - 1; 200 int y2 = y + h - 1;
201 painter->save(); 201 painter->save();
202 202
203 if (sunken) { 203 if (sunken) {
204 painter->setPen(group.dark()); 204 painter->setPen(group.dark());
205 painter->drawRect(x+1, y+1, w-2, h-2); 205 painter->drawRect(x+1, y+1, w-2, h-2);
206 painter->setPen(group.midlight()); 206 painter->setPen(group.midlight());
207 painter->drawLine(x+1, y2, x2, y2); 207 painter->drawLine(x+1, y2, x2, y2);
208 painter->drawLine(x2, y+1, x2, y2-1); 208 painter->drawLine(x2, y+1, x2, y2-1);
209 painter->setPen(group.mid()); 209 painter->setPen(group.mid());
210 painter->drawLine(x, y, x, y2-1); 210 painter->drawLine(x, y, x, y2-1);
211 painter->drawLine(x+1, y, x2-1, y); 211 painter->drawLine(x+1, y, x2-1, y);
212 painter->setPen(group.background()); 212 painter->setPen(group.background());
213 painter->drawPoint(x, y2); 213 painter->drawPoint(x, y2);
214 painter->drawPoint(x2, y); 214 painter->drawPoint(x2, y);
215 } else { 215 } else {
216 painter->setPen(group.dark()); 216 painter->setPen(group.dark());
217 painter->drawRect(x, y, w, h); 217 painter->drawRect(x, y, w, h);
218 painter->setPen(group.midlight()); 218 painter->setPen(group.midlight());
219 painter->drawLine(x+1, y+1, x2-2, y+1); 219 painter->drawLine(x+1, y+1, x2-2, y+1);
220 painter->drawLine(x+1, y+2, x+1, y2-2); 220 painter->drawLine(x+1, y+2, x+1, y2-2);
221 painter->setPen(group.mid()); 221 painter->setPen(group.mid());
222 painter->drawLine(x+2, y2-1, x2-1, y2-1); 222 painter->drawLine(x+2, y2-1, x2-1, y2-1);
223 painter->drawLine(x2-1, y+2, x2-1, y2-2); 223 painter->drawLine(x2-1, y+2, x2-1, y2-2);
224 painter->setPen(group.background()); 224 painter->setPen(group.background());
225 painter->drawPoint(x+1, y2-1); 225 painter->drawPoint(x+1, y2-1);
226 painter->drawPoint(x2-1, y+1); 226 painter->drawPoint(x2-1, y+1);
227 } 227 }
228 228
229 if (fill) { 229 if (fill) {
230 painter->fillRect(x+2, y+2, w-4, h-4, *fill ); 230 painter->fillRect(x+2, y+2, w-4, h-4, *fill );
231 } 231 }
232 painter->restore(); 232 painter->restore();
233} 233}
234 234
235 235
236 236
237void PhaseStyle::drawButton(QPainter *p, int x, int y, int w, int h, 237void PhaseStyle::drawButton(QPainter *p, int x, int y, int w, int h,
238 const QColorGroup &group, bool sunken , 238 const QColorGroup &group, bool sunken ,
239 const QBrush *fill ) { 239 const QBrush *fill ) {
240 int x2 = x + w - 1; 240 int x2 = x + w - 1;
241 int y2 = y + h - 1; 241 int y2 = y + h - 1;
242 242
243 p->setPen(group.midlight()); 243 p->setPen(group.midlight());
244 p->drawLine(x+1, y2, x2, y2); 244 p->drawLine(x+1, y2, x2, y2);
245 p->drawLine(x2, y+1, x2, y2-1); 245 p->drawLine(x2, y+1, x2, y2-1);
246 246
247 p->setPen(group.mid()); 247 p->setPen(group.mid());
248 p->drawLine(x, y, x2-1, y); 248 p->drawLine(x, y, x2-1, y);
249 p->drawLine(x, y+1, x, y2-1); 249 p->drawLine(x, y+1, x, y2-1);
250 250
251 p->setPen(group.button()); 251 p->setPen(group.button());
252 p->drawPoint(x, y2); 252 p->drawPoint(x, y2);
253 p->drawPoint(x2, y); 253 p->drawPoint(x2, y);
254 254
255 drawBevelButton(p, x+1, y+1, w-2, h-2, group, sunken, 255 drawBevelButton(p, x+1, y+1, w-2, h-2, group, sunken,
256 fill); 256 fill);
257} 257}
258 258
259void PhaseStyle::drawButtonMask( QPainter* p, int x, int y, 259void PhaseStyle::drawButtonMask( QPainter* p, int x, int y,
260 int w, int h ) { 260 int w, int h ) {
261 QRect rect(x, y, w, h ); 261 QRect rect(x, y, w, h );
262 p->fillRect(rect, Qt::color1); 262 p->fillRect(rect, Qt::color1);
263 p->setPen(Qt::color0); 263 p->setPen(Qt::color0);
264} 264}
265 265
266 266
267void PhaseStyle::drawBevelButton(QPainter* p, int x, int y, 267void PhaseStyle::drawBevelButton(QPainter* p, int x, int y,
268 int w, int h, const QColorGroup& group, 268 int w, int h, const QColorGroup& group,
269 bool sunken, const QBrush* fill ) { 269 bool sunken, const QBrush* fill ) {
270 int x2 = x + w - 1; 270 int x2 = x + w - 1;
271 int y2 = y + h - 1; 271 int y2 = y + h - 1;
272 p->save(); 272 p->save();
273 273
274 p->setPen(group.dark()); 274 p->setPen(group.dark());
275 p->drawRect(x, y, w, h); 275 p->drawRect(x, y, w, h);
276 276
277 p->setPen(sunken ? group.mid() : group.midlight()); 277 p->setPen(sunken ? group.mid() : group.midlight());
278 p->drawLine(x+1, y+1, x2-2, y+1); 278 p->drawLine(x+1, y+1, x2-2, y+1);
279 p->drawLine(x+1, y+2, x+1, y2-2); 279 p->drawLine(x+1, y+2, x+1, y2-2);
280 280
281 p->setPen(sunken ? group.midlight() : group.mid()); 281 p->setPen(sunken ? group.midlight() : group.mid());
282 p->drawLine(x+2, y2-1, x2-1, y2-1); 282 p->drawLine(x+2, y2-1, x2-1, y2-1);
283 p->drawLine(x2-1, y+2, x2-1, y2-2); 283 p->drawLine(x2-1, y+2, x2-1, y2-2);
284 284
285 p->setPen(group.button()); 285 p->setPen(group.button());
286 p->drawPoint(x+1, y2-1); 286 p->drawPoint(x+1, y2-1);
287 p->drawPoint(x2-1, y+1); 287 p->drawPoint(x2-1, y+1);
288 288
289 QBrush b = fill ? *fill : group.brush( QColorGroup::Button ); 289 QBrush b = fill ? *fill : group.brush( QColorGroup::Button );
290 if (sunken) { 290 if (sunken) {
291 // sunken bevels don't get gradients 291 // sunken bevels don't get gradients
292 p->fillRect(x+2, y+2, w-4, h-4, b); 292 p->fillRect(x+2, y+2, w-4, h-4, b);
293 } else 293 } else
294 drawPhaseGradient(p, QRect(x+2, y+2, w-4, h-4), b.color() ); 294 drawPhaseGradient(p, QRect(x+2, y+2, w-4, h-4), b.color() );
295 295
296 p->restore(); 296 p->restore();
297} 297}
298 298
299void PhaseStyle::drawPhaseGradient(QPainter* painter, 299void PhaseStyle::drawPhaseGradient(QPainter* painter,
300 const QRect& rect, 300 const QRect& rect,
301 const QColor& color )const { 301 const QColor& color )const {
302 painter->fillRect(rect, color); 302 painter->fillRect(rect, color);
303} 303}
304 304
305void PhaseStyle::polish( QWidget* widget ) { 305void PhaseStyle::polish( QWidget* widget ) {
306 QWindowsStyle::polish(widget ); 306 QWindowsStyle::polish(widget );
307 307
308#if 0 308#if 0
309 if (widget->inherits("QMenuBar") || 309 if (widget->inherits("QMenuBar") ||
310 widget->inherits("QPopupMenu" ) || 310 widget->inherits("QPopupMenu" ) ||
311 widget->inherits("QToolButton") || 311 widget->inherits("QToolButton") ||
312 widget->inherits("QHeader" ) ) { 312 widget->inherits("QHeader" ) ) {
313 widget->setBackgroundMode(QWidget::NoBackground); 313 widget->setBackgroundMode(QWidget::NoBackground);
314 } 314 }
315// else if (widget->inherits("QFrame") ) { 315// else if (widget->inherits("QFrame") ) {
316// widget->installEventFilter(this); 316// widget->installEventFilter(this);
317// } 317// }
318#endif 318#endif
319} 319}
320 320
321void PhaseStyle::unPolish( QWidget *w ) 321void PhaseStyle::unPolish( QWidget *w )
322{ 322{
323 QWindowsStyle::unPolish( w ); 323 QWindowsStyle::unPolish( w );
324} 324}
325 325
326void PhaseStyle::polish( QPalette &pal ) { 326void PhaseStyle::polish( QPalette &pal ) {
327 QWindowsStyle::polish( pal ); 327 QWindowsStyle::polish( pal );
328 // lighten up a bit, so the look is not so "crisp" 328 // lighten up a bit, so the look is not so "crisp"
329 if (QPixmap::defaultDepth() > 8) { // but not on low color displays 329 if (QPixmap::defaultDepth() > 8) { // but not on low color displays
330 pal.setColor(QPalette::Disabled, QColorGroup::Dark, 330 pal.setColor(QPalette::Disabled, QColorGroup::Dark,
331 pal.color(QPalette::Disabled, QColorGroup::Dark).light(contrast)); 331 pal.color(QPalette::Disabled, QColorGroup::Dark).light(contrast));
332 pal.setColor(QPalette::Active, QColorGroup::Dark, 332 pal.setColor(QPalette::Active, QColorGroup::Dark,
333 pal.color(QPalette::Active, QColorGroup::Dark).light(contrast)); 333 pal.color(QPalette::Active, QColorGroup::Dark).light(contrast));
334 pal.setColor(QPalette::Inactive, QColorGroup::Dark, 334 pal.setColor(QPalette::Inactive, QColorGroup::Dark,
335 pal.color(QPalette::Inactive, QColorGroup::Dark).light(contrast)); 335 pal.color(QPalette::Inactive, QColorGroup::Dark).light(contrast));
336 } 336 }
337} 337}
338 338
339void PhaseStyle::polish( QApplication* app ) { 339void PhaseStyle::polish( QApplication* app ) {
340 QWindowsStyle::polish( app ); 340 QWindowsStyle::polish( app );
341 341
342 qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl)&PhaseStyle::drawMenuBarItem); 342 qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl)&PhaseStyle::drawMenuBarItem);
343} 343}
344 344
345void PhaseStyle::unPolish( QApplication* app ) { 345void PhaseStyle::unPolish( QApplication* app ) {
346 QWindowsStyle::unPolish(app); 346 QWindowsStyle::unPolish(app);
347 qt_set_draw_menu_bar_impl ( 0 ); 347 qt_set_draw_menu_bar_impl ( 0 );
348} 348}
349 349
350void PhaseStyle::drawPushButtonLabel (QPushButton *button, QPainter *painter) { 350void PhaseStyle::drawPushButtonLabel (QPushButton *button, QPainter *painter) {
351 bool active = button->isOn() || button->isDown(); 351 bool active = button->isOn() || button->isDown();
352 QRect r = pushButtonContentsRect( button ); 352 QRect r = pushButtonContentsRect( button );
353 QColorGroup group = button->colorGroup(); 353 QColorGroup group = button->colorGroup();
354 int x, y, w, h; 354 int x, y, w, h;
355 r.rect( &x, &y, &w, &h ); 355 r.rect( &x, &y, &w, &h );
356 bool sunken = false; 356 bool sunken = false;
357 QIconSet::Mode mode; 357 QIconSet::Mode mode;
358 QPixmap pixmap; 358 QPixmap pixmap;
359 359
360 if (active) {// shift contents 360 if (active) {// shift contents
361 x++; y++; 361 x++; y++;
362 sunken = true; 362 sunken = true;
363 } 363 }
364 364
365 365
366 if (button->isMenuButton()) { // draw the indicator 366 if (button->isMenuButton()) { // draw the indicator
367 //dx = pixelMetric(PM_MenuButtonIndicator, widget); 367 //dx = pixelMetric(PM_MenuButtonIndicator, widget);
368 int dx = menuButtonIndicatorWidth( button->height() ); 368 int dx = menuButtonIndicatorWidth( button->height() );
369 drawArrow(painter, Qt::DownArrow, active, 369 drawArrow(painter, Qt::DownArrow, active,
370 x+w-dx, y+2, dx-4, h-4, group,button->isEnabled() ); 370 x+w-dx, y+2, dx-4, h-4, group,button->isEnabled() );
371 w -= dx; 371 w -= dx;
372 } 372 }
373 373
374 if (button->iconSet() && !button->iconSet()->isNull()) { // draw icon 374 if (button->iconSet() && !button->iconSet()->isNull()) { // draw icon
375 if (button->isEnabled()) { 375 if (button->isEnabled()) {
376 if (button->hasFocus()) { 376 if (button->hasFocus()) {
377 mode = QIconSet::Active; 377 mode = QIconSet::Active;
378 } else { 378 } else {
379 mode = QIconSet::Normal; 379 mode = QIconSet::Normal;
380 } 380 }
381 } else { 381 } else {
382 mode = QIconSet::Disabled; 382 mode = QIconSet::Disabled;
383 } 383 }
384 384
385#if 0 385#if 0
386 if (button->isToggleButton() && button->isOn()) { 386 if (button->isToggleButton() && button->isOn()) {
387 state = true; 387 state = true;
388 } else { 388 } else {
389 state = false; 389 state = false;
390 } 390 }
391#endif 391#endif
392 392
393 pixmap = button->iconSet()->pixmap(QIconSet::Small, mode); 393 pixmap = button->iconSet()->pixmap(QIconSet::Small, mode);
394 if (button->text().isEmpty() && !button->pixmap()) { 394 if (button->text().isEmpty() && !button->pixmap()) {
395 painter->drawPixmap(x+w/2 - pixmap.width()/2, 395 painter->drawPixmap(x+w/2 - pixmap.width()/2,
396 y+h/2 - pixmap.height()/2, pixmap); 396 y+h/2 - pixmap.height()/2, pixmap);
397 } else { 397 } else {
398 painter->drawPixmap(x+4, y+h/2 - pixmap.height()/2, pixmap); 398 painter->drawPixmap(x+4, y+h/2 - pixmap.height()/2, pixmap);
399 } 399 }
400 x += pixmap.width() + 4; 400 x += pixmap.width() + 4;
401 w -= pixmap.width() + 4; 401 w -= pixmap.width() + 4;
402 } 402 }
403 403
404 if (active || button->isDefault()) { // default button 404 if (active || button->isDefault()) { // default button
405 for(int n=0; n<2; n++) { 405 for(int n=0; n<2; n++) {
406 drawItem(painter, x+n, y, w, h, 406 drawItem(painter, x+n, y, w, h,
407 AlignCenter | ShowPrefix, 407 AlignCenter | ShowPrefix,
408 button->colorGroup(), 408 button->colorGroup(),
409 button->isEnabled(), 409 button->isEnabled(),
410 button->pixmap(), 410 button->pixmap(),
411 button->text(), -1, 411 button->text(), -1,
412 (button->isEnabled()) ? 412 (button->isEnabled()) ?
413 &button->colorGroup().buttonText() : 413 &button->colorGroup().buttonText() :
414 &button->colorGroup().mid()); 414 &button->colorGroup().mid());
415 } 415 }
416 } else { // normal button 416 } else { // normal button
417 drawItem(painter, x, y, w, h, 417 drawItem(painter, x, y, w, h,
418 AlignCenter | ShowPrefix, 418 AlignCenter | ShowPrefix,
419 button->colorGroup(), 419 button->colorGroup(),
420 button->isEnabled(), 420 button->isEnabled(),
421 button->pixmap(), 421 button->pixmap(),
422 button->text(), -1, 422 button->text(), -1,
423 (button->isEnabled()) ? 423 (button->isEnabled()) ?
424 &button->colorGroup().buttonText() : 424 &button->colorGroup().buttonText() :
425 &button->colorGroup().mid()); 425 &button->colorGroup().mid());
426 } 426 }
427} 427}
428 428
429 429
430void PhaseStyle::drawFocusRect(QPainter *painter, const QRect &rect, 430void PhaseStyle::drawFocusRect(QPainter *painter, const QRect &rect,
431 const QColorGroup &group, 431 const QColorGroup &group,
432 const QColor *, bool atBorder) { 432 const QColor *, bool atBorder) {
433 433
434 434
435 QPen old = painter->pen(); 435 QPen old = painter->pen();
436 painter->setPen(group.highlight().dark(contrast)); 436 painter->setPen(group.highlight().dark(contrast));
437 painter->setBrush(NoBrush); 437 painter->setBrush(NoBrush);
438 438
439 if ( atBorder ) 439 if ( atBorder )
440 painter->drawRect(QRect(rect.x()+1, rect.y()+1, 440 painter->drawRect(QRect(rect.x()+1, rect.y()+1,
441 rect.width()-2, rect.height()-2 )); 441 rect.width()-2, rect.height()-2 ));
442 else 442 else
443 painter->drawRect(rect); 443 painter->drawRect(rect);
444 444
445 445
446 painter->setPen(old); 446 painter->setPen(old);
447 447
448} 448}
449 449
450void PhaseStyle::drawSeperator( QPainter* painter, int x, int y, int w, 450void PhaseStyle::drawSeperator( QPainter* painter, int x, int y, int w,
451 int h, const QColorGroup& group, bool, 451 int h, const QColorGroup& group, bool,
452 int , int ) { 452 int , int ) {
453 qWarning( "Seperator" ); 453 qWarning( "Seperator" );
454 QRect rect(x, y, w, h); 454 QRect rect(x, y, w, h);
455 int x2 = rect.right(); 455 int x2 = rect.right();
456 int y2 = rect.bottom(); 456 int y2 = rect.bottom();
457 457
458 painter->setPen(group.dark()); 458 painter->setPen(group.dark());
459 if (w < h) 459 if (w < h)
460 painter->drawLine(w/2, y, w/2, y2); 460 painter->drawLine(w/2, y, w/2, y2);
461 else 461 else
462 painter->drawLine(x, h/2, x2, h/2); 462 painter->drawLine(x, h/2, x2, h/2);
463} 463}
464 464
465void PhaseStyle::drawMenuBarItem(QPainter* p, int x, int y, int w, int h, 465void PhaseStyle::drawMenuBarItem(QPainter* p, int x, int y, int w, int h,
466 QMenuItem *mi, QColorGroup& g, bool enabled, 466 QMenuItem *mi, QColorGroup& g, bool enabled,
467 bool act ) { 467 bool act ) {
468 return QWindowsStyle::drawMenuBarItem(p, x, y, w, h, mi, g, enabled, act); 468 return QWindowsStyle::drawMenuBarItem(p, x, y, w, h, mi, g, enabled, act);
469} 469}
470 470
471 471
472void PhaseStyle::drawIndicator(QPainter* painter, int x, int y, int w, int h, 472void PhaseStyle::drawIndicator(QPainter* painter, int x, int y, int w, int h,
473 const QColorGroup &group, int state, bool, 473 const QColorGroup &group, int state, bool,
474 bool enabled ) { 474 bool enabled ) {
475 drawPanel(painter, x, y, w, h, group, true, 1, enabled ? 475 drawPanel(painter, x, y, w, h, group, true, 1, enabled ?
476 &group.brush(QColorGroup::Base) : 476 &group.brush(QColorGroup::Base) :
477 &group.brush(QColorGroup::Background)); 477 &group.brush(QColorGroup::Background));
478 478
479 if (QButton::On == state ) { 479 if (QButton::On == state ) {
480 painter->setPen(group.dark()); 480 painter->setPen(group.dark());
481 painter->drawRect(x+3, y+3, w-6, h-6); 481 painter->drawRect(x+3, y+3, w-6, h-6);
482 painter->fillRect(x+4, y+4, w-8, h-8, 482 painter->fillRect(x+4, y+4, w-8, h-8,
483 group.brush(QColorGroup::Highlight)); 483 group.brush(QColorGroup::Highlight));
484 } 484 }
485} 485}
486 486
487 487
488void PhaseStyle::drawExclusiveIndicator(QPainter* painter, int x, int y, int w, int h, 488void PhaseStyle::drawExclusiveIndicator(QPainter* painter, int x, int y, int w, int h,
489 const QColorGroup &group, bool on, 489 const QColorGroup &group, bool on,
490 bool /*down*/, bool enabled) { 490 bool /*down*/, bool enabled) {
491 491
492 QRect r(x, y, w, h ); 492 QRect r(x, y, w, h );
493 493
494 494
495 /* 495 /*
496 * As Polygon and Polyline are broken in Qt2 lets use 496 * As Polygon and Polyline are broken in Qt2 lets use
497 * something not that spectacilur -> ellipse 497 * something not that spectacilur -> ellipse
498 */ 498 */
499 painter->save(); 499 painter->save();
500 painter->fillRect(x, y, w, h, group.background()); 500 painter->fillRect(x, y, w, h, group.background());
501 501
502 502
503 painter->setBrush(enabled 503 painter->setBrush(enabled
504 ? group.brush(QColorGroup::Base) 504 ? group.brush(QColorGroup::Base)
505 : group.brush(QColorGroup::Background)); 505 : group.brush(QColorGroup::Background));
506 painter->setPen(group.dark()); 506 painter->setPen(group.dark());
507 507
508 if (0 == w % 2) --w; 508 if (0 == w % 2) --w;
509 if (0 == h % 2) --h; 509 if (0 == h % 2) --h;
510 painter->drawEllipse(x, y, w, h ); 510 painter->drawEllipse(x, y, w, h );
511 511
512 if(on) { 512 if(on) {
513 painter->setBrush(group.brush(QColorGroup::Highlight)); 513 painter->setBrush(group.brush(QColorGroup::Highlight));
514 painter->drawEllipse(x+3,y+3,w-6,h-6); 514 painter->drawEllipse(x+3,y+3,w-6,h-6);
515 } 515 }
516 516
517 painter->restore(); 517 painter->restore();
518} 518}
519 519
520 520
521/* 521/*
522 * Does not get called in QWS as it seems 522 * Does not get called in QWS as it seems
523 */ 523 */
524void PhaseStyle::drawExclusiveIndicatorMask(QPainter *painter, int x, int y, int w, 524void PhaseStyle::drawExclusiveIndicatorMask(QPainter *painter, int x, int y, int w,
525 int h, bool /*on*/ ) { 525 int h, bool /*on*/ ) {
526 return; 526 return;
527 527
528 528
529 529
530 if (0 != w%2) --w; 530 if (0 != w%2) --w;
531 if (0 != h%2) --h; 531 if (0 != h%2) --h;
532 532
533 QRect r(x, y, w, h ); 533 QRect r(x, y, w, h );
534 int x2 = r.right(); 534 int x2 = r.right();
535 int y2 = r.bottom(); 535 int y2 = r.bottom();
536 int cx = (x + x2) / 2; 536 int cx = (x + x2) / 2;
537 int cy = (y + y2) / 2; 537 int cy = (y + y2) / 2;
538 QPointArray parray; 538 QPointArray parray;
539 539
540 540
541 painter->setBrush(Qt::color1); 541 painter->setBrush(Qt::color1);
542 painter->setPen(Qt::color1); 542 painter->setPen(Qt::color1);
543 parray.putPoints(0, 8, 543 parray.putPoints(0, 8,
544 x,cy+1, x,cy, cx,y, cx+1,y, 544 x,cy+1, x,cy, cx,y, cx+1,y,
545 x2,cy, x2,cy+1, cx+1,y2, cx,y2); 545 x2,cy, x2,cy+1, cx+1,y2, cx,y2);
546 painter->drawPolygon(parray, 0, 8); 546 painter->drawPolygon(parray, 0, 8);
547} 547}
548 548
549int PhaseStyle::defaultFrameWidth()const { 549int PhaseStyle::defaultFrameWidth()const {
550 return 1; 550 return 1;
551} 551}
552 552
553int PhaseStyle::popupMenuItemHeight ( bool , 553int PhaseStyle::popupMenuItemHeight ( bool ,
554 QMenuItem * mi, 554 QMenuItem * mi,
555 const QFontMetrics & fm ) { 555 const QFontMetrics & fm ) {
556 int h = 0; 556 int h = 0;
557 if (mi->custom() ) { 557 if (mi->custom() ) {
558 h = mi->custom()->sizeHint().height(); 558 h = mi->custom()->sizeHint().height();
559 if (!mi->custom()->fullSpan() ) 559 if (!mi->custom()->fullSpan() )
560 h += ITEMVMARGIN*2 + ITEMFRAME*2; 560 h += ITEMVMARGIN*2 + ITEMFRAME*2;
561 }else if (mi->isSeparator() ) { 561 }else if (mi->isSeparator() ) {
562 h = 1; 562 h = 1;
563 }else { 563 }else {
564 if ( mi->pixmap() ) { 564 if ( mi->pixmap() ) {
565 h = QMAX(h, mi->pixmap()->height() + ITEMFRAME*2); 565 h = QMAX(h, mi->pixmap()->height() + ITEMFRAME*2);
566 }else { 566 }else {
567 h = QMAX(h, MINICONSIZE+ITEMFRAME*2 ); 567 h = QMAX(h, MINICONSIZE+ITEMFRAME*2 );
568 h = QMAX(h, fm.height() 568 h = QMAX(h, fm.height()
569 + ITEMVMARGIN*2 + ITEMFRAME*2 ); 569 + ITEMVMARGIN*2 + ITEMFRAME*2 );
570 } 570 }
571 if ( mi->iconSet() ) 571 if ( mi->iconSet() )
572 h = QMAX(h, mi->iconSet()-> 572 h = QMAX(h, mi->iconSet()->
573 pixmap(QIconSet::Small, QIconSet::Normal ).height() 573 pixmap(QIconSet::Small, QIconSet::Normal ).height()
574 + ITEMFRAME*2 ); 574 + ITEMFRAME*2 );
575 } 575 }
576 576
577 577
578 return h; 578 return h;
579} 579}
580 580
581int PhaseStyle::extraPopupMenuItemWidth(bool checkable, int maxpmw, 581int PhaseStyle::extraPopupMenuItemWidth(bool checkable, int maxpmw,
582 QMenuItem* mi, const QFontMetrics& ) { 582 QMenuItem* mi, const QFontMetrics& ) {
583 int w = 0; 583 int w = 0;
584 if (mi->isSeparator() ) 584 if (mi->isSeparator() )
585 return 3; 585 return 3;
586 586
587 else if ( mi->pixmap() ) 587 else if ( mi->pixmap() )
588 w = mi->pixmap()->width(); 588 w = mi->pixmap()->width();
589 589
590 if (!mi->text().isNull() && 590 if (!mi->text().isNull() &&
591 mi->text().find('\t' ) >= 0 ) 591 mi->text().find('\t' ) >= 0 )
592 w += 12; 592 w += 12;
593 else if ( mi->popup() ) 593 else if ( mi->popup() )
594 w += 2*ARROWMARGIN; 594 w += 2*ARROWMARGIN;
595 595
596 if ( maxpmw ) 596 if ( maxpmw )
597 w += maxpmw +4; 597 w += maxpmw +4;
598 598
599 599
600 if ( maxpmw > 0 || checkable ) 600 if ( maxpmw > 0 || checkable )
601 w += ITEMHMARGIN*2+8; 601 w += ITEMHMARGIN*2+8;
602 602
603 w += RIGHTBORDER; 603 w += RIGHTBORDER;
604 return w; 604 return w;
605} 605}
606 606
607QSize PhaseStyle::indicatorSize()const { 607QSize PhaseStyle::indicatorSize()const {
608 return QSize( 11, 11 ); 608 return QSize( 11, 11 );
609} 609}
610 610
611QSize PhaseStyle::exclusiveIndicatorSize()const { 611QSize PhaseStyle::exclusiveIndicatorSize()const {
612 return QSize( 11, 11 ); 612 return QSize( 11, 11 );
613} 613}
614 614
615void PhaseStyle::getButtonShift( int &x, int &y ) { 615void PhaseStyle::getButtonShift( int &x, int &y ) {
616 x++; 616 x++;
617 y++; 617 y++;
618} 618}
619 619
620void PhaseStyle::drawPopupMenuItem ( QPainter * p, bool checkable, 620void PhaseStyle::drawPopupMenuItem ( QPainter * p, bool checkable,
621 int maxpmw,int tabwidth, 621 int maxpmw,int tabwidth,
622 QMenuItem * mi, const QPalette & pal, 622 QMenuItem * mi, const QPalette & pal,
623 bool act, bool enabled, int x, 623 bool act, bool enabled, int x,
624 int y, int w, int h ) { 624 int y, int w, int h ) {
625 if ( !mi ) 625 if ( !mi )
626 return; 626 return;
627 627
628 QRect rect(x, y, w, h ); 628 QRect rect(x, y, w, h );
629 int x2, y2; 629 int x2, y2;
630 x2 = rect.right(); 630 x2 = rect.right();
631 y2 = rect.bottom(); 631 y2 = rect.bottom();
632 const QColorGroup& g = pal.active(); 632 const QColorGroup& g = pal.active();
633 QColorGroup itemg = !enabled ? pal.disabled() : pal.active(); 633 QColorGroup itemg = !enabled ? pal.disabled() : pal.active();
634 634
635 if ( checkable || maxpmw ) maxpmw = QMAX(maxpmw, 20); 635 if ( checkable || maxpmw ) maxpmw = QMAX(maxpmw, 20);
636 636
637 if (act && enabled ) 637 if (act && enabled )
638 p->fillRect(x, y, w, h, g.highlight() ); 638 p->fillRect(x, y, w, h, g.highlight() );
639 else 639 else
640 p->fillRect(x, y, w, h, g.background() ); 640 p->fillRect(x, y, w, h, g.background() );
641 641
642 // draw seperator 642 // draw seperator
643 if (mi->isSeparator() ) { 643 if (mi->isSeparator() ) {
644 p->setPen( g.dark() ); 644 p->setPen( g.dark() );
645 p->drawLine( x+8, y+1, x+w-8, y+1 ); 645 p->drawLine( x+8, y+1, x+w-8, y+1 );
646 646
647 p->setPen( g.mid() ); 647 p->setPen( g.mid() );
648 p->drawLine( x+8, y, x+w-8, y ); 648 p->drawLine( x+8, y, x+w-8, y );
649 p->drawPoint(x+w,y+1); 649 p->drawPoint(x+w,y+1);
650 650
651 p->setPen( g.midlight() ); 651 p->setPen( g.midlight() );
652 p->drawLine( x+8, y-1, x+w-8, y-1 ); 652 p->drawLine( x+8, y-1, x+w-8, y-1 );
653 p->drawPoint(x+8, y ); 653 p->drawPoint(x+8, y );
654 return; 654 return;
655 } 655 }
656 656
657 // draw icon 657 // draw icon
658 QIconSet::Mode mode; 658 QIconSet::Mode mode;
659 if ( mi->iconSet() && !mi->isChecked() ) { 659 if ( mi->iconSet() && !mi->isChecked() ) {
660 if ( act ) 660 if ( act )
661 mode = enabled ? QIconSet::Active : QIconSet::Disabled; 661 mode = enabled ? QIconSet::Active : QIconSet::Disabled;
662 else 662 else
663 mode = enabled ? QIconSet::Normal : QIconSet::Disabled; 663 mode = enabled ? QIconSet::Normal : QIconSet::Disabled;
664 QPixmap pixmap = mi->iconSet()->pixmap(QIconSet::Small, mode ); 664 QPixmap pixmap = mi->iconSet()->pixmap(QIconSet::Small, mode );
665 QRect pmrect(0, 0, pixmap.width(), pixmap.height() ); 665 QRect pmrect(0, 0, pixmap.width(), pixmap.height() );
666 QRect cr(x, y, maxpmw, h ); 666 QRect cr(x, y, maxpmw, h );
667 pmrect.moveCenter( cr.center() ); 667 pmrect.moveCenter( cr.center() );
668 p->drawPixmap(pmrect.topLeft(), pixmap); 668 p->drawPixmap(pmrect.topLeft(), pixmap);
669 } 669 }
670 670
671 // draw check 671 // draw check
672 if(mi->isChecked() ) { 672 if(mi->isChecked() ) {
673 drawCheckMark(p, x, y, maxpmw, h, itemg, act, !enabled ); 673 drawCheckMark(p, x, y, maxpmw, h, itemg, act, !enabled );
674 } 674 }
675 675
676 676
677 // draw text 677 // draw text
678 int xm = maxpmw + 2; 678 int xm = maxpmw + 2;
679 int xp = x + xm; 679 int xp = x + xm;
680 int tw = w -xm - 2; 680 int tw = w -xm - 2;
681 681
682 p->setPen( enabled ? ( act ? g.highlightedText() : g.buttonText() ) : 682 p->setPen( enabled ? ( act ? g.highlightedText() : g.buttonText() ) :
683 g.mid() ); 683 g.mid() );
684 684
685 685
686 if ( mi->custom() ) { 686 if ( mi->custom() ) {
687 p->save(); 687 p->save();
688 mi->custom()->paint(p, g, act, enabled, 688 mi->custom()->paint(p, g, act, enabled,
689 xp, y+1, tw, h-2 ); 689 xp, y+1, tw, h-2 );
690 p->restore(); 690 p->restore();
691 }else { // draw label 691 }else { // draw label
692 QString text = mi->text(); 692 QString text = mi->text();
693 if (!text.isNull() ) { 693 if (!text.isNull() ) {
694 int t = text.find('\t'); 694 int t = text.find('\t');
695 const int tflags = AlignVCenter | DontClip | 695 const int tflags = AlignVCenter | DontClip |
696 ShowPrefix | SingleLine | 696 ShowPrefix | SingleLine |
697 AlignLeft; 697 AlignLeft;
698 698
699 if (t >= 0) { 699 if (t >= 0) {
700 int tabx = x + w - tabwidth - RIGHTBORDER - 700 int tabx = x + w - tabwidth - RIGHTBORDER -
701 ITEMHMARGIN - ITEMFRAME; 701 ITEMHMARGIN - ITEMFRAME;
702 p->drawText(tabx, y+ITEMVMARGIN, tabwidth, 702 p->drawText(tabx, y+ITEMVMARGIN, tabwidth,
703 h-2*ITEMVMARGIN, tflags, 703 h-2*ITEMVMARGIN, tflags,
704 text.mid(t+1) ); 704 text.mid(t+1) );
705 text = text.left(t ); 705 text = text.left(t );
706 } 706 }
707 707
708 // draw left label 708 // draw left label
709 p->drawText(xp, y+ITEMVMARGIN, 709 p->drawText(xp, y+ITEMVMARGIN,
710 tw, h-2*ITEMVMARGIN, 710 tw, h-2*ITEMVMARGIN,
711 tflags, text, t); 711 tflags, text, t);
712 }else if ( mi->pixmap() ) { // pixmap as label 712 }else if ( mi->pixmap() ) { // pixmap as label
713 QPixmap pixmap = *mi->pixmap(); 713 QPixmap pixmap = *mi->pixmap();
714 if ( pixmap.depth() == 1 ) 714 if ( pixmap.depth() == 1 )
715 p->setBackgroundMode( OpaqueMode ); 715 p->setBackgroundMode( OpaqueMode );
716 716
717 int dx = ((w-pixmap.width() ) /2 ) + 717 int dx = ((w-pixmap.width() ) /2 ) +
718 ((w - pixmap.width()) %2 ); 718 ((w - pixmap.width()) %2 );
719 p->drawPixmap(x+dx, y+ITEMFRAME, pixmap ); 719 p->drawPixmap(x+dx, y+ITEMFRAME, pixmap );
720 720
721 if ( pixmap.depth() == 1 ) 721 if ( pixmap.depth() == 1 )
722 p->setBackgroundMode( TransparentMode ); 722 p->setBackgroundMode( TransparentMode );
723 } 723 }
724 } 724 }
725 725
726 if ( mi->popup() ) { // draw submenu arrow 726 if ( mi->popup() ) { // draw submenu arrow
727 int dim = (h-2*ITEMFRAME) / 2; 727 int dim = (h-2*ITEMFRAME) / 2;
728 drawArrow( p, RightArrow, false, 728 drawArrow( p, RightArrow, false,
729 x+w-ARROWMARGIN-ITEMFRAME-dim, 729 x+w-ARROWMARGIN-ITEMFRAME-dim,
730 y+h/2-dim/2, dim, dim, g, enabled ); 730 y+h/2-dim/2, dim, dim, g, enabled );
731 } 731 }
732} 732}
733 733
734 734
735QRect PhaseStyle::comboButtonRect ( int x, int y, int w, int h ) { 735QRect PhaseStyle::comboButtonRect ( int x, int y, int w, int h ) {
736 return QRect(x+2, y+2, w-4-17, h-5 ); 736 return QRect(x+2, y+2, w-4-17, h-5 );
737} 737}
738 738
739void PhaseStyle::drawComboButton( QPainter * p, int x, int y, 739void PhaseStyle::drawComboButton( QPainter * p, int x, int y,
740 int w, int h, 740 int w, int h,
741 const QColorGroup & g, 741 const QColorGroup & g,
742 bool sunken, 742 bool sunken,
743 bool editable, 743 bool editable,
744 bool, 744 bool,
745 const QBrush *) { 745 const QBrush *) {
746 drawButton(p, x, y, w, h, g, 746 drawButton(p, x, y, w, h, g,
747 sunken, &g.brush(QColorGroup::Button )); 747 sunken, &g.brush(QColorGroup::Button ));
748 748
749 for ( int n = 0; n < 2; ++n ) 749 for ( int n = 0; n < 2; ++n )
750 kColorBitmaps(p, g, w-16+(6*n), y+(h/2)-2, 750 kColorBitmaps(p, g, w-16+(6*n), y+(h/2)-2,
751 0, &doodad_mid, &doodad_light, 0, 0, 0 ); 751 0, &doodad_mid, &doodad_light, 0, 0, 0 );
752 752
753 753
754 if (editable ) { 754 if (editable ) {
755 const int x2 = x+w-1; const int y2 = y+h-1; 755 const int x2 = x+w-1; const int y2 = y+h-1;
756 p->setPen(g.dark()); 756 p->setPen(g.dark());
757 p->drawLine(x2+1, y, x2+1, y2); 757 p->drawLine(x2+1, y, x2+1, y2);
758 p->setPen(g.midlight()); 758 p->setPen(g.midlight());
759 p->drawLine(x2+2, y, x2+2, y2-1); 759 p->drawLine(x2+2, y, x2+2, y2-1);
760 p->setPen(g.button()); 760 p->setPen(g.button());
761 p->drawPoint(x2+2, y2); 761 p->drawPoint(x2+2, y2);
762 } 762 }
763 763
764 p->setPen(g.buttonText() ); 764 p->setPen(g.buttonText() );
765} 765}
766 766
767void PhaseStyle::tabbarMetrics( const QTabBar* t, int &hframe, int &vframe, int& ov ) { 767void PhaseStyle::tabbarMetrics( const QTabBar* t, int &hframe, int &vframe, int& ov ) {
768 QCommonStyle::tabbarMetrics( t, hframe, vframe, ov ); 768 QCommonStyle::tabbarMetrics( t, hframe, vframe, ov );
769 hframe -= 2; 769 hframe -= 2;
770 vframe += 1; 770 vframe += 1;
771} 771}
772 772
773 773
774void PhaseStyle::drawTab(QPainter* painter, const QTabBar* bar, QTab* tab, 774void PhaseStyle::drawTab(QPainter* painter, const QTabBar* bar, QTab* tab,
775 bool selected ) { 775 bool selected ) {
776 bool edge = false; 776 bool edge = false;
777 int x, y, w, h; 777 int x, y, w, h;
778 QRect r = tab->rect(); 778 QRect r = tab->rect();
779 r.rect(&x,&y,&w,&h); 779 r.rect(&x,&y,&w,&h);
780 const int x2 = x+w-1; 780 const int x2 = x+w-1;
781 const int y2 = y+h-1; 781 const int y2 = y+h-1;
782 const QColorGroup &group = bar->colorGroup(); 782 const QColorGroup &group = bar->colorGroup();
783 783
784 784
785 painter->save(); 785 painter->save();
786 786
787 // what position is the tab? 787 // what position is the tab?
788 if ((bar->count() == 1 )) 788 if ((bar->count() == 1 ))
789 edge = true; 789 edge = true;
790 else 790 else
791 edge = false; 791 edge = false;
792 792
793 switch (QTabBar::Shape(bar->shape())) { 793 switch (QTabBar::Shape(bar->shape())) {
794 case QTabBar::RoundedAbove: 794 case QTabBar::RoundedAbove:
795 case QTabBar::TriangularAbove: { 795 case QTabBar::TriangularAbove: {
796 if (!selected) { // shorten 796 if (!selected) { // shorten
797 y += 2; h -= 2; 797 y += 2; h -= 2;
798 } 798 }
799 if (selected) { 799 if (selected) {
800 painter->setPen(Qt::NoPen); 800 painter->setPen(Qt::NoPen);
801 painter->fillRect(x+1, y+1, w-1, h-1, 801 painter->fillRect(x+1, y+1, w-1, h-1,
802 group.brush(QColorGroup::Background)); 802 group.brush(QColorGroup::Background));
803 } else 803 } else
804 drawPhaseGradient(painter, QRect(x+1, y+1, w-1, h-2), 804 drawPhaseGradient(painter, QRect(x+1, y+1, w-1, h-2),
805 group.background().dark(contrast) ); 805 group.background().dark(contrast) );
806 806
807 807
808 // draw tab 808 // draw tab
809 painter->setPen(group.dark()); 809 painter->setPen(group.dark());
810 painter->drawLine(x, y, x, y2-2); 810 painter->drawLine(x, y, x, y2-2);
811 painter->drawLine(x+1, y, x2, y); 811 painter->drawLine(x+1, y, x2, y);
812 painter->drawLine(x2, y+1, x2, y2-2); 812 painter->drawLine(x2, y+1, x2, y2-2);
813 813
814 painter->setPen(group.mid()); 814 painter->setPen(group.mid());
815 painter->drawLine(x2-1, y+2, x2-1, y2-2); 815 painter->drawLine(x2-1, y+2, x2-1, y2-2);
816 816
817 painter->setPen(group.midlight()); 817 painter->setPen(group.midlight());
818 painter->drawLine(x+1, y+1, x2-2, y+1); 818 painter->drawLine(x+1, y+1, x2-2, y+1);
819 if ((selected) || edge) painter->drawLine(x+1, y+2, x+1, y2-2); 819 if ((selected) || edge) painter->drawLine(x+1, y+2, x+1, y2-2);
820 820
821 // finish off bottom 821 // finish off bottom
822 if (selected) { 822 if (selected) {
823 painter->setPen(group.dark()); 823 painter->setPen(group.dark());
824 painter->drawPoint(x, y2-1); 824 painter->drawPoint(x, y2-1);
825 painter->drawPoint(x2, y2-1); 825 painter->drawPoint(x2, y2-1);
826 826
827 painter->setPen(group.midlight()); 827 painter->setPen(group.midlight());
828 painter->drawPoint(x, y2); 828 painter->drawPoint(x, y2);
829 painter->drawLine(x+1, y2-1, x+1, y2); 829 painter->drawLine(x+1, y2-1, x+1, y2);
830 painter->drawPoint(x2, y2); 830 painter->drawPoint(x2, y2);
831 831
832 painter->setPen(group.mid()); 832 painter->setPen(group.mid());
833 painter->drawPoint(x2-1, y2-1); 833 painter->drawPoint(x2-1, y2-1);
834 834
835 if (edge) { 835 if (edge) {
836 painter->setPen(group.dark()); 836 painter->setPen(group.dark());
837 painter->drawLine(x, y2-1, x, y2); 837 painter->drawLine(x, y2-1, x, y2);
838 painter->setPen(group.midlight()); 838 painter->setPen(group.midlight());
839 painter->drawPoint(x+1, y2); 839 painter->drawPoint(x+1, y2);
840 } 840 }
841 } else { 841 } else {
842 painter->setPen(group.dark()); 842 painter->setPen(group.dark());
843 painter->drawLine(x, y2-1, x2, y2-1); 843 painter->drawLine(x, y2-1, x2, y2-1);
844 844
845 painter->setPen(group.midlight()); 845 painter->setPen(group.midlight());
846 painter->drawLine(x, y2, x2, y2); 846 painter->drawLine(x, y2, x2, y2);
847 847
848 if (edge) { 848 if (edge) {
849 painter->setPen(group.dark()); 849 painter->setPen(group.dark());
850 painter->drawLine(x, y2-1, x, y2); 850 painter->drawLine(x, y2-1, x, y2);
851 } 851 }
852 } 852 }
853 break; 853 break;
854 } 854 }
855 case QTabBar::RoundedBelow: 855 case QTabBar::RoundedBelow:
856 case QTabBar::TriangularBelow: { 856 case QTabBar::TriangularBelow: {
857 painter->setBrush( group.background().dark(contrast)); 857 painter->setBrush( group.background().dark(contrast));
858 painter->setPen(Qt::NoPen); 858 painter->setPen(Qt::NoPen);
859 painter->fillRect(x+1, y+1, w-1, h-1, painter->brush()); 859 painter->fillRect(x+1, y+1, w-1, h-1, painter->brush());
860 860
861 // draw tab 861 // draw tab
862 painter->setPen(group.dark()); 862 painter->setPen(group.dark());
863 painter->drawLine(x, y+1, x, y2); 863 painter->drawLine(x, y+1, x, y2);
864 painter->drawLine(x+1, y2, x2, y2); 864 painter->drawLine(x+1, y2, x2, y2);
865 painter->drawLine(x2, y+1, x2, y2-1); 865 painter->drawLine(x2, y+1, x2, y2-1);
866 866
867 painter->setPen(group.mid()); 867 painter->setPen(group.mid());
868 painter->drawLine(x2-1, y+1, x2-1, y2-1); 868 painter->drawLine(x2-1, y+1, x2-1, y2-1);
869 painter->drawLine(x+2, y2-1, x2-1, y2-1); 869 painter->drawLine(x+2, y2-1, x2-1, y2-1);
870 painter->drawPoint(x, y); 870 painter->drawPoint(x, y);
871 painter->drawPoint(x2, y); 871 painter->drawPoint(x2, y);
872 872
873 if ((selected) || edge) { 873 if ((selected) || edge) {
874 painter->setPen(group.midlight()); 874 painter->setPen(group.midlight());
875 painter->drawLine(x+1, y+1, x+1, y2-2); 875 painter->drawLine(x+1, y+1, x+1, y2-2);
876 } 876 }
877 877
878 // finish off top 878 // finish off top
879 if (selected) { 879 if (selected) {
880 if (edge) { 880 if (edge) {
881 painter->setPen(group.dark()); 881 painter->setPen(group.dark());
882 painter->drawPoint(x, y); 882 painter->drawPoint(x, y);
883 painter->setPen(group.midlight()); 883 painter->setPen(group.midlight());
884 painter->drawPoint(x+1, y); 884 painter->drawPoint(x+1, y);
885 } 885 }
886 } else { 886 } else {
887 painter->setPen(group.dark()); 887 painter->setPen(group.dark());
888 painter->drawLine(x, y+1, x2, y+1); 888 painter->drawLine(x, y+1, x2, y+1);
889 889
890 painter->setPen(group.mid()); 890 painter->setPen(group.mid());
891 painter->drawLine(x, y, x2, y); 891 painter->drawLine(x, y, x2, y);
892 892
893 if (edge) { 893 if (edge) {
894 painter->setPen(group.dark()); 894 painter->setPen(group.dark());
895 painter->drawPoint(x, y); 895 painter->drawPoint(x, y);
896 } 896 }
897 } 897 }
898 break; 898 break;
899 } 899 }
900 } 900 }
901 901
902 painter->restore(); 902 painter->restore();
903} 903}
904 904
905void PhaseStyle::drawTabMask( QPainter* p, const QTabBar*, QTab* tab, 905void PhaseStyle::drawTabMask( QPainter* p, const QTabBar*, QTab* tab,
906 bool ) { 906 bool ) {
907 p->fillRect(tab->rect(), Qt::color1); 907 p->fillRect(tab->rect(), Qt::color1);
908} 908}
909 909
910void PhaseStyle::drawToolButton(QPainter * p, int x, int y, 910void PhaseStyle::drawToolButton(QPainter * p, int x, int y,
911 int w, int h, const QColorGroup & g, 911 int w, int h, const QColorGroup & g,
912 bool sunken, 912 bool sunken,
913 const QBrush * fill ) { 913 const QBrush * fill ) {
914 QRect r(x, y, w, h ); 914 QRect r(x, y, w, h );
915 p->fillRect(r, g.background()); 915 p->fillRect(r, g.background());
916 916
917 drawPanel(p, x, y, w, h, g, sunken, 1, 917 drawPanel(p, x, y, w, h, g, sunken, 1,
918 fill ? fill : &g.brush(QColorGroup::Button) ); 918 fill ? fill : &g.brush(QColorGroup::Button) );
919 919
920 920
921 p->setPen(g.text() ); 921 p->setPen(g.text() );
922} 922}
923 923
924 924
925/* 925/*
926 * LGPLv2 Copyright (C) 2001 Rik Hemsley (rikkus) <rik@kde.org> 926 * LGPLv2 Copyright (C) 2001 Rik Hemsley (rikkus) <rik@kde.org>
927 * 927 *
928 * ../web/webstyle.cpp 928 * ../web/webstyle.cpp
929 */ 929 */
930void PhaseStyle::scrollBarMetrics(const QScrollBar* sb, int& sliderMin, 930void PhaseStyle::scrollBarMetrics(const QScrollBar* sb, int& sliderMin,
931 int& sliderMax, int &sliderLength, 931 int& sliderMax, int &sliderLength,
932 int& buttonDim ) { 932 int& buttonDim ) {
933 int maxlen; 933 int maxlen;
934 bool horizontal = sb->orientation() == QScrollBar::Horizontal; 934 bool horizontal = sb->orientation() == QScrollBar::Horizontal;
935 int len = (horizontal) ? sb->width() : sb->height(); 935 int len = (horizontal) ? sb->width() : sb->height();
936 int extent = (horizontal) ? sb->height() : sb->width(); 936 int extent = (horizontal) ? sb->height() : sb->width();
937 937
938 if (len > (extent - 1) * 2) 938 if (len > (extent - 1) * 2)
939 buttonDim = extent; 939 buttonDim = extent;
940 else 940 else
941 buttonDim = len / 2 - 1; 941 buttonDim = len / 2 - 1;
942 942
943 if (horizontal) 943 if (horizontal)
944 sliderMin = buttonDim * 2; 944 sliderMin = buttonDim * 2;
945 else 945 else
946 sliderMin = 1; 946 sliderMin = 1;
947 947