-rw-r--r-- | core/launcher/launchertab.cpp | 24 | ||||
-rw-r--r-- | core/settings/launcher/menusettings.cpp | 44 | ||||
-rw-r--r-- | libopie2/opieui/otabbar.cpp | 50 | ||||
-rw-r--r-- | libopie2/opieui/otabbar.h | 46 | ||||
-rw-r--r-- | libopie2/opieui/otabwidget.cpp | 1 | ||||
-rw-r--r-- | noncore/styles/flat/flat.cpp | 18 | ||||
-rw-r--r-- | noncore/styles/fresh/fresh.cpp | 18 | ||||
-rw-r--r-- | noncore/styles/liquid/liquid.cpp | 129 | ||||
-rw-r--r-- | noncore/styles/phase/phasestyle.cpp | 14 | ||||
-rw-r--r-- | noncore/styles/theme/othemestyle.cpp | 53 | ||||
-rw-r--r-- | noncore/styles/web/webstyle.cpp | 126 | ||||
-rw-r--r-- | noncore/styles/web/webstyle.h | 2 |
12 files changed, 338 insertions, 187 deletions
diff --git a/core/launcher/launchertab.cpp b/core/launcher/launchertab.cpp index 710f259..72ebf59 100644 --- a/core/launcher/launchertab.cpp +++ b/core/launcher/launchertab.cpp | |||
@@ -36,246 +36,250 @@ void LauncherTabBar::insertTab( LauncherTab *t, int index ) | |||
36 | { | 36 | { |
37 | if ( index < 0 ) | 37 | if ( index < 0 ) |
38 | items.append( t ); | 38 | items.append( t ); |
39 | else | 39 | else |
40 | items.insert( (uint)index, t ); | 40 | items.insert( (uint)index, t ); |
41 | tabs.insert( t->type, t ); | 41 | tabs.insert( t->type, t ); |
42 | QTabBar::insertTab( t, index ); | 42 | QTabBar::insertTab( t, index ); |
43 | } | 43 | } |
44 | 44 | ||
45 | void LauncherTabBar::removeTab( QTab *tab ) | 45 | void LauncherTabBar::removeTab( QTab *tab ) |
46 | { | 46 | { |
47 | LauncherTab *t = (LauncherTab *)tab; | 47 | LauncherTab *t = (LauncherTab *)tab; |
48 | tabs.remove( t->type ); | 48 | tabs.remove( t->type ); |
49 | items.remove( t ); | 49 | items.remove( t ); |
50 | QTabBar::removeTab( t ); | 50 | QTabBar::removeTab( t ); |
51 | } | 51 | } |
52 | 52 | ||
53 | void LauncherTabBar::prevTab() | 53 | void LauncherTabBar::prevTab() |
54 | { | 54 | { |
55 | int n = count(); | 55 | int n = count(); |
56 | int tab = currentTab(); | 56 | int tab = currentTab(); |
57 | if ( tab >= 0 ) | 57 | if ( tab >= 0 ) |
58 | setCurrentTab( (tab - 1 + n)%n ); | 58 | setCurrentTab( (tab - 1 + n)%n ); |
59 | } | 59 | } |
60 | 60 | ||
61 | void LauncherTabBar::nextTab() | 61 | void LauncherTabBar::nextTab() |
62 | { | 62 | { |
63 | int n = count(); | 63 | int n = count(); |
64 | int tab = currentTab(); | 64 | int tab = currentTab(); |
65 | setCurrentTab( (tab + 1)%n ); | 65 | setCurrentTab( (tab + 1)%n ); |
66 | } | 66 | } |
67 | 67 | ||
68 | void LauncherTabBar::showTab( const QString& id ) | 68 | void LauncherTabBar::showTab( const QString& id ) |
69 | { | 69 | { |
70 | setCurrentTab( tabs[id] ); | 70 | setCurrentTab( tabs[id] ); |
71 | } | 71 | } |
72 | 72 | ||
73 | void LauncherTabBar::layoutTabs() | 73 | void LauncherTabBar::layoutTabs() |
74 | { | 74 | { |
75 | if ( !count() ) | 75 | if ( !count() ) |
76 | return; | 76 | return; |
77 | 77 | ||
78 | int available = width()-1; | 78 | int available = width()-1; |
79 | 79 | ||
80 | QFontMetrics fm = fontMetrics(); | 80 | QFontMetrics fm = fontMetrics(); |
81 | int hiddenTabWidth = -12; | 81 | int hiddenTabWidth = -12; |
82 | LauncherTab *current = currentLauncherTab(); | 82 | LauncherTab *current = currentLauncherTab(); |
83 | int hframe, vframe, overlap; | 83 | int hframe, vframe, overlap; |
84 | style().tabbarMetrics( this, hframe, vframe, overlap ); | 84 | style().tabbarMetrics( this, hframe, vframe, overlap ); |
85 | int x = 0; | 85 | int x = 0; |
86 | QRect r; | 86 | QRect r; |
87 | LauncherTab *t; | 87 | LauncherTab *t; |
88 | QListIterator< LauncherTab > it( items ); | 88 | QListIterator< LauncherTab > it( items ); |
89 | int required = 0; | 89 | int required = 0; |
90 | int eventabwidth = (width()-1)/count(); | 90 | int eventabwidth = (width()-1)/count(); |
91 | enum Mode { HideBackText, Pack, Even } mode=Even; | 91 | enum Mode { HideBackText, Pack, Even } mode=Even; |
92 | for (it.toFirst(); it.current(); ++it ) { | 92 | for (it.toFirst(); it.current(); ++it ) { |
93 | t = it.current(); | 93 | t = it.current(); |
94 | if ( !t ) | 94 | if ( !t ) |
95 | continue; | 95 | continue; |
96 | int iw = fm.width( t->text() ) + hframe - overlap; | 96 | int iw = fm.width( t->text() ) + hframe - overlap; |
97 | if ( t != current ) { | 97 | if ( t != current ) { |
98 | available -= hiddenTabWidth + hframe - overlap; | 98 | available -= hiddenTabWidth + hframe - overlap; |
99 | if ( t->iconSet() != 0 ) | 99 | if ( t->iconSet() != 0 ) |
100 | available -= t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); | 100 | available -= t->iconSet()->pixmap().width(); |
101 | } | 101 | } |
102 | if ( t->iconSet() != 0 ) | 102 | if ( t->iconSet() != 0 ) |
103 | iw += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); | 103 | iw += t->iconSet()->pixmap().width(); |
104 | required += iw; | 104 | required += iw; |
105 | // As space gets tight, packed looks better than even. "10" must be at least 0. | 105 | // As space gets tight, packed looks better than even. "10" must be at least 0. |
106 | if ( iw >= eventabwidth-10 ) | 106 | if ( iw >= eventabwidth-10 ) |
107 | mode = Pack; | 107 | mode = Pack; |
108 | } | 108 | } |
109 | if ( mode == Pack && required > width()-1 ) | 109 | if ( mode == Pack && required > width()-1 ) |
110 | mode = HideBackText; | 110 | mode = HideBackText; |
111 | for ( it.toFirst(); it.current(); ++it ) { | 111 | for ( it.toFirst(); it.current(); ++it ) { |
112 | t = it.current(); | 112 | t = it.current(); |
113 | if ( !t ) | 113 | if ( !t ) |
114 | continue; | 114 | continue; |
115 | if ( mode != HideBackText ) { | 115 | if ( mode != HideBackText ) { |
116 | int w = fm.width( t->text() ); | 116 | int w = fm.width( t->text() ); |
117 | int ih = 0; | 117 | int ih = 0; |
118 | if ( t->iconSet() != 0 ) { | 118 | if ( t->iconSet() != 0 ) { |
119 | w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); | 119 | w += t->iconSet()->pixmap().width(); |
120 | ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); | 120 | ih = t->iconSet()->pixmap().height(); |
121 | } | 121 | } |
122 | int h = QMAX( fm.height(), ih ); | 122 | int h = QMAX( fm.height(), ih ); |
123 | h = QMAX( h, QApplication::globalStrut().height() ); | 123 | h = QMAX( h, QApplication::globalStrut().height() ); |
124 | 124 | ||
125 | h += vframe; | 125 | h += vframe; |
126 | w += hframe; | 126 | w += hframe; |
127 | 127 | ||
128 | QRect totr(x, 0, | 128 | QRect totr(x, 0, |
129 | mode == Even ? eventabwidth : w * (width()-1)/required, h); | 129 | mode == Even ? eventabwidth : w * (width()-1)/required, h); |
130 | t->setRect(totr); | 130 | t->setRect(totr); |
131 | x += totr.width() - overlap; | 131 | x += totr.width() - overlap; |
132 | r = r.unite(totr); | 132 | r = r.unite(totr); |
133 | } else if ( t != current ) { | 133 | } else if ( t != current ) { |
134 | int w = hiddenTabWidth; | 134 | int w = hiddenTabWidth; |
135 | int ih = 0; | 135 | int ih = 0; |
136 | if ( t->iconSet() != 0 ) { | 136 | if ( t->iconSet() != 0 ) { |
137 | w += t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width(); | 137 | w += t->iconSet()->pixmap().width(); |
138 | ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); | 138 | ih = t->iconSet()->pixmap().height(); |
139 | } | 139 | } |
140 | int h = QMAX( fm.height(), ih ); | 140 | int h = QMAX( fm.height(), ih ); |
141 | h = QMAX( h, QApplication::globalStrut().height() ); | 141 | h = QMAX( h, QApplication::globalStrut().height() ); |
142 | 142 | ||
143 | h += vframe; | 143 | h += vframe; |
144 | w += hframe; | 144 | w += hframe; |
145 | 145 | ||
146 | t->setRect( QRect(x, 0, w, h) ); | 146 | t->setRect( QRect(x, 0, w, h) ); |
147 | x += t->rect().width() - overlap; | 147 | x += t->rect().width() - overlap; |
148 | r = r.unite( t->rect() ); | 148 | r = r.unite( t->rect() ); |
149 | } else { | 149 | } else { |
150 | int ih = 0; | 150 | int ih = 0; |
151 | if ( t->iconSet() != 0 ) { | 151 | if ( t->iconSet() != 0 ) { |
152 | ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); | 152 | ih = t->iconSet()->pixmap().height(); |
153 | } | 153 | } |
154 | int h = QMAX( fm.height(), ih ); | 154 | int h = QMAX( fm.height(), ih ); |
155 | h = QMAX( h, QApplication::globalStrut().height() ); | 155 | h = QMAX( h, QApplication::globalStrut().height() ); |
156 | 156 | ||
157 | h += vframe; | 157 | h += vframe; |
158 | 158 | ||
159 | t->setRect( QRect(x, 0, available, h) ); | 159 | t->setRect( QRect(x, 0, available, h) ); |
160 | x += t->rect().width() - overlap; | 160 | x += t->rect().width() - overlap; |
161 | r = r.unite( t->rect() ); | 161 | r = r.unite( t->rect() ); |
162 | } | 162 | } |
163 | } | 163 | } |
164 | 164 | ||
165 | t = it.toLast(); | 165 | t = it.toLast(); |
166 | if (t) { | 166 | if (t) { |
167 | QRect rr = t->rect(); | 167 | QRect rr = t->rect(); |
168 | rr.setRight(width()-1); | 168 | rr.setRight(width()-1); |
169 | t->setRect( rr ); | 169 | t->setRect( rr ); |
170 | } | 170 | } |
171 | 171 | ||
172 | for (it.toFirst(); it.current(); ++it ) { | 172 | for (it.toFirst(); it.current(); ++it ) { |
173 | t = it.current(); | 173 | t = it.current(); |
174 | QRect tr = t->rect(); | 174 | QRect tr = t->rect(); |
175 | tr.setHeight( r.height() ); | 175 | tr.setHeight( r.height() ); |
176 | t->setRect( tr ); | 176 | t->setRect( tr ); |
177 | } | 177 | } |
178 | 178 | ||
179 | update(); | 179 | update(); |
180 | } | 180 | } |
181 | 181 | ||
182 | void LauncherTabBar::paint( QPainter * p, QTab * t, bool selected ) const | 182 | void LauncherTabBar::paint( QPainter * p, QTab * t, bool selected ) const |
183 | { | 183 | { |
184 | LauncherTabBar *that = (LauncherTabBar *) this; | 184 | LauncherTabBar *that = (LauncherTabBar *) this; |
185 | LauncherTab *ct = (LauncherTab *)t; | 185 | LauncherTab *ct = (LauncherTab *)t; |
186 | QPalette pal = palette(); | 186 | QPalette pal = palette(); |
187 | bool setPal = FALSE; | 187 | bool setPal = FALSE; |
188 | if ( ct->bgColor.isValid() ) { | 188 | if ( ct->bgColor.isValid() ) { |
189 | pal.setColor( QPalette::Active, QColorGroup::Background, ct->bgColor ); | 189 | pal.setColor( QPalette::Active, QColorGroup::Background, ct->bgColor ); |
190 | pal.setColor( QPalette::Active, QColorGroup::Button, ct->bgColor ); | 190 | pal.setColor( QPalette::Active, QColorGroup::Button, ct->bgColor ); |
191 | pal.setColor( QPalette::Inactive, QColorGroup::Background, ct->bgColor ); | 191 | pal.setColor( QPalette::Inactive, QColorGroup::Background, ct->bgColor ); |
192 | pal.setColor( QPalette::Inactive, QColorGroup::Button, ct->bgColor ); | 192 | pal.setColor( QPalette::Inactive, QColorGroup::Button, ct->bgColor ); |
193 | that->setUpdatesEnabled( FALSE ); | 193 | that->setUpdatesEnabled( FALSE ); |
194 | that->setPalette( pal ); | 194 | that->setPalette( pal ); |
195 | setPal = TRUE; | 195 | setPal = TRUE; |
196 | } | 196 | } |
197 | #if QT_VERSION >= 0x030000 | 197 | #if QT_VERSION >= 0x030000 |
198 | QStyle::SFlags flags = QStyle::Style_Default; | 198 | QStyle::SFlags flags = QStyle::Style_Default; |
199 | if ( selected ) | 199 | if ( selected ) |
200 | flags |= QStyle::Style_Selected; | 200 | flags |= QStyle::Style_Selected; |
201 | style().drawControl( QStyle::CE_TabBarTab, p, this, t->rect(), | 201 | style().drawControl( QStyle::CE_TabBarTab, p, this, t->rect(), |
202 | colorGroup(), flags, QStyleOption(t) ); | 202 | colorGroup(), flags, QStyleOption(t) ); |
203 | #else | 203 | #else |
204 | style().drawTab( p, this, t, selected ); | 204 | style().drawTab( p, this, t, selected ); |
205 | #endif | 205 | #endif |
206 | 206 | ||
207 | QRect r( t->rect() ); | 207 | QRect r( t->rect() ); |
208 | QFont f( font() ); | 208 | QFont f( font() ); |
209 | if ( selected ) | 209 | if ( selected ) |
210 | f.setBold( TRUE ); | 210 | f.setBold( TRUE ); |
211 | p->setFont( f ); | 211 | p->setFont( f ); |
212 | 212 | ||
213 | if ( ct->fgColor.isValid() ) { | 213 | if ( ct->fgColor.isValid() ) { |
214 | pal.setColor( QPalette::Active, QColorGroup::Foreground, ct->fgColor ); | 214 | pal.setColor( QPalette::Active, QColorGroup::Foreground, ct->fgColor ); |
215 | pal.setColor( QPalette::Inactive, QColorGroup::Foreground, ct->fgColor ); | 215 | pal.setColor( QPalette::Inactive, QColorGroup::Foreground, ct->fgColor ); |
216 | that->setUpdatesEnabled( FALSE ); | 216 | that->setUpdatesEnabled( FALSE ); |
217 | that->setPalette( pal ); | 217 | that->setPalette( pal ); |
218 | setPal = TRUE; | 218 | setPal = TRUE; |
219 | } | 219 | } |
220 | int iw = 0; | 220 | int iw = 0; |
221 | int ih = 0; | 221 | int ih = 0; |
222 | if ( t->iconSet() != 0 ) { | 222 | if ( t->iconSet() != 0 ) { |
223 | iw = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).width() + 2; | 223 | iw = t->iconSet()->pixmap().width() + 2; |
224 | ih = t->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height(); | 224 | ih = t->iconSet()->pixmap().height(); |
225 | } | 225 | } |
226 | int w = iw + p->fontMetrics().width( t->text() ) + 4; | 226 | int w = iw + p->fontMetrics().width( t->text() ) + 4; |
227 | int h = QMAX(p->fontMetrics().height() + 4, ih ); | 227 | int h = QMAX(p->fontMetrics().height() + 4, ih ); |
228 | paintLabel( p, QRect( r.left() + (r.width()-w)/2 - 3, | 228 | paintLabel( p, QRect( r.left() + (r.width()-w)/2 - 3, |
229 | r.top() + (r.height()-h)/2, w, h ), t, | 229 | r.top() + (r.height()-h)/2, w, h ), t, |
230 | #if QT_VERSION >= 0x030000 | 230 | #if QT_VERSION >= 0x030000 |
231 | t->identifier() == keyboardFocusTab() | 231 | t->identifier() == keyboardFocusTab() |
232 | #else | 232 | #else |
233 | t->identitifer() == keyboardFocusTab() | 233 | t->identitifer() == keyboardFocusTab() |
234 | #endif | 234 | #endif |
235 | ); | 235 | ); |
236 | if ( setPal ) { | 236 | if ( setPal ) { |
237 | that->unsetPalette(); | 237 | that->unsetPalette(); |
238 | that->setUpdatesEnabled( TRUE ); | 238 | that->setUpdatesEnabled( TRUE ); |
239 | } | 239 | } |
240 | } | 240 | } |
241 | 241 | ||
242 | void LauncherTabBar::paintLabel( QPainter* p, const QRect&, | 242 | void LauncherTabBar::paintLabel( QPainter* p, const QRect&, |
243 | QTab* t, bool has_focus ) const | 243 | QTab* t, bool has_focus ) const |
244 | { | 244 | { |
245 | QRect r = t->rect(); | 245 | QRect r = t->rect(); |
246 | // if ( t->id != currentTab() ) | 246 | // if ( t->id != currentTab() ) |
247 | //r.moveBy( 1, 1 ); | 247 | //r.moveBy( 1, 1 ); |
248 | // | 248 | // |
249 | if ( t->iconSet() ) { | 249 | if ( t->iconSet() ) { |
250 | // the tab has an iconset, draw it in the right mode | 250 | // the tab has an iconset, draw it in the right mode |
251 | QIconSet::Mode mode = (t->isEnabled() && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; | 251 | QIconSet::Mode mode = (t->isEnabled() && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; |
252 | if ( mode == QIconSet::Normal && has_focus ) | 252 | if ( mode == QIconSet::Normal && has_focus ) |
253 | mode = QIconSet::Active; | 253 | mode = QIconSet::Active; |
254 | QPixmap pixmap = t->iconSet()->pixmap( QIconSet::Small, mode ); | 254 | QPixmap pixmap; |
255 | if ( mode == QIconSet::Disabled ) | ||
256 | pixmap = t->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
257 | else | ||
258 | pixmap = t->iconSet()->pixmap(); | ||
255 | int pixw = pixmap.width(); | 259 | int pixw = pixmap.width(); |
256 | int pixh = pixmap.height(); | 260 | int pixh = pixmap.height(); |
257 | p->drawPixmap( r.left() + 6, r.center().y() - pixh / 2 + 1, pixmap ); | 261 | p->drawPixmap( r.left() + 6, r.center().y() - pixh / 2 + 1, pixmap ); |
258 | r.setLeft( r.left() + pixw + 5 ); | 262 | r.setLeft( r.left() + pixw + 5 ); |
259 | } | 263 | } |
260 | 264 | ||
261 | QRect tr = r; | 265 | QRect tr = r; |
262 | 266 | ||
263 | if ( r.width() < 20 ) | 267 | if ( r.width() < 20 ) |
264 | return; | 268 | return; |
265 | 269 | ||
266 | if ( t->isEnabled() && isEnabled() ) { | 270 | if ( t->isEnabled() && isEnabled() ) { |
267 | #if defined(_WS_WIN32_) | 271 | #if defined(_WS_WIN32_) |
268 | if ( colorGroup().brush( QColorGroup::Button ) == colorGroup().brush( QColorGroup::Background ) ) | 272 | if ( colorGroup().brush( QColorGroup::Button ) == colorGroup().brush( QColorGroup::Background ) ) |
269 | p->setPen( colorGroup().buttonText() ); | 273 | p->setPen( colorGroup().buttonText() ); |
270 | else | 274 | else |
271 | p->setPen( colorGroup().foreground() ); | 275 | p->setPen( colorGroup().foreground() ); |
272 | #else | 276 | #else |
273 | p->setPen( colorGroup().foreground() ); | 277 | p->setPen( colorGroup().foreground() ); |
274 | #endif | 278 | #endif |
275 | p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); | 279 | p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); |
276 | } else { | 280 | } else { |
277 | p->setPen( palette().disabled().foreground() ); | 281 | p->setPen( palette().disabled().foreground() ); |
278 | p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); | 282 | p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() ); |
279 | } | 283 | } |
280 | } | 284 | } |
281 | 285 | ||
diff --git a/core/settings/launcher/menusettings.cpp b/core/settings/launcher/menusettings.cpp index 55bf358..29ce841 100644 --- a/core/settings/launcher/menusettings.cpp +++ b/core/settings/launcher/menusettings.cpp | |||
@@ -1,172 +1,172 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the OPIE Project | 2 | This file is part of the OPIE Project |
3 | =. Copyright (c) 2002 Trolltech AS <info@trolltech.com> | 3 | =. Copyright (c) 2002 Trolltech AS <info@trolltech.com> |
4 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> | 4 | .=l. Copyright (c) 2002 Robert Griebl <sandman@handhelds.org> |
5 | .>+-= | 5 | .>+-= |
6 | _;:, .> :=|. This file is free software; you can | 6 | _;:, .> :=|. This file is free software; you can |
7 | .> <`_, > . <= redistribute it and/or modify it under | 7 | .> <`_, > . <= redistribute it and/or modify it under |
8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public | 8 | :`=1 )Y*s>-.-- : the terms of the GNU General Public |
9 | .="- .-=="i, .._ License as published by the Free Software | 9 | .="- .-=="i, .._ License as published by the Free Software |
10 | - . .-<_> .<> Foundation; either version 2 of the License, | 10 | - . .-<_> .<> Foundation; either version 2 of the License, |
11 | ._= =} : or (at your option) any later version. | 11 | ._= =} : or (at your option) any later version. |
12 | .%`+i> _;_. | 12 | .%`+i> _;_. |
13 | .i_,=:_. -<s. This file is distributed in the hope that | 13 | .i_,=:_. -<s. This file is distributed in the hope that |
14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 14 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
15 | : .. .:, . . . without even the implied warranty of | 15 | : .. .:, . . . without even the implied warranty of |
16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 16 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General | 17 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General |
18 | ..}^=.= = ; Public License for more details. | 18 | ..}^=.= = ; Public License for more details. |
19 | ++= -. .` .: | 19 | ++= -. .` .: |
20 | : = ...= . :.=- You should have received a copy of the GNU | 20 | : = ...= . :.=- You should have received a copy of the GNU |
21 | -. .:....=;==+<; General Public License along with this file; | 21 | -. .:....=;==+<; General Public License along with this file; |
22 | -_. . . )=. = see the file COPYING. If not, write to the | 22 | -_. . . )=. = see the file COPYING. If not, write to the |
23 | -- :-=` Free Software Foundation, Inc., | 23 | -- :-=` Free Software Foundation, Inc., |
24 | 59 Temple Place - Suite 330, | 24 | 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include "menusettings.h" | 29 | #include "menusettings.h" |
30 | 30 | ||
31 | #include <qpe/config.h> | 31 | #include <qpe/config.h> |
32 | #include <qpe/qlibrary.h> | 32 | #include <qpe/qlibrary.h> |
33 | #include <qpe/qpeapplication.h> | 33 | #include <qpe/qpeapplication.h> |
34 | #include <qpe/menuappletinterface.h> | 34 | #include <qpe/menuappletinterface.h> |
35 | #include <qpe/qcopenvelope_qws.h> | 35 | #include <qpe/qcopenvelope_qws.h> |
36 | 36 | ||
37 | #include <qdir.h> | 37 | #include <qdir.h> |
38 | #include <qlistview.h> | 38 | #include <qlistview.h> |
39 | #include <qcheckbox.h> | 39 | #include <qcheckbox.h> |
40 | #include <qheader.h> | 40 | #include <qheader.h> |
41 | #include <qlayout.h> | 41 | #include <qlayout.h> |
42 | #include <qlabel.h> | 42 | #include <qlabel.h> |
43 | #include <qwhatsthis.h> | 43 | #include <qwhatsthis.h> |
44 | 44 | ||
45 | #include <stdlib.h> | 45 | #include <stdlib.h> |
46 | 46 | ||
47 | 47 | ||
48 | MenuSettings::MenuSettings ( QWidget *parent, const char *name ) | 48 | MenuSettings::MenuSettings ( QWidget *parent, const char *name ) |
49 | : QWidget ( parent, name ) | 49 | : QWidget ( parent, name ) |
50 | { | 50 | { |
51 | m_applets_changed = false; | 51 | m_applets_changed = false; |
52 | 52 | ||
53 | QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 ); | 53 | QBoxLayout *lay = new QVBoxLayout ( this, 4, 4 ); |
54 | 54 | ||
55 | QLabel *l = new QLabel ( tr( "Load applets in O-Menu:" ), this ); | 55 | QLabel *l = new QLabel ( tr( "Load applets in O-Menu:" ), this ); |
56 | lay-> addWidget ( l ); | 56 | lay-> addWidget ( l ); |
57 | 57 | ||
58 | m_list = new QListView ( this ); | 58 | m_list = new QListView ( this ); |
59 | m_list-> addColumn ( "foobar" ); | 59 | m_list-> addColumn ( "foobar" ); |
60 | m_list-> header ( )-> hide ( ); | 60 | m_list-> header ( )-> hide ( ); |
61 | 61 | ||
62 | lay-> addWidget ( m_list ); | 62 | lay-> addWidget ( m_list ); |
63 | 63 | ||
64 | m_menutabs = new QCheckBox ( tr( "Show Launcher tabs in O-Menu" ), this ); | 64 | m_menutabs = new QCheckBox ( tr( "Show Launcher tabs in O-Menu" ), this ); |
65 | lay-> addWidget ( m_menutabs ); | 65 | lay-> addWidget ( m_menutabs ); |
66 | 66 | ||
67 | m_menusubpopup = new QCheckBox ( tr( "Show Applications in Subpopups" ), this ); | 67 | m_menusubpopup = new QCheckBox ( tr( "Show Applications in Subpopups" ), this ); |
68 | lay-> addWidget ( m_menusubpopup ); | 68 | lay-> addWidget ( m_menusubpopup ); |
69 | 69 | ||
70 | QWhatsThis::add ( m_list, tr( "Check the applets that you want to have included in the O-Menu." )); | 70 | QWhatsThis::add ( m_list, tr( "Check the applets that you want to have included in the O-Menu." )); |
71 | QWhatsThis::add ( m_menutabs, tr( "Adds the contents of the Launcher Tabs as menus in the O-Menu." )); | 71 | QWhatsThis::add ( m_menutabs, tr( "Adds the contents of the Launcher Tabs as menus in the O-Menu." )); |
72 | 72 | ||
73 | connect ( m_list, SIGNAL( clicked(QListViewItem*)), this, SLOT( appletChanged())); | 73 | connect ( m_list, SIGNAL( clicked(QListViewItem*)), this, SLOT( appletChanged())); |
74 | 74 | ||
75 | init ( ); | 75 | init ( ); |
76 | } | 76 | } |
77 | 77 | ||
78 | void MenuSettings::init ( ) | 78 | void MenuSettings::init ( ) |
79 | { | 79 | { |
80 | Config cfg ( "StartMenu" ); | 80 | Config cfg ( "StartMenu" ); |
81 | cfg. setGroup ( "Applets" ); | 81 | cfg. setGroup ( "Applets" ); |
82 | QStringList exclude = cfg. readListEntry ( "ExcludeApplets", ',' ); | 82 | QStringList exclude = cfg. readListEntry ( "ExcludeApplets", ',' ); |
83 | 83 | ||
84 | QString path = QPEApplication::qpeDir ( ) + "plugins/applets"; | 84 | QString path = QPEApplication::qpeDir ( ) + "plugins/applets"; |
85 | #ifdef Q_OS_MACX | 85 | #ifdef Q_OS_MACX |
86 | QStringList list = QDir ( path, "lib*.dylib" ). entryList ( ); | 86 | QStringList list = QDir ( path, "lib*.dylib" ). entryList ( ); |
87 | #else | 87 | #else |
88 | QStringList list = QDir ( path, "lib*.so" ). entryList ( ); | 88 | QStringList list = QDir ( path, "lib*.so" ). entryList ( ); |
89 | #endif /* Q_OS_MACX */ | 89 | #endif /* Q_OS_MACX */ |
90 | 90 | ||
91 | for ( QStringList::Iterator it = list. begin ( ); it != list. end ( ); ++it ) { | 91 | for ( QStringList::Iterator it = list. begin ( ); it != list. end ( ); ++it ) { |
92 | QString name; | 92 | QString name; |
93 | QPixmap icon; | 93 | QPixmap icon; |
94 | MenuAppletInterface *iface = 0; | 94 | MenuAppletInterface *iface = 0; |
95 | 95 | ||
96 | QLibrary *lib = new QLibrary ( path + "/" + *it ); | 96 | QLibrary *lib = new QLibrary ( path + "/" + *it ); |
97 | lib-> queryInterface ( IID_MenuApplet, (QUnknownInterface**) &iface ); | 97 | lib-> queryInterface ( IID_MenuApplet, (QUnknownInterface**) &iface ); |
98 | if ( iface ) { | 98 | if ( iface ) { |
99 | QString lang = getenv( "LANG" ); | 99 | QString lang = getenv( "LANG" ); |
100 | QTranslator *trans = new QTranslator ( qApp ); | 100 | QTranslator *trans = new QTranslator ( qApp ); |
101 | QString type = (*it). left ((*it). find (".")); | 101 | QString type = (*it). left ((*it). find (".")); |
102 | QString tfn = QPEApplication::qpeDir ( ) + "i18n/" + lang + "/" + type + ".qm"; | 102 | QString tfn = QPEApplication::qpeDir ( ) + "i18n/" + lang + "/" + type + ".qm"; |
103 | if ( trans-> load ( tfn )) | 103 | if ( trans-> load ( tfn )) |
104 | qApp-> installTranslator ( trans ); | 104 | qApp-> installTranslator ( trans ); |
105 | else | 105 | else |
106 | delete trans; | 106 | delete trans; |
107 | name = iface-> name ( ); | 107 | name = iface-> name ( ); |
108 | icon = iface-> icon ( ). pixmap ( QIconSet::Small, QIconSet::Normal ); | 108 | icon = iface-> icon ( ). pixmap (); |
109 | iface-> release ( ); | 109 | iface-> release ( ); |
110 | lib-> unload ( ); | 110 | lib-> unload ( ); |
111 | 111 | ||
112 | QCheckListItem *item; | 112 | QCheckListItem *item; |
113 | item = new QCheckListItem ( m_list, name, QCheckListItem::CheckBox ); | 113 | item = new QCheckListItem ( m_list, name, QCheckListItem::CheckBox ); |
114 | if ( !icon. isNull ( )) | 114 | if ( !icon. isNull ( )) |
115 | item-> setPixmap ( 0, icon ); | 115 | item-> setPixmap ( 0, icon ); |
116 | item-> setOn ( exclude. find ( *it ) == exclude. end ( )); | 116 | item-> setOn ( exclude. find ( *it ) == exclude. end ( )); |
117 | m_applets [*it] = item; | 117 | m_applets [*it] = item; |
118 | } else { | 118 | } else { |
119 | delete lib; | 119 | delete lib; |
120 | } | 120 | } |
121 | } | 121 | } |
122 | 122 | ||
123 | cfg. setGroup ( "Menu" ); | 123 | cfg. setGroup ( "Menu" ); |
124 | m_menutabs->setChecked( cfg.readBoolEntry( "LauncherTabs", true ) ); | 124 | m_menutabs->setChecked( cfg.readBoolEntry( "LauncherTabs", true ) ); |
125 | m_menusubpopup->setChecked( cfg.readBoolEntry( "LauncherSubPopup", true ) ); | 125 | m_menusubpopup->setChecked( cfg.readBoolEntry( "LauncherSubPopup", true ) ); |
126 | m_menusubpopup->setEnabled( m_menutabs->isChecked() ); | 126 | m_menusubpopup->setEnabled( m_menutabs->isChecked() ); |
127 | connect( m_menutabs, SIGNAL( stateChanged(int) ), m_menusubpopup, SLOT( setEnabled(bool) ) ); | 127 | connect( m_menutabs, SIGNAL( stateChanged(int) ), m_menusubpopup, SLOT( setEnabled(bool) ) ); |
128 | 128 | ||
129 | } | 129 | } |
130 | 130 | ||
131 | void MenuSettings::appletChanged() | 131 | void MenuSettings::appletChanged() |
132 | { | 132 | { |
133 | m_applets_changed = true; | 133 | m_applets_changed = true; |
134 | } | 134 | } |
135 | 135 | ||
136 | void MenuSettings::accept ( ) | 136 | void MenuSettings::accept ( ) |
137 | { | 137 | { |
138 | bool apps_changed = false; | 138 | bool apps_changed = false; |
139 | 139 | ||
140 | Config cfg ( "StartMenu" ); | 140 | Config cfg ( "StartMenu" ); |
141 | cfg. setGroup ( "Applets" ); | 141 | cfg. setGroup ( "Applets" ); |
142 | if ( m_applets_changed ) { | 142 | if ( m_applets_changed ) { |
143 | QStringList exclude; | 143 | QStringList exclude; |
144 | QMap <QString, QCheckListItem *>::Iterator it; | 144 | QMap <QString, QCheckListItem *>::Iterator it; |
145 | for ( it = m_applets. begin ( ); it != m_applets. end ( ); ++it ) { | 145 | for ( it = m_applets. begin ( ); it != m_applets. end ( ); ++it ) { |
146 | if ( !(*it)-> isOn ( )) | 146 | if ( !(*it)-> isOn ( )) |
147 | exclude << it. key ( ); | 147 | exclude << it. key ( ); |
148 | } | 148 | } |
149 | cfg. writeEntry ( "ExcludeApplets", exclude, ',' ); | 149 | cfg. writeEntry ( "ExcludeApplets", exclude, ',' ); |
150 | } | 150 | } |
151 | cfg. writeEntry ( "SafeMode", false ); | 151 | cfg. writeEntry ( "SafeMode", false ); |
152 | 152 | ||
153 | cfg. setGroup ( "Menu" ); | 153 | cfg. setGroup ( "Menu" ); |
154 | 154 | ||
155 | if ( m_menutabs-> isChecked ( ) != cfg. readBoolEntry ( "LauncherTabs", true )) { | 155 | if ( m_menutabs-> isChecked ( ) != cfg. readBoolEntry ( "LauncherTabs", true )) { |
156 | apps_changed = true; | 156 | apps_changed = true; |
157 | cfg. writeEntry ( "LauncherTabs", m_menutabs-> isChecked ( )); | 157 | cfg. writeEntry ( "LauncherTabs", m_menutabs-> isChecked ( )); |
158 | } | 158 | } |
159 | 159 | ||
160 | if ( m_menusubpopup-> isChecked ( ) != cfg. readBoolEntry ( "LauncherSubPopup", true )) { | 160 | if ( m_menusubpopup-> isChecked ( ) != cfg. readBoolEntry ( "LauncherSubPopup", true )) { |
161 | apps_changed = true; | 161 | apps_changed = true; |
162 | cfg. writeEntry ( "LauncherSubPopup", m_menusubpopup-> isChecked ( )); | 162 | cfg. writeEntry ( "LauncherSubPopup", m_menusubpopup-> isChecked ( )); |
163 | } | 163 | } |
164 | 164 | ||
165 | cfg. write ( ); | 165 | cfg. write ( ); |
166 | 166 | ||
167 | if ( m_applets_changed ) { | 167 | if ( m_applets_changed ) { |
168 | QCopEnvelope ( "QPE/TaskBar", "reloadApplets()" ); | 168 | QCopEnvelope ( "QPE/TaskBar", "reloadApplets()" ); |
169 | m_applets_changed = false; | 169 | m_applets_changed = false; |
170 | } | 170 | } |
171 | if ( apps_changed ) { | 171 | if ( apps_changed ) { |
172 | // currently use reloadApplets() since reloadApps is now used exclusive for server | 172 | // currently use reloadApplets() since reloadApps is now used exclusive for server |
diff --git a/libopie2/opieui/otabbar.cpp b/libopie2/opieui/otabbar.cpp index a62e18b..dc5df42 100644 --- a/libopie2/opieui/otabbar.cpp +++ b/libopie2/opieui/otabbar.cpp | |||
@@ -1,83 +1,87 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2002 Dan Williams <williamsdr@acm.org> | 4 | Copyright (c) 2002 Dan Williams <williamsdr@acm.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | .>+-= | 7 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 8 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 9 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #include <opie2/otabbar.h> | 32 | #include <opie2/otabbar.h> |
33 | 33 | ||
34 | #include <qpe/applnk.h> | ||
35 | |||
36 | #include <stdio.h> | ||
37 | |||
34 | using namespace Opie::Ui; | 38 | using namespace Opie::Ui; |
35 | 39 | ||
36 | OTabBar::OTabBar( QWidget *parent , const char *name ) | 40 | OTabBar::OTabBar( QWidget *parent , const char *name ) |
37 | :QTabBar( parent, name ) | 41 | :QTabBar( parent, name ) |
38 | {} | 42 | {} |
39 | 43 | ||
40 | void OTabBar::paintLabel( QPainter* p, const QRect& br, QTab* t, bool has_focus ) const | 44 | void OTabBar::paintLabel( QPainter* p, const QRect& br, QTab* t, bool has_focus ) const |
41 | { | 45 | { |
42 | 46 | ||
43 | QRect r = br; | 47 | QRect r = br; |
44 | if ( t->iconset) | 48 | if ( t->iconset) |
45 | { | 49 | { |
46 | QIconSet::Mode mode = (t->enabled && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; | 50 | QIconSet::Mode mode = (t->enabled && isEnabled()) ? QIconSet::Normal : QIconSet::Disabled; |
47 | if ( mode == QIconSet::Normal && has_focus ) | 51 | if ( mode == QIconSet::Normal && has_focus ) |
48 | { | 52 | { |
49 | mode = QIconSet::Active; | 53 | mode = QIconSet::Active; |
50 | } | 54 | } |
51 | QPixmap pixmap = t->iconset->pixmap( QIconSet::Small, mode ); | 55 | QPixmap pixmap = t->iconset->pixmap(); |
52 | int pixw = pixmap.width(); | 56 | int pixw = pixmap.width(); |
53 | int pixh = pixmap.height(); | 57 | int pixh = pixmap.height(); |
54 | r.setLeft( r.left() + pixw + 2 ); | 58 | r.setLeft( r.left() + pixw + 2 ); |
55 | p->drawPixmap( br.left()+2, br.center().y()-pixh/2, pixmap ); | 59 | p->drawPixmap( br.left()+2, br.center().y()-pixh/2, pixmap ); |
56 | } | 60 | } |
57 | 61 | ||
58 | QRect tr = r; | 62 | QRect tr = r; |
59 | if ( t->id == currentTab() ) | 63 | if ( t->id == currentTab() ) |
60 | { | 64 | { |
61 | tr.setBottom( tr.bottom() - style().defaultFrameWidth() ); | 65 | tr.setBottom( tr.bottom() - style().defaultFrameWidth() ); |
62 | } | 66 | } |
63 | 67 | ||
64 | if ( t->enabled && isEnabled() ) | 68 | if ( t->enabled && isEnabled() ) |
65 | { | 69 | { |
66 | p->setPen( colorGroup().foreground() ); | 70 | p->setPen( colorGroup().foreground() ); |
67 | p->drawText( tr, AlignCenter | ShowPrefix, t->label ); | 71 | p->drawText( tr, AlignCenter | ShowPrefix, t->label ); |
68 | } | 72 | } |
69 | else if ( style() == MotifStyle ) | 73 | else if ( style() == MotifStyle ) |
70 | { | 74 | { |
71 | p->setPen( palette().disabled().foreground() ); | 75 | p->setPen( palette().disabled().foreground() ); |
72 | p->drawText( tr, AlignCenter | ShowPrefix, t->label ); | 76 | p->drawText( tr, AlignCenter | ShowPrefix, t->label ); |
73 | } | 77 | } |
74 | else | 78 | else |
75 | { | 79 | { |
76 | p->setPen( colorGroup().light() ); | 80 | p->setPen( colorGroup().light() ); |
77 | QRect wr = tr; | 81 | QRect wr = tr; |
78 | wr.moveBy( 1, 1 ); | 82 | wr.moveBy( 1, 1 ); |
79 | p->drawText( wr, AlignCenter | ShowPrefix, t->label ); | 83 | p->drawText( wr, AlignCenter | ShowPrefix, t->label ); |
80 | p->setPen( palette().disabled().foreground() ); | 84 | p->setPen( palette().disabled().foreground() ); |
81 | p->drawText( tr, AlignCenter | ShowPrefix, t->label ); | 85 | p->drawText( tr, AlignCenter | ShowPrefix, t->label ); |
82 | } | 86 | } |
83 | } | 87 | } |
diff --git a/libopie2/opieui/otabbar.h b/libopie2/opieui/otabbar.h index 925ae96..1044bdd 100644 --- a/libopie2/opieui/otabbar.h +++ b/libopie2/opieui/otabbar.h | |||
@@ -1,86 +1,86 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (c) 2002 Dan Williams <williamsdr@acm.org> | 4 | Copyright (c) 2002 Dan Williams <williamsdr@acm.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | .>+-= | 7 | .>+-= |
8 | _;:, .> :=|. This program is free software; you can | 8 | _;:, .> :=|. This program is free software; you can |
9 | .> <`_, > . <= redistribute it and/or modify it under | 9 | .> <`_, > . <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #ifndef OTABBAR_H | 32 | #ifndef OTABBAR_H |
33 | #define OTABBAR_H | 33 | #define OTABBAR_H |
34 | 34 | ||
35 | /* QT */ | 35 | /* QT */ |
36 | #include <qtabbar.h> | 36 | #include <qtabbar.h> |
37 | 37 | ||
38 | namespace Opie { | 38 | namespace Opie { |
39 | namespace Ui { | 39 | namespace Ui { |
40 | 40 | ||
41 | /** | 41 | /** |
42 | * @class OTabBar | 42 | * @class OTabBar |
43 | * @brief The OTabBar class is a derivative of QTabBar. | 43 | * @brief The OTabBar class is a derivative of QTabBar. |
44 | * | 44 | * |
45 | * OTabBar is a derivation of TrollTech's QTabBar which provides | 45 | * OTabBar is a derivation of TrollTech's QTabBar which provides |
46 | * a row of tabs for selection. The only difference between this | 46 | * a row of tabs for selection. The only difference between this |
47 | * class and QTabBar is that there is no dotted line box around | 47 | * class and QTabBar is that there is no dotted line box around |
48 | * the label of the tab with the current focus. | 48 | * the label of the tab with the current focus. |
49 | */ | 49 | */ |
50 | class OTabBar : public QTabBar | 50 | class OTabBar : public QTabBar |
51 | { | 51 | { |
52 | Q_OBJECT | 52 | Q_OBJECT |
53 | 53 | ||
54 | public: | 54 | public: |
55 | /** | 55 | /** |
56 | * @fn OTabBar( QWidget *parent = 0, const char *name = 0 ) | 56 | * @fn OTabBar( QWidget *parent = 0, const char *name = 0 ) |
57 | * @brief Object constructor. | 57 | * @brief Object constructor. |
58 | * | 58 | * |
59 | * @param parent Pointer to parent of this control. | 59 | * @param parent Pointer to parent of this control. |
60 | * @param name Name of control. | 60 | * @param name Name of control. |
61 | * | 61 | * |
62 | * Constructs a new OTabBar control with parent and name. | 62 | * Constructs a new OTabBar control with parent and name. |
63 | */ | 63 | */ |
64 | OTabBar( QWidget * = 0, const char * = 0 ); | 64 | OTabBar( QWidget * = 0, const char * = 0 ); |
65 | 65 | ||
66 | protected: | 66 | protected: |
67 | /** | 67 | /** |
68 | * @fn paintLabel( QPainter* p, const QRect& br , QTab* t, bool has_focus)const | 68 | * @fn paintLabel( QPainter* p, const QRect& br , QTab* t, bool has_focus)const |
69 | * @brief Internal function to draw a tab's label. | 69 | * @brief Internal function to draw a tab's label. |
70 | * | 70 | * |
71 | * @param p Pointer to QPainter used for drawing. | 71 | * @param p Pointer to QPainter used for drawing. |
72 | * @param br QRect providing region to draw label in. | 72 | * @param br QRect providing region to draw label in. |
73 | * @param t Tab to draw label for. | 73 | * @param t Tab to draw label for. |
74 | * @param has_focus Boolean value not used, retained for compatibility reasons. | 74 | * @param has_focus Boolean value not used, retained for compatibility reasons. |
75 | */ | 75 | */ |
76 | void paintLabel( QPainter *, const QRect &, QTab *, bool ) const; | 76 | void paintLabel( QPainter *, const QRect &, QTab *, bool ) const; |
77 | 77 | ||
78 | private: | 78 | private: |
79 | class Private; | 79 | class Private; |
80 | Private *d; | 80 | Private *d; |
81 | }; | 81 | }; |
82 | 82 | ||
83 | } | 83 | } |
84 | } | 84 | } |
85 | 85 | ||
86 | #endif | 86 | #endif |
diff --git a/libopie2/opieui/otabwidget.cpp b/libopie2/opieui/otabwidget.cpp index 7333f5e..d617a9c 100644 --- a/libopie2/opieui/otabwidget.cpp +++ b/libopie2/opieui/otabwidget.cpp | |||
@@ -1,101 +1,100 @@ | |||
1 | /* | 1 | /* |
2 | Â Â Â Â Â Â Â Â This file is part of the Opie Project | 2 | Â Â Â Â Â Â Â Â This file is part of the Opie Project |
3 | 3 | ||
4 | Copyright (C) 2002, 2005 Dan Williams <drw@handhelds.org> | 4 | Copyright (C) 2002, 2005 Dan Williams <drw@handhelds.org> |
5 | =. | 5 | =. |
6 | .=l. | 6 | .=l. |
7 | Â Â Â Â Â Â .>+-= | 7 | Â Â Â Â Â Â .>+-= |
8 | Â _;:, Â Â .> Â Â :=|. This program is free software; you can | 8 | Â _;:, Â Â .> Â Â :=|. This program is free software; you can |
9 | .> <`_, Â > Â . Â <= redistribute it and/or modify it under | 9 | .> <`_, Â > Â . Â <= redistribute it and/or modify it under |
10 | :`=1 )Y*s>-.-- Â : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- Â : the terms of the GNU Library General Public |
11 | .="- .-=="i, Â Â .._ License as published by the Free Software | 11 | .="- .-=="i, Â Â .._ License as published by the Free Software |
12 | Â - . Â .-<_> Â Â .<> Foundation; either version 2 of the License, | 12 | Â - . Â .-<_> Â Â .<> Foundation; either version 2 of the License, |
13 | Â Â Â ._= =} Â Â Â : or (at your option) any later version. | 13 | Â Â Â ._= =} Â Â Â : or (at your option) any later version. |
14 | Â Â .%`+i> Â Â Â _;_. | 14 | Â Â .%`+i> Â Â Â _;_. |
15 | Â Â .i_,=:_. Â Â Â -<s. This program is distributed in the hope that | 15 | Â Â .i_,=:_. Â Â Â -<s. This program is distributed in the hope that |
16 | Â Â Â + Â . Â -:. Â Â Â = it will be useful, but WITHOUT ANY WARRANTY; | 16 | Â Â Â + Â . Â -:. Â Â Â = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. Â Â .:, Â Â . . . without even the implied warranty of | 17 | : .. Â Â .:, Â Â . . . without even the implied warranty of |
18 | Â Â =_ Â Â Â Â + Â Â =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | Â Â =_ Â Â Â Â + Â Â =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | Â _.=:. Â Â Â : Â Â :=>`: PARTICULAR PURPOSE. See the GNU | 19 | Â _.=:. Â Â Â : Â Â :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= Â Â Â = Â Â Â ; Library General Public License for more | 20 | ..}^=.= Â Â Â = Â Â Â ; Library General Public License for more |
21 | ++= Â -. Â Â .` Â Â .: details. | 21 | ++= Â -. Â Â .` Â Â .: details. |
22 | : Â Â = Â ...= . :.=- | 22 | : Â Â = Â ...= . :.=- |
23 | Â -. Â .:....=;==+<; You should have received a copy of the GNU | 23 | Â -. Â .:....=;==+<; You should have received a copy of the GNU |
24 | Â -_. . . Â )=. Â = Library General Public License along with | 24 | Â -_. . . Â )=. Â = Library General Public License along with |
25 | Â Â -- Â Â Â Â :-=` this library; see the file COPYING.LIB. | 25 | Â Â -- Â Â Â Â :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <opie2/otabwidget.h> | 31 | #include <opie2/otabwidget.h> |
32 | 32 | ||
33 | /* OPIE */ | 33 | /* OPIE */ |
34 | #include <opie2/oresource.h> | 34 | #include <opie2/oresource.h> |
35 | #include <opie2/otabbar.h> | 35 | #include <opie2/otabbar.h> |
36 | 36 | ||
37 | #include <qpe/applnk.h> | ||
38 | #include <qpe/config.h> | 37 | #include <qpe/config.h> |
39 | 38 | ||
40 | /* QT */ | 39 | /* QT */ |
41 | #include <qcombobox.h> | 40 | #include <qcombobox.h> |
42 | #include <qwidgetstack.h> | 41 | #include <qwidgetstack.h> |
43 | 42 | ||
44 | using namespace Opie::Ui; | 43 | using namespace Opie::Ui; |
45 | 44 | ||
46 | OTabWidget::OTabWidget( QWidget *parent, const char *name, TabStyle s, TabPosition p ) | 45 | OTabWidget::OTabWidget( QWidget *parent, const char *name, TabStyle s, TabPosition p ) |
47 | : QWidget( parent, name ) | 46 | : QWidget( parent, name ) |
48 | , m_currTab( 0l ) | 47 | , m_currTab( 0l ) |
49 | , m_tabBarStyle( Global ) | 48 | , m_tabBarStyle( Global ) |
50 | , m_tabBarPosition( Top ) | 49 | , m_tabBarPosition( Top ) |
51 | , m_usingTabs( true ) | 50 | , m_usingTabs( true ) |
52 | , m_tabBar( 0l ) | 51 | , m_tabBar( 0l ) |
53 | , m_tabList( 0l ) | 52 | , m_tabList( 0l ) |
54 | { | 53 | { |
55 | if ( s == Global ) | 54 | if ( s == Global ) |
56 | { | 55 | { |
57 | // Read Opie global settings for style and position | 56 | // Read Opie global settings for style and position |
58 | Config config( "qpe" ); | 57 | Config config( "qpe" ); |
59 | config.setGroup( "Appearance" ); | 58 | config.setGroup( "Appearance" ); |
60 | 59 | ||
61 | // Style | 60 | // Style |
62 | s = ( TabStyle ) config.readNumEntry( "TabStyle", (int) IconTab ); | 61 | s = ( TabStyle ) config.readNumEntry( "TabStyle", (int) IconTab ); |
63 | if ( s <= Global || s > IconList) | 62 | if ( s <= Global || s > IconList) |
64 | s = IconTab; | 63 | s = IconTab; |
65 | 64 | ||
66 | // Position | 65 | // Position |
67 | ( config.readEntry( "TabPosition", "Top" ) == "Bottom" ) ? p = Bottom | 66 | ( config.readEntry( "TabPosition", "Top" ) == "Bottom" ) ? p = Bottom |
68 | : p = Top; | 67 | : p = Top; |
69 | } | 68 | } |
70 | 69 | ||
71 | // Initialize widget stack for tab widgets | 70 | // Initialize widget stack for tab widgets |
72 | m_widgetStack = new QWidgetStack( this ); | 71 | m_widgetStack = new QWidgetStack( this ); |
73 | m_widgetStack->setFrameStyle( QFrame::NoFrame ); | 72 | m_widgetStack->setFrameStyle( QFrame::NoFrame ); |
74 | m_widgetStack->setLineWidth( style().defaultFrameWidth() ); | 73 | m_widgetStack->setLineWidth( style().defaultFrameWidth() ); |
75 | 74 | ||
76 | // Set initial selector control style and position | 75 | // Set initial selector control style and position |
77 | setTabStyle( s ); | 76 | setTabStyle( s ); |
78 | setTabPosition( p ); | 77 | setTabPosition( p ); |
79 | } | 78 | } |
80 | 79 | ||
81 | OTabWidget::~OTabWidget() | 80 | OTabWidget::~OTabWidget() |
82 | { | 81 | { |
83 | m_tabs.setAutoDelete( true ); | 82 | m_tabs.setAutoDelete( true ); |
84 | m_tabs.clear(); | 83 | m_tabs.clear(); |
85 | } | 84 | } |
86 | 85 | ||
87 | void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &label ) | 86 | void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &label ) |
88 | { | 87 | { |
89 | int tabid = -1; | 88 | int tabid = -1; |
90 | 89 | ||
91 | if ( m_usingTabs ) | 90 | if ( m_usingTabs ) |
92 | { | 91 | { |
93 | // Create new tab in tab bar | 92 | // Create new tab in tab bar |
94 | QTab *tab = new QTab(); | 93 | QTab *tab = new QTab(); |
95 | 94 | ||
96 | // Set label (and icon if necessary) | 95 | // Set label (and icon if necessary) |
97 | if ( m_tabBarStyle == IconTab ) | 96 | if ( m_tabBarStyle == IconTab ) |
98 | { | 97 | { |
99 | tab->label = QString::null; | 98 | tab->label = QString::null; |
100 | tab->iconset = new QIconSet( Opie::Core::OResource::loadPixmap( icon, Opie::Core::OResource::SmallIcon ) ); | 99 | tab->iconset = new QIconSet( Opie::Core::OResource::loadPixmap( icon, Opie::Core::OResource::SmallIcon ) ); |
101 | } | 100 | } |
diff --git a/noncore/styles/flat/flat.cpp b/noncore/styles/flat/flat.cpp index f3bacf9..c164ecc 100644 --- a/noncore/styles/flat/flat.cpp +++ b/noncore/styles/flat/flat.cpp | |||
@@ -312,148 +312,148 @@ void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p ) | |||
312 | y2 -= diw; | 312 | y2 -= diw; |
313 | } | 313 | } |
314 | */ | 314 | */ |
315 | 315 | ||
316 | if ( btn->parentWidget() ) { | 316 | if ( btn->parentWidget() ) { |
317 | btnBg = btn->parentWidget()->backgroundColor(); | 317 | btnBg = btn->parentWidget()->backgroundColor(); |
318 | fillBtnBorder = TRUE; | 318 | fillBtnBorder = TRUE; |
319 | } | 319 | } |
320 | 320 | ||
321 | bool clearButton = TRUE; | 321 | bool clearButton = TRUE; |
322 | if ( btn->isDown() ) { | 322 | if ( btn->isDown() ) { |
323 | drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE, | 323 | drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE, |
324 | &g.brush( QColorGroup::Text ) ); | 324 | &g.brush( QColorGroup::Text ) ); |
325 | } else { | 325 | } else { |
326 | if ( btn->isToggleButton() && btn->isOn() && btn->isEnabled() ) { | 326 | if ( btn->isToggleButton() && btn->isOn() && btn->isEnabled() ) { |
327 | QBrush fill(g.light(), Dense4Pattern ); | 327 | QBrush fill(g.light(), Dense4Pattern ); |
328 | drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE, &fill ); | 328 | drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE, &fill ); |
329 | clearButton = FALSE; | 329 | clearButton = FALSE; |
330 | } else { | 330 | } else { |
331 | if ( !btn->isFlat() ) | 331 | if ( !btn->isFlat() ) |
332 | drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, btn->isOn(), | 332 | drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, btn->isOn(), |
333 | &g.brush( QColorGroup::Button ) ); | 333 | &g.brush( QColorGroup::Button ) ); |
334 | } | 334 | } |
335 | } | 335 | } |
336 | /* | 336 | /* |
337 | if ( clearButton ) { | 337 | if ( clearButton ) { |
338 | if (btn->isDown()) | 338 | if (btn->isDown()) |
339 | p->setBrushOrigin(p->brushOrigin() + QPoint(1,1)); | 339 | p->setBrushOrigin(p->brushOrigin() + QPoint(1,1)); |
340 | p->fillRect( x1+2, y1+2, x2-x1-3, y2-y1-3, | 340 | p->fillRect( x1+2, y1+2, x2-x1-3, y2-y1-3, |
341 | g.brush( QColorGroup::Button ) ); | 341 | g.brush( QColorGroup::Button ) ); |
342 | if (btn->isDown()) | 342 | if (btn->isDown()) |
343 | p->setBrushOrigin(p->brushOrigin() - QPoint(1,1)); | 343 | p->setBrushOrigin(p->brushOrigin() - QPoint(1,1)); |
344 | } | 344 | } |
345 | */ | 345 | */ |
346 | 346 | ||
347 | fillBtnBorder = FALSE; | 347 | fillBtnBorder = FALSE; |
348 | if ( p->brush().style() != NoBrush ) | 348 | if ( p->brush().style() != NoBrush ) |
349 | p->setBrush( NoBrush ); | 349 | p->setBrush( NoBrush ); |
350 | } | 350 | } |
351 | 351 | ||
352 | void FlatStyle::drawPushButtonLabel( QPushButton *btn, QPainter *p ) | 352 | void FlatStyle::drawPushButtonLabel( QPushButton *btn, QPainter *p ) |
353 | { | 353 | { |
354 | QRect r = pushButtonContentsRect( btn ); | 354 | QRect r = pushButtonContentsRect( btn ); |
355 | int x, y, w, h; | 355 | int x, y, w, h; |
356 | r.rect( &x, &y, &w, &h ); | 356 | r.rect( &x, &y, &w, &h ); |
357 | QColorGroup cg = btn->colorGroup(); | 357 | QColorGroup cg = btn->colorGroup(); |
358 | if ( btn->isToggleButton() && btn->isOn() && btn->isEnabled() && !btn->isDown() ) | 358 | if ( btn->isToggleButton() && btn->isOn() && btn->isEnabled() && !btn->isDown() ) |
359 | cg.setColor( QColorGroup::ButtonText, btn->colorGroup().text() ); | 359 | cg.setColor( QColorGroup::ButtonText, btn->colorGroup().text() ); |
360 | else if ( btn->isDown() || btn->isOn() ) | 360 | else if ( btn->isDown() || btn->isOn() ) |
361 | cg.setColor( QColorGroup::ButtonText, btn->colorGroup().button() ); | 361 | cg.setColor( QColorGroup::ButtonText, btn->colorGroup().button() ); |
362 | if ( btn->isMenuButton() ) { | 362 | if ( btn->isMenuButton() ) { |
363 | int dx = menuButtonIndicatorWidth( btn->height() ); | 363 | int dx = menuButtonIndicatorWidth( btn->height() ); |
364 | drawArrow( p, DownArrow, FALSE, | 364 | drawArrow( p, DownArrow, FALSE, |
365 | x+w-dx, y+2, dx-4, h-4, | 365 | x+w-dx, y+2, dx-4, h-4, |
366 | cg, | 366 | cg, |
367 | btn->isEnabled() ); | 367 | btn->isEnabled() ); |
368 | w -= dx; | 368 | w -= dx; |
369 | } | 369 | } |
370 | 370 | ||
371 | if ( btn->iconSet() && !btn->iconSet()->isNull() ) { | 371 | if ( btn->iconSet() && !btn->iconSet()->isNull() ) { |
372 | QIconSet::Mode mode = btn->isEnabled() | 372 | QIconSet::Mode mode = btn->isEnabled() |
373 | ? QIconSet::Normal : QIconSet::Disabled; | 373 | ? QIconSet::Normal : QIconSet::Disabled; |
374 | if ( mode == QIconSet::Normal && btn->hasFocus() ) | 374 | if ( mode == QIconSet::Normal && btn->hasFocus() ) |
375 | mode = QIconSet::Active; | 375 | mode = QIconSet::Active; |
376 | QPixmap pixmap = btn->iconSet()->pixmap( QIconSet::Small, mode ); | 376 | QPixmap pixmap = btn->iconSet()->pixmap( QIconSet::Automatic, mode ); |
377 | int pixw = pixmap.width(); | 377 | int pixw = pixmap.width(); |
378 | int pixh = pixmap.height(); | 378 | int pixh = pixmap.height(); |
379 | p->drawPixmap( x+2, y+h/2-pixh/2, pixmap ); | 379 | p->drawPixmap( x+2, y+h/2-pixh/2, pixmap ); |
380 | x += pixw + 4; | 380 | x += pixw + 4; |
381 | w -= pixw + 4; | 381 | w -= pixw + 4; |
382 | } | 382 | } |
383 | drawItem( p, x, y, w, h, | 383 | drawItem( p, x, y, w, h, |
384 | AlignCenter | ShowPrefix, | 384 | AlignCenter | ShowPrefix, |
385 | cg, btn->isEnabled(), | 385 | cg, btn->isEnabled(), |
386 | btn->pixmap(), btn->text(), -1, &cg.buttonText() ); | 386 | btn->pixmap(), btn->text(), -1, &cg.buttonText() ); |
387 | 387 | ||
388 | } | 388 | } |
389 | 389 | ||
390 | QRect FlatStyle::comboButtonRect( int x, int y, int w, int h) | 390 | QRect FlatStyle::comboButtonRect( int x, int y, int w, int h) |
391 | { | 391 | { |
392 | return QRect(x+2, y+2, w-4-13, h-4); | 392 | return QRect(x+2, y+2, w-4-13, h-4); |
393 | } | 393 | } |
394 | 394 | ||
395 | 395 | ||
396 | QRect FlatStyle::comboButtonFocusRect( int x, int y, int w, int h) | 396 | QRect FlatStyle::comboButtonFocusRect( int x, int y, int w, int h) |
397 | { | 397 | { |
398 | return QRect(x+2, y+2, w-4-14, h-4); | 398 | return QRect(x+2, y+2, w-4-14, h-4); |
399 | } | 399 | } |
400 | 400 | ||
401 | void FlatStyle::drawComboButton( QPainter *p, int x, int y, int w, int h, | 401 | void FlatStyle::drawComboButton( QPainter *p, int x, int y, int w, int h, |
402 | const QColorGroup &g, bool sunken, | 402 | const QColorGroup &g, bool sunken, |
403 | bool /*editable*/, | 403 | bool /*editable*/, |
404 | bool enabled, | 404 | bool enabled, |
405 | const QBrush * /*fill*/ ) | 405 | const QBrush * /*fill*/ ) |
406 | { | 406 | { |
407 | x++; y++; | 407 | x++; y++; |
408 | w-=2; h-=2; | 408 | w-=2; h-=2; |
409 | p->setPen( g.foreground() ); | 409 | p->setPen( g.foreground() ); |
410 | p->setBrush( QBrush(NoBrush) ); | 410 | p->setBrush( QBrush(NoBrush) ); |
411 | p->drawRect( x, y, w, h ); | 411 | p->drawRect( x, y, w, h ); |
412 | p->setPen( g.background() ); | 412 | p->setPen( g.background() ); |
413 | p->drawRect( x+1, y+1, w-14, h-2 ); | 413 | p->drawRect( x+1, y+1, w-14, h-2 ); |
414 | p->fillRect( x+2, y+2, w-16, h-4, g.brush( QColorGroup::Base ) ); | 414 | p->fillRect( x+2, y+2, w-16, h-4, g.brush( QColorGroup::Base ) ); |
415 | QColorGroup cg( g ); | 415 | QColorGroup cg( g ); |
416 | if ( sunken ) { | 416 | if ( sunken ) { |
417 | cg.setColor( QColorGroup::ButtonText, g.button() ); | 417 | cg.setColor( QColorGroup::ButtonText, g.button() ); |
418 | cg.setColor( QColorGroup::Button, g.buttonText() ); | 418 | cg.setColor( QColorGroup::Button, g.buttonText() ); |
419 | } | 419 | } |
420 | drawArrow( p, QStyle::DownArrow, FALSE, | 420 | drawArrow( p, QStyle::DownArrow, FALSE, |
421 | x+w-13, y+1, 12, h-2, cg, enabled, | 421 | x+w-13, y+1, 12, h-2, cg, enabled, |
422 | &cg.brush( QColorGroup::Button ) ); | 422 | &cg.brush( QColorGroup::Button ) ); |
423 | 423 | ||
424 | } | 424 | } |
425 | 425 | ||
426 | 426 | ||
427 | void FlatStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w, | 427 | void FlatStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w, |
428 | int h, const QColorGroup &cg, bool on, bool down, bool enabled ) | 428 | int h, const QColorGroup &cg, bool on, bool down, bool enabled ) |
429 | { | 429 | { |
430 | static const QCOORD pts1[] = { // dark lines | 430 | static const QCOORD pts1[] = { // dark lines |
431 | 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; | 431 | 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; |
432 | static const QCOORD pts4[] = { // white lines | 432 | static const QCOORD pts4[] = { // white lines |
433 | 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, | 433 | 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, |
434 | 11,4, 10,3, 10,2 }; | 434 | 11,4, 10,3, 10,2 }; |
435 | static const QCOORD pts5[] = { // inner fill | 435 | static const QCOORD pts5[] = { // inner fill |
436 | 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; | 436 | 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; |
437 | 437 | ||
438 | p->eraseRect( x, y, w, h ); | 438 | p->eraseRect( x, y, w, h ); |
439 | QPointArray a( QCOORDARRLEN(pts1), pts4 ); | 439 | QPointArray a( QCOORDARRLEN(pts1), pts4 ); |
440 | a.translate( x, y ); | 440 | a.translate( x, y ); |
441 | p->setPen( cg.foreground() ); | 441 | p->setPen( cg.foreground() ); |
442 | p->drawPolyline( a ); | 442 | p->drawPolyline( a ); |
443 | a.setPoints( QCOORDARRLEN(pts4), pts1 ); | 443 | a.setPoints( QCOORDARRLEN(pts4), pts1 ); |
444 | a.translate( x, y ); | 444 | a.translate( x, y ); |
445 | p->setPen( cg.foreground() ); | 445 | p->setPen( cg.foreground() ); |
446 | p->drawPolyline( a ); | 446 | p->drawPolyline( a ); |
447 | a.setPoints( QCOORDARRLEN(pts5), pts5 ); | 447 | a.setPoints( QCOORDARRLEN(pts5), pts5 ); |
448 | a.translate( x, y ); | 448 | a.translate( x, y ); |
449 | QColor fillColor = ( down || !enabled ) ? cg.button() : cg.base(); | 449 | QColor fillColor = ( down || !enabled ) ? cg.button() : cg.base(); |
450 | p->setPen( fillColor ); | 450 | p->setPen( fillColor ); |
451 | p->setBrush( fillColor ) ; | 451 | p->setBrush( fillColor ) ; |
452 | p->drawPolygon( a ); | 452 | p->drawPolygon( a ); |
453 | if ( on ) { | 453 | if ( on ) { |
454 | p->setPen( NoPen ); | 454 | p->setPen( NoPen ); |
455 | p->setBrush( cg.text() ); | 455 | p->setBrush( cg.text() ); |
456 | p->drawRect( x+5, y+4, 2, 4 ); | 456 | p->drawRect( x+5, y+4, 2, 4 ); |
457 | p->drawRect( x+4, y+5, 4, 2 ); | 457 | p->drawRect( x+4, y+5, 4, 2 ); |
458 | } | 458 | } |
459 | } | 459 | } |
@@ -831,191 +831,195 @@ void FlatStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected | |||
831 | p->drawPoint( r.left() + 1, r.bottom() - 1 ); | 831 | p->drawPoint( r.left() + 1, r.bottom() - 1 ); |
832 | if ( r.left() == 0 ) | 832 | if ( r.left() == 0 ) |
833 | p->drawPoint( tb->rect().topLeft() ); | 833 | p->drawPoint( tb->rect().topLeft() ); |
834 | 834 | ||
835 | } else { | 835 | } else { |
836 | QCommonStyle::drawTab( p, tb, t, selected ); | 836 | QCommonStyle::drawTab( p, tb, t, selected ); |
837 | } | 837 | } |
838 | } | 838 | } |
839 | 839 | ||
840 | static const int motifItemFrame = 0;// menu item frame width | 840 | static const int motifItemFrame = 0;// menu item frame width |
841 | static const int motifSepHeight = 2;// separator item height | 841 | static const int motifSepHeight = 2;// separator item height |
842 | static const int motifItemHMargin = 1;// menu item hor text margin | 842 | static const int motifItemHMargin = 1;// menu item hor text margin |
843 | static const int motifItemVMargin = 2;// menu item ver text margin | 843 | static const int motifItemVMargin = 2;// menu item ver text margin |
844 | static const int motifArrowHMargin = 0;// arrow horizontal margin | 844 | static const int motifArrowHMargin = 0;// arrow horizontal margin |
845 | static const int motifTabSpacing = 12;// space between text and tab | 845 | static const int motifTabSpacing = 12;// space between text and tab |
846 | static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark | 846 | static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark |
847 | static const int windowsRightBorder= 8; // right border on windows | 847 | static const int windowsRightBorder= 8; // right border on windows |
848 | static const int windowsCheckMarkWidth = 2; // checkmarks width on windows | 848 | static const int windowsCheckMarkWidth = 2; // checkmarks width on windows |
849 | 849 | ||
850 | void FlatStyle::polishPopupMenu ( QPopupMenu *m ) | 850 | void FlatStyle::polishPopupMenu ( QPopupMenu *m ) |
851 | { | 851 | { |
852 | QWindowsStyle::polishPopupMenu( m ); | 852 | QWindowsStyle::polishPopupMenu( m ); |
853 | m->setLineWidth( 1 ); | 853 | m->setLineWidth( 1 ); |
854 | } | 854 | } |
855 | 855 | ||
856 | /*! \reimp | 856 | /*! \reimp |
857 | */ | 857 | */ |
858 | int FlatStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) | 858 | int FlatStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) |
859 | { | 859 | { |
860 | #ifndef QT_NO_MENUDATA | 860 | #ifndef QT_NO_MENUDATA |
861 | int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm | 861 | int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm |
862 | 862 | ||
863 | if ( mi->isSeparator() ) | 863 | if ( mi->isSeparator() ) |
864 | return 10; // arbitrary | 864 | return 10; // arbitrary |
865 | else if ( mi->pixmap() ) | 865 | else if ( mi->pixmap() ) |
866 | w += mi->pixmap()->width();// pixmap only | 866 | w += mi->pixmap()->width();// pixmap only |
867 | 867 | ||
868 | if ( !mi->text().isNull() ) { | 868 | if ( !mi->text().isNull() ) { |
869 | if ( mi->text().find('\t') >= 0 )// string contains tab | 869 | if ( mi->text().find('\t') >= 0 )// string contains tab |
870 | w += motifTabSpacing; | 870 | w += motifTabSpacing; |
871 | } | 871 | } |
872 | 872 | ||
873 | if ( maxpmw ) { // we have iconsets | 873 | if ( maxpmw ) { // we have iconsets |
874 | w += maxpmw; | 874 | w += maxpmw; |
875 | w += 6; // add a little extra border around the iconset | 875 | w += 6; // add a little extra border around the iconset |
876 | } | 876 | } |
877 | 877 | ||
878 | if ( checkable && maxpmw < windowsCheckMarkWidth ) { | 878 | if ( checkable && maxpmw < windowsCheckMarkWidth ) { |
879 | w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks | 879 | w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks |
880 | } | 880 | } |
881 | 881 | ||
882 | if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) | 882 | if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) |
883 | w += motifCheckMarkHMargin; // add space to separate the columns | 883 | w += motifCheckMarkHMargin; // add space to separate the columns |
884 | 884 | ||
885 | w += windowsRightBorder; // windows has a strange wide border on the right side | 885 | w += windowsRightBorder; // windows has a strange wide border on the right side |
886 | 886 | ||
887 | return w; | 887 | return w; |
888 | #endif | 888 | #endif |
889 | } | 889 | } |
890 | 890 | ||
891 | /*! \reimp | 891 | /*! \reimp |
892 | */ | 892 | */ |
893 | int FlatStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) | 893 | int FlatStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) |
894 | { | 894 | { |
895 | #ifndef QT_NO_MENUDATA | 895 | #ifndef QT_NO_MENUDATA |
896 | int h = 0; | 896 | int h = 0; |
897 | if ( mi->isSeparator() ) // separator height | 897 | if ( mi->isSeparator() ) // separator height |
898 | h = motifSepHeight; | 898 | h = motifSepHeight; |
899 | else if ( mi->pixmap() ) // pixmap height | 899 | else if ( mi->pixmap() ) // pixmap height |
900 | h = mi->pixmap()->height() + 2*motifItemFrame; | 900 | h = mi->pixmap()->height() + 2*motifItemFrame; |
901 | else // text height | 901 | else // text height |
902 | h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; | 902 | h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; |
903 | 903 | ||
904 | if ( !mi->isSeparator() && mi->iconSet() != 0 ) { | 904 | if ( !mi->isSeparator() && mi->iconSet() != 0 ) { |
905 | h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame ); | 905 | h = QMAX( h, mi->iconSet()->pixmap().height() + 2*motifItemFrame ); |
906 | } | 906 | } |
907 | if ( mi->custom() ) | 907 | if ( mi->custom() ) |
908 | h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; | 908 | h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; |
909 | return h; | 909 | return h; |
910 | #endif | 910 | #endif |
911 | } | 911 | } |
912 | 912 | ||
913 | void FlatStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, | 913 | void FlatStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, |
914 | const QPalette& pal, | 914 | const QPalette& pal, |
915 | bool act, bool enabled, int x, int y, int w, int h) | 915 | bool act, bool enabled, int x, int y, int w, int h) |
916 | { | 916 | { |
917 | #ifndef QT_NO_MENUDATA | 917 | #ifndef QT_NO_MENUDATA |
918 | const QColorGroup & g = pal.active(); | 918 | const QColorGroup & g = pal.active(); |
919 | bool dis = !enabled; | 919 | bool dis = !enabled; |
920 | QColorGroup itemg = dis ? pal.disabled() : pal.active(); | 920 | QColorGroup itemg = dis ? pal.disabled() : pal.active(); |
921 | 921 | ||
922 | if ( checkable ) | 922 | if ( checkable ) |
923 | maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks | 923 | maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks |
924 | 924 | ||
925 | int checkcol = maxpmw; | 925 | int checkcol = maxpmw; |
926 | 926 | ||
927 | if ( mi && mi->isSeparator() ) { // draw separator | 927 | if ( mi && mi->isSeparator() ) { // draw separator |
928 | p->setPen( g.dark() ); | 928 | p->setPen( g.dark() ); |
929 | p->drawLine( x, y, x+w, y ); | 929 | p->drawLine( x, y, x+w, y ); |
930 | return; | 930 | return; |
931 | } | 931 | } |
932 | 932 | ||
933 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : | 933 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : |
934 | g.brush( QColorGroup::Button ); | 934 | g.brush( QColorGroup::Button ); |
935 | p->fillRect( x, y, w, h, fill); | 935 | p->fillRect( x, y, w, h, fill); |
936 | 936 | ||
937 | if ( !mi ) | 937 | if ( !mi ) |
938 | return; | 938 | return; |
939 | 939 | ||
940 | if ( mi->isChecked() ) { | 940 | if ( mi->isChecked() ) { |
941 | if ( act && !dis ) { | 941 | if ( act && !dis ) { |
942 | qDrawShadePanel( p, x, y, checkcol, h, | 942 | qDrawShadePanel( p, x, y, checkcol, h, |
943 | g, TRUE, 1, &g.brush( QColorGroup::Button ) ); | 943 | g, TRUE, 1, &g.brush( QColorGroup::Button ) ); |
944 | } else { | 944 | } else { |
945 | qDrawShadePanel( p, x, y, checkcol, h, | 945 | qDrawShadePanel( p, x, y, checkcol, h, |
946 | g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); | 946 | g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); |
947 | } | 947 | } |
948 | } else if ( !act ) { | 948 | } else if ( !act ) { |
949 | p->fillRect(x, y, checkcol , h, | 949 | p->fillRect(x, y, checkcol , h, |
950 | g.brush( QColorGroup::Button )); | 950 | g.brush( QColorGroup::Button )); |
951 | } | 951 | } |
952 | 952 | ||
953 | if ( mi->iconSet() ) { // draw iconset | 953 | if ( mi->iconSet() ) { // draw iconset |
954 | QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; | 954 | QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; |
955 | if (act && !dis ) | 955 | if (act && !dis ) |
956 | mode = QIconSet::Active; | 956 | mode = QIconSet::Active; |
957 | QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode ); | 957 | QPixmap pixmap; |
958 | if ( mode == QIconSet::Disabled ) | ||
959 | pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
960 | else | ||
961 | pixmap = mi->iconSet()->pixmap(); | ||
958 | int pixw = pixmap.width(); | 962 | int pixw = pixmap.width(); |
959 | int pixh = pixmap.height(); | 963 | int pixh = pixmap.height(); |
960 | if ( act && !dis ) { | 964 | if ( act && !dis ) { |
961 | if ( !mi->isChecked() ) | 965 | if ( !mi->isChecked() ) |
962 | qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); | 966 | qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); |
963 | } | 967 | } |
964 | QRect cr( x, y, checkcol, h ); | 968 | QRect cr( x, y, checkcol, h ); |
965 | QRect pmr( 0, 0, pixw, pixh ); | 969 | QRect pmr( 0, 0, pixw, pixh ); |
966 | pmr.moveCenter( cr.center() ); | 970 | pmr.moveCenter( cr.center() ); |
967 | p->setPen( itemg.text() ); | 971 | p->setPen( itemg.text() ); |
968 | p->drawPixmap( pmr.topLeft(), pixmap ); | 972 | p->drawPixmap( pmr.topLeft(), pixmap ); |
969 | 973 | ||
970 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : | 974 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : |
971 | g.brush( QColorGroup::Button ); | 975 | g.brush( QColorGroup::Button ); |
972 | p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); | 976 | p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); |
973 | } else if ( checkable ) {// just "checking"... | 977 | } else if ( checkable ) {// just "checking"... |
974 | int mw = checkcol + motifItemFrame; | 978 | int mw = checkcol + motifItemFrame; |
975 | int mh = h - 2*motifItemFrame; | 979 | int mh = h - 2*motifItemFrame; |
976 | if ( mi->isChecked() ) { | 980 | if ( mi->isChecked() ) { |
977 | drawCheckMark( p, x + motifItemFrame + 2, | 981 | drawCheckMark( p, x + motifItemFrame + 2, |
978 | y+motifItemFrame, mw, mh, itemg, act, dis ); | 982 | y+motifItemFrame, mw, mh, itemg, act, dis ); |
979 | } | 983 | } |
980 | } | 984 | } |
981 | 985 | ||
982 | p->setPen( act ? g.highlightedText() : g.buttonText() ); | 986 | p->setPen( act ? g.highlightedText() : g.buttonText() ); |
983 | 987 | ||
984 | QColor discol; | 988 | QColor discol; |
985 | if ( dis ) { | 989 | if ( dis ) { |
986 | discol = itemg.text(); | 990 | discol = itemg.text(); |
987 | p->setPen( discol ); | 991 | p->setPen( discol ); |
988 | } | 992 | } |
989 | 993 | ||
990 | int xm = motifItemFrame + checkcol + motifItemHMargin; | 994 | int xm = motifItemFrame + checkcol + motifItemHMargin; |
991 | 995 | ||
992 | if ( mi->custom() ) { | 996 | if ( mi->custom() ) { |
993 | int m = motifItemVMargin; | 997 | int m = motifItemVMargin; |
994 | p->save(); | 998 | p->save(); |
995 | if ( dis && !act ) { | 999 | if ( dis && !act ) { |
996 | p->setPen( g.light() ); | 1000 | p->setPen( g.light() ); |
997 | mi->custom()->paint( p, itemg, act, enabled, | 1001 | mi->custom()->paint( p, itemg, act, enabled, |
998 | x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); | 1002 | x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); |
999 | p->setPen( discol ); | 1003 | p->setPen( discol ); |
1000 | } | 1004 | } |
1001 | mi->custom()->paint( p, itemg, act, enabled, | 1005 | mi->custom()->paint( p, itemg, act, enabled, |
1002 | x+xm, y+m, w-xm-tab+1, h-2*m ); | 1006 | x+xm, y+m, w-xm-tab+1, h-2*m ); |
1003 | p->restore(); | 1007 | p->restore(); |
1004 | } | 1008 | } |
1005 | QString s = mi->text(); | 1009 | QString s = mi->text(); |
1006 | if ( !s.isNull() ) { // draw text | 1010 | if ( !s.isNull() ) { // draw text |
1007 | int t = s.find( '\t' ); | 1011 | int t = s.find( '\t' ); |
1008 | int m = motifItemVMargin; | 1012 | int m = motifItemVMargin; |
1009 | const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; | 1013 | const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; |
1010 | if ( t >= 0 ) { // draw tab text | 1014 | if ( t >= 0 ) { // draw tab text |
1011 | if ( dis && !act ) { | 1015 | if ( dis && !act ) { |
1012 | p->setPen( g.light() ); | 1016 | p->setPen( g.light() ); |
1013 | p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, | 1017 | p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, |
1014 | y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); | 1018 | y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); |
1015 | p->setPen( discol ); | 1019 | p->setPen( discol ); |
1016 | } | 1020 | } |
1017 | p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame, | 1021 | p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame, |
1018 | y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); | 1022 | y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); |
1019 | } | 1023 | } |
1020 | if ( dis && !act ) | 1024 | if ( dis && !act ) |
1021 | p->setPen( discol ); | 1025 | p->setPen( discol ); |
diff --git a/noncore/styles/fresh/fresh.cpp b/noncore/styles/fresh/fresh.cpp index 831b620..856f68b 100644 --- a/noncore/styles/fresh/fresh.cpp +++ b/noncore/styles/fresh/fresh.cpp | |||
@@ -86,130 +86,130 @@ void FreshStyle::unPolish( QWidget *w ) | |||
86 | int FreshStyle::defaultFrameWidth() const | 86 | int FreshStyle::defaultFrameWidth() const |
87 | { | 87 | { |
88 | return 1; | 88 | return 1; |
89 | } | 89 | } |
90 | 90 | ||
91 | void FreshStyle::drawPanel ( QPainter * p, int x, int y, int w, int h, | 91 | void FreshStyle::drawPanel ( QPainter * p, int x, int y, int w, int h, |
92 | const QColorGroup &g, bool sunken, int lineWidth, const QBrush * fill ) | 92 | const QColorGroup &g, bool sunken, int lineWidth, const QBrush * fill ) |
93 | { | 93 | { |
94 | qDrawShadePanel( p, QRect(x, y, w, h), g, sunken, lineWidth, fill ); | 94 | qDrawShadePanel( p, QRect(x, y, w, h), g, sunken, lineWidth, fill ); |
95 | } | 95 | } |
96 | 96 | ||
97 | void FreshStyle::drawButton( QPainter *p, int x, int y, int w, int h, | 97 | void FreshStyle::drawButton( QPainter *p, int x, int y, int w, int h, |
98 | const QColorGroup &cg, bool sunken, const QBrush* fill ) | 98 | const QColorGroup &cg, bool sunken, const QBrush* fill ) |
99 | { | 99 | { |
100 | QPen oldPen = p->pen(); | 100 | QPen oldPen = p->pen(); |
101 | int off = sunken ? 1 : 0; | 101 | int off = sunken ? 1 : 0; |
102 | p->fillRect( x+1+off, y+1+off, w-3, h-3, fill?(*fill):cg.brush(QColorGroup::Button) ); | 102 | p->fillRect( x+1+off, y+1+off, w-3, h-3, fill?(*fill):cg.brush(QColorGroup::Button) ); |
103 | 103 | ||
104 | int x2 = x+w-1; | 104 | int x2 = x+w-1; |
105 | int y2 = y+h-1; | 105 | int y2 = y+h-1; |
106 | 106 | ||
107 | if ( sunken ) | 107 | if ( sunken ) |
108 | p->setPen( cg.dark() ); | 108 | p->setPen( cg.dark() ); |
109 | else | 109 | else |
110 | p->setPen( cg.light() ); | 110 | p->setPen( cg.light() ); |
111 | p->drawLine( x, y, x, y2-1 ); | 111 | p->drawLine( x, y, x, y2-1 ); |
112 | p->drawLine( x, y, x2, y ); | 112 | p->drawLine( x, y, x2, y ); |
113 | 113 | ||
114 | if ( sunken ) { | 114 | if ( sunken ) { |
115 | p->setPen( white ); | 115 | p->setPen( white ); |
116 | p->drawLine( x+1, y+1, x+1, y2-2 ); | 116 | p->drawLine( x+1, y+1, x+1, y2-2 ); |
117 | p->drawLine( x+1, y+1, x2-2, y+1 ); | 117 | p->drawLine( x+1, y+1, x2-2, y+1 ); |
118 | } | 118 | } |
119 | 119 | ||
120 | if ( sunken ) | 120 | if ( sunken ) |
121 | p->setPen( cg.light() ); | 121 | p->setPen( cg.light() ); |
122 | else | 122 | else |
123 | p->setPen( cg.dark() ); | 123 | p->setPen( cg.dark() ); |
124 | p->drawLine( x2, y+1, x2, y2 ); | 124 | p->drawLine( x2, y+1, x2, y2 ); |
125 | p->drawLine( x, y2, x2, y2 ); | 125 | p->drawLine( x, y2, x2, y2 ); |
126 | 126 | ||
127 | if ( !sunken ) { | 127 | if ( !sunken ) { |
128 | p->setPen( white ); | 128 | p->setPen( white ); |
129 | p->drawLine( x2-1, y+1, x2-1, y2-1 ); | 129 | p->drawLine( x2-1, y+1, x2-1, y2-1 ); |
130 | p->drawLine( x+1, y2-1, x2-1, y2-1 ); | 130 | p->drawLine( x+1, y2-1, x2-1, y2-1 ); |
131 | } | 131 | } |
132 | p->setPen( oldPen ); | 132 | p->setPen( oldPen ); |
133 | } | 133 | } |
134 | 134 | ||
135 | void FreshStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h ) | 135 | void FreshStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h ) |
136 | { | 136 | { |
137 | p->fillRect( x, y, w, h, color1 ); | 137 | p->fillRect( x, y, w, h, color1 ); |
138 | } | 138 | } |
139 | 139 | ||
140 | void FreshStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h, | 140 | void FreshStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h, |
141 | const QColorGroup &g, bool sunken, const QBrush* fill ) | 141 | const QColorGroup &g, bool sunken, const QBrush* fill ) |
142 | { | 142 | { |
143 | drawButton( p, x, y, w, h, g, sunken, fill ); | 143 | drawButton( p, x, y, w, h, g, sunken, fill ); |
144 | } | 144 | } |
145 | 145 | ||
146 | QRect FreshStyle::comboButtonRect( int x, int y, int w, int h) | 146 | QRect FreshStyle::comboButtonRect( int x, int y, int w, int h) |
147 | { | 147 | { |
148 | return QRect(x+1, y+1, w-2-14, h-2); | 148 | return QRect(x+1, y+1, w-2-14, h-2); |
149 | } | 149 | } |
150 | 150 | ||
151 | 151 | ||
152 | QRect FreshStyle::comboButtonFocusRect( int x, int y, int w, int h) | 152 | QRect FreshStyle::comboButtonFocusRect( int x, int y, int w, int h) |
153 | { | 153 | { |
154 | return QRect(x+2, y+2, w-4-14, h-4); | 154 | return QRect(x+2, y+2, w-4-14, h-4); |
155 | } | 155 | } |
156 | 156 | ||
157 | void FreshStyle::drawComboButton( QPainter *p, int x, int y, int w, int h, | 157 | void FreshStyle::drawComboButton( QPainter *p, int x, int y, int w, int h, |
158 | const QColorGroup &g, bool sunken, | 158 | const QColorGroup &g, bool sunken, |
159 | bool /*editable*/, | 159 | bool /*editable*/, |
160 | bool enabled, | 160 | bool enabled, |
161 | const QBrush *fill ) | 161 | const QBrush *fill ) |
162 | { | 162 | { |
163 | drawBevelButton( p, x, y, w, h, g, FALSE, fill ); | 163 | drawBevelButton( p, x, y, w, h, g, FALSE, fill ); |
164 | drawBevelButton( p, x+w-14, y, 14, h, g, sunken, fill ); | 164 | drawBevelButton( p, x+w-14, y, 14, h, g, sunken, fill ); |
165 | drawArrow( p, QStyle::DownArrow, sunken, | 165 | drawArrow( p, QStyle::DownArrow, sunken, |
166 | x+w-14+ 2, y+ 2, 14- 4, h- 4, g, enabled, | 166 | x+w-14+ 2, y+ 2, 14- 4, h- 4, g, enabled, |
167 | &g.brush( QColorGroup::Button ) ); | 167 | &g.brush( QColorGroup::Button ) ); |
168 | 168 | ||
169 | } | 169 | } |
170 | 170 | ||
171 | 171 | ||
172 | void FreshStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w, | 172 | void FreshStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w, |
173 | int h, const QColorGroup &cg, bool on, bool down, bool enabled ) | 173 | int h, const QColorGroup &cg, bool on, bool down, bool enabled ) |
174 | { | 174 | { |
175 | static const QCOORD pts1[] = { // dark lines | 175 | static const QCOORD pts1[] = { // dark lines |
176 | 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; | 176 | 1,9, 1,8, 0,7, 0,4, 1,3, 1,2, 2,1, 3,1, 4,0, 7,0, 8,1, 9,1 }; |
177 | static const QCOORD pts4[] = { // white lines | 177 | static const QCOORD pts4[] = { // white lines |
178 | 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, | 178 | 2,10, 3,10, 4,11, 7,11, 8,10, 9,10, 10,9, 10,8, 11,7, |
179 | 11,4, 10,3, 10,2 }; | 179 | 11,4, 10,3, 10,2 }; |
180 | static const QCOORD pts5[] = { // inner fill | 180 | static const QCOORD pts5[] = { // inner fill |
181 | 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; | 181 | 4,2, 7,2, 9,4, 9,7, 7,9, 4,9, 2,7, 2,4 }; |
182 | 182 | ||
183 | p->eraseRect( x, y, w, h ); | 183 | p->eraseRect( x, y, w, h ); |
184 | QPointArray a( QCOORDARRLEN(pts1), pts4 ); | 184 | QPointArray a( QCOORDARRLEN(pts1), pts4 ); |
185 | a.translate( x, y ); | 185 | a.translate( x, y ); |
186 | p->setPen( cg.dark() ); | 186 | p->setPen( cg.dark() ); |
187 | p->drawPolyline( a ); | 187 | p->drawPolyline( a ); |
188 | a.setPoints( QCOORDARRLEN(pts4), pts1 ); | 188 | a.setPoints( QCOORDARRLEN(pts4), pts1 ); |
189 | a.translate( x, y ); | 189 | a.translate( x, y ); |
190 | p->setPen( cg.light() ); | 190 | p->setPen( cg.light() ); |
191 | p->drawPolyline( a ); | 191 | p->drawPolyline( a ); |
192 | a.setPoints( QCOORDARRLEN(pts5), pts5 ); | 192 | a.setPoints( QCOORDARRLEN(pts5), pts5 ); |
193 | a.translate( x, y ); | 193 | a.translate( x, y ); |
194 | QColor fillColor = ( down || !enabled ) ? cg.button() : cg.base(); | 194 | QColor fillColor = ( down || !enabled ) ? cg.button() : cg.base(); |
195 | p->setPen( fillColor ); | 195 | p->setPen( fillColor ); |
196 | p->setBrush( fillColor ) ; | 196 | p->setBrush( fillColor ) ; |
197 | p->drawPolygon( a ); | 197 | p->drawPolygon( a ); |
198 | if ( on ) { | 198 | if ( on ) { |
199 | p->setPen( NoPen ); | 199 | p->setPen( NoPen ); |
200 | p->setBrush( cg.text() ); | 200 | p->setBrush( cg.text() ); |
201 | p->drawRect( x+5, y+4, 2, 4 ); | 201 | p->drawRect( x+5, y+4, 2, 4 ); |
202 | p->drawRect( x+4, y+5, 4, 2 ); | 202 | p->drawRect( x+4, y+5, 4, 2 ); |
203 | } | 203 | } |
204 | } | 204 | } |
205 | 205 | ||
206 | void FreshStyle::drawIndicator ( QPainter * p, int x, int y, int w, int h, | 206 | void FreshStyle::drawIndicator ( QPainter * p, int x, int y, int w, int h, |
207 | const QColorGroup &cg, int state, bool down, bool enabled ) | 207 | const QColorGroup &cg, int state, bool down, bool enabled ) |
208 | { | 208 | { |
209 | QColorGroup mycg( cg ); | 209 | QColorGroup mycg( cg ); |
210 | mycg.setBrush( QColorGroup::Button, QBrush() ); | 210 | mycg.setBrush( QColorGroup::Button, QBrush() ); |
211 | QBrush fill; | 211 | QBrush fill; |
212 | drawButton( p, x, y, w, h, mycg, TRUE, 0 ); | 212 | drawButton( p, x, y, w, h, mycg, TRUE, 0 ); |
213 | if ( down ) | 213 | if ( down ) |
214 | fill = cg.brush( QColorGroup::Button ); | 214 | fill = cg.brush( QColorGroup::Button ); |
215 | else | 215 | else |
@@ -467,303 +467,307 @@ void FreshStyle::drawSlider( QPainter *p, int x, int y, int w, int h, | |||
467 | int b = tickBelow ? 3 : 0; | 467 | int b = tickBelow ? 3 : 0; |
468 | 468 | ||
469 | if ( o == Horizontal ) { | 469 | if ( o == Horizontal ) { |
470 | drawBevelButton( p, x, y+a, w, h-a-b, g, FALSE, &g.brush( QColorGroup::Button ) ); | 470 | drawBevelButton( p, x, y+a, w, h-a-b, g, FALSE, &g.brush( QColorGroup::Button ) ); |
471 | int xp = x + w/2; | 471 | int xp = x + w/2; |
472 | qDrawShadeLine( p, xp, y+a+2, xp, y+h-b-3, g ); | 472 | qDrawShadeLine( p, xp, y+a+2, xp, y+h-b-3, g ); |
473 | } else { | 473 | } else { |
474 | drawBevelButton( p, x+a, y, w-a-b, h, g, FALSE, &g.brush( QColorGroup::Button ) ); | 474 | drawBevelButton( p, x+a, y, w-a-b, h, g, FALSE, &g.brush( QColorGroup::Button ) ); |
475 | int yp = y + h/2; | 475 | int yp = y + h/2; |
476 | qDrawShadeLine( p, x+a+2, yp, x+w-b-3, yp, g ); | 476 | qDrawShadeLine( p, x+a+2, yp, x+w-b-3, yp, g ); |
477 | } | 477 | } |
478 | } | 478 | } |
479 | 479 | ||
480 | void FreshStyle::drawSliderMask ( QPainter * p, int x, int y, int w, int h, | 480 | void FreshStyle::drawSliderMask ( QPainter * p, int x, int y, int w, int h, |
481 | Orientation o, bool tickAbove, bool tickBelow ) | 481 | Orientation o, bool tickAbove, bool tickBelow ) |
482 | { | 482 | { |
483 | int a = tickAbove ? 3 : 0; | 483 | int a = tickAbove ? 3 : 0; |
484 | int b = tickBelow ? 3 : 0; | 484 | int b = tickBelow ? 3 : 0; |
485 | if ( o == Horizontal ) | 485 | if ( o == Horizontal ) |
486 | p->fillRect( x, y+a, w, h-a-b, color1 ); | 486 | p->fillRect( x, y+a, w, h-a-b, color1 ); |
487 | else | 487 | else |
488 | p->fillRect( x+a, y, w-a-b, h, color1 ); | 488 | p->fillRect( x+a, y, w-a-b, h, color1 ); |
489 | } | 489 | } |
490 | 490 | ||
491 | /*!\reimp | 491 | /*!\reimp |
492 | */ | 492 | */ |
493 | void FreshStyle::drawSliderGrooveMask( QPainter *p, | 493 | void FreshStyle::drawSliderGrooveMask( QPainter *p, |
494 | int x, int y, int w, int h, | 494 | int x, int y, int w, int h, |
495 | const QColorGroup& , QCOORD c, | 495 | const QColorGroup& , QCOORD c, |
496 | Orientation orient ) | 496 | Orientation orient ) |
497 | { | 497 | { |
498 | if ( orient == Horizontal ) | 498 | if ( orient == Horizontal ) |
499 | p->fillRect( x, y + c - 2, w, 4, color1 ); | 499 | p->fillRect( x, y + c - 2, w, 4, color1 ); |
500 | else | 500 | else |
501 | p->fillRect( x + c - 2, y, 4, h, color1 ); | 501 | p->fillRect( x + c - 2, y, 4, h, color1 ); |
502 | } | 502 | } |
503 | 503 | ||
504 | void FreshStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected ) | 504 | void FreshStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected ) |
505 | { | 505 | { |
506 | QRect r( t->rect() ); | 506 | QRect r( t->rect() ); |
507 | if ( tb->shape() == QTabBar::RoundedAbove ) { | 507 | if ( tb->shape() == QTabBar::RoundedAbove ) { |
508 | p->setPen( tb->colorGroup().light() ); | 508 | p->setPen( tb->colorGroup().light() ); |
509 | p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); | 509 | p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); |
510 | if ( r.left() == 0 ) | 510 | if ( r.left() == 0 ) |
511 | p->drawPoint( tb->rect().bottomLeft() ); | 511 | p->drawPoint( tb->rect().bottomLeft() ); |
512 | else { | 512 | else { |
513 | p->setPen( tb->colorGroup().light() ); | 513 | p->setPen( tb->colorGroup().light() ); |
514 | p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); | 514 | p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); |
515 | } | 515 | } |
516 | 516 | ||
517 | if ( selected ) { | 517 | if ( selected ) { |
518 | p->setPen( tb->colorGroup().background() ); | 518 | p->setPen( tb->colorGroup().background() ); |
519 | p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); | 519 | p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); |
520 | p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2), | 520 | p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2), |
521 | tb->colorGroup().brush( QColorGroup::Background )); | 521 | tb->colorGroup().brush( QColorGroup::Background )); |
522 | } else { | 522 | } else { |
523 | r.setRect( r.left() + 2, r.top() + 2, | 523 | r.setRect( r.left() + 2, r.top() + 2, |
524 | r.width() - 4, r.height() - 2 ); | 524 | r.width() - 4, r.height() - 2 ); |
525 | p->setPen( tb->colorGroup().button() ); | 525 | p->setPen( tb->colorGroup().button() ); |
526 | p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); | 526 | p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); |
527 | p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3), | 527 | p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3), |
528 | tb->colorGroup().brush( QColorGroup::Button )); | 528 | tb->colorGroup().brush( QColorGroup::Button )); |
529 | 529 | ||
530 | //do shading; will not work for pixmap brushes | 530 | //do shading; will not work for pixmap brushes |
531 | QColor bg = tb->colorGroup().button(); | 531 | QColor bg = tb->colorGroup().button(); |
532 | // int h,s,v; | 532 | // int h,s,v; |
533 | // bg.hsv( &h, &s, &v ); | 533 | // bg.hsv( &h, &s, &v ); |
534 | int n = r.height()/2; | 534 | int n = r.height()/2; |
535 | int dark = 100; | 535 | int dark = 100; |
536 | for ( int i = 1; i < n; i++ ) { | 536 | for ( int i = 1; i < n; i++ ) { |
537 | dark = (dark * (100+(i*15)/n) )/100; | 537 | dark = (dark * (100+(i*15)/n) )/100; |
538 | p->setPen( bg.dark( dark ) ); | 538 | p->setPen( bg.dark( dark ) ); |
539 | int y = r.bottom()-n+i; | 539 | int y = r.bottom()-n+i; |
540 | int x1 = r.left()+1; | 540 | int x1 = r.left()+1; |
541 | int x2 = r.right()-1; | 541 | int x2 = r.right()-1; |
542 | p->drawLine( x1, y, x2, y ); | 542 | p->drawLine( x1, y, x2, y ); |
543 | } | 543 | } |
544 | } | 544 | } |
545 | 545 | ||
546 | p->setPen( tb->colorGroup().light() ); | 546 | p->setPen( tb->colorGroup().light() ); |
547 | p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 ); | 547 | p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 ); |
548 | p->drawPoint( r.left()+1, r.top() + 1 ); | 548 | p->drawPoint( r.left()+1, r.top() + 1 ); |
549 | p->drawLine( r.left()+2, r.top(), | 549 | p->drawLine( r.left()+2, r.top(), |
550 | r.right() - 2, r.top() ); | 550 | r.right() - 2, r.top() ); |
551 | 551 | ||
552 | p->setPen( tb->colorGroup().dark() ); | 552 | p->setPen( tb->colorGroup().dark() ); |
553 | p->drawPoint( r.right() - 1, r.top() + 1 ); | 553 | p->drawPoint( r.right() - 1, r.top() + 1 ); |
554 | p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1); | 554 | p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1); |
555 | } else if ( tb->shape() == QTabBar::RoundedBelow ) { | 555 | } else if ( tb->shape() == QTabBar::RoundedBelow ) { |
556 | if ( selected ) { | 556 | if ( selected ) { |
557 | p->setPen( tb->colorGroup().background() ); | 557 | p->setPen( tb->colorGroup().background() ); |
558 | p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); | 558 | p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); |
559 | p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2), | 559 | p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2), |
560 | tb->palette().normal().brush( QColorGroup::Background )); | 560 | tb->palette().normal().brush( QColorGroup::Background )); |
561 | } else { | 561 | } else { |
562 | p->setPen( tb->colorGroup().dark() ); | 562 | p->setPen( tb->colorGroup().dark() ); |
563 | p->drawLine( r.left(), r.top(), | 563 | p->drawLine( r.left(), r.top(), |
564 | r.right(), r.top() ); | 564 | r.right(), r.top() ); |
565 | r.setRect( r.left() + 2, r.top(), | 565 | r.setRect( r.left() + 2, r.top(), |
566 | r.width() - 4, r.height() - 2 ); | 566 | r.width() - 4, r.height() - 2 ); |
567 | p->setPen( tb->colorGroup().button() ); | 567 | p->setPen( tb->colorGroup().button() ); |
568 | p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); | 568 | p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); |
569 | p->fillRect( QRect( r.left()+1, r.top()+1, r.width()-2, r.height()-3), | 569 | p->fillRect( QRect( r.left()+1, r.top()+1, r.width()-2, r.height()-3), |
570 | tb->palette().normal().brush( QColorGroup::Button )); | 570 | tb->palette().normal().brush( QColorGroup::Button )); |
571 | } | 571 | } |
572 | 572 | ||
573 | p->setPen( tb->colorGroup().dark() ); | 573 | p->setPen( tb->colorGroup().dark() ); |
574 | p->drawLine( r.right(), r.top(), | 574 | p->drawLine( r.right(), r.top(), |
575 | r.right(), r.bottom() - 2 ); | 575 | r.right(), r.bottom() - 2 ); |
576 | p->drawPoint( r.right() - 1, r.bottom() - 1 ); | 576 | p->drawPoint( r.right() - 1, r.bottom() - 1 ); |
577 | p->drawLine( r.right() - 2, r.bottom(), | 577 | p->drawLine( r.right() - 2, r.bottom(), |
578 | r.left() + 2, r.bottom() ); | 578 | r.left() + 2, r.bottom() ); |
579 | 579 | ||
580 | p->setPen( tb->colorGroup().light() ); | 580 | p->setPen( tb->colorGroup().light() ); |
581 | p->drawLine( r.left(), r.top()+1, | 581 | p->drawLine( r.left(), r.top()+1, |
582 | r.left(), r.bottom() - 2 ); | 582 | r.left(), r.bottom() - 2 ); |
583 | p->drawPoint( r.left() + 1, r.bottom() - 1 ); | 583 | p->drawPoint( r.left() + 1, r.bottom() - 1 ); |
584 | if ( r.left() == 0 ) | 584 | if ( r.left() == 0 ) |
585 | p->drawPoint( tb->rect().topLeft() ); | 585 | p->drawPoint( tb->rect().topLeft() ); |
586 | 586 | ||
587 | } else { | 587 | } else { |
588 | QCommonStyle::drawTab( p, tb, t, selected ); | 588 | QCommonStyle::drawTab( p, tb, t, selected ); |
589 | } | 589 | } |
590 | } | 590 | } |
591 | 591 | ||
592 | static const int motifItemFrame = 0;// menu item frame width | 592 | static const int motifItemFrame = 0;// menu item frame width |
593 | static const int motifSepHeight = 2;// separator item height | 593 | static const int motifSepHeight = 2;// separator item height |
594 | static const int motifItemHMargin = 1;// menu item hor text margin | 594 | static const int motifItemHMargin = 1;// menu item hor text margin |
595 | static const int motifItemVMargin = 2;// menu item ver text margin | 595 | static const int motifItemVMargin = 2;// menu item ver text margin |
596 | static const int motifArrowHMargin = 0;// arrow horizontal margin | 596 | static const int motifArrowHMargin = 0;// arrow horizontal margin |
597 | static const int motifTabSpacing = 12;// space between text and tab | 597 | static const int motifTabSpacing = 12;// space between text and tab |
598 | static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark | 598 | static const int motifCheckMarkHMargin = 1;// horiz. margins of check mark |
599 | static const int windowsRightBorder= 8; // right border on windows | 599 | static const int windowsRightBorder= 8; // right border on windows |
600 | static const int windowsCheckMarkWidth = 2; // checkmarks width on windows | 600 | static const int windowsCheckMarkWidth = 2; // checkmarks width on windows |
601 | 601 | ||
602 | /*! \reimp | 602 | /*! \reimp |
603 | */ | 603 | */ |
604 | int FreshStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) | 604 | int FreshStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) |
605 | { | 605 | { |
606 | #ifndef QT_NO_MENUDATA | 606 | #ifndef QT_NO_MENUDATA |
607 | int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm | 607 | int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm |
608 | 608 | ||
609 | if ( mi->isSeparator() ) | 609 | if ( mi->isSeparator() ) |
610 | return 10; // arbitrary | 610 | return 10; // arbitrary |
611 | else if ( mi->pixmap() ) | 611 | else if ( mi->pixmap() ) |
612 | w += mi->pixmap()->width();// pixmap only | 612 | w += mi->pixmap()->width();// pixmap only |
613 | 613 | ||
614 | if ( !mi->text().isNull() ) { | 614 | if ( !mi->text().isNull() ) { |
615 | if ( mi->text().find('\t') >= 0 )// string contains tab | 615 | if ( mi->text().find('\t') >= 0 )// string contains tab |
616 | w += motifTabSpacing; | 616 | w += motifTabSpacing; |
617 | } | 617 | } |
618 | 618 | ||
619 | if ( maxpmw ) { // we have iconsets | 619 | if ( maxpmw ) { // we have iconsets |
620 | w += maxpmw; | 620 | w += maxpmw; |
621 | w += 6; // add a little extra border around the iconset | 621 | w += 6; // add a little extra border around the iconset |
622 | } | 622 | } |
623 | 623 | ||
624 | if ( checkable && maxpmw < windowsCheckMarkWidth ) { | 624 | if ( checkable && maxpmw < windowsCheckMarkWidth ) { |
625 | w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks | 625 | w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks |
626 | } | 626 | } |
627 | 627 | ||
628 | if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) | 628 | if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) |
629 | w += motifCheckMarkHMargin; // add space to separate the columns | 629 | w += motifCheckMarkHMargin; // add space to separate the columns |
630 | 630 | ||
631 | w += windowsRightBorder; // windows has a strange wide border on the right side | 631 | w += windowsRightBorder; // windows has a strange wide border on the right side |
632 | 632 | ||
633 | return w; | 633 | return w; |
634 | #endif | 634 | #endif |
635 | } | 635 | } |
636 | 636 | ||
637 | /*! \reimp | 637 | /*! \reimp |
638 | */ | 638 | */ |
639 | int FreshStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) | 639 | int FreshStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) |
640 | { | 640 | { |
641 | #ifndef QT_NO_MENUDATA | 641 | #ifndef QT_NO_MENUDATA |
642 | int h = 0; | 642 | int h = 0; |
643 | if ( mi->isSeparator() ) // separator height | 643 | if ( mi->isSeparator() ) // separator height |
644 | h = motifSepHeight; | 644 | h = motifSepHeight; |
645 | else if ( mi->pixmap() ) // pixmap height | 645 | else if ( mi->pixmap() ) // pixmap height |
646 | h = mi->pixmap()->height() + 2*motifItemFrame; | 646 | h = mi->pixmap()->height() + 2*motifItemFrame; |
647 | else // text height | 647 | else // text height |
648 | h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; | 648 | h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; |
649 | 649 | ||
650 | if ( !mi->isSeparator() && mi->iconSet() != 0 ) { | 650 | if ( !mi->isSeparator() && mi->iconSet() != 0 ) { |
651 | h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame ); | 651 | h = QMAX( h, mi->iconSet()->pixmap().height() + 2*motifItemFrame ); |
652 | } | 652 | } |
653 | if ( mi->custom() ) | 653 | if ( mi->custom() ) |
654 | h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; | 654 | h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; |
655 | return h; | 655 | return h; |
656 | #endif | 656 | #endif |
657 | } | 657 | } |
658 | 658 | ||
659 | void FreshStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, | 659 | void FreshStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, |
660 | const QPalette& pal, | 660 | const QPalette& pal, |
661 | bool act, bool enabled, int x, int y, int w, int h) | 661 | bool act, bool enabled, int x, int y, int w, int h) |
662 | { | 662 | { |
663 | #ifndef QT_NO_MENUDATA | 663 | #ifndef QT_NO_MENUDATA |
664 | const QColorGroup & g = pal.active(); | 664 | const QColorGroup & g = pal.active(); |
665 | bool dis = !enabled; | 665 | bool dis = !enabled; |
666 | QColorGroup itemg = dis ? pal.disabled() : pal.active(); | 666 | QColorGroup itemg = dis ? pal.disabled() : pal.active(); |
667 | 667 | ||
668 | if ( checkable ) | 668 | if ( checkable ) |
669 | maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks | 669 | maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks |
670 | 670 | ||
671 | int checkcol = maxpmw; | 671 | int checkcol = maxpmw; |
672 | 672 | ||
673 | if ( mi && mi->isSeparator() ) { // draw separator | 673 | if ( mi && mi->isSeparator() ) { // draw separator |
674 | p->setPen( g.dark() ); | 674 | p->setPen( g.dark() ); |
675 | p->drawLine( x, y, x+w, y ); | 675 | p->drawLine( x, y, x+w, y ); |
676 | p->setPen( g.light() ); | 676 | p->setPen( g.light() ); |
677 | p->drawLine( x, y+1, x+w, y+1 ); | 677 | p->drawLine( x, y+1, x+w, y+1 ); |
678 | return; | 678 | return; |
679 | } | 679 | } |
680 | 680 | ||
681 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : | 681 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : |
682 | g.brush( QColorGroup::Button ); | 682 | g.brush( QColorGroup::Button ); |
683 | p->fillRect( x, y, w, h, fill); | 683 | p->fillRect( x, y, w, h, fill); |
684 | 684 | ||
685 | if ( !mi ) | 685 | if ( !mi ) |
686 | return; | 686 | return; |
687 | 687 | ||
688 | if ( mi->isChecked() ) { | 688 | if ( mi->isChecked() ) { |
689 | if ( act && !dis ) { | 689 | if ( act && !dis ) { |
690 | qDrawShadePanel( p, x, y, checkcol, h, | 690 | qDrawShadePanel( p, x, y, checkcol, h, |
691 | g, TRUE, 1, &g.brush( QColorGroup::Button ) ); | 691 | g, TRUE, 1, &g.brush( QColorGroup::Button ) ); |
692 | } else { | 692 | } else { |
693 | qDrawShadePanel( p, x, y, checkcol, h, | 693 | qDrawShadePanel( p, x, y, checkcol, h, |
694 | g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); | 694 | g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); |
695 | } | 695 | } |
696 | } else if ( !act ) { | 696 | } else if ( !act ) { |
697 | p->fillRect(x, y, checkcol , h, | 697 | p->fillRect(x, y, checkcol , h, |
698 | g.brush( QColorGroup::Button )); | 698 | g.brush( QColorGroup::Button )); |
699 | } | 699 | } |
700 | 700 | ||
701 | if ( mi->iconSet() ) { // draw iconset | 701 | if ( mi->iconSet() ) { // draw iconset |
702 | QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; | 702 | QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; |
703 | if (act && !dis ) | 703 | if (act && !dis ) |
704 | mode = QIconSet::Active; | 704 | mode = QIconSet::Active; |
705 | QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode ); | 705 | QPixmap pixmap; |
706 | if ( mode == QIconSet::Disabled ) | ||
707 | pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
708 | else | ||
709 | pixmap = mi->iconSet()->pixmap(); | ||
706 | int pixw = pixmap.width(); | 710 | int pixw = pixmap.width(); |
707 | int pixh = pixmap.height(); | 711 | int pixh = pixmap.height(); |
708 | if ( act && !dis ) { | 712 | if ( act && !dis ) { |
709 | if ( !mi->isChecked() ) | 713 | if ( !mi->isChecked() ) |
710 | qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); | 714 | qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); |
711 | } | 715 | } |
712 | QRect cr( x, y, checkcol, h ); | 716 | QRect cr( x, y, checkcol, h ); |
713 | QRect pmr( 0, 0, pixw, pixh ); | 717 | QRect pmr( 0, 0, pixw, pixh ); |
714 | pmr.moveCenter( cr.center() ); | 718 | pmr.moveCenter( cr.center() ); |
715 | p->setPen( itemg.text() ); | 719 | p->setPen( itemg.text() ); |
716 | p->drawPixmap( pmr.topLeft(), pixmap ); | 720 | p->drawPixmap( pmr.topLeft(), pixmap ); |
717 | 721 | ||
718 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : | 722 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : |
719 | g.brush( QColorGroup::Button ); | 723 | g.brush( QColorGroup::Button ); |
720 | p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); | 724 | p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); |
721 | } else if ( checkable ) {// just "checking"... | 725 | } else if ( checkable ) {// just "checking"... |
722 | int mw = checkcol + motifItemFrame; | 726 | int mw = checkcol + motifItemFrame; |
723 | int mh = h - 2*motifItemFrame; | 727 | int mh = h - 2*motifItemFrame; |
724 | if ( mi->isChecked() ) { | 728 | if ( mi->isChecked() ) { |
725 | drawCheckMark( p, x + motifItemFrame + 2, | 729 | drawCheckMark( p, x + motifItemFrame + 2, |
726 | y+motifItemFrame, mw, mh, itemg, act, dis ); | 730 | y+motifItemFrame, mw, mh, itemg, act, dis ); |
727 | } | 731 | } |
728 | } | 732 | } |
729 | 733 | ||
730 | p->setPen( act ? g.highlightedText() : g.buttonText() ); | 734 | p->setPen( act ? g.highlightedText() : g.buttonText() ); |
731 | 735 | ||
732 | QColor discol; | 736 | QColor discol; |
733 | if ( dis ) { | 737 | if ( dis ) { |
734 | discol = itemg.text(); | 738 | discol = itemg.text(); |
735 | p->setPen( discol ); | 739 | p->setPen( discol ); |
736 | } | 740 | } |
737 | 741 | ||
738 | int xm = motifItemFrame + checkcol + motifItemHMargin; | 742 | int xm = motifItemFrame + checkcol + motifItemHMargin; |
739 | 743 | ||
740 | if ( mi->custom() ) { | 744 | if ( mi->custom() ) { |
741 | int m = motifItemVMargin; | 745 | int m = motifItemVMargin; |
742 | p->save(); | 746 | p->save(); |
743 | if ( dis && !act ) { | 747 | if ( dis && !act ) { |
744 | p->setPen( g.light() ); | 748 | p->setPen( g.light() ); |
745 | mi->custom()->paint( p, itemg, act, enabled, | 749 | mi->custom()->paint( p, itemg, act, enabled, |
746 | x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); | 750 | x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); |
747 | p->setPen( discol ); | 751 | p->setPen( discol ); |
748 | } | 752 | } |
749 | mi->custom()->paint( p, itemg, act, enabled, | 753 | mi->custom()->paint( p, itemg, act, enabled, |
750 | x+xm, y+m, w-xm-tab+1, h-2*m ); | 754 | x+xm, y+m, w-xm-tab+1, h-2*m ); |
751 | p->restore(); | 755 | p->restore(); |
752 | } | 756 | } |
753 | QString s = mi->text(); | 757 | QString s = mi->text(); |
754 | if ( !s.isNull() ) { // draw text | 758 | if ( !s.isNull() ) { // draw text |
755 | int t = s.find( '\t' ); | 759 | int t = s.find( '\t' ); |
756 | int m = motifItemVMargin; | 760 | int m = motifItemVMargin; |
757 | const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; | 761 | const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; |
758 | if ( t >= 0 ) { // draw tab text | 762 | if ( t >= 0 ) { // draw tab text |
759 | if ( dis && !act ) { | 763 | if ( dis && !act ) { |
760 | p->setPen( g.light() ); | 764 | p->setPen( g.light() ); |
761 | p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, | 765 | p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, |
762 | y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); | 766 | y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); |
763 | p->setPen( discol ); | 767 | p->setPen( discol ); |
764 | } | 768 | } |
765 | p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame, | 769 | p->drawText( x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame, |
766 | y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); | 770 | y+m, tab, h-2*m, text_flags, s.mid( t+1 ) ); |
767 | } | 771 | } |
768 | if ( dis && !act ) { | 772 | if ( dis && !act ) { |
769 | p->setPen( g.light() ); | 773 | p->setPen( g.light() ); |
diff --git a/noncore/styles/liquid/liquid.cpp b/noncore/styles/liquid/liquid.cpp index 51814e7..77cf198 100644 --- a/noncore/styles/liquid/liquid.cpp +++ b/noncore/styles/liquid/liquid.cpp | |||
@@ -1,240 +1,240 @@ | |||
1 | /*- | 1 | /*- |
2 | * Copyright (C)QPL 2001 Daniel M. Duley. All rights reserved. | 2 | * Copyright (C)QPL 2001 Daniel M. Duley. All rights reserved. |
3 | */ | 3 | */ |
4 | 4 | ||
5 | // | 5 | // |
6 | // (c) 2002 Robert 'sandman' Griebl | 6 | // (c) 2002 Robert 'sandman' Griebl |
7 | // | 7 | // |
8 | 8 | ||
9 | 9 | ||
10 | #ifndef INCLUDE_MENUITEM_DEF | 10 | #ifndef INCLUDE_MENUITEM_DEF |
11 | #define INCLUDE_MENUITEM_DEF | 11 | #define INCLUDE_MENUITEM_DEF |
12 | #endif | 12 | #endif |
13 | 13 | ||
14 | #include "liquid.h" | 14 | #include "liquid.h" |
15 | #include "effects.h" | 15 | #include "effects.h" |
16 | #include "htmlmasks.h" | 16 | #include "htmlmasks.h" |
17 | #include "embeddata.h" | 17 | #include "embeddata.h" |
18 | 18 | ||
19 | /* OPIE */ | 19 | /* OPIE */ |
20 | #include <opie2/odebug.h> | 20 | #include <opie2/odebug.h> |
21 | #include <qpe/config.h> | 21 | #include <qpe/config.h> |
22 | using namespace Opie::Core; | 22 | using namespace Opie::Core; |
23 | 23 | ||
24 | /* QT */ | 24 | /* QT */ |
25 | #include <qmenudata.h> | 25 | #include <qmenudata.h> |
26 | #include <qapplication.h> | 26 | #include <qapplication.h> |
27 | #include <qpalette.h> | 27 | #include <qpalette.h> |
28 | #include <qbitmap.h> | 28 | #include <qbitmap.h> |
29 | #include <qtabbar.h> | 29 | #include <qtabbar.h> |
30 | #include <qpopupmenu.h> | 30 | #include <qpopupmenu.h> |
31 | #include <qobjectlist.h> | 31 | #include <qobjectlist.h> |
32 | #include <qimage.h> | 32 | #include <qimage.h> |
33 | #include <qtimer.h> | 33 | #include <qtimer.h> |
34 | #include <qpixmapcache.h> | 34 | #include <qpixmapcache.h> |
35 | #include <qradiobutton.h> | 35 | #include <qradiobutton.h> |
36 | #include <qcombobox.h> | 36 | #include <qcombobox.h> |
37 | #include <qdrawutil.h> | 37 | #include <qdrawutil.h> |
38 | #include <qwidgetlist.h> | 38 | #include <qwidgetlist.h> |
39 | #include <qtoolbutton.h> | 39 | #include <qtoolbutton.h> |
40 | #include <qheader.h> | 40 | #include <qheader.h> |
41 | #include <qmenubar.h> | 41 | #include <qmenubar.h> |
42 | #include <qprogressbar.h> | 42 | #include <qprogressbar.h> |
43 | #include <qlineedit.h> | 43 | #include <qlineedit.h> |
44 | #include <qlistbox.h> | 44 | #include <qlistbox.h> |
45 | 45 | ||
46 | /* STD */ | 46 | /* STD */ |
47 | #include <unistd.h> | 47 | #include <unistd.h> |
48 | #include <stdio.h> | 48 | #include <stdio.h> |
49 | 49 | ||
50 | 50 | ||
51 | typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, | 51 | typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, |
52 | QColorGroup &, bool, bool); | 52 | QColorGroup &, bool, bool); |
53 | 53 | ||
54 | QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl); | 54 | QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl); |
55 | 55 | ||
56 | void TransMenuHandler::stripePixmap(QPixmap &pix, const QColor &color) | 56 | void TransMenuHandler::stripePixmap(QPixmap &pix, const QColor &color) |
57 | { | 57 | { |
58 | QImage img(pix.convertToImage()); | 58 | QImage img(pix.convertToImage()); |
59 | QImageEffect::fade(img, 0.9, color); | 59 | QImageEffect::fade(img, 0.9, color); |
60 | int x, y; | 60 | int x, y; |
61 | int r, g, b; | 61 | int r, g, b; |
62 | for(y=0; y < img.height(); y+=3){ | 62 | for(y=0; y < img.height(); y+=3){ |
63 | unsigned int *data = (unsigned int *) img.scanLine(y); | 63 | unsigned int *data = (unsigned int *) img.scanLine(y); |
64 | for(x=0; x < img.width(); ++x){ | 64 | for(x=0; x < img.width(); ++x){ |
65 | r = qRed(data[x]); | 65 | r = qRed(data[x]); |
66 | g = qGreen(data[x]); | 66 | g = qGreen(data[x]); |
67 | b = qBlue(data[x]); | 67 | b = qBlue(data[x]); |
68 | if(r-10) | 68 | if(r-10) |
69 | r-=10; | 69 | r-=10; |
70 | if(g-10) | 70 | if(g-10) |
71 | g-=10; | 71 | g-=10; |
72 | if(b-10) | 72 | if(b-10) |
73 | b-=10; | 73 | b-=10; |
74 | data[x] = qRgb(r, g, b); | 74 | data[x] = qRgb(r, g, b); |
75 | } | 75 | } |
76 | } | 76 | } |
77 | pix.convertFromImage(img); | 77 | pix.convertFromImage(img); |
78 | } | 78 | } |
79 | 79 | ||
80 | TransMenuHandler::TransMenuHandler(QObject *parent) | 80 | TransMenuHandler::TransMenuHandler(QObject *parent) |
81 | : QObject(parent) | 81 | : QObject(parent) |
82 | { | 82 | { |
83 | pixDict.setAutoDelete(true); | 83 | pixDict.setAutoDelete(true); |
84 | reloadSettings(); | 84 | reloadSettings(); |
85 | } | 85 | } |
86 | 86 | ||
87 | void TransMenuHandler::reloadSettings() | 87 | void TransMenuHandler::reloadSettings() |
88 | { | 88 | { |
89 | pixDict.clear(); | 89 | pixDict.clear(); |
90 | 90 | ||
91 | Config config ( "qpe" ); | 91 | Config config ( "qpe" ); |
92 | config. setGroup ( "Liquid-Style" ); | 92 | config. setGroup ( "Liquid-Style" ); |
93 | 93 | ||
94 | type = config. readNumEntry("Type", TransStippleBg); | 94 | type = config. readNumEntry("Type", TransStippleBg); |
95 | color = QColor ( config. readEntry("Color", QApplication::palette().active().button().name())); | 95 | color = QColor ( config. readEntry("Color", QApplication::palette().active().button().name())); |
96 | fgColor = QColor ( config. readEntry("TextColor", QApplication::palette().active().text().name())); | 96 | fgColor = QColor ( config. readEntry("TextColor", QApplication::palette().active().text().name())); |
97 | opacity = config. readNumEntry("Opacity", 10); | 97 | opacity = config. readNumEntry("Opacity", 10); |
98 | if ( opacity < -20 ) | 98 | if ( opacity < -20 ) |
99 | opacity = 20; | 99 | opacity = 20; |
100 | else if ( opacity > 20 ) | 100 | else if ( opacity > 20 ) |
101 | opacity = 20; | 101 | opacity = 20; |
102 | 102 | ||
103 | shadowText = config. readBoolEntry("ShadowText", true); | 103 | shadowText = config. readBoolEntry("ShadowText", true); |
104 | } | 104 | } |
105 | 105 | ||
106 | bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev) | 106 | bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev) |
107 | { | 107 | { |
108 | QWidget *p = (QWidget *)obj; | 108 | QWidget *p = (QWidget *)obj; |
109 | 109 | ||
110 | if(ev->type() == QEvent::Show){ | 110 | if(ev->type() == QEvent::Show){ |
111 | if(type == TransStippleBg || type == TransStippleBtn || | 111 | if(type == TransStippleBg || type == TransStippleBtn || |
112 | type == Custom){ | 112 | type == Custom){ |
113 | QApplication::syncX(); | 113 | QApplication::syncX(); |
114 | QPixmap *pix = new QPixmap; | 114 | QPixmap *pix = new QPixmap; |
115 | if(p->testWFlags(Qt::WType_Popup)){ | 115 | if(p->testWFlags(Qt::WType_Popup)){ |
116 | QRect r(p->x(), p->y(), p->width(), p->height()); | 116 | QRect r(p->x(), p->y(), p->width(), p->height()); |
117 | QRect deskR = QApplication::desktop()->rect(); | 117 | QRect deskR = QApplication::desktop()->rect(); |
118 | if(r.right() > deskR.right() || r.bottom() > deskR.bottom()){ | 118 | if(r.right() > deskR.right() || r.bottom() > deskR.bottom()){ |
119 | r.setBottom(deskR.bottom()); | 119 | r.setBottom(deskR.bottom()); |
120 | r.setRight(deskR.right()); | 120 | r.setRight(deskR.right()); |
121 | } | 121 | } |
122 | *pix = QPixmap::grabWindow(QApplication::desktop()-> winId(), r.x(), r.y(), | 122 | *pix = QPixmap::grabWindow(QApplication::desktop()-> winId(), r.x(), r.y(), |
123 | r.width(), r.height()); | 123 | r.width(), r.height()); |
124 | } | 124 | } |
125 | else{ // tear off menu | 125 | else{ // tear off menu |
126 | pix->resize(p->width(), p->height()); | 126 | pix->resize(p->width(), p->height()); |
127 | pix->fill(Qt::black.rgb()); | 127 | pix->fill(Qt::black.rgb()); |
128 | } | 128 | } |
129 | if(type == TransStippleBg){ | 129 | if(type == TransStippleBg){ |
130 | stripePixmap(*pix, p->colorGroup().background()); | 130 | stripePixmap(*pix, p->colorGroup().background()); |
131 | } | 131 | } |
132 | else if(type == TransStippleBtn){ | 132 | else if(type == TransStippleBtn){ |
133 | stripePixmap(*pix, p->colorGroup().button()); | 133 | stripePixmap(*pix, p->colorGroup().button()); |
134 | } | 134 | } |
135 | else{ | 135 | else{ |
136 | QPixmapEffect::fade(*pix, (((float)opacity)+80)*0.01, color); | 136 | QPixmapEffect::fade(*pix, (((float)opacity)+80)*0.01, color); |
137 | } | 137 | } |
138 | 138 | ||
139 | pixDict.insert(p->winId(), pix); | 139 | pixDict.insert(p->winId(), pix); |
140 | 140 | ||
141 | if ( !p->inherits("QPopupMenu")) | 141 | if ( !p->inherits("QPopupMenu")) |
142 | p->setBackgroundPixmap(*pix); | 142 | p->setBackgroundPixmap(*pix); |
143 | 143 | ||
144 | QObjectList *ol = p-> queryList("QWidget"); | 144 | QObjectList *ol = p-> queryList("QWidget"); |
145 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { | 145 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { |
146 | QWidget *wid = (QWidget *) it.current ( ); | 146 | QWidget *wid = (QWidget *) it.current ( ); |
147 | 147 | ||
148 | wid-> setBackgroundPixmap(*pix); | 148 | wid-> setBackgroundPixmap(*pix); |
149 | wid-> setBackgroundOrigin(QWidget::ParentOrigin); | 149 | wid-> setBackgroundOrigin(QWidget::ParentOrigin); |
150 | } | 150 | } |
151 | delete ol; | 151 | delete ol; |
152 | } | 152 | } |
153 | } | 153 | } |
154 | else if(ev->type() == QEvent::Hide){ | 154 | else if(ev->type() == QEvent::Hide){ |
155 | if(type == TransStippleBg || type == TransStippleBtn || | 155 | if(type == TransStippleBg || type == TransStippleBtn || |
156 | type == Custom){ | 156 | type == Custom){ |
157 | // owarn << "Deleting menu pixmap, width " << pixDict.find(p->winId())->width() << "" << oendl; | 157 | // owarn << "Deleting menu pixmap, width " << pixDict.find(p->winId())->width() << "" << oendl; |
158 | 158 | ||
159 | pixDict.remove(p->winId()); | 159 | pixDict.remove(p->winId()); |
160 | if ( !p->inherits("QPopupMenu")) | 160 | if ( !p->inherits("QPopupMenu")) |
161 | p->setBackgroundMode(QWidget::PaletteBackground); | 161 | p->setBackgroundMode(QWidget::PaletteBackground); |
162 | 162 | ||
163 | QObjectList *ol = p-> queryList("QWidget"); | 163 | QObjectList *ol = p-> queryList("QWidget"); |
164 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { | 164 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { |
165 | QWidget *wid = (QWidget *) it.current ( ); | 165 | QWidget *wid = (QWidget *) it.current ( ); |
166 | 166 | ||
167 | wid-> setBackgroundMode( QWidget::PaletteBackground ); | 167 | wid-> setBackgroundMode( QWidget::PaletteBackground ); |
168 | } | 168 | } |
169 | delete ol; | 169 | delete ol; |
170 | } | 170 | } |
171 | } | 171 | } |
172 | return(false); | 172 | return(false); |
173 | } | 173 | } |
174 | 174 | ||
175 | 175 | ||
176 | 176 | ||
177 | 177 | ||
178 | LiquidStyle::LiquidStyle() | 178 | LiquidStyle::LiquidStyle() |
179 | :QWindowsStyle() | 179 | :QWindowsStyle() |
180 | { | 180 | { |
181 | setName ( "LiquidStyle" ); | 181 | setName ( "LiquidStyle" ); |
182 | 182 | ||
183 | flatTBButtons = false; | 183 | flatTBButtons = false; |
184 | currentHeader = 0; | 184 | currentHeader = 0; |
185 | 185 | ||
186 | btnMaskBmp = QBitmap(37, 26, buttonmask_bits, true); | 186 | btnMaskBmp = QBitmap(37, 26, buttonmask_bits, true); |
187 | btnMaskBmp.setMask(btnMaskBmp); | 187 | btnMaskBmp.setMask(btnMaskBmp); |
188 | htmlBtnMaskBmp = QBitmap(37, 26, htmlbuttonmask_bits, true); | 188 | htmlBtnMaskBmp = QBitmap(37, 26, htmlbuttonmask_bits, true); |
189 | htmlBtnMaskBmp.setMask(htmlBtnMaskBmp); | 189 | htmlBtnMaskBmp.setMask(htmlBtnMaskBmp); |
190 | headerHoverID = -1; | 190 | headerHoverID = -1; |
191 | highlightWidget = NULL; | 191 | highlightWidget = NULL; |
192 | setButtonDefaultIndicatorWidth(0); | 192 | setButtonDefaultIndicatorWidth(0); |
193 | btnDict.setAutoDelete(true); | 193 | btnDict.setAutoDelete(true); |
194 | bevelFillDict.setAutoDelete(true); | 194 | bevelFillDict.setAutoDelete(true); |
195 | smallBevelFillDict.setAutoDelete(true); | 195 | smallBevelFillDict.setAutoDelete(true); |
196 | 196 | ||
197 | rMatrix.rotate(270.0); | 197 | rMatrix.rotate(270.0); |
198 | btnBorderPix = new QPixmap; | 198 | btnBorderPix = new QPixmap; |
199 | btnBorderPix->convertFromImage(qembed_findImage("buttonfill")); | 199 | btnBorderPix->convertFromImage(qembed_findImage("buttonfill")); |
200 | btnBlendPix = new QPixmap; | 200 | btnBlendPix = new QPixmap; |
201 | btnBlendPix->convertFromImage(qembed_findImage("buttonborder")); | 201 | btnBlendPix->convertFromImage(qembed_findImage("buttonborder")); |
202 | bevelFillPix = new QPixmap; | 202 | bevelFillPix = new QPixmap; |
203 | bevelFillPix->convertFromImage(qembed_findImage("clear_fill_large")); | 203 | bevelFillPix->convertFromImage(qembed_findImage("clear_fill_large")); |
204 | smallBevelFillPix = new QPixmap; | 204 | smallBevelFillPix = new QPixmap; |
205 | smallBevelFillPix->convertFromImage(qembed_findImage("clear_fill_small")); | 205 | smallBevelFillPix->convertFromImage(qembed_findImage("clear_fill_small")); |
206 | // new stuff | 206 | // new stuff |
207 | vsbSliderFillPix = menuPix = NULL; | 207 | vsbSliderFillPix = menuPix = NULL; |
208 | menuHandler = new TransMenuHandler(this); | 208 | menuHandler = new TransMenuHandler(this); |
209 | setScrollBarExtent(15, 15); | 209 | setScrollBarExtent(15, 15); |
210 | int i; | 210 | int i; |
211 | for(i=0; i < BITMAP_ITEMS; ++i){ | 211 | for(i=0; i < BITMAP_ITEMS; ++i){ |
212 | pixmaps[i] = NULL; | 212 | pixmaps[i] = NULL; |
213 | } | 213 | } |
214 | oldSliderThickness = sliderThickness(); | 214 | oldSliderThickness = sliderThickness(); |
215 | setSliderThickness(11); | 215 | setSliderThickness(11); |
216 | } | 216 | } |
217 | 217 | ||
218 | LiquidStyle::~LiquidStyle() | 218 | LiquidStyle::~LiquidStyle() |
219 | { | 219 | { |
220 | if(btnBorderPix) | 220 | if(btnBorderPix) |
221 | delete btnBorderPix; | 221 | delete btnBorderPix; |
222 | if(btnBlendPix) | 222 | if(btnBlendPix) |
223 | delete btnBlendPix; | 223 | delete btnBlendPix; |
224 | if(bevelFillPix) | 224 | if(bevelFillPix) |
225 | delete bevelFillPix; | 225 | delete bevelFillPix; |
226 | if(smallBevelFillPix) | 226 | if(smallBevelFillPix) |
227 | delete smallBevelFillPix; | 227 | delete smallBevelFillPix; |
228 | if(vsbSliderFillPix) | 228 | if(vsbSliderFillPix) |
229 | delete vsbSliderFillPix; | 229 | delete vsbSliderFillPix; |
230 | if(menuPix) | 230 | if(menuPix) |
231 | delete menuPix; | 231 | delete menuPix; |
232 | 232 | ||
233 | setScrollBarExtent(16, 16); | 233 | setScrollBarExtent(16, 16); |
234 | setSliderThickness(oldSliderThickness); | 234 | setSliderThickness(oldSliderThickness); |
235 | int i; | 235 | int i; |
236 | for(i=0; i < BITMAP_ITEMS; ++i){ | 236 | for(i=0; i < BITMAP_ITEMS; ++i){ |
237 | if(pixmaps[i]) | 237 | if(pixmaps[i]) |
238 | delete pixmaps[i]; | 238 | delete pixmaps[i]; |
239 | } | 239 | } |
240 | } | 240 | } |
@@ -438,232 +438,232 @@ void LiquidStyle::drawRoundButton(QPainter *painter, const QColor &c, | |||
438 | // top | 438 | // top |
439 | bitBlt(&tilePix, 0, 0, pix, 10, 0, pix->width()-20, 10); | 439 | bitBlt(&tilePix, 0, 0, pix, 10, 0, pix->width()-20, 10); |
440 | bitBlt(&blendMask, 0, 0, pix->mask(), 10, 0, pix->width()-20, 10); | 440 | bitBlt(&blendMask, 0, 0, pix->mask(), 10, 0, pix->width()-20, 10); |
441 | tilePix.setMask(blendMask); | 441 | tilePix.setMask(blendMask); |
442 | p.drawTiledPixmap(10, 0, w-20, 10, tilePix); | 442 | p.drawTiledPixmap(10, 0, w-20, 10, tilePix); |
443 | // bottom | 443 | // bottom |
444 | bitBlt(&tilePix, 0, 0, pix, 10, by2-9, pix->width()-20, 20); | 444 | bitBlt(&tilePix, 0, 0, pix, 10, by2-9, pix->width()-20, 20); |
445 | bitBlt(&blendMask, 0, 0, pix->mask(), 10, by2-9, pix->width()-20, 20); | 445 | bitBlt(&blendMask, 0, 0, pix->mask(), 10, by2-9, pix->width()-20, 20); |
446 | tilePix.setMask(blendMask); | 446 | tilePix.setMask(blendMask); |
447 | p.drawTiledPixmap(10, y2-9, w-20, 10, tilePix); | 447 | p.drawTiledPixmap(10, y2-9, w-20, 10, tilePix); |
448 | // left | 448 | // left |
449 | tilePix.resize(10, pix->height()-20); | 449 | tilePix.resize(10, pix->height()-20); |
450 | blendMask.resize(10, pix->height()-20); | 450 | blendMask.resize(10, pix->height()-20); |
451 | bitBlt(&tilePix, 0, 0, pix, 0, 10, 10, pix->height()-20); | 451 | bitBlt(&tilePix, 0, 0, pix, 0, 10, 10, pix->height()-20); |
452 | bitBlt(&blendMask, 0, 0, pix->mask(), 0, 10, 10, pix->height()-20); | 452 | bitBlt(&blendMask, 0, 0, pix->mask(), 0, 10, 10, pix->height()-20); |
453 | tilePix.setMask(blendMask); | 453 | tilePix.setMask(blendMask); |
454 | p.drawTiledPixmap(0, 10, 10, h-20, tilePix); | 454 | p.drawTiledPixmap(0, 10, 10, h-20, tilePix); |
455 | // right | 455 | // right |
456 | bitBlt(&tilePix, 0, 0, pix, bx2-9, 10, 10, pix->height()-20); | 456 | bitBlt(&tilePix, 0, 0, pix, bx2-9, 10, 10, pix->height()-20); |
457 | bitBlt(&blendMask, 0, 0, pix->mask(), bx2-9, 10, 10, pix->height()-20); | 457 | bitBlt(&blendMask, 0, 0, pix->mask(), bx2-9, 10, 10, pix->height()-20); |
458 | tilePix.setMask(blendMask); | 458 | tilePix.setMask(blendMask); |
459 | p.drawTiledPixmap(x2-9, 10, 10, h-20, tilePix); | 459 | p.drawTiledPixmap(x2-9, 10, 10, h-20, tilePix); |
460 | 460 | ||
461 | p.end(); | 461 | p.end(); |
462 | 462 | ||
463 | // do the button mask - we don't automask buttons | 463 | // do the button mask - we don't automask buttons |
464 | QBitmap btnMask(w, h); | 464 | QBitmap btnMask(w, h); |
465 | QBitmap *mask = isMasked ? &htmlBtnMaskBmp : &btnMaskBmp; | 465 | QBitmap *mask = isMasked ? &htmlBtnMaskBmp : &btnMaskBmp; |
466 | p.begin(&btnMask); | 466 | p.begin(&btnMask); |
467 | p.fillRect(0, 0, w, h, Qt::color0); | 467 | p.fillRect(0, 0, w, h, Qt::color0); |
468 | p.drawPixmap(0, 0, *mask, 0, 0, 10, 10); // tl | 468 | p.drawPixmap(0, 0, *mask, 0, 0, 10, 10); // tl |
469 | p.drawPixmap(x2-9, 0, *mask, bx2-9, 0, 10, 10); // tr | 469 | p.drawPixmap(x2-9, 0, *mask, bx2-9, 0, 10, 10); // tr |
470 | p.drawPixmap(0, y2-9, *mask, 0, by2-9, 10, 10); // bl | 470 | p.drawPixmap(0, y2-9, *mask, 0, by2-9, 10, 10); // bl |
471 | p.drawPixmap(x2-9, y2-9, *mask, bx2-9, by2-9, 10, 10); // br | 471 | p.drawPixmap(x2-9, y2-9, *mask, bx2-9, by2-9, 10, 10); // br |
472 | // fills | 472 | // fills |
473 | p.fillRect(10, 0, w-20, 10, Qt::color1); // top | 473 | p.fillRect(10, 0, w-20, 10, Qt::color1); // top |
474 | p.fillRect(10, y2-9, w-20, 10, Qt::color1); // bottom | 474 | p.fillRect(10, y2-9, w-20, 10, Qt::color1); // bottom |
475 | p.fillRect(0, 10, w, h-20, Qt::color1); // middle | 475 | p.fillRect(0, 10, w, h-20, Qt::color1); // middle |
476 | p.end(); | 476 | p.end(); |
477 | tmpPix.setMask(btnMask); | 477 | tmpPix.setMask(btnMask); |
478 | /*if(autoDefault){ | 478 | /*if(autoDefault){ |
479 | if(supportPushDown && pushedDown){ | 479 | if(supportPushDown && pushedDown){ |
480 | painter->drawPixmap(x+3, y+3, tmpPix); | 480 | painter->drawPixmap(x+3, y+3, tmpPix); |
481 | } | 481 | } |
482 | else{ | 482 | else{ |
483 | painter->drawPixmap(x+2, y+2, tmpPix); | 483 | painter->drawPixmap(x+2, y+2, tmpPix); |
484 | } | 484 | } |
485 | } | 485 | } |
486 | else */if(supportPushDown && pushedDown) | 486 | else */if(supportPushDown && pushedDown) |
487 | painter->drawPixmap(x+1, y+1, tmpPix); | 487 | painter->drawPixmap(x+1, y+1, tmpPix); |
488 | else | 488 | else |
489 | painter->drawPixmap(x, y, tmpPix); | 489 | painter->drawPixmap(x, y, tmpPix); |
490 | 490 | ||
491 | 491 | ||
492 | 492 | ||
493 | } | 493 | } |
494 | 494 | ||
495 | 495 | ||
496 | QPixmap* LiquidStyle::processEmbedded(const char *label, int h, int s, int v, | 496 | QPixmap* LiquidStyle::processEmbedded(const char *label, int h, int s, int v, |
497 | bool blend) | 497 | bool blend) |
498 | { | 498 | { |
499 | QImage img(qembed_findImage(label)); | 499 | QImage img(qembed_findImage(label)); |
500 | img.detach(); | 500 | img.detach(); |
501 | if(img.isNull()){ // shouldn't happen, been tested | 501 | if(img.isNull()){ // shouldn't happen, been tested |
502 | owarn << "Invalid embedded label " << label << "" << oendl; | 502 | owarn << "Invalid embedded label " << label << "" << oendl; |
503 | return(NULL); | 503 | return(NULL); |
504 | } | 504 | } |
505 | if(img.depth() != 32) | 505 | if(img.depth() != 32) |
506 | img = img.convertDepth(32); | 506 | img = img.convertDepth(32); |
507 | unsigned int *data = (unsigned int *)img.bits(); | 507 | unsigned int *data = (unsigned int *)img.bits(); |
508 | int total = img.width()*img.height(); | 508 | int total = img.width()*img.height(); |
509 | int current; | 509 | int current; |
510 | QColor c; | 510 | QColor c; |
511 | int oldH, oldS, oldV; | 511 | int oldH, oldS, oldV; |
512 | int alpha; | 512 | int alpha; |
513 | if(v < 235) | 513 | if(v < 235) |
514 | v += 20; | 514 | v += 20; |
515 | else | 515 | else |
516 | v = 255; | 516 | v = 255; |
517 | float intensity = v/255.0; | 517 | float intensity = v/255.0; |
518 | 518 | ||
519 | for(current=0; current<total; ++current){ | 519 | for(current=0; current<total; ++current){ |
520 | alpha = qAlpha(data[current]); | 520 | alpha = qAlpha(data[current]); |
521 | c.setRgb(data[current]); | 521 | c.setRgb(data[current]); |
522 | c.hsv(&oldH, &oldS, &oldV); | 522 | c.hsv(&oldH, &oldS, &oldV); |
523 | oldV = (int)(oldV*intensity); | 523 | oldV = (int)(oldV*intensity); |
524 | c.setHsv(h, s, oldV); | 524 | c.setHsv(h, s, oldV); |
525 | if(blend && alpha != 255 && alpha != 0){ | 525 | if(blend && alpha != 255 && alpha != 0){ |
526 | float srcPercent = ((float)alpha)/255.0; | 526 | float srcPercent = ((float)alpha)/255.0; |
527 | float destPercent = 1.0-srcPercent; | 527 | float destPercent = 1.0-srcPercent; |
528 | oldH = (int)((srcPercent*h) + (destPercent*bH)); | 528 | oldH = (int)((srcPercent*h) + (destPercent*bH)); |
529 | oldS = (int)((srcPercent*s) + (destPercent*bS)); | 529 | oldS = (int)((srcPercent*s) + (destPercent*bS)); |
530 | oldV = (int)((srcPercent*oldV) + (destPercent*bV)); | 530 | oldV = (int)((srcPercent*oldV) + (destPercent*bV)); |
531 | c.setHsv(oldH, oldS, oldV); | 531 | c.setHsv(oldH, oldS, oldV); |
532 | alpha = 255; | 532 | alpha = 255; |
533 | } | 533 | } |
534 | data[current] = qRgba(c.red(), c.green(), c.blue(), alpha); | 534 | data[current] = qRgba(c.red(), c.green(), c.blue(), alpha); |
535 | } | 535 | } |
536 | QPixmap *pix = new QPixmap; | 536 | QPixmap *pix = new QPixmap; |
537 | pix->convertFromImage(img); | 537 | pix->convertFromImage(img); |
538 | return(pix); | 538 | return(pix); |
539 | } | 539 | } |
540 | 540 | ||
541 | 541 | ||
542 | 542 | ||
543 | 543 | ||
544 | QPixmap* LiquidStyle::getPixmap(BitmapData item) | 544 | QPixmap* LiquidStyle::getPixmap(BitmapData item) |
545 | { | 545 | { |
546 | 546 | ||
547 | if(pixmaps[item]) | 547 | if(pixmaps[item]) |
548 | return(pixmaps[item]); | 548 | return(pixmaps[item]); |
549 | 549 | ||
550 | switch(item){ | 550 | switch(item){ |
551 | case HTMLBtnBorder: | 551 | case HTMLBtnBorder: |
552 | pixmaps[HTMLBtnBorder] = processEmbedded("htmlbtnborder", btnH, btnS, btnV); | 552 | pixmaps[HTMLBtnBorder] = processEmbedded("htmlbtnborder", btnH, btnS, btnV); |
553 | break; | 553 | break; |
554 | case HTMLBtnBorderDown: | 554 | case HTMLBtnBorderDown: |
555 | pixmaps[HTMLBtnBorderDown] = processEmbedded("htmlbtnborder", btnHoverH, btnHoverS, btnHoverV); | 555 | pixmaps[HTMLBtnBorderDown] = processEmbedded("htmlbtnborder", btnHoverH, btnHoverS, btnHoverV); |
556 | break; | 556 | break; |
557 | 557 | ||
558 | case HTMLCB: | 558 | case HTMLCB: |
559 | pixmaps[HTMLCB] = processEmbedded("htmlcheckbox", bH, bS, bV); | 559 | pixmaps[HTMLCB] = processEmbedded("htmlcheckbox", bH, bS, bV); |
560 | break; | 560 | break; |
561 | case HTMLCBHover: | 561 | case HTMLCBHover: |
562 | pixmaps[HTMLCBHover] = processEmbedded("htmlcheckbox", btnHoverH, btnHoverS, btnHoverV); | 562 | pixmaps[HTMLCBHover] = processEmbedded("htmlcheckbox", btnHoverH, btnHoverS, btnHoverV); |
563 | break; | 563 | break; |
564 | case HTMLCBDown: | 564 | case HTMLCBDown: |
565 | pixmaps[HTMLCBDown] = processEmbedded("htmlcheckboxdown", btnH, btnS, btnV); | 565 | pixmaps[HTMLCBDown] = processEmbedded("htmlcheckboxdown", btnH, btnS, btnV); |
566 | break; | 566 | break; |
567 | case HTMLCBDownHover: | 567 | case HTMLCBDownHover: |
568 | pixmaps[HTMLCBDownHover] = processEmbedded("htmlcheckboxdown", btnHoverH, btnHoverS, btnHoverV); | 568 | pixmaps[HTMLCBDownHover] = processEmbedded("htmlcheckboxdown", btnHoverH, btnHoverS, btnHoverV); |
569 | break; | 569 | break; |
570 | 570 | ||
571 | case HTMLRadio: | 571 | case HTMLRadio: |
572 | pixmaps[HTMLRadio] = processEmbedded("htmlradio", bH, bS, bV); | 572 | pixmaps[HTMLRadio] = processEmbedded("htmlradio", bH, bS, bV); |
573 | break; | 573 | break; |
574 | case HTMLRadioHover: | 574 | case HTMLRadioHover: |
575 | pixmaps[HTMLRadioHover] = processEmbedded("htmlradio", btnHoverH, btnHoverS, btnHoverV); | 575 | pixmaps[HTMLRadioHover] = processEmbedded("htmlradio", btnHoverH, btnHoverS, btnHoverV); |
576 | break; | 576 | break; |
577 | case HTMLRadioDown: | 577 | case HTMLRadioDown: |
578 | pixmaps[HTMLRadioDown] = processEmbedded("htmlradiodown", btnH, btnS, btnV); | 578 | pixmaps[HTMLRadioDown] = processEmbedded("htmlradiodown", btnH, btnS, btnV); |
579 | break; | 579 | break; |
580 | case HTMLRadioDownHover: | 580 | case HTMLRadioDownHover: |
581 | pixmaps[HTMLRadioDownHover] = processEmbedded("htmlradiodown", btnHoverH, btnHoverS, btnHoverV); | 581 | pixmaps[HTMLRadioDownHover] = processEmbedded("htmlradiodown", btnHoverH, btnHoverS, btnHoverV); |
582 | break; | 582 | break; |
583 | 583 | ||
584 | case RadioOff: | 584 | case RadioOff: |
585 | pixmaps[RadioOff] = processEmbedded("radio", bH, bS, bV /*, true*/); | 585 | pixmaps[RadioOff] = processEmbedded("radio", bH, bS, bV /*, true*/); |
586 | break; | 586 | break; |
587 | case RadioOffHover: | 587 | case RadioOffHover: |
588 | pixmaps[RadioOffHover] = processEmbedded("radio", btnHoverH, btnHoverS, btnHoverV /*, true*/); | 588 | pixmaps[RadioOffHover] = processEmbedded("radio", btnHoverH, btnHoverS, btnHoverV /*, true*/); |
589 | break; | 589 | break; |
590 | case RadioOn: | 590 | case RadioOn: |
591 | pixmaps[RadioOn] = processEmbedded("radio_down", btnH, btnS, btnV /*, true*/); | 591 | pixmaps[RadioOn] = processEmbedded("radio_down", btnH, btnS, btnV /*, true*/); |
592 | break; | 592 | break; |
593 | case RadioOnHover: | 593 | case RadioOnHover: |
594 | pixmaps[RadioOnHover] = processEmbedded("radio_down", btnHoverH, btnHoverS, btnHoverV /*, true*/); | 594 | pixmaps[RadioOnHover] = processEmbedded("radio_down", btnHoverH, btnHoverS, btnHoverV /*, true*/); |
595 | break; | 595 | break; |
596 | 596 | ||
597 | case Tab: | 597 | case Tab: |
598 | pixmaps[Tab] = processEmbedded("tab", bH, bS, bV /*, true*/); | 598 | pixmaps[Tab] = processEmbedded("tab", bH, bS, bV /*, true*/); |
599 | break; | 599 | break; |
600 | case TabDown: | 600 | case TabDown: |
601 | pixmaps[TabDown] = processEmbedded("tab", btnH, btnS, btnV /*, true*/); | 601 | pixmaps[TabDown] = processEmbedded("tab", btnH, btnS, btnV /*, true*/); |
602 | break; | 602 | break; |
603 | case TabFocus: | 603 | case TabFocus: |
604 | pixmaps[TabFocus] = processEmbedded("tab", btnHoverH, btnHoverS, btnHoverV /*, true*/); | 604 | pixmaps[TabFocus] = processEmbedded("tab", btnHoverH, btnHoverS, btnHoverV /*, true*/); |
605 | break; | 605 | break; |
606 | 606 | ||
607 | case CB: | 607 | case CB: |
608 | pixmaps[CB] = processEmbedded("checkbox", bH, bS, bV /*, true*/); | 608 | pixmaps[CB] = processEmbedded("checkbox", bH, bS, bV /*, true*/); |
609 | break; | 609 | break; |
610 | case CBHover: | 610 | case CBHover: |
611 | pixmaps[CBHover] = processEmbedded("checkbox", btnHoverH, btnHoverS, btnHoverV /*, true*/); | 611 | pixmaps[CBHover] = processEmbedded("checkbox", btnHoverH, btnHoverS, btnHoverV /*, true*/); |
612 | break; | 612 | break; |
613 | case CBDown: | 613 | case CBDown: |
614 | pixmaps[CBDown] = processEmbedded("checkboxdown", btnH, btnS, btnV /*, true*/); | 614 | pixmaps[CBDown] = processEmbedded("checkboxdown", btnH, btnS, btnV /*, true*/); |
615 | break; | 615 | break; |
616 | case CBDownHover: | 616 | case CBDownHover: |
617 | pixmaps[CBDownHover] = processEmbedded("checkboxdown", btnHoverH, btnHoverS, btnHoverV /*, true*/); | 617 | pixmaps[CBDownHover] = processEmbedded("checkboxdown", btnHoverH, btnHoverS, btnHoverV /*, true*/); |
618 | break; | 618 | break; |
619 | 619 | ||
620 | case VSlider: | 620 | case VSlider: |
621 | pixmaps[VSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV, true ); | 621 | pixmaps[VSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV, true ); |
622 | *pixmaps[VSlider] = pixmaps[VSlider]->xForm(rMatrix); | 622 | *pixmaps[VSlider] = pixmaps[VSlider]->xForm(rMatrix); |
623 | break; | 623 | break; |
624 | case VSBSliderTop: | 624 | case VSBSliderTop: |
625 | case VSBSliderTopHover: | 625 | case VSBSliderTopHover: |
626 | pixmaps[item] = processEmbedded("sbslider_top", btnH, btnS, btnV /*, true*/); | 626 | pixmaps[item] = processEmbedded("sbslider_top", btnH, btnS, btnV /*, true*/); |
627 | break; | 627 | break; |
628 | case VSBSliderBtm: | 628 | case VSBSliderBtm: |
629 | case VSBSliderBtmHover: | 629 | case VSBSliderBtmHover: |
630 | pixmaps[item] = processEmbedded("sbslider_btm", btnH, btnS, btnV /*, true*/); | 630 | pixmaps[item] = processEmbedded("sbslider_btm", btnH, btnS, btnV /*, true*/); |
631 | break; | 631 | break; |
632 | case VSBSliderMid: | 632 | case VSBSliderMid: |
633 | case VSBSliderMidHover: | 633 | case VSBSliderMidHover: |
634 | pixmaps[item] = processEmbedded("sbslider_mid", btnH, btnS, btnV); | 634 | pixmaps[item] = processEmbedded("sbslider_mid", btnH, btnS, btnV); |
635 | break; | 635 | break; |
636 | case VSBSliderTopBg: | 636 | case VSBSliderTopBg: |
637 | pixmaps[VSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV /*, true*/); | 637 | pixmaps[VSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV /*, true*/); |
638 | break; | 638 | break; |
639 | case VSBSliderBtmBg: | 639 | case VSBSliderBtmBg: |
640 | pixmaps[VSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV /*, true*/); | 640 | pixmaps[VSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV /*, true*/); |
641 | break; | 641 | break; |
642 | case VSBSliderMidBg: | 642 | case VSBSliderMidBg: |
643 | pixmaps[VSBSliderMidBg] = processEmbedded("sbslider_mid", bH, bS, bV); | 643 | pixmaps[VSBSliderMidBg] = processEmbedded("sbslider_mid", bH, bS, bV); |
644 | break; | 644 | break; |
645 | 645 | ||
646 | case HSlider: | 646 | case HSlider: |
647 | pixmaps[HSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV /*, true*/); | 647 | pixmaps[HSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV /*, true*/); |
648 | break; | 648 | break; |
649 | case HSBSliderTop: | 649 | case HSBSliderTop: |
650 | case HSBSliderTopHover: | 650 | case HSBSliderTopHover: |
651 | pixmaps[item] = processEmbedded("sbslider_top", btnH, btnS, btnV, true ); | 651 | pixmaps[item] = processEmbedded("sbslider_top", btnH, btnS, btnV, true ); |
652 | *pixmaps[item] = pixmaps[item]->xForm(rMatrix); | 652 | *pixmaps[item] = pixmaps[item]->xForm(rMatrix); |
653 | break; | 653 | break; |
654 | case HSBSliderBtm: | 654 | case HSBSliderBtm: |
655 | case HSBSliderBtmHover: | 655 | case HSBSliderBtmHover: |
656 | pixmaps[item] = processEmbedded("sbslider_btm", btnH, btnS, btnV, true ); | 656 | pixmaps[item] = processEmbedded("sbslider_btm", btnH, btnS, btnV, true ); |
657 | *pixmaps[item] = pixmaps[item]->xForm(rMatrix); | 657 | *pixmaps[item] = pixmaps[item]->xForm(rMatrix); |
658 | break; | 658 | break; |
659 | case HSBSliderMid: | 659 | case HSBSliderMid: |
660 | case HSBSliderMidHover: | 660 | case HSBSliderMidHover: |
661 | pixmaps[item] = processEmbedded("sbslider_mid", btnH, btnS, btnV); | 661 | pixmaps[item] = processEmbedded("sbslider_mid", btnH, btnS, btnV); |
662 | *pixmaps[item] = pixmaps[item]->xForm(rMatrix); | 662 | *pixmaps[item] = pixmaps[item]->xForm(rMatrix); |
663 | break; | 663 | break; |
664 | case HSBSliderTopBg: | 664 | case HSBSliderTopBg: |
665 | pixmaps[HSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV, true ); | 665 | pixmaps[HSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV, true ); |
666 | *pixmaps[HSBSliderTopBg] = pixmaps[HSBSliderTopBg]->xForm(rMatrix); | 666 | *pixmaps[HSBSliderTopBg] = pixmaps[HSBSliderTopBg]->xForm(rMatrix); |
667 | break; | 667 | break; |
668 | case HSBSliderBtmBg: | 668 | case HSBSliderBtmBg: |
669 | pixmaps[HSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV, true ); | 669 | pixmaps[HSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV, true ); |
@@ -740,806 +740,810 @@ void LiquidStyle::polish(QPalette &appPal) | |||
740 | c.hsv(&h, &s, &v); | 740 | c.hsv(&h, &s, &v); |
741 | pix = new QPixmap(*smallBevelFillPix); | 741 | pix = new QPixmap(*smallBevelFillPix); |
742 | adjustHSV(*pix, h, s, v); | 742 | adjustHSV(*pix, h, s, v); |
743 | smallBevelFillDict.insert(c.rgb(), pix); | 743 | smallBevelFillDict.insert(c.rgb(), pix); |
744 | } | 744 | } |
745 | // pagerHoverBrush.setColor(c); | 745 | // pagerHoverBrush.setColor(c); |
746 | // pagerHoverBrush.setPixmap(*pix); | 746 | // pagerHoverBrush.setPixmap(*pix); |
747 | 747 | ||
748 | c = c.dark(120); | 748 | c = c.dark(120); |
749 | pix = smallBevelFillDict.find(c.rgb()); // better be NULL ;-) | 749 | pix = smallBevelFillDict.find(c.rgb()); // better be NULL ;-) |
750 | if(!pix){ | 750 | if(!pix){ |
751 | int h, s, v; | 751 | int h, s, v; |
752 | c.hsv(&h, &s, &v); | 752 | c.hsv(&h, &s, &v); |
753 | pix = new QPixmap(*smallBevelFillPix); | 753 | pix = new QPixmap(*smallBevelFillPix); |
754 | adjustHSV(*pix, h, s, v); | 754 | adjustHSV(*pix, h, s, v); |
755 | smallBevelFillDict.insert(c.rgb(), pix); | 755 | smallBevelFillDict.insert(c.rgb(), pix); |
756 | } | 756 | } |
757 | // pagerBrush.setColor(c); | 757 | // pagerBrush.setColor(c); |
758 | // pagerBrush.setPixmap(*pix); | 758 | // pagerBrush.setPixmap(*pix); |
759 | 759 | ||
760 | // background color stuff | 760 | // background color stuff |
761 | c = appPal. color ( QPalette::Active, QColorGroup::Background ); | 761 | c = appPal. color ( QPalette::Active, QColorGroup::Background ); |
762 | 762 | ||
763 | c.hsv(&bH, &bS, &bV); | 763 | c.hsv(&bH, &bS, &bV); |
764 | c.light(120).hsv(&bHoverH, &bHoverS, &bHoverV); | 764 | c.light(120).hsv(&bHoverH, &bHoverS, &bHoverV); |
765 | 765 | ||
766 | // FIXME? | 766 | // FIXME? |
767 | if(vsbSliderFillPix) | 767 | if(vsbSliderFillPix) |
768 | delete vsbSliderFillPix; | 768 | delete vsbSliderFillPix; |
769 | vsbSliderFillPix = new QPixmap(bevelFillPix->xForm(rMatrix)); | 769 | vsbSliderFillPix = new QPixmap(bevelFillPix->xForm(rMatrix)); |
770 | adjustHSV(*vsbSliderFillPix, bH, bS, bV); | 770 | adjustHSV(*vsbSliderFillPix, bH, bS, bV); |
771 | 771 | ||
772 | // background brush | 772 | // background brush |
773 | QPixmap wallPaper(32, 32); | 773 | QPixmap wallPaper(32, 32); |
774 | wallPaper.fill(c.rgb()); | 774 | wallPaper.fill(c.rgb()); |
775 | painter.begin(&wallPaper); | 775 | painter.begin(&wallPaper); |
776 | for(i=0; i < 32; i+=4){ | 776 | for(i=0; i < 32; i+=4){ |
777 | painter.setPen(c.dark(100 + contrast)); | 777 | painter.setPen(c.dark(100 + contrast)); |
778 | painter.drawLine(0, i, 32, i); | 778 | painter.drawLine(0, i, 32, i); |
779 | painter.setPen(c.dark(100 + 3 * contrast / 5 ) ); | 779 | painter.setPen(c.dark(100 + 3 * contrast / 5 ) ); |
780 | painter.drawLine(0, i+1, 32, i+1); | 780 | painter.drawLine(0, i+1, 32, i+1); |
781 | }; | 781 | }; |
782 | painter.end(); | 782 | painter.end(); |
783 | bgBrush.setColor(c); | 783 | bgBrush.setColor(c); |
784 | bgBrush.setPixmap(wallPaper); | 784 | bgBrush.setPixmap(wallPaper); |
785 | appPal.setBrush(QColorGroup::Background, bgBrush); | 785 | appPal.setBrush(QColorGroup::Background, bgBrush); |
786 | } | 786 | } |
787 | 787 | ||
788 | void LiquidStyle::polish(QWidget *w) | 788 | void LiquidStyle::polish(QWidget *w) |
789 | { | 789 | { |
790 | if(w->inherits("QMenuBar")){ | 790 | if(w->inherits("QMenuBar")){ |
791 | //((QFrame*)w)->setLineWidth(0); | 791 | //((QFrame*)w)->setLineWidth(0); |
792 | w->setBackgroundMode(QWidget::PaletteBackground); | 792 | w->setBackgroundMode(QWidget::PaletteBackground); |
793 | w->setBackgroundOrigin(QWidget::ParentOrigin); | 793 | w->setBackgroundOrigin(QWidget::ParentOrigin); |
794 | return; | 794 | return; |
795 | } | 795 | } |
796 | if(w->inherits("QToolBar")){ | 796 | if(w->inherits("QToolBar")){ |
797 | w->installEventFilter(this); | 797 | w->installEventFilter(this); |
798 | w->setBackgroundMode(QWidget::PaletteBackground); | 798 | w->setBackgroundMode(QWidget::PaletteBackground); |
799 | w->setBackgroundOrigin(QWidget::WidgetOrigin); | 799 | w->setBackgroundOrigin(QWidget::WidgetOrigin); |
800 | return; | 800 | return; |
801 | } | 801 | } |
802 | if(w->inherits("QPopupMenu")) | 802 | if(w->inherits("QPopupMenu")) |
803 | w->setBackgroundMode(QWidget::NoBackground); | 803 | w->setBackgroundMode(QWidget::NoBackground); |
804 | else if(w-> testWFlags(Qt::WType_Popup) && | 804 | else if(w-> testWFlags(Qt::WType_Popup) && |
805 | !w->inherits("QListBox") && | 805 | !w->inherits("QListBox") && |
806 | ( qstrcmp ( w-> name(), "automatic what's this? widget" ) != 0 )) { | 806 | ( qstrcmp ( w-> name(), "automatic what's this? widget" ) != 0 )) { |
807 | w->installEventFilter(menuHandler); | 807 | w->installEventFilter(menuHandler); |
808 | } | 808 | } |
809 | 809 | ||
810 | if(w->isTopLevel()){ | 810 | if(w->isTopLevel()){ |
811 | return; | 811 | return; |
812 | } | 812 | } |
813 | 813 | ||
814 | if(w->inherits("QRadioButton") || w->inherits("QCheckBox") || w->inherits("QProgressBar")) { | 814 | if(w->inherits("QRadioButton") || w->inherits("QCheckBox") || w->inherits("QProgressBar")) { |
815 | w->installEventFilter(this); | 815 | w->installEventFilter(this); |
816 | } | 816 | } |
817 | 817 | ||
818 | if(w->inherits("QButton") || w-> inherits("QComboBox")){ | 818 | if(w->inherits("QButton") || w-> inherits("QComboBox")){ |
819 | w-> setBackgroundMode ( QWidget::PaletteBackground ); | 819 | w-> setBackgroundMode ( QWidget::PaletteBackground ); |
820 | w->setBackgroundOrigin ( QWidget::ParentOrigin); | 820 | w->setBackgroundOrigin ( QWidget::ParentOrigin); |
821 | } | 821 | } |
822 | 822 | ||
823 | bool isViewport = qstrcmp(w->name(), "qt_viewport") == 0 || | 823 | bool isViewport = qstrcmp(w->name(), "qt_viewport") == 0 || |
824 | qstrcmp(w->name(), "qt_clipped_viewport") == 0; | 824 | qstrcmp(w->name(), "qt_clipped_viewport") == 0; |
825 | bool isViewportChild = w->parent() && | 825 | bool isViewportChild = w->parent() && |
826 | ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || | 826 | ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || |
827 | (qstrcmp(w->parent()->name(), "qt_clipped_viewport") == 0)); | 827 | (qstrcmp(w->parent()->name(), "qt_clipped_viewport") == 0)); |
828 | 828 | ||
829 | if(isViewport && w->parent() && qstrcmp(w->parent()->name(), "proxyview") == 0){ | 829 | if(isViewport && w->parent() && qstrcmp(w->parent()->name(), "proxyview") == 0){ |
830 | w->setBackgroundMode(QWidget::X11ParentRelative); | 830 | w->setBackgroundMode(QWidget::X11ParentRelative); |
831 | return; | 831 | return; |
832 | } | 832 | } |
833 | if(isViewportChild){ | 833 | if(isViewportChild){ |
834 | if(w->inherits("QButton") || w->inherits("QComboBox")){ | 834 | if(w->inherits("QButton") || w->inherits("QComboBox")){ |
835 | if(w->parent()){ // heh, only way to test for KHTML children ;-) | 835 | if(w->parent()){ // heh, only way to test for KHTML children ;-) |
836 | if(w->parent()->parent()){ | 836 | if(w->parent()->parent()){ |
837 | if(w->parent()->parent()->parent() && | 837 | if(w->parent()->parent()->parent() && |
838 | w->parent()->parent()->parent()->inherits("KHTMLView")){ | 838 | w->parent()->parent()->parent()->inherits("KHTMLView")){ |
839 | w->setAutoMask(true); | 839 | w->setAutoMask(true); |
840 | w->setBackgroundMode(QWidget::NoBackground); | 840 | w->setBackgroundMode(QWidget::NoBackground); |
841 | } | 841 | } |
842 | } | 842 | } |
843 | } | 843 | } |
844 | return; | 844 | return; |
845 | } | 845 | } |
846 | } | 846 | } |
847 | if(w->inherits("QHeader")){ | 847 | if(w->inherits("QHeader")){ |
848 | w->setMouseTracking(true); | 848 | w->setMouseTracking(true); |
849 | w->installEventFilter(this); | 849 | w->installEventFilter(this); |
850 | } | 850 | } |
851 | if(w-> inherits("QToolButton")) { | 851 | if(w-> inherits("QToolButton")) { |
852 | if (w->parent()->inherits("QToolBar")) { | 852 | if (w->parent()->inherits("QToolBar")) { |
853 | ((QToolButton*)w)->setAutoRaise (flatTBButtons); | 853 | ((QToolButton*)w)->setAutoRaise (flatTBButtons); |
854 | if ( flatTBButtons ) | 854 | if ( flatTBButtons ) |
855 | w->setBackgroundOrigin(QWidget::ParentOrigin); | 855 | w->setBackgroundOrigin(QWidget::ParentOrigin); |
856 | } | 856 | } |
857 | w-> installEventFilter ( this ); | 857 | w-> installEventFilter ( this ); |
858 | } | 858 | } |
859 | if(w-> inherits("QToolBarSeparator")&&w->parent()->inherits("QToolBar")) { | 859 | if(w-> inherits("QToolBarSeparator")&&w->parent()->inherits("QToolBar")) { |
860 | ((QFrame *) w)-> setFrameShape ( QFrame::NoFrame ); | 860 | ((QFrame *) w)-> setFrameShape ( QFrame::NoFrame ); |
861 | } | 861 | } |
862 | if(w->ownPalette() && !w->inherits("QButton") && !w->inherits("QComboBox")){ | 862 | if(w->ownPalette() && !w->inherits("QButton") && !w->inherits("QComboBox")){ |
863 | return; | 863 | return; |
864 | } | 864 | } |
865 | 865 | ||
866 | if(w->parent() && w->parent()->isWidgetType() && !((QWidget*)w->parent())-> | 866 | if(w->parent() && w->parent()->isWidgetType() && !((QWidget*)w->parent())-> |
867 | palette().active().brush(QColorGroup::Background).pixmap()){ | 867 | palette().active().brush(QColorGroup::Background).pixmap()){ |
868 | owarn << "No parent pixmap for child widget " << w->className() << "" << oendl; | 868 | owarn << "No parent pixmap for child widget " << w->className() << "" << oendl; |
869 | return; | 869 | return; |
870 | } | 870 | } |
871 | if(!isViewport && !isViewportChild && !w->testWFlags(WType_Popup) && | 871 | if(!isViewport && !isViewportChild && !w->testWFlags(WType_Popup) && |
872 | !( !w-> inherits("QLineEdit") && w-> parent() && w-> parent()-> isWidgetType ( ) && w-> parent()-> inherits ( "QMultiLineEdit" ))) { | 872 | !( !w-> inherits("QLineEdit") && w-> parent() && w-> parent()-> isWidgetType ( ) && w-> parent()-> inherits ( "QMultiLineEdit" ))) { |
873 | if(w->backgroundMode() == QWidget::PaletteBackground || | 873 | if(w->backgroundMode() == QWidget::PaletteBackground || |
874 | w->backgroundMode() == QWidget::PaletteButton){ | 874 | w->backgroundMode() == QWidget::PaletteButton){ |
875 | w->setBackgroundMode(w->parentWidget()->backgroundMode( )/*QWidget::X11ParentRelative*/); | 875 | w->setBackgroundMode(w->parentWidget()->backgroundMode( )/*QWidget::X11ParentRelative*/); |
876 | w->setBackgroundOrigin(QWidget::ParentOrigin); | 876 | w->setBackgroundOrigin(QWidget::ParentOrigin); |
877 | // w->setBackgroundMode(QWidget::NoBackground); | 877 | // w->setBackgroundMode(QWidget::NoBackground); |
878 | } | 878 | } |
879 | } | 879 | } |
880 | if ( !w-> inherits("QFrame") || (((QFrame*) w)-> frameShape () == QFrame::NoFrame )) | 880 | if ( !w-> inherits("QFrame") || (((QFrame*) w)-> frameShape () == QFrame::NoFrame )) |
881 | w-> setBackgroundOrigin ( QWidget::ParentOrigin ); | 881 | w-> setBackgroundOrigin ( QWidget::ParentOrigin ); |
882 | else if ( w-> inherits("QFrame") ) | 882 | else if ( w-> inherits("QFrame") ) |
883 | w->setBackgroundOrigin ( QWidget::WidgetOrigin ); | 883 | w->setBackgroundOrigin ( QWidget::WidgetOrigin ); |
884 | 884 | ||
885 | if ( w->parentWidget()->inherits ( "QWidgetStack" )) { | 885 | if ( w->parentWidget()->inherits ( "QWidgetStack" )) { |
886 | w->setBackgroundOrigin ( QWidget::WidgetOrigin ); | 886 | w->setBackgroundOrigin ( QWidget::WidgetOrigin ); |
887 | } | 887 | } |
888 | } | 888 | } |
889 | 889 | ||
890 | void LiquidStyle::unPolish(QWidget *w) | 890 | void LiquidStyle::unPolish(QWidget *w) |
891 | { | 891 | { |
892 | if(w->inherits("QMenuBar")){ | 892 | if(w->inherits("QMenuBar")){ |
893 | ((QFrame *)w)->setLineWidth(1); | 893 | ((QFrame *)w)->setLineWidth(1); |
894 | w->setBackgroundMode(QWidget::PaletteBackground); | 894 | w->setBackgroundMode(QWidget::PaletteBackground); |
895 | return; | 895 | return; |
896 | } | 896 | } |
897 | 897 | ||
898 | if(w->inherits("QPopupMenu")) | 898 | if(w->inherits("QPopupMenu")) |
899 | w->setBackgroundMode(QWidget::PaletteButton); | 899 | w->setBackgroundMode(QWidget::PaletteButton); |
900 | else if(w-> testWFlags(Qt::WType_Popup) && | 900 | else if(w-> testWFlags(Qt::WType_Popup) && |
901 | !w->inherits("QListBox") && | 901 | !w->inherits("QListBox") && |
902 | ( qstrcmp ( w-> name(), "automatic what's this? widget" ) != 0 )) { | 902 | ( qstrcmp ( w-> name(), "automatic what's this? widget" ) != 0 )) { |
903 | w->removeEventFilter(menuHandler); | 903 | w->removeEventFilter(menuHandler); |
904 | } | 904 | } |
905 | 905 | ||
906 | if(w->isTopLevel()) | 906 | if(w->isTopLevel()) |
907 | return; | 907 | return; |
908 | 908 | ||
909 | // for viewport children, don't just check for NoBackground.... | 909 | // for viewport children, don't just check for NoBackground.... |
910 | bool isViewportChild = w->parent() && | 910 | bool isViewportChild = w->parent() && |
911 | ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || | 911 | ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || |
912 | (qstrcmp(w->parent()->name(), "qt_clipped_viewport") == 0)); | 912 | (qstrcmp(w->parent()->name(), "qt_clipped_viewport") == 0)); |
913 | 913 | ||
914 | w->unsetPalette(); | 914 | w->unsetPalette(); |
915 | if(w->backgroundMode() == QWidget::X11ParentRelative || isViewportChild){ | 915 | if(w->backgroundMode() == QWidget::X11ParentRelative || isViewportChild){ |
916 | if(w->inherits("QPushButton")) | 916 | if(w->inherits("QPushButton")) |
917 | w->setBackgroundMode(QWidget::PaletteButton); | 917 | w->setBackgroundMode(QWidget::PaletteButton); |
918 | else | 918 | else |
919 | w->setBackgroundMode(QWidget::PaletteBackground); | 919 | w->setBackgroundMode(QWidget::PaletteBackground); |
920 | } | 920 | } |
921 | 921 | ||
922 | if(isViewportChild) | 922 | if(isViewportChild) |
923 | w->setAutoMask(false); | 923 | w->setAutoMask(false); |
924 | 924 | ||
925 | /* | 925 | /* |
926 | if(w->inherits("QPushButton") || w-> inherits("QComboBox")){ | 926 | if(w->inherits("QPushButton") || w-> inherits("QComboBox")){ |
927 | w-> setBackgroundMode ( PaletteBackground ); | 927 | w-> setBackgroundMode ( PaletteBackground ); |
928 | } | 928 | } |
929 | */ | 929 | */ |
930 | if( w->inherits("QRadioButton") || w->inherits("QCheckBox") || w->inherits("QProgressBar")) { | 930 | if( w->inherits("QRadioButton") || w->inherits("QCheckBox") || w->inherits("QProgressBar")) { |
931 | w->removeEventFilter(this); | 931 | w->removeEventFilter(this); |
932 | } | 932 | } |
933 | if(w->inherits("QButton") || w->inherits("QComboBox")){ | 933 | if(w->inherits("QButton") || w->inherits("QComboBox")){ |
934 | if(w->parent() && w->parent()->inherits("KHTMLPart")){ | 934 | if(w->parent() && w->parent()->inherits("KHTMLPart")){ |
935 | w->setAutoMask(false); | 935 | w->setAutoMask(false); |
936 | } | 936 | } |
937 | } | 937 | } |
938 | if(w-> inherits("QToolButton")) { | 938 | if(w-> inherits("QToolButton")) { |
939 | w-> removeEventFilter ( this ); | 939 | w-> removeEventFilter ( this ); |
940 | } | 940 | } |
941 | if(w->inherits("QToolBar")){ | 941 | if(w->inherits("QToolBar")){ |
942 | w->removeEventFilter(this); | 942 | w->removeEventFilter(this); |
943 | w->setBackgroundMode(QWidget::PaletteBackground); | 943 | w->setBackgroundMode(QWidget::PaletteBackground); |
944 | return; | 944 | return; |
945 | } | 945 | } |
946 | if(w->inherits("QHeader")){ | 946 | if(w->inherits("QHeader")){ |
947 | w->setMouseTracking(false); | 947 | w->setMouseTracking(false); |
948 | w->removeEventFilter(this); | 948 | w->removeEventFilter(this); |
949 | } | 949 | } |
950 | } | 950 | } |
951 | 951 | ||
952 | void LiquidStyle::polish(QApplication *app) | 952 | void LiquidStyle::polish(QApplication *app) |
953 | { | 953 | { |
954 | 954 | ||
955 | QWindowsStyle::polish(app); | 955 | QWindowsStyle::polish(app); |
956 | menuAni = app->isEffectEnabled(UI_AnimateMenu); | 956 | menuAni = app->isEffectEnabled(UI_AnimateMenu); |
957 | menuFade = app->isEffectEnabled(UI_FadeMenu); | 957 | menuFade = app->isEffectEnabled(UI_FadeMenu); |
958 | if(menuAni) | 958 | if(menuAni) |
959 | app->setEffectEnabled(UI_AnimateMenu, false); | 959 | app->setEffectEnabled(UI_AnimateMenu, false); |
960 | if(menuFade) | 960 | if(menuFade) |
961 | app->setEffectEnabled(UI_FadeMenu, false); | 961 | app->setEffectEnabled(UI_FadeMenu, false); |
962 | 962 | ||
963 | qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl) &LiquidStyle::drawMenuBarItem); | 963 | qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl) &LiquidStyle::drawMenuBarItem); |
964 | 964 | ||
965 | Config config ( "qpe" ); | 965 | Config config ( "qpe" ); |
966 | config. setGroup ( "Liquid-Style" ); | 966 | config. setGroup ( "Liquid-Style" ); |
967 | 967 | ||
968 | // if ( config. readBoolEntry ( "WinDecoration", true )) | 968 | // if ( config. readBoolEntry ( "WinDecoration", true )) |
969 | // QApplication::qwsSetDecoration ( new LiquidDecoration ( )); | 969 | // QApplication::qwsSetDecoration ( new LiquidDecoration ( )); |
970 | 970 | ||
971 | flatTBButtons = config. readBoolEntry ( "FlatToolButtons", false ); | 971 | flatTBButtons = config. readBoolEntry ( "FlatToolButtons", false ); |
972 | } | 972 | } |
973 | 973 | ||
974 | void LiquidStyle::unPolish(QApplication *app) | 974 | void LiquidStyle::unPolish(QApplication *app) |
975 | { | 975 | { |
976 | QWindowsStyle::unPolish(app); | 976 | QWindowsStyle::unPolish(app); |
977 | app->setEffectEnabled(UI_AnimateMenu, menuAni); | 977 | app->setEffectEnabled(UI_AnimateMenu, menuAni); |
978 | app->setEffectEnabled(UI_FadeMenu, menuFade); | 978 | app->setEffectEnabled(UI_FadeMenu, menuFade); |
979 | 979 | ||
980 | qt_set_draw_menu_bar_impl ( 0 ); | 980 | qt_set_draw_menu_bar_impl ( 0 ); |
981 | 981 | ||
982 | // QApplication::qwsSetDecoration ( new QPEDecoration ( )); | 982 | // QApplication::qwsSetDecoration ( new QPEDecoration ( )); |
983 | } | 983 | } |
984 | 984 | ||
985 | 985 | ||
986 | /* !! HACK !! Beware | 986 | /* !! HACK !! Beware |
987 | * | 987 | * |
988 | * TT forgot to make the QProgressBar widget styleable in Qt 2.x | 988 | * TT forgot to make the QProgressBar widget styleable in Qt 2.x |
989 | * So the only way to customize the drawing, is to intercept the | 989 | * So the only way to customize the drawing, is to intercept the |
990 | * paint event - since we have to use protected functions, we need | 990 | * paint event - since we have to use protected functions, we need |
991 | * to derive a "hack" class from QProgressBar and do the painting | 991 | * to derive a "hack" class from QProgressBar and do the painting |
992 | * in there. | 992 | * in there. |
993 | * | 993 | * |
994 | * - sandman | 994 | * - sandman |
995 | */ | 995 | */ |
996 | 996 | ||
997 | class HackProgressBar : public QProgressBar { | 997 | class HackProgressBar : public QProgressBar { |
998 | public: | 998 | public: |
999 | HackProgressBar ( ); | 999 | HackProgressBar ( ); |
1000 | 1000 | ||
1001 | void paint ( QPaintEvent *event, const QColorGroup &g, QPixmap *pix ) | 1001 | void paint ( QPaintEvent *event, const QColorGroup &g, QPixmap *pix ) |
1002 | { | 1002 | { |
1003 | QPainter p( this ); | 1003 | QPainter p( this ); |
1004 | 1004 | ||
1005 | if ( !contentsRect().contains( event->rect() ) ) { | 1005 | if ( !contentsRect().contains( event->rect() ) ) { |
1006 | p.save(); | 1006 | p.save(); |
1007 | p.setClipRegion( event->region().intersect(frameRect()) ); | 1007 | p.setClipRegion( event->region().intersect(frameRect()) ); |
1008 | drawFrame( &p); | 1008 | drawFrame( &p); |
1009 | p.restore(); | 1009 | p.restore(); |
1010 | } | 1010 | } |
1011 | if ( event->rect().intersects( contentsRect() )) { | 1011 | if ( event->rect().intersects( contentsRect() )) { |
1012 | p.setClipRegion( event->region().intersect( contentsRect() ) ); | 1012 | p.setClipRegion( event->region().intersect( contentsRect() ) ); |
1013 | 1013 | ||
1014 | int x, y, w, h; | 1014 | int x, y, w, h; |
1015 | contentsRect ( ). rect ( &x, &y, &w, &h ); | 1015 | contentsRect ( ). rect ( &x, &y, &w, &h ); |
1016 | 1016 | ||
1017 | int prog = progress ( ); | 1017 | int prog = progress ( ); |
1018 | int total = totalSteps ( ); | 1018 | int total = totalSteps ( ); |
1019 | if ( prog < 0 ) | 1019 | if ( prog < 0 ) |
1020 | prog = 0; | 1020 | prog = 0; |
1021 | if ( total <= 0 ) | 1021 | if ( total <= 0 ) |
1022 | total = 1; | 1022 | total = 1; |
1023 | int bw = w * prog / total; | 1023 | int bw = w * prog / total; |
1024 | if ( bw > w ) | 1024 | if ( bw > w ) |
1025 | bw = w; | 1025 | bw = w; |
1026 | 1026 | ||
1027 | p.setPen(g.button().dark(130)); | 1027 | p.setPen(g.button().dark(130)); |
1028 | p.drawRect(x, y, bw, h); | 1028 | p.drawRect(x, y, bw, h); |
1029 | p.setPen(g.button().light(120)); | 1029 | p.setPen(g.button().light(120)); |
1030 | p.drawRect(x+1, y+1, bw-2, h-2); | 1030 | p.drawRect(x+1, y+1, bw-2, h-2); |
1031 | 1031 | ||
1032 | if(bw >= 4 && h >= 4 && pix) | 1032 | if(bw >= 4 && h >= 4 && pix) |
1033 | p.drawTiledPixmap(x+2, y+2, bw-4, h-4, *pix); | 1033 | p.drawTiledPixmap(x+2, y+2, bw-4, h-4, *pix); |
1034 | 1034 | ||
1035 | if ( progress ( )>= 0 && totalSteps ( ) > 0 ) { | 1035 | if ( progress ( )>= 0 && totalSteps ( ) > 0 ) { |
1036 | QString pstr; | 1036 | QString pstr; |
1037 | pstr. sprintf ( "%d%%", 100 * progress()/totalSteps ()); | 1037 | pstr. sprintf ( "%d%%", 100 * progress()/totalSteps ()); |
1038 | p. setPen ( g.text());//g.highlightedText ( )); | 1038 | p. setPen ( g.text());//g.highlightedText ( )); |
1039 | p. drawText (x,y,w-1,h-1,AlignCenter,pstr); | 1039 | p. drawText (x,y,w-1,h-1,AlignCenter,pstr); |
1040 | } | 1040 | } |
1041 | } | 1041 | } |
1042 | } | 1042 | } |
1043 | }; | 1043 | }; |
1044 | 1044 | ||
1045 | 1045 | ||
1046 | /* | 1046 | /* |
1047 | * The same for QToolButton: | 1047 | * The same for QToolButton: |
1048 | * TT hardcoded the drawing of the focus rect ... | 1048 | * TT hardcoded the drawing of the focus rect ... |
1049 | * | 1049 | * |
1050 | * - sandman | 1050 | * - sandman |
1051 | */ | 1051 | */ |
1052 | 1052 | ||
1053 | 1053 | ||
1054 | class HackToolButton : public QToolButton { | 1054 | class HackToolButton : public QToolButton { |
1055 | public: | 1055 | public: |
1056 | HackToolButton ( ); | 1056 | HackToolButton ( ); |
1057 | 1057 | ||
1058 | void paint ( QPaintEvent *ev ) | 1058 | void paint ( QPaintEvent *ev ) |
1059 | { | 1059 | { |
1060 | erase ( ev-> region ( )); | 1060 | erase ( ev-> region ( )); |
1061 | QPainter p ( this ); | 1061 | QPainter p ( this ); |
1062 | style ( ). drawToolButton ( this, &p ); | 1062 | style ( ). drawToolButton ( this, &p ); |
1063 | drawButtonLabel ( &p ); | 1063 | drawButtonLabel ( &p ); |
1064 | } | 1064 | } |
1065 | }; | 1065 | }; |
1066 | 1066 | ||
1067 | /* | 1067 | /* |
1068 | * This is a fun method ;-) Here's an overview. KToolBar grabs resize to | 1068 | * This is a fun method ;-) Here's an overview. KToolBar grabs resize to |
1069 | * force everything to erase and repaint on resize. This is going away, I'm | 1069 | * force everything to erase and repaint on resize. This is going away, I'm |
1070 | * trying to get shaped widgets to work right without masking. QPushButton, | 1070 | * trying to get shaped widgets to work right without masking. QPushButton, |
1071 | * QComboBox, and Panel applet handles capture mouse enter and leaves in order | 1071 | * QComboBox, and Panel applet handles capture mouse enter and leaves in order |
1072 | * to set the highlightwidget and repaint for mouse hovers. CheckBoxes and | 1072 | * to set the highlightwidget and repaint for mouse hovers. CheckBoxes and |
1073 | * RadioButtons need to do this differently. Qt buffers these in pixmaps and | 1073 | * RadioButtons need to do this differently. Qt buffers these in pixmaps and |
1074 | * caches them in QPixmapCache, which is bad for doing things like hover | 1074 | * caches them in QPixmapCache, which is bad for doing things like hover |
1075 | * because the style methods aren't called in paintEvents if everything | 1075 | * because the style methods aren't called in paintEvents if everything |
1076 | * is cached. We use our own Paint event handler instead. Taskbuttons and | 1076 | * is cached. We use our own Paint event handler instead. Taskbuttons and |
1077 | * pager buttons draw into a pixmap buffer, so we handle those with palette | 1077 | * pager buttons draw into a pixmap buffer, so we handle those with palette |
1078 | * modifications. For QHeader, different header items are actually one widget | 1078 | * modifications. For QHeader, different header items are actually one widget |
1079 | * that draws multiple items, so we need to check which ID is hightlighted | 1079 | * that draws multiple items, so we need to check which ID is hightlighted |
1080 | * and draw it. Finally, we also check enter and leave events for QLineEdit, | 1080 | * and draw it. Finally, we also check enter and leave events for QLineEdit, |
1081 | * since if it's inside a combobox we want to highlight the combobox during | 1081 | * since if it's inside a combobox we want to highlight the combobox during |
1082 | * hovering in the edit. | 1082 | * hovering in the edit. |
1083 | */ | 1083 | */ |
1084 | bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) | 1084 | bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) |
1085 | { | 1085 | { |
1086 | if(obj->inherits("QToolBar")){ | 1086 | if(obj->inherits("QToolBar")){ |
1087 | if(ev->type() == QEvent::Resize){ | 1087 | if(ev->type() == QEvent::Resize){ |
1088 | const QObjectList *tbChildList = obj->children(); | 1088 | const QObjectList *tbChildList = obj->children(); |
1089 | QObjectListIt it(*tbChildList); | 1089 | QObjectListIt it(*tbChildList); |
1090 | QObject *child; | 1090 | QObject *child; |
1091 | while((child = it.current()) != NULL){ | 1091 | while((child = it.current()) != NULL){ |
1092 | ++it; | 1092 | ++it; |
1093 | if(child->isWidgetType()) | 1093 | if(child->isWidgetType()) |
1094 | ((QWidget *)child)->repaint(true); | 1094 | ((QWidget *)child)->repaint(true); |
1095 | } | 1095 | } |
1096 | 1096 | ||
1097 | } | 1097 | } |
1098 | } | 1098 | } |
1099 | else if(obj->inherits("QToolButton")){ | 1099 | else if(obj->inherits("QToolButton")){ |
1100 | QToolButton *btn = (QToolButton *)obj; | 1100 | QToolButton *btn = (QToolButton *)obj; |
1101 | if(ev->type() == QEvent::FocusIn ){ // && !btn-> autoRaise () | 1101 | if(ev->type() == QEvent::FocusIn ){ // && !btn-> autoRaise () |
1102 | if(btn->isEnabled()){ | 1102 | if(btn->isEnabled()){ |
1103 | highlightWidget = btn; | 1103 | highlightWidget = btn; |
1104 | btn->repaint(false); | 1104 | btn->repaint(false); |
1105 | } | 1105 | } |
1106 | } | 1106 | } |
1107 | else if(ev->type() == QEvent::FocusOut ){ | 1107 | else if(ev->type() == QEvent::FocusOut ){ |
1108 | if(btn == highlightWidget){ | 1108 | if(btn == highlightWidget){ |
1109 | highlightWidget = NULL; | 1109 | highlightWidget = NULL; |
1110 | btn->repaint(false); | 1110 | btn->repaint(false); |
1111 | } | 1111 | } |
1112 | } | 1112 | } |
1113 | else if(ev->type() == QEvent::Paint) { | 1113 | else if(ev->type() == QEvent::Paint) { |
1114 | (( HackToolButton *) btn )-> paint ((QPaintEvent *) ev ); | 1114 | (( HackToolButton *) btn )-> paint ((QPaintEvent *) ev ); |
1115 | return true; | 1115 | return true; |
1116 | } | 1116 | } |
1117 | } | 1117 | } |
1118 | else if(obj->inherits("QRadioButton") || obj->inherits("QCheckBox")){ | 1118 | else if(obj->inherits("QRadioButton") || obj->inherits("QCheckBox")){ |
1119 | QButton *btn = (QButton *)obj; | 1119 | QButton *btn = (QButton *)obj; |
1120 | bool isRadio = obj->inherits("QRadioButton"); | 1120 | bool isRadio = obj->inherits("QRadioButton"); |
1121 | if(ev->type() == QEvent::Paint){ | 1121 | if(ev->type() == QEvent::Paint){ |
1122 | //if(btn->autoMask()) | 1122 | //if(btn->autoMask()) |
1123 | btn->erase(); | 1123 | btn->erase(); |
1124 | QPainter p; | 1124 | QPainter p; |
1125 | p.begin(btn); | 1125 | p.begin(btn); |
1126 | QFontMetrics fm = btn->fontMetrics(); | 1126 | QFontMetrics fm = btn->fontMetrics(); |
1127 | QSize lsz = fm.size(ShowPrefix, btn->text()); | 1127 | QSize lsz = fm.size(ShowPrefix, btn->text()); |
1128 | QSize sz = isRadio ? exclusiveIndicatorSize() | 1128 | QSize sz = isRadio ? exclusiveIndicatorSize() |
1129 | : indicatorSize(); | 1129 | : indicatorSize(); |
1130 | 1130 | ||
1131 | /* | 1131 | /* |
1132 | if(btn->hasFocus()){ | 1132 | if(btn->hasFocus()){ |
1133 | QRect r = QRect(0, 0, btn->width(), btn->height()); | 1133 | QRect r = QRect(0, 0, btn->width(), btn->height()); |
1134 | p.setPen(btn->colorGroup().button().dark(140)); | 1134 | p.setPen(btn->colorGroup().button().dark(140)); |
1135 | p.drawLine(r.x()+1, r.y(), r.right()-1, r.y()); | 1135 | p.drawLine(r.x()+1, r.y(), r.right()-1, r.y()); |
1136 | p.drawLine(r.x(), r.y()+1, r.x(), r.bottom()-1); | 1136 | p.drawLine(r.x(), r.y()+1, r.x(), r.bottom()-1); |
1137 | p.drawLine(r.right(), r.y()+1, r.right(), r.bottom()-1); | 1137 | p.drawLine(r.right(), r.y()+1, r.right(), r.bottom()-1); |
1138 | p.drawLine(r.x()+1, r.bottom(), r.right()-1, r.bottom()); | 1138 | p.drawLine(r.x()+1, r.bottom(), r.right()-1, r.bottom()); |
1139 | } | 1139 | } |
1140 | */ | 1140 | */ |
1141 | int x = 0; | 1141 | int x = 0; |
1142 | int y = (btn->height()-lsz.height()+fm.height()-sz.height())/2; | 1142 | int y = (btn->height()-lsz.height()+fm.height()-sz.height())/2; |
1143 | if(isRadio) | 1143 | if(isRadio) |
1144 | drawExclusiveIndicator(&p, x, y, sz.width(), sz.height(), | 1144 | drawExclusiveIndicator(&p, x, y, sz.width(), sz.height(), |
1145 | btn->colorGroup(), btn->isOn(), | 1145 | btn->colorGroup(), btn->isOn(), |
1146 | btn->isDown(), btn->isEnabled()); | 1146 | btn->isDown(), btn->isEnabled()); |
1147 | else | 1147 | else |
1148 | drawIndicator(&p, x, y, sz.width(), sz.height(), | 1148 | drawIndicator(&p, x, y, sz.width(), sz.height(), |
1149 | btn->colorGroup(), btn->state(), btn->isDown(), | 1149 | btn->colorGroup(), btn->state(), btn->isDown(), |
1150 | btn->isEnabled()); | 1150 | btn->isEnabled()); |
1151 | x = sz.width() + 6; | 1151 | x = sz.width() + 6; |
1152 | y = 0; | 1152 | y = 0; |
1153 | drawItem(&p, sz.width()+6+1, 0, btn->width()-(sz.width()+6+1), | 1153 | drawItem(&p, sz.width()+6+1, 0, btn->width()-(sz.width()+6+1), |
1154 | btn->height(), AlignLeft|AlignVCenter|ShowPrefix, | 1154 | btn->height(), AlignLeft|AlignVCenter|ShowPrefix, |
1155 | btn->colorGroup(), btn->isEnabled(), | 1155 | btn->colorGroup(), btn->isEnabled(), |
1156 | btn->pixmap(), btn->text()); | 1156 | btn->pixmap(), btn->text()); |
1157 | p.end(); | 1157 | p.end(); |
1158 | return(true); | 1158 | return(true); |
1159 | } | 1159 | } |
1160 | } | 1160 | } |
1161 | else if(obj->inherits("QHeader")){ | 1161 | else if(obj->inherits("QHeader")){ |
1162 | QHeader *hw = (QHeader *)obj; | 1162 | QHeader *hw = (QHeader *)obj; |
1163 | if(ev->type() == QEvent::Enter){ | 1163 | if(ev->type() == QEvent::Enter){ |
1164 | currentHeader = hw; | 1164 | currentHeader = hw; |
1165 | headerHoverID = -1; | 1165 | headerHoverID = -1; |
1166 | } | 1166 | } |
1167 | else if(ev->type() == QEvent::Leave){ | 1167 | else if(ev->type() == QEvent::Leave){ |
1168 | currentHeader = NULL; | 1168 | currentHeader = NULL; |
1169 | if(headerHoverID != -1){ | 1169 | if(headerHoverID != -1){ |
1170 | hw->repaint(hw->sectionPos(headerHoverID), 0, | 1170 | hw->repaint(hw->sectionPos(headerHoverID), 0, |
1171 | hw->sectionSize(headerHoverID), hw->height()); | 1171 | hw->sectionSize(headerHoverID), hw->height()); |
1172 | } | 1172 | } |
1173 | headerHoverID = -1; | 1173 | headerHoverID = -1; |
1174 | } | 1174 | } |
1175 | else if(ev->type() == QEvent::MouseMove){ | 1175 | else if(ev->type() == QEvent::MouseMove){ |
1176 | QMouseEvent *me = (QMouseEvent *)ev; | 1176 | QMouseEvent *me = (QMouseEvent *)ev; |
1177 | int oldHeader = headerHoverID; | 1177 | int oldHeader = headerHoverID; |
1178 | headerHoverID = hw->sectionAt(me->x()); | 1178 | headerHoverID = hw->sectionAt(me->x()); |
1179 | if(oldHeader != headerHoverID){ | 1179 | if(oldHeader != headerHoverID){ |
1180 | // reset old header | 1180 | // reset old header |
1181 | if(oldHeader != -1){ | 1181 | if(oldHeader != -1){ |
1182 | hw->repaint(hw->sectionPos(oldHeader), 0, | 1182 | hw->repaint(hw->sectionPos(oldHeader), 0, |
1183 | hw->sectionSize(oldHeader), hw->height()); | 1183 | hw->sectionSize(oldHeader), hw->height()); |
1184 | } | 1184 | } |
1185 | if(headerHoverID != -1){ | 1185 | if(headerHoverID != -1){ |
1186 | hw->repaint(hw->sectionPos(headerHoverID), 0, | 1186 | hw->repaint(hw->sectionPos(headerHoverID), 0, |
1187 | hw->sectionSize(headerHoverID), hw->height()); | 1187 | hw->sectionSize(headerHoverID), hw->height()); |
1188 | } | 1188 | } |
1189 | } | 1189 | } |
1190 | } | 1190 | } |
1191 | } | 1191 | } |
1192 | else if (obj-> inherits( "QProgressBar" )) { | 1192 | else if (obj-> inherits( "QProgressBar" )) { |
1193 | if ( ev->type() == QEvent::Paint ) { | 1193 | if ( ev->type() == QEvent::Paint ) { |
1194 | HackProgressBar *p = (HackProgressBar *) obj; | 1194 | HackProgressBar *p = (HackProgressBar *) obj; |
1195 | const QColorGroup &g = p-> colorGroup ( ); | 1195 | const QColorGroup &g = p-> colorGroup ( ); |
1196 | 1196 | ||
1197 | QPixmap *pix = bevelFillDict.find(g.button().dark(120).rgb()); | 1197 | QPixmap *pix = bevelFillDict.find(g.button().dark(120).rgb()); |
1198 | if(!pix){ | 1198 | if(!pix){ |
1199 | int h, s, v; | 1199 | int h, s, v; |
1200 | g.button().dark(120).hsv(&h, &s, &v); | 1200 | g.button().dark(120).hsv(&h, &s, &v); |
1201 | pix = new QPixmap(*bevelFillPix); | 1201 | pix = new QPixmap(*bevelFillPix); |
1202 | adjustHSV(*pix, h, s, v); | 1202 | adjustHSV(*pix, h, s, v); |
1203 | bevelFillDict.insert(g.button().dark(120).rgb(), pix); | 1203 | bevelFillDict.insert(g.button().dark(120).rgb(), pix); |
1204 | } | 1204 | } |
1205 | p-> paint ((QPaintEvent *) ev, g, pix ); | 1205 | p-> paint ((QPaintEvent *) ev, g, pix ); |
1206 | return true; | 1206 | return true; |
1207 | } | 1207 | } |
1208 | } | 1208 | } |
1209 | return false ; | 1209 | return false ; |
1210 | } | 1210 | } |
1211 | 1211 | ||
1212 | void LiquidStyle::drawButton(QPainter *p, int x, int y, int w, int h, | 1212 | void LiquidStyle::drawButton(QPainter *p, int x, int y, int w, int h, |
1213 | const QColorGroup &g, bool sunken, | 1213 | const QColorGroup &g, bool sunken, |
1214 | const QBrush *) | 1214 | const QBrush *) |
1215 | { | 1215 | { |
1216 | drawRoundButton(p, sunken ? g.background() : g.button(), g.background(), | 1216 | drawRoundButton(p, sunken ? g.background() : g.button(), g.background(), |
1217 | x, y, w, h); | 1217 | x, y, w, h); |
1218 | } | 1218 | } |
1219 | 1219 | ||
1220 | void LiquidStyle::drawToolButton(QPainter *p, int x, int y, int w, int h, | 1220 | void LiquidStyle::drawToolButton(QPainter *p, int x, int y, int w, int h, |
1221 | const QColorGroup &g, bool sunken, | 1221 | const QColorGroup &g, bool sunken, |
1222 | const QBrush *) | 1222 | const QBrush *) |
1223 | { | 1223 | { |
1224 | if(p->device()->devType() != QInternal::Widget){ | 1224 | if(p->device()->devType() != QInternal::Widget){ |
1225 | // drawing into a temp pixmap, don't use mask | 1225 | // drawing into a temp pixmap, don't use mask |
1226 | QColor c = sunken ? g.button() : g.background(); | 1226 | QColor c = sunken ? g.button() : g.background(); |
1227 | p->setPen(c.dark(130)); | 1227 | p->setPen(c.dark(130)); |
1228 | p->drawRect(x, y, w, h); | 1228 | p->drawRect(x, y, w, h); |
1229 | p->setPen(c.light(105)); | 1229 | p->setPen(c.light(105)); |
1230 | p->drawRect(x+1, y+1, w-2, h-2); | 1230 | p->drawRect(x+1, y+1, w-2, h-2); |
1231 | 1231 | ||
1232 | 1232 | ||
1233 | // fill | 1233 | // fill |
1234 | QPixmap *pix = bevelFillDict.find(c.rgb()); | 1234 | QPixmap *pix = bevelFillDict.find(c.rgb()); |
1235 | if(!pix){ | 1235 | if(!pix){ |
1236 | int h, s, v; | 1236 | int h, s, v; |
1237 | c.hsv(&h, &s, &v); | 1237 | c.hsv(&h, &s, &v); |
1238 | pix = new QPixmap(*bevelFillPix); | 1238 | pix = new QPixmap(*bevelFillPix); |
1239 | adjustHSV(*pix, h, s, v); | 1239 | adjustHSV(*pix, h, s, v); |
1240 | bevelFillDict.insert(c.rgb(), pix); | 1240 | bevelFillDict.insert(c.rgb(), pix); |
1241 | } | 1241 | } |
1242 | 1242 | ||
1243 | p->drawTiledPixmap(x+2, y+2, w-4, h-4, *pix); | 1243 | p->drawTiledPixmap(x+2, y+2, w-4, h-4, *pix); |
1244 | } | 1244 | } |
1245 | else{ | 1245 | else{ |
1246 | drawClearBevel(p, x, y, w, h, sunken ? g.button() : | 1246 | drawClearBevel(p, x, y, w, h, sunken ? g.button() : |
1247 | highlightWidget == p->device() ? g.button().light(110) : | 1247 | highlightWidget == p->device() ? g.button().light(110) : |
1248 | g.background(), g.background()); | 1248 | g.background(), g.background()); |
1249 | } | 1249 | } |
1250 | } | 1250 | } |
1251 | 1251 | ||
1252 | void LiquidStyle::drawPushButton(QPushButton *btn, QPainter *p) | 1252 | void LiquidStyle::drawPushButton(QPushButton *btn, QPainter *p) |
1253 | { | 1253 | { |
1254 | QRect r = btn->rect(); | 1254 | QRect r = btn->rect(); |
1255 | bool sunken = btn->isOn() || btn->isDown(); | 1255 | bool sunken = btn->isOn() || btn->isDown(); |
1256 | QColorGroup g = btn->colorGroup(); | 1256 | QColorGroup g = btn->colorGroup(); |
1257 | 1257 | ||
1258 | 1258 | ||
1259 | //int dw = buttonDefaultIndicatorWidth(); | 1259 | //int dw = buttonDefaultIndicatorWidth(); |
1260 | if(btn->hasFocus() || btn->isDefault()){ | 1260 | if(btn->hasFocus() || btn->isDefault()){ |
1261 | QColor c = btn->hasFocus() ? g.button().light(110) : g.background(); | 1261 | QColor c = btn->hasFocus() ? g.button().light(110) : g.background(); |
1262 | QPixmap *pix = bevelFillDict.find(c.rgb()); | 1262 | QPixmap *pix = bevelFillDict.find(c.rgb()); |
1263 | if(!pix){ | 1263 | if(!pix){ |
1264 | int h, s, v; | 1264 | int h, s, v; |
1265 | c.hsv(&h, &s, &v); | 1265 | c.hsv(&h, &s, &v); |
1266 | pix = new QPixmap(*bevelFillPix); | 1266 | pix = new QPixmap(*bevelFillPix); |
1267 | adjustHSV(*pix, h, s, v); | 1267 | adjustHSV(*pix, h, s, v); |
1268 | bevelFillDict.insert(c.rgb(), pix); | 1268 | bevelFillDict.insert(c.rgb(), pix); |
1269 | } | 1269 | } |
1270 | p->setPen(c.dark(150)); | 1270 | p->setPen(c.dark(150)); |
1271 | p->drawLine(r.x()+1, r.y(), r.right()-1, r.y()); | 1271 | p->drawLine(r.x()+1, r.y(), r.right()-1, r.y()); |
1272 | p->drawLine(r.x(), r.y()+1, r.x(), r.bottom()-1); | 1272 | p->drawLine(r.x(), r.y()+1, r.x(), r.bottom()-1); |
1273 | p->drawLine(r.right(), r.y()+1, r.right(), r.bottom()-1); | 1273 | p->drawLine(r.right(), r.y()+1, r.right(), r.bottom()-1); |
1274 | p->drawLine(r.x()+1, r.bottom(), r.right()-1, r.bottom()); | 1274 | p->drawLine(r.x()+1, r.bottom(), r.right()-1, r.bottom()); |
1275 | p->drawTiledPixmap(r.x()+1, r.y()+1, r.width()-2, r.height()-2, *pix); | 1275 | p->drawTiledPixmap(r.x()+1, r.y()+1, r.width()-2, r.height()-2, *pix); |
1276 | } | 1276 | } |
1277 | 1277 | ||
1278 | QColor newColor = btn == highlightWidget || sunken ? | 1278 | QColor newColor = btn == highlightWidget || sunken ? |
1279 | g.button().light(120) : g.button(); | 1279 | g.button().light(120) : g.button(); |
1280 | 1280 | ||
1281 | drawRoundButton(p, newColor, g.background(), | 1281 | drawRoundButton(p, newColor, g.background(), |
1282 | r.x(), r.y(), r.width(), r.height(), !btn->autoMask(), | 1282 | r.x(), r.y(), r.width(), r.height(), !btn->autoMask(), |
1283 | sunken, btn->isDefault() || btn->autoDefault() || btn->hasFocus(), | 1283 | sunken, btn->isDefault() || btn->autoDefault() || btn->hasFocus(), |
1284 | btn->autoMask()); | 1284 | btn->autoMask()); |
1285 | } | 1285 | } |
1286 | 1286 | ||
1287 | void LiquidStyle::drawPushButtonLabel(QPushButton *btn, QPainter *p) | 1287 | void LiquidStyle::drawPushButtonLabel(QPushButton *btn, QPainter *p) |
1288 | { | 1288 | { |
1289 | int x1, y1, x2, y2, w, h; | 1289 | int x1, y1, x2, y2, w, h; |
1290 | btn->rect().coords(&x1, &y1, &x2, &y2); | 1290 | btn->rect().coords(&x1, &y1, &x2, &y2); |
1291 | w = btn->width(); | 1291 | w = btn->width(); |
1292 | h = btn->height(); | 1292 | h = btn->height(); |
1293 | 1293 | ||
1294 | bool act = btn->isOn() || btn->isDown(); | 1294 | bool act = btn->isOn() || btn->isDown(); |
1295 | if(act){ | 1295 | if(act){ |
1296 | ++x1, ++y1; | 1296 | ++x1, ++y1; |
1297 | } | 1297 | } |
1298 | 1298 | ||
1299 | // Draw iconset first, if any | 1299 | // Draw iconset first, if any |
1300 | if ( btn->iconSet() && !btn->iconSet()->isNull() ) | 1300 | if ( btn->iconSet() && !btn->iconSet()->isNull() ) |
1301 | { | 1301 | { |
1302 | QIconSet::Mode mode = btn->isEnabled() | 1302 | QIconSet::Mode mode = btn->isEnabled() |
1303 | ? QIconSet::Normal : QIconSet::Disabled; | 1303 | ? QIconSet::Normal : QIconSet::Disabled; |
1304 | if ( mode == QIconSet::Normal && btn->hasFocus() ) | 1304 | if ( mode == QIconSet::Normal && btn->hasFocus() ) |
1305 | mode = QIconSet::Active; | 1305 | mode = QIconSet::Active; |
1306 | QPixmap pixmap = btn->iconSet()->pixmap( QIconSet::Small, mode ); | 1306 | QPixmap pixmap; |
1307 | if ( mode == QIconSet::Disabled ) | ||
1308 | pixmap = btn->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
1309 | else | ||
1310 | pixmap = btn->iconSet()->pixmap(); | ||
1307 | int pixw = pixmap.width(); | 1311 | int pixw = pixmap.width(); |
1308 | int pixh = pixmap.height(); | 1312 | int pixh = pixmap.height(); |
1309 | 1313 | ||
1310 | p->drawPixmap( x1+6, y1+h/2-pixh/2, pixmap ); | 1314 | p->drawPixmap( x1+6, y1+h/2-pixh/2, pixmap ); |
1311 | x1 += pixw + 8; | 1315 | x1 += pixw + 8; |
1312 | w -= pixw + 8; | 1316 | w -= pixw + 8; |
1313 | } | 1317 | } |
1314 | 1318 | ||
1315 | if(act){ | 1319 | if(act){ |
1316 | QFont font = btn->font(); | 1320 | QFont font = btn->font(); |
1317 | font.setBold(true); | 1321 | font.setBold(true); |
1318 | p->setFont(font); | 1322 | p->setFont(font); |
1319 | QColor shadow(btn->colorGroup().button().dark(130)); | 1323 | QColor shadow(btn->colorGroup().button().dark(130)); |
1320 | drawItem( p, x1+1, y1+1, w, h, | 1324 | drawItem( p, x1+1, y1+1, w, h, |
1321 | AlignCenter | ShowPrefix, btn->colorGroup(), btn->isEnabled(), | 1325 | AlignCenter | ShowPrefix, btn->colorGroup(), btn->isEnabled(), |
1322 | btn->pixmap(), btn->text(), -1, | 1326 | btn->pixmap(), btn->text(), -1, |
1323 | &shadow); | 1327 | &shadow); |
1324 | 1328 | ||
1325 | drawItem( p, x1, y1, w, h, | 1329 | drawItem( p, x1, y1, w, h, |
1326 | AlignCenter | ShowPrefix, btn->colorGroup(), btn->isEnabled(), | 1330 | AlignCenter | ShowPrefix, btn->colorGroup(), btn->isEnabled(), |
1327 | btn->pixmap(), btn->text(), -1, &btn->colorGroup().light()); | 1331 | btn->pixmap(), btn->text(), -1, &btn->colorGroup().light()); |
1328 | } | 1332 | } |
1329 | else{ | 1333 | else{ |
1330 | /* Too blurry | 1334 | /* Too blurry |
1331 | drawItem( p, x1+1, y1+1, w, h, | 1335 | drawItem( p, x1+1, y1+1, w, h, |
1332 | AlignCenter | ShowPrefix, btn->colorGroup(), btn->isEnabled(), | 1336 | AlignCenter | ShowPrefix, btn->colorGroup(), btn->isEnabled(), |
1333 | btn->pixmap(), btn->text(), -1, | 1337 | btn->pixmap(), btn->text(), -1, |
1334 | &btn->colorGroup().button().dark(115)); | 1338 | &btn->colorGroup().button().dark(115)); |
1335 | */ | 1339 | */ |
1336 | drawItem( p, x1, y1, w, h, | 1340 | drawItem( p, x1, y1, w, h, |
1337 | AlignCenter | ShowPrefix, | 1341 | AlignCenter | ShowPrefix, |
1338 | btn->colorGroup(), btn->isEnabled(), | 1342 | btn->colorGroup(), btn->isEnabled(), |
1339 | btn->pixmap(), btn->text(), -1, | 1343 | btn->pixmap(), btn->text(), -1, |
1340 | &btn->colorGroup().buttonText()); | 1344 | &btn->colorGroup().buttonText()); |
1341 | } | 1345 | } |
1342 | } | 1346 | } |
1343 | 1347 | ||
1344 | void LiquidStyle::drawButtonMask(QPainter *p, int x, int y, int w, int h) | 1348 | void LiquidStyle::drawButtonMask(QPainter *p, int x, int y, int w, int h) |
1345 | { | 1349 | { |
1346 | int x2 = x+w-1; | 1350 | int x2 = x+w-1; |
1347 | int y2 = y+h-1; | 1351 | int y2 = y+h-1; |
1348 | 1352 | ||
1349 | p->setPen(Qt::color1); | 1353 | p->setPen(Qt::color1); |
1350 | p->fillRect(x, y, w, h, Qt::color0); | 1354 | p->fillRect(x, y, w, h, Qt::color0); |
1351 | if(w < 21 || h < 21){ | 1355 | if(w < 21 || h < 21){ |
1352 | // outer rect | 1356 | // outer rect |
1353 | p->drawLine(x, y+2, x, y2-2); // l | 1357 | p->drawLine(x, y+2, x, y2-2); // l |
1354 | p->drawLine(x2, y+2, x2, y2-2); // r | 1358 | p->drawLine(x2, y+2, x2, y2-2); // r |
1355 | p->drawLine(x+2, y, x2-2, y); // t | 1359 | p->drawLine(x+2, y, x2-2, y); // t |
1356 | p->drawLine(x+2, y2, x2-2, y2); // b | 1360 | p->drawLine(x+2, y2, x2-2, y2); // b |
1357 | p->drawLine(x+1, y+1, x2-1, y+1); // top second line | 1361 | p->drawLine(x+1, y+1, x2-1, y+1); // top second line |
1358 | p->drawLine(x+1, y2-1, x2-1, y2-1); // bottom second line | 1362 | p->drawLine(x+1, y2-1, x2-1, y2-1); // bottom second line |
1359 | p->fillRect(x+1, y+2, w-2, h-4, Qt::color1); | 1363 | p->fillRect(x+1, y+2, w-2, h-4, Qt::color1); |
1360 | } | 1364 | } |
1361 | else{ | 1365 | else{ |
1362 | int x2 = x+w-1; | 1366 | int x2 = x+w-1; |
1363 | int y2 = y+h-1; | 1367 | int y2 = y+h-1; |
1364 | int bx2 = htmlBtnMaskBmp.width()-1; | 1368 | int bx2 = htmlBtnMaskBmp.width()-1; |
1365 | int by2 = htmlBtnMaskBmp.height()-1; | 1369 | int by2 = htmlBtnMaskBmp.height()-1; |
1366 | p->drawPixmap(0, 0, htmlBtnMaskBmp, 0, 0, 10, 10); // tl | 1370 | p->drawPixmap(0, 0, htmlBtnMaskBmp, 0, 0, 10, 10); // tl |
1367 | p->drawPixmap(x2-9, 0, htmlBtnMaskBmp, bx2-9, 0, 10, 10); // tr | 1371 | p->drawPixmap(x2-9, 0, htmlBtnMaskBmp, bx2-9, 0, 10, 10); // tr |
1368 | p->drawPixmap(0, y2-9, htmlBtnMaskBmp, 0, by2-9, 10, 10); // bl | 1372 | p->drawPixmap(0, y2-9, htmlBtnMaskBmp, 0, by2-9, 10, 10); // bl |
1369 | p->drawPixmap(x2-9, y2-9, htmlBtnMaskBmp, bx2-9, by2-9, 10, 10); // br | 1373 | p->drawPixmap(x2-9, y2-9, htmlBtnMaskBmp, bx2-9, by2-9, 10, 10); // br |
1370 | // fills | 1374 | // fills |
1371 | p->fillRect(10, 0, w-20, 10, Qt::color1); // top | 1375 | p->fillRect(10, 0, w-20, 10, Qt::color1); // top |
1372 | p->fillRect(10, y2-9, w-20, 10, Qt::color1); // bottom | 1376 | p->fillRect(10, y2-9, w-20, 10, Qt::color1); // bottom |
1373 | p->fillRect(0, 10, w, h-20, Qt::color1); // middle | 1377 | p->fillRect(0, 10, w, h-20, Qt::color1); // middle |
1374 | } | 1378 | } |
1375 | } | 1379 | } |
1376 | 1380 | ||
1377 | void LiquidStyle::drawBevelButton(QPainter *p, int x, int y, int w, int h, | 1381 | void LiquidStyle::drawBevelButton(QPainter *p, int x, int y, int w, int h, |
1378 | const QColorGroup &g, bool sunken, | 1382 | const QColorGroup &g, bool sunken, |
1379 | const QBrush */*fill*/) | 1383 | const QBrush */*fill*/) |
1380 | { | 1384 | { |
1381 | if(currentHeader && p->device() == currentHeader){ | 1385 | if(currentHeader && p->device() == currentHeader){ |
1382 | int id = currentHeader->sectionAt(x); | 1386 | int id = currentHeader->sectionAt(x); |
1383 | bool isHeaderHover = id != -1 && id == headerHoverID; | 1387 | bool isHeaderHover = id != -1 && id == headerHoverID; |
1384 | drawClearBevel(p, x, y, w, h, sunken ? | 1388 | drawClearBevel(p, x, y, w, h, sunken ? |
1385 | g.button() : isHeaderHover ? g.button().light(110) : | 1389 | g.button() : isHeaderHover ? g.button().light(110) : |
1386 | g.background(), g.background()); | 1390 | g.background(), g.background()); |
1387 | } | 1391 | } |
1388 | else | 1392 | else |
1389 | drawClearBevel(p, x, y, w, h, sunken ? g.button() : g.background(), | 1393 | drawClearBevel(p, x, y, w, h, sunken ? g.button() : g.background(), |
1390 | g.background()); | 1394 | g.background()); |
1391 | } | 1395 | } |
1392 | 1396 | ||
1393 | QRect LiquidStyle::buttonRect(int x, int y, int w, int h) | 1397 | QRect LiquidStyle::buttonRect(int x, int y, int w, int h) |
1394 | { | 1398 | { |
1395 | return(QRect(x+5, y+5, w-10, h-10)); | 1399 | return(QRect(x+5, y+5, w-10, h-10)); |
1396 | } | 1400 | } |
1397 | 1401 | ||
1398 | void LiquidStyle::drawComboButton(QPainter *painter, int x, int y, int w, int h, | 1402 | void LiquidStyle::drawComboButton(QPainter *painter, int x, int y, int w, int h, |
1399 | const QColorGroup &g, bool sunken, | 1403 | const QColorGroup &g, bool sunken, |
1400 | bool edit, bool, const QBrush *) | 1404 | bool edit, bool, const QBrush *) |
1401 | { | 1405 | { |
1402 | bool isActive = false; | 1406 | bool isActive = false; |
1403 | if (( painter->device()->devType() == QInternal::Widget ) && | 1407 | if (( painter->device()->devType() == QInternal::Widget ) && |
1404 | ( | 1408 | ( |
1405 | ( qApp-> focusWidget ( ) == painter-> device ( )) || | 1409 | ( qApp-> focusWidget ( ) == painter-> device ( )) || |
1406 | ( | 1410 | ( |
1407 | edit && | 1411 | edit && |
1408 | ((QWidget *) painter-> device ( ))-> inherits ( "QComboBox" ) && | 1412 | ((QWidget *) painter-> device ( ))-> inherits ( "QComboBox" ) && |
1409 | ( qApp-> focusWidget ( ) == ((QComboBox *) painter->device())->lineEdit ( ) || | 1413 | ( qApp-> focusWidget ( ) == ((QComboBox *) painter->device())->lineEdit ( ) || |
1410 | qApp-> focusWidget ( ) == ((QComboBox *) painter->device())->listBox ( )) | 1414 | qApp-> focusWidget ( ) == ((QComboBox *) painter->device())->listBox ( )) |
1411 | ) | 1415 | ) |
1412 | ) | 1416 | ) |
1413 | ) { | 1417 | ) { |
1414 | isActive = true; | 1418 | isActive = true; |
1415 | } | 1419 | } |
1416 | 1420 | ||
1417 | bool isMasked = false; | 1421 | bool isMasked = false; |
1418 | if(painter->device()->devType() == QInternal::Widget) | 1422 | if(painter->device()->devType() == QInternal::Widget) |
1419 | isMasked = ((QWidget*)painter->device())->autoMask(); | 1423 | isMasked = ((QWidget*)painter->device())->autoMask(); |
1420 | // TODO: Do custom code, don't just call drawRoundButton into a pixmap | 1424 | // TODO: Do custom code, don't just call drawRoundButton into a pixmap |
1421 | QPixmap tmpPix(w, h); | 1425 | QPixmap tmpPix(w, h); |
1422 | QPainter p(&tmpPix); | 1426 | QPainter p(&tmpPix); |
1423 | 1427 | ||
1424 | drawRoundButton(&p, g.button(), g.background(), 0, 0, w, h, false, | 1428 | drawRoundButton(&p, g.button(), g.background(), 0, 0, w, h, false, |
1425 | sunken, false, isMasked); | 1429 | sunken, false, isMasked); |
1426 | if(!isActive){ | 1430 | if(!isActive){ |
1427 | p.setClipRect(0, 0, w-17, h); | 1431 | p.setClipRect(0, 0, w-17, h); |
1428 | drawRoundButton(&p, g.background(), g.background(), 0, 0, w, h, false, | 1432 | drawRoundButton(&p, g.background(), g.background(), 0, 0, w, h, false, |
1429 | sunken, false, isMasked); | 1433 | sunken, false, isMasked); |
1430 | } | 1434 | } |
1431 | p.end(); | 1435 | p.end(); |
1432 | int x2 = x+w-1; | 1436 | int x2 = x+w-1; |
1433 | int y2 = y+h-1; | 1437 | int y2 = y+h-1; |
1434 | int bx2 = btnMaskBmp.width()-1; | 1438 | int bx2 = btnMaskBmp.width()-1; |
1435 | int by2 = btnMaskBmp.height()-1; | 1439 | int by2 = btnMaskBmp.height()-1; |
1436 | QBitmap btnMask(w, h); | 1440 | QBitmap btnMask(w, h); |
1437 | QBitmap *mask = isMasked ? &htmlBtnMaskBmp : &btnMaskBmp; | 1441 | QBitmap *mask = isMasked ? &htmlBtnMaskBmp : &btnMaskBmp; |
1438 | p.begin(&btnMask); | 1442 | p.begin(&btnMask); |
1439 | p.fillRect(0, 0, w, h, Qt::color0); | 1443 | p.fillRect(0, 0, w, h, Qt::color0); |
1440 | p.drawPixmap(0, 0, *mask, 0, 0, 10, 10); // tl | 1444 | p.drawPixmap(0, 0, *mask, 0, 0, 10, 10); // tl |
1441 | p.drawPixmap(x2-9, 0, *mask, bx2-9, 0, 10, 10); // tr | 1445 | p.drawPixmap(x2-9, 0, *mask, bx2-9, 0, 10, 10); // tr |
1442 | p.drawPixmap(0, y2-9, *mask, 0, by2-9, 10, 10); // bl | 1446 | p.drawPixmap(0, y2-9, *mask, 0, by2-9, 10, 10); // bl |
1443 | p.drawPixmap(x2-9, y2-9, *mask, bx2-9, by2-9, 10, 10); // br | 1447 | p.drawPixmap(x2-9, y2-9, *mask, bx2-9, by2-9, 10, 10); // br |
1444 | // fills | 1448 | // fills |
1445 | p.fillRect(10, 0, w-20, 10, Qt::color1); // top | 1449 | p.fillRect(10, 0, w-20, 10, Qt::color1); // top |
1446 | p.fillRect(10, y2-9, w-20, 10, Qt::color1); // bottom | 1450 | p.fillRect(10, y2-9, w-20, 10, Qt::color1); // bottom |
1447 | p.fillRect(0, 10, w, h-20, Qt::color1); // middle | 1451 | p.fillRect(0, 10, w, h-20, Qt::color1); // middle |
1448 | p.end(); | 1452 | p.end(); |
1449 | tmpPix.setMask(btnMask); | 1453 | tmpPix.setMask(btnMask); |
1450 | 1454 | ||
1451 | painter->drawPixmap(x, y, tmpPix); | 1455 | painter->drawPixmap(x, y, tmpPix); |
1452 | 1456 | ||
1453 | painter->setPen(g.button().dark(120)); | 1457 | painter->setPen(g.button().dark(120)); |
1454 | painter->drawLine(x2-16, y+1, x2-16, y2-1); | 1458 | painter->drawLine(x2-16, y+1, x2-16, y2-1); |
1455 | 1459 | ||
1456 | if(edit){ | 1460 | if(edit){ |
1457 | painter->setPen(g.mid()); | 1461 | painter->setPen(g.mid()); |
1458 | painter->drawRect(x+8, y+2, w-25, h-4); | 1462 | painter->drawRect(x+8, y+2, w-25, h-4); |
1459 | } | 1463 | } |
1460 | int arrow_h = h / 3; | 1464 | int arrow_h = h / 3; |
1461 | int arrow_w = arrow_h; | 1465 | int arrow_w = arrow_h; |
1462 | int arrow_x = w - arrow_w - 6; | 1466 | int arrow_x = w - arrow_w - 6; |
1463 | int arrow_y = (h - arrow_h) / 2; | 1467 | int arrow_y = (h - arrow_h) / 2; |
1464 | drawArrow(painter, DownArrow, false, arrow_x, arrow_y, arrow_w, arrow_h, g, true); | 1468 | drawArrow(painter, DownArrow, false, arrow_x, arrow_y, arrow_w, arrow_h, g, true); |
1465 | } | 1469 | } |
1466 | 1470 | ||
1467 | void LiquidStyle::drawComboButtonMask(QPainter *p, int x, int y, int w, int h) | 1471 | void LiquidStyle::drawComboButtonMask(QPainter *p, int x, int y, int w, int h) |
1468 | { | 1472 | { |
1469 | drawButtonMask(p, x, y, w, h); | 1473 | drawButtonMask(p, x, y, w, h); |
1470 | } | 1474 | } |
1471 | 1475 | ||
1472 | QRect LiquidStyle::comboButtonRect(int x, int y, int w, int h) | 1476 | QRect LiquidStyle::comboButtonRect(int x, int y, int w, int h) |
1473 | { | 1477 | { |
1474 | //return(QRect(x+3, y+3, w - (h / 3) - 13, h-6)); | 1478 | //return(QRect(x+3, y+3, w - (h / 3) - 13, h-6)); |
1475 | return(QRect(x+9, y+3, w - (h / 3) - 20, h-6)); | 1479 | return(QRect(x+9, y+3, w - (h / 3) - 20, h-6)); |
1476 | } | 1480 | } |
1477 | 1481 | ||
1478 | QRect LiquidStyle::comboButtonFocusRect(int /*x*/, int /*y*/, int /*w*/, int /*h*/) | 1482 | QRect LiquidStyle::comboButtonFocusRect(int /*x*/, int /*y*/, int /*w*/, int /*h*/) |
1479 | { | 1483 | { |
1480 | return QRect ( ); | 1484 | return QRect ( ); |
1481 | 1485 | ||
1482 | // return(QRect(x+5, y+3, w-(h/3)-13, h-5)); | 1486 | // return(QRect(x+5, y+3, w-(h/3)-13, h-5)); |
1483 | } | 1487 | } |
1484 | 1488 | ||
1485 | void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, | 1489 | void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, |
1486 | int sliderStart, uint controls, | 1490 | int sliderStart, uint controls, |
1487 | uint activeControl) | 1491 | uint activeControl) |
1488 | { | 1492 | { |
1489 | int sliderMin, sliderMax, sliderLength, buttonDim; | 1493 | int sliderMin, sliderMax, sliderLength, buttonDim; |
1490 | scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim ); | 1494 | scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim ); |
1491 | 1495 | ||
1492 | if (sliderStart > sliderMax) | 1496 | if (sliderStart > sliderMax) |
1493 | sliderStart = sliderMax; | 1497 | sliderStart = sliderMax; |
1494 | 1498 | ||
1495 | bool horiz = sb->orientation() == QScrollBar::Horizontal; | 1499 | bool horiz = sb->orientation() == QScrollBar::Horizontal; |
1496 | QColorGroup g = sb->colorGroup(); | 1500 | QColorGroup g = sb->colorGroup(); |
1497 | QRect addB, subHC, subB; | 1501 | QRect addB, subHC, subB; |
1498 | QRect addPageR, subPageR, sliderR; | 1502 | QRect addPageR, subPageR, sliderR; |
1499 | int addX, addY, subX, subY; | 1503 | int addX, addY, subX, subY; |
1500 | int len = horiz ? sb->width() : sb->height(); | 1504 | int len = horiz ? sb->width() : sb->height(); |
1501 | int extent = horiz ? sb->height() : sb->width(); | 1505 | int extent = horiz ? sb->height() : sb->width(); |
1502 | 1506 | ||
1503 | // a few apps (ie: KSpread), are broken and use a hardcoded scrollbar | 1507 | // a few apps (ie: KSpread), are broken and use a hardcoded scrollbar |
1504 | // extent of 16. Luckily, most apps (ie: Kate), seem fixed by now. | 1508 | // extent of 16. Luckily, most apps (ie: Kate), seem fixed by now. |
1505 | bool brokenApp; | 1509 | bool brokenApp; |
1506 | if(extent == 16) | 1510 | if(extent == 16) |
1507 | brokenApp = true; | 1511 | brokenApp = true; |
1508 | else | 1512 | else |
1509 | brokenApp = false; | 1513 | brokenApp = false; |
1510 | 1514 | ||
1511 | if (horiz) { | 1515 | if (horiz) { |
1512 | subY = addY = ( extent - buttonDim ) / 2; | 1516 | subY = addY = ( extent - buttonDim ) / 2; |
1513 | subX = 0; | 1517 | subX = 0; |
1514 | addX = len - buttonDim; | 1518 | addX = len - buttonDim; |
1515 | if(sbBuffer.size() != sb->size()) | 1519 | if(sbBuffer.size() != sb->size()) |
1516 | sbBuffer.resize(sb->size()); | 1520 | sbBuffer.resize(sb->size()); |
1517 | } | 1521 | } |
1518 | else { | 1522 | else { |
1519 | subX = addX = ( extent - buttonDim ) / 2; | 1523 | subX = addX = ( extent - buttonDim ) / 2; |
1520 | subY = 0; | 1524 | subY = 0; |
1521 | addY = len - buttonDim; | 1525 | addY = len - buttonDim; |
1522 | if(sbBuffer.size() != sb->size()) | 1526 | if(sbBuffer.size() != sb->size()) |
1523 | sbBuffer.resize(sb->size()); | 1527 | sbBuffer.resize(sb->size()); |
1524 | } | 1528 | } |
1525 | subB.setRect( subX,subY,0,0); // buttonDim,buttonDim ); | 1529 | subB.setRect( subX,subY,0,0); // buttonDim,buttonDim ); |
1526 | addB.setRect( addX,addY,buttonDim,buttonDim ); | 1530 | addB.setRect( addX,addY,buttonDim,buttonDim ); |
1527 | if(horiz) | 1531 | if(horiz) |
1528 | subHC.setRect(addX-buttonDim,addY,buttonDim,buttonDim ); | 1532 | subHC.setRect(addX-buttonDim,addY,buttonDim,buttonDim ); |
1529 | else | 1533 | else |
1530 | subHC.setRect(addX,addY-buttonDim,buttonDim,buttonDim ); | 1534 | subHC.setRect(addX,addY-buttonDim,buttonDim,buttonDim ); |
1531 | 1535 | ||
1532 | int sliderEnd = sliderStart + sliderLength; | 1536 | int sliderEnd = sliderStart + sliderLength; |
1533 | int sliderW = extent; | 1537 | int sliderW = extent; |
1534 | 1538 | ||
1535 | if (horiz) { | 1539 | if (horiz) { |
1536 | subPageR.setRect( subB.right() + 1, 0, | 1540 | subPageR.setRect( subB.right() + 1, 0, |
1537 | sliderStart - subB.right() - 1 , sliderW ); | 1541 | sliderStart - subB.right() - 1 , sliderW ); |
1538 | addPageR.setRect( sliderEnd, 0, addX - sliderEnd - buttonDim, sliderW ); | 1542 | addPageR.setRect( sliderEnd, 0, addX - sliderEnd - buttonDim, sliderW ); |
1539 | sliderR .setRect( sliderStart, 0, sliderLength, sliderW ); | 1543 | sliderR .setRect( sliderStart, 0, sliderLength, sliderW ); |
1540 | } | 1544 | } |
1541 | else { | 1545 | else { |
1542 | subPageR.setRect( 0, subB.bottom() + 1, sliderW, | 1546 | subPageR.setRect( 0, subB.bottom() + 1, sliderW, |
1543 | sliderStart - subB.bottom() - 1 ); | 1547 | sliderStart - subB.bottom() - 1 ); |
1544 | addPageR.setRect( 0, sliderEnd, sliderW, addY - buttonDim - sliderEnd); | 1548 | addPageR.setRect( 0, sliderEnd, sliderW, addY - buttonDim - sliderEnd); |
1545 | sliderR .setRect( 0, sliderStart, sliderW, sliderLength ); | 1549 | sliderR .setRect( 0, sliderStart, sliderW, sliderLength ); |
@@ -1572,144 +1576,144 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, | |||
1572 | painter.drawPoint(bgR.x()+1, bgR.bottom()-1); | 1576 | painter.drawPoint(bgR.x()+1, bgR.bottom()-1); |
1573 | painter.drawPoint(bgR.x()+13, bgR.bottom()-1); | 1577 | painter.drawPoint(bgR.x()+13, bgR.bottom()-1); |
1574 | } | 1578 | } |
1575 | if(controls & Slider){ | 1579 | if(controls & Slider){ |
1576 | if(sliderR.height() >= 16){ | 1580 | if(sliderR.height() >= 16){ |
1577 | painter.drawPixmap(sliderR.x()+1, sliderR.y(), *getPixmap(VSBSliderTop)); | 1581 | painter.drawPixmap(sliderR.x()+1, sliderR.y(), *getPixmap(VSBSliderTop)); |
1578 | painter.drawTiledPixmap(sliderR.x()+1, sliderR.y()+8, 13, | 1582 | painter.drawTiledPixmap(sliderR.x()+1, sliderR.y()+8, 13, |
1579 | sliderR.height()-16, *getPixmap(VSBSliderMid)); | 1583 | sliderR.height()-16, *getPixmap(VSBSliderMid)); |
1580 | painter.drawPixmap(sliderR.x()+1, sliderR.bottom()-8, *getPixmap(VSBSliderBtm)); | 1584 | painter.drawPixmap(sliderR.x()+1, sliderR.bottom()-8, *getPixmap(VSBSliderBtm)); |
1581 | } | 1585 | } |
1582 | else if(sliderR.height() >= 8){ | 1586 | else if(sliderR.height() >= 8){ |
1583 | int m = sliderR.height()/2; | 1587 | int m = sliderR.height()/2; |
1584 | painter.drawPixmap(sliderR.x()+1, sliderR.y(), *getPixmap(VSBSliderTop), 0, 0, 13, m); | 1588 | painter.drawPixmap(sliderR.x()+1, sliderR.y(), *getPixmap(VSBSliderTop), 0, 0, 13, m); |
1585 | painter.drawPixmap(sliderR.x()+1, sliderR.y()+m, *getPixmap(VSBSliderBtm), 0, 8-m, 13, m); | 1589 | painter.drawPixmap(sliderR.x()+1, sliderR.y()+m, *getPixmap(VSBSliderBtm), 0, 8-m, 13, m); |
1586 | } | 1590 | } |
1587 | else{ | 1591 | else{ |
1588 | painter.setPen(g.button().dark(210)); | 1592 | painter.setPen(g.button().dark(210)); |
1589 | drawRoundRect(&painter, sliderR.x()+1, sliderR.y(), | 1593 | drawRoundRect(&painter, sliderR.x()+1, sliderR.y(), |
1590 | 13, sliderR.height()); | 1594 | 13, sliderR.height()); |
1591 | painter.drawTiledPixmap(sliderR.x()+2, sliderR.y()+1, | 1595 | painter.drawTiledPixmap(sliderR.x()+2, sliderR.y()+1, |
1592 | 11, sliderR.height()-2, | 1596 | 11, sliderR.height()-2, |
1593 | *getPixmap(VSBSliderMid), 1, 0); | 1597 | *getPixmap(VSBSliderMid), 1, 0); |
1594 | } | 1598 | } |
1595 | } | 1599 | } |
1596 | painter.setPen(g.mid()); | 1600 | painter.setPen(g.mid()); |
1597 | painter.drawLine(bgR.x(), bgR.y(), bgR.x(), bgR.bottom()); | 1601 | painter.drawLine(bgR.x(), bgR.y(), bgR.x(), bgR.bottom()); |
1598 | painter.drawLine(bgR.right(), bgR.y(), bgR.right(), bgR.bottom()); | 1602 | painter.drawLine(bgR.right(), bgR.y(), bgR.right(), bgR.bottom()); |
1599 | if(brokenApp && (controls & Slider)){ | 1603 | if(brokenApp && (controls & Slider)){ |
1600 | painter.setPen(g.background()); | 1604 | painter.setPen(g.background()); |
1601 | painter.drawLine(bgR.right()-1, bgR.y(), bgR.right()-1, | 1605 | painter.drawLine(bgR.right()-1, bgR.y(), bgR.right()-1, |
1602 | bgR.bottom()); | 1606 | bgR.bottom()); |
1603 | } | 1607 | } |
1604 | painter.end(); | 1608 | painter.end(); |
1605 | } | 1609 | } |
1606 | else{ | 1610 | else{ |
1607 | painter.begin(&sbBuffer); | 1611 | painter.begin(&sbBuffer); |
1608 | QRect bgR(subB.right()+1, 0, (len-(buttonDim*2))+1, sb->height()); | 1612 | QRect bgR(subB.right()+1, 0, (len-(buttonDim*2))+1, sb->height()); |
1609 | if(sliderR.width() >= 8){ | 1613 | if(sliderR.width() >= 8){ |
1610 | painter.drawPixmap(bgR.x(), bgR.y()+1, *vsbSliderFillPix, 0, 0, | 1614 | painter.drawPixmap(bgR.x(), bgR.y()+1, *vsbSliderFillPix, 0, 0, |
1611 | 8, 13); | 1615 | 8, 13); |
1612 | painter.drawPixmap(bgR.x(), bgR.y()+1, *getPixmap(HSBSliderTopBg)); | 1616 | painter.drawPixmap(bgR.x(), bgR.y()+1, *getPixmap(HSBSliderTopBg)); |
1613 | painter.drawTiledPixmap(bgR.x()+8, bgR.y()+1, bgR.width()-16, | 1617 | painter.drawTiledPixmap(bgR.x()+8, bgR.y()+1, bgR.width()-16, |
1614 | 13, *getPixmap(HSBSliderMidBg)); | 1618 | 13, *getPixmap(HSBSliderMidBg)); |
1615 | painter.drawPixmap(bgR.right()-8, bgR.y()+1, *vsbSliderFillPix, | 1619 | painter.drawPixmap(bgR.right()-8, bgR.y()+1, *vsbSliderFillPix, |
1616 | 0, 0, 8, 13); | 1620 | 0, 0, 8, 13); |
1617 | painter.drawPixmap(bgR.right()-8, bgR.y()+1, *getPixmap(HSBSliderBtmBg)); | 1621 | painter.drawPixmap(bgR.right()-8, bgR.y()+1, *getPixmap(HSBSliderBtmBg)); |
1618 | } | 1622 | } |
1619 | else{ | 1623 | else{ |
1620 | painter.drawTiledPixmap(bgR.x(), bgR.y()+1, bgR.width(), 13, | 1624 | painter.drawTiledPixmap(bgR.x(), bgR.y()+1, bgR.width(), 13, |
1621 | *getPixmap(HSBSliderMidBg)); | 1625 | *getPixmap(HSBSliderMidBg)); |
1622 | painter.setPen(g.background().dark(210)); | 1626 | painter.setPen(g.background().dark(210)); |
1623 | painter.drawRect(bgR.x(), bgR.y()+1, bgR.width()-1, 13); | 1627 | painter.drawRect(bgR.x(), bgR.y()+1, bgR.width()-1, 13); |
1624 | painter.setPen(g.mid()); | 1628 | painter.setPen(g.mid()); |
1625 | painter.drawPoint(bgR.x(), bgR.y()+1); | 1629 | painter.drawPoint(bgR.x(), bgR.y()+1); |
1626 | painter.drawPoint(bgR.x(), bgR.bottom()-1); | 1630 | painter.drawPoint(bgR.x(), bgR.bottom()-1); |
1627 | painter.drawPoint(bgR.right()-1, bgR.y()+1); | 1631 | painter.drawPoint(bgR.right()-1, bgR.y()+1); |
1628 | painter.drawPoint(bgR.right()-1, bgR.bottom()-1); | 1632 | painter.drawPoint(bgR.right()-1, bgR.bottom()-1); |
1629 | } | 1633 | } |
1630 | if(controls & Slider){ | 1634 | if(controls & Slider){ |
1631 | if(sliderR.width() >= 16){ | 1635 | if(sliderR.width() >= 16){ |
1632 | painter.drawPixmap(sliderR.x(), sliderR.y()+1, | 1636 | painter.drawPixmap(sliderR.x(), sliderR.y()+1, |
1633 | *getPixmap(HSBSliderTop)); | 1637 | *getPixmap(HSBSliderTop)); |
1634 | painter.drawTiledPixmap(sliderR.x()+8, sliderR.y()+1, sliderR.width()-16, | 1638 | painter.drawTiledPixmap(sliderR.x()+8, sliderR.y()+1, sliderR.width()-16, |
1635 | 13, *getPixmap(HSBSliderMid)); | 1639 | 13, *getPixmap(HSBSliderMid)); |
1636 | painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, | 1640 | painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, |
1637 | *getPixmap(HSBSliderBtm)); | 1641 | *getPixmap(HSBSliderBtm)); |
1638 | } | 1642 | } |
1639 | else if(sliderR.width() >= 8){ | 1643 | else if(sliderR.width() >= 8){ |
1640 | int m = sliderR.width()/2; | 1644 | int m = sliderR.width()/2; |
1641 | painter.drawPixmap(sliderR.x(), sliderR.y()+1, | 1645 | painter.drawPixmap(sliderR.x(), sliderR.y()+1, |
1642 | *getPixmap(HSBSliderTop), 0, 0, m, 13); | 1646 | *getPixmap(HSBSliderTop), 0, 0, m, 13); |
1643 | painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, | 1647 | painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, |
1644 | *getPixmap(HSBSliderBtm), 8-m, 0, m, 13); | 1648 | *getPixmap(HSBSliderBtm), 8-m, 0, m, 13); |
1645 | } | 1649 | } |
1646 | else{ | 1650 | else{ |
1647 | painter.setPen(g.button().dark(210)); | 1651 | painter.setPen(g.button().dark(210)); |
1648 | drawRoundRect(&painter, sliderR.x(), sliderR.y()+1, | 1652 | drawRoundRect(&painter, sliderR.x(), sliderR.y()+1, |
1649 | sliderR.width(), 13); | 1653 | sliderR.width(), 13); |
1650 | painter.drawTiledPixmap(sliderR.x()+1, sliderR.y()+2, | 1654 | painter.drawTiledPixmap(sliderR.x()+1, sliderR.y()+2, |
1651 | sliderR.width()-2, 11, | 1655 | sliderR.width()-2, 11, |
1652 | *getPixmap(HSBSliderMid), 0, 1); | 1656 | *getPixmap(HSBSliderMid), 0, 1); |
1653 | } | 1657 | } |
1654 | } | 1658 | } |
1655 | painter.setPen(g.mid()); | 1659 | painter.setPen(g.mid()); |
1656 | painter.drawLine(bgR.x(), bgR.y(), bgR.right(), bgR.y()); | 1660 | painter.drawLine(bgR.x(), bgR.y(), bgR.right(), bgR.y()); |
1657 | painter.drawLine(bgR.x(), bgR.bottom(), bgR.right(), bgR.bottom()); | 1661 | painter.drawLine(bgR.x(), bgR.bottom(), bgR.right(), bgR.bottom()); |
1658 | if(brokenApp && (controls & Slider)){ | 1662 | if(brokenApp && (controls & Slider)){ |
1659 | painter.setPen(g.background()); | 1663 | painter.setPen(g.background()); |
1660 | painter.drawLine(bgR.x(), bgR.bottom()-1, bgR.right(), | 1664 | painter.drawLine(bgR.x(), bgR.bottom()-1, bgR.right(), |
1661 | bgR.bottom()-1); | 1665 | bgR.bottom()-1); |
1662 | } | 1666 | } |
1663 | painter.end(); | 1667 | painter.end(); |
1664 | } | 1668 | } |
1665 | 1669 | ||
1666 | if ( controls & AddLine ) { | 1670 | if ( controls & AddLine ) { |
1667 | drawSBButton(p, addB, g, activeControl == AddLine); | 1671 | drawSBButton(p, addB, g, activeControl == AddLine); |
1668 | drawArrow( p, horiz ? RightArrow : DownArrow, | 1672 | drawArrow( p, horiz ? RightArrow : DownArrow, |
1669 | false, addB.x()+4, addB.y()+4, | 1673 | false, addB.x()+4, addB.y()+4, |
1670 | addB.width()-8, addB.height()-8, g, !maxed); | 1674 | addB.width()-8, addB.height()-8, g, !maxed); |
1671 | } | 1675 | } |
1672 | if ( controls & SubLine ) { | 1676 | if ( controls & SubLine ) { |
1673 | // drawSBButton(p, subB, g, activeControl == SubLine); | 1677 | // drawSBButton(p, subB, g, activeControl == SubLine); |
1674 | // drawArrow( p, horiz ? LeftArrow : UpArrow, | 1678 | // drawArrow( p, horiz ? LeftArrow : UpArrow, |
1675 | // false, subB.x()+4, subB.y()+4, | 1679 | // false, subB.x()+4, subB.y()+4, |
1676 | // subB.width()-8, subB.height()-8, g, !maxed); | 1680 | // subB.width()-8, subB.height()-8, g, !maxed); |
1677 | drawSBButton(p, subHC, g, activeControl == SubLine); | 1681 | drawSBButton(p, subHC, g, activeControl == SubLine); |
1678 | drawArrow( p, horiz ? LeftArrow : UpArrow, | 1682 | drawArrow( p, horiz ? LeftArrow : UpArrow, |
1679 | false, subHC.x()+4, subHC.y()+4, | 1683 | false, subHC.x()+4, subHC.y()+4, |
1680 | subHC.width()-8, subHC.height()-8, g, !maxed); | 1684 | subHC.width()-8, subHC.height()-8, g, !maxed); |
1681 | } | 1685 | } |
1682 | 1686 | ||
1683 | if(controls & AddPage){ | 1687 | if(controls & AddPage){ |
1684 | if(addPageR.width()){ | 1688 | if(addPageR.width()){ |
1685 | p->drawPixmap(addPageR.x(), addPageR.y(), sbBuffer, | 1689 | p->drawPixmap(addPageR.x(), addPageR.y(), sbBuffer, |
1686 | addPageR.x(), addPageR.y(), addPageR.width(), | 1690 | addPageR.x(), addPageR.y(), addPageR.width(), |
1687 | addPageR.height()); | 1691 | addPageR.height()); |
1688 | } | 1692 | } |
1689 | } | 1693 | } |
1690 | if(controls & SubPage){ | 1694 | if(controls & SubPage){ |
1691 | if(subPageR.height()){ | 1695 | if(subPageR.height()){ |
1692 | p->drawPixmap(subPageR.x(), subPageR.y(), sbBuffer, | 1696 | p->drawPixmap(subPageR.x(), subPageR.y(), sbBuffer, |
1693 | subPageR.x(), subPageR.y(), subPageR.width(), | 1697 | subPageR.x(), subPageR.y(), subPageR.width(), |
1694 | subPageR.height()); | 1698 | subPageR.height()); |
1695 | } | 1699 | } |
1696 | } | 1700 | } |
1697 | if ( controls & Slider ) { | 1701 | if ( controls & Slider ) { |
1698 | p->drawPixmap(sliderR.x(), sliderR.y(), sbBuffer, | 1702 | p->drawPixmap(sliderR.x(), sliderR.y(), sbBuffer, |
1699 | sliderR.x(), sliderR.y(), sliderR.width(), | 1703 | sliderR.x(), sliderR.y(), sliderR.width(), |
1700 | sliderR.height()); | 1704 | sliderR.height()); |
1701 | } | 1705 | } |
1702 | } | 1706 | } |
1703 | 1707 | ||
1704 | void LiquidStyle::drawSBButton(QPainter *p, const QRect &r, const QColorGroup &g, | 1708 | void LiquidStyle::drawSBButton(QPainter *p, const QRect &r, const QColorGroup &g, |
1705 | bool down, bool /*fast*/) | 1709 | bool down, bool /*fast*/) |
1706 | { | 1710 | { |
1707 | p->setPen(g.mid()); | 1711 | p->setPen(g.mid()); |
1708 | p->drawRect(r); | 1712 | p->drawRect(r); |
1709 | QColor c(down ? g.button() : g.background()); | 1713 | QColor c(down ? g.button() : g.background()); |
1710 | QPixmap *pix = bevelFillDict.find(c.rgb()); | 1714 | QPixmap *pix = bevelFillDict.find(c.rgb()); |
1711 | if(!pix){ | 1715 | if(!pix){ |
1712 | int h, s, v; | 1716 | int h, s, v; |
1713 | c.hsv(&h, &s, &v); | 1717 | c.hsv(&h, &s, &v); |
1714 | pix = new QPixmap(*bevelFillPix); | 1718 | pix = new QPixmap(*bevelFillPix); |
1715 | adjustHSV(*pix, h, s, v); | 1719 | adjustHSV(*pix, h, s, v); |
@@ -1915,152 +1919,152 @@ void LiquidStyle::drawIndicatorMask(QPainter *p, int x, int y, int /*w*/, int /* | |||
1915 | 1919 | ||
1916 | void LiquidStyle::drawSlider(QPainter *p, int x, int y, int w, int h, | 1920 | void LiquidStyle::drawSlider(QPainter *p, int x, int y, int w, int h, |
1917 | const QColorGroup &/*g*/, Orientation orient, | 1921 | const QColorGroup &/*g*/, Orientation orient, |
1918 | bool, bool) | 1922 | bool, bool) |
1919 | { | 1923 | { |
1920 | QWidget *parent = (QWidget *)p->device(); | 1924 | QWidget *parent = (QWidget *)p->device(); |
1921 | p->setBrushOrigin(parent->pos()); | 1925 | p->setBrushOrigin(parent->pos()); |
1922 | parent->erase(x, y, w, h); | 1926 | parent->erase(x, y, w, h); |
1923 | p->drawPixmap(x, y, orient == Qt::Horizontal ? *getPixmap(HSlider) : | 1927 | p->drawPixmap(x, y, orient == Qt::Horizontal ? *getPixmap(HSlider) : |
1924 | *getPixmap(VSlider)); | 1928 | *getPixmap(VSlider)); |
1925 | } | 1929 | } |
1926 | 1930 | ||
1927 | void LiquidStyle::drawSliderMask(QPainter *p, int x, int y, int /*w*/, int /*h*/, | 1931 | void LiquidStyle::drawSliderMask(QPainter *p, int x, int y, int /*w*/, int /*h*/, |
1928 | Orientation orient, bool, bool) | 1932 | Orientation orient, bool, bool) |
1929 | { | 1933 | { |
1930 | p->drawPixmap(x, y, orient == Qt::Horizontal ? *getPixmap(HSlider)->mask() : | 1934 | p->drawPixmap(x, y, orient == Qt::Horizontal ? *getPixmap(HSlider)->mask() : |
1931 | *getPixmap(VSlider)->mask()); | 1935 | *getPixmap(VSlider)->mask()); |
1932 | } | 1936 | } |
1933 | 1937 | ||
1934 | int LiquidStyle::sliderLength() const | 1938 | int LiquidStyle::sliderLength() const |
1935 | { | 1939 | { |
1936 | return(10); | 1940 | return(10); |
1937 | } | 1941 | } |
1938 | 1942 | ||
1939 | #define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) | 1943 | #define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) |
1940 | 1944 | ||
1941 | void LiquidStyle::drawArrow(QPainter *p, Qt::ArrowType type, bool on, int x, | 1945 | void LiquidStyle::drawArrow(QPainter *p, Qt::ArrowType type, bool on, int x, |
1942 | int y, int w, int h, const QColorGroup &g, | 1946 | int y, int w, int h, const QColorGroup &g, |
1943 | bool enabled, const QBrush *) | 1947 | bool enabled, const QBrush *) |
1944 | { | 1948 | { |
1945 | static const QCOORD u_arrow[]={3,1, 4,1, 2,2, 5,2, 1,3, 6,3, 0,4, 7,4, 0,5, 7,5}; | 1949 | static const QCOORD u_arrow[]={3,1, 4,1, 2,2, 5,2, 1,3, 6,3, 0,4, 7,4, 0,5, 7,5}; |
1946 | static const QCOORD d_arrow[]={0,2, 7,2, 0,3, 7,3, 1,4, 6,4, 2,5, 5,5, 3,6, 4,6}; | 1950 | static const QCOORD d_arrow[]={0,2, 7,2, 0,3, 7,3, 1,4, 6,4, 2,5, 5,5, 3,6, 4,6}; |
1947 | static const QCOORD l_arrow[]={1,3, 1,4, 2,2, 2,5, 3,1, 3,6, 4,0, 4,7, 5,0, 5,7}; | 1951 | static const QCOORD l_arrow[]={1,3, 1,4, 2,2, 2,5, 3,1, 3,6, 4,0, 4,7, 5,0, 5,7}; |
1948 | static const QCOORD r_arrow[]={2,0, 2,7, 3,0, 3,7, 4,1, 4,6, 5,2, 5,5, 6,3, 6,4}; | 1952 | static const QCOORD r_arrow[]={2,0, 2,7, 3,0, 3,7, 4,1, 4,6, 5,2, 5,5, 6,3, 6,4}; |
1949 | 1953 | ||
1950 | p->setPen(enabled ? on ? g.light() : g.buttonText() : g.mid()); | 1954 | p->setPen(enabled ? on ? g.light() : g.buttonText() : g.mid()); |
1951 | if(w > 8){ | 1955 | if(w > 8){ |
1952 | x = x + (w-8)/2; | 1956 | x = x + (w-8)/2; |
1953 | y = y + (h-8)/2; | 1957 | y = y + (h-8)/2; |
1954 | } | 1958 | } |
1955 | 1959 | ||
1956 | QPointArray a; | 1960 | QPointArray a; |
1957 | switch(type){ | 1961 | switch(type){ |
1958 | case Qt::UpArrow: | 1962 | case Qt::UpArrow: |
1959 | a.setPoints(QCOORDARRLEN(u_arrow), u_arrow); | 1963 | a.setPoints(QCOORDARRLEN(u_arrow), u_arrow); |
1960 | break; | 1964 | break; |
1961 | case Qt::DownArrow: | 1965 | case Qt::DownArrow: |
1962 | a.setPoints(QCOORDARRLEN(d_arrow), d_arrow); | 1966 | a.setPoints(QCOORDARRLEN(d_arrow), d_arrow); |
1963 | break; | 1967 | break; |
1964 | case Qt::LeftArrow: | 1968 | case Qt::LeftArrow: |
1965 | a.setPoints(QCOORDARRLEN(l_arrow), l_arrow); | 1969 | a.setPoints(QCOORDARRLEN(l_arrow), l_arrow); |
1966 | break; | 1970 | break; |
1967 | default: | 1971 | default: |
1968 | a.setPoints(QCOORDARRLEN(r_arrow), r_arrow); | 1972 | a.setPoints(QCOORDARRLEN(r_arrow), r_arrow); |
1969 | break; | 1973 | break; |
1970 | } | 1974 | } |
1971 | 1975 | ||
1972 | a.translate(x, y); | 1976 | a.translate(x, y); |
1973 | p->drawLineSegments(a); | 1977 | p->drawLineSegments(a); |
1974 | } | 1978 | } |
1975 | 1979 | ||
1976 | 1980 | ||
1977 | void LiquidStyle::drawMenuBarItem(QPainter *p, int x, int y, int w, int h, | 1981 | void LiquidStyle::drawMenuBarItem(QPainter *p, int x, int y, int w, int h, |
1978 | QMenuItem *mi, QColorGroup &g, bool /*enabled*/, bool active ) | 1982 | QMenuItem *mi, QColorGroup &g, bool /*enabled*/, bool active ) |
1979 | { | 1983 | { |
1980 | if(active){ | 1984 | if(active){ |
1981 | x -= 2; // Bug in Qt/E | 1985 | x -= 2; // Bug in Qt/E |
1982 | y -= 2; | 1986 | y -= 2; |
1983 | w += 2; | 1987 | w += 2; |
1984 | h += 2; | 1988 | h += 2; |
1985 | } | 1989 | } |
1986 | 1990 | ||
1987 | QWidget *parent = (QWidget *)p->device(); | 1991 | QWidget *parent = (QWidget *)p->device(); |
1988 | p->setBrushOrigin(parent->pos()); | 1992 | p->setBrushOrigin(parent->pos()); |
1989 | parent->erase(x, y, w, h); | 1993 | parent->erase(x, y, w, h); |
1990 | 1994 | ||
1991 | if(menuHandler->useShadowText()){ | 1995 | if(menuHandler->useShadowText()){ |
1992 | QColor shadow; | 1996 | QColor shadow; |
1993 | if(p->device() && p->device()->devType() == QInternal::Widget && | 1997 | if(p->device() && p->device()->devType() == QInternal::Widget && |
1994 | ((QWidget *)p->device())->inherits("QMenuBar")){ | 1998 | ((QWidget *)p->device())->inherits("QMenuBar")){ |
1995 | shadow = ((QMenuBar*)p->device())->isTopLevel() ? g.button().dark(130) : | 1999 | shadow = ((QMenuBar*)p->device())->isTopLevel() ? g.button().dark(130) : |
1996 | g.background().dark(130); | 2000 | g.background().dark(130); |
1997 | } | 2001 | } |
1998 | else | 2002 | else |
1999 | shadow = g.background().dark(130); | 2003 | shadow = g.background().dark(130); |
2000 | 2004 | ||
2001 | QPixmap *dummy = 0; | 2005 | QPixmap *dummy = 0; |
2002 | 2006 | ||
2003 | if ( mi-> pixmap ( ) && !mi-> pixmap ( )-> isNull ( )) { | 2007 | if ( mi-> pixmap ( ) && !mi-> pixmap ( )-> isNull ( )) { |
2004 | dummy = new QPixmap ( mi-> pixmap ( )-> size ( )); | 2008 | dummy = new QPixmap ( mi-> pixmap ( )-> size ( )); |
2005 | QBitmap dummy_mask ( dummy-> size ( )); | 2009 | QBitmap dummy_mask ( dummy-> size ( )); |
2006 | dummy_mask. fill ( color1 ); | 2010 | dummy_mask. fill ( color1 ); |
2007 | dummy-> setMask ( dummy_mask ); | 2011 | dummy-> setMask ( dummy_mask ); |
2008 | } | 2012 | } |
2009 | 2013 | ||
2010 | if(active){ | 2014 | if(active){ |
2011 | drawClearBevel(p, x+1, y+1, w-1, h-1, g.button(), g.background()); | 2015 | drawClearBevel(p, x+1, y+1, w-1, h-1, g.button(), g.background()); |
2012 | QApplication::style().drawItem(p, x+1, y+1, w, h, | 2016 | QApplication::style().drawItem(p, x+1, y+1, w, h, |
2013 | AlignCenter|ShowPrefix|DontClip|SingleLine, | 2017 | AlignCenter|ShowPrefix|DontClip|SingleLine, |
2014 | g, mi->isEnabled(), dummy, mi->text(), | 2018 | g, mi->isEnabled(), dummy, mi->text(), |
2015 | -1, &shadow); | 2019 | -1, &shadow); |
2016 | QApplication::style().drawItem(p, x, y, w, h, | 2020 | QApplication::style().drawItem(p, x, y, w, h, |
2017 | AlignCenter|ShowPrefix|DontClip|SingleLine, | 2021 | AlignCenter|ShowPrefix|DontClip|SingleLine, |
2018 | g, mi->isEnabled(), mi-> pixmap ( ), mi->text(), | 2022 | g, mi->isEnabled(), mi-> pixmap ( ), mi->text(), |
2019 | -1, &g.text()); | 2023 | -1, &g.text()); |
2020 | } | 2024 | } |
2021 | else{ | 2025 | else{ |
2022 | QApplication::style().drawItem(p, x+1, y+1, w, h, | 2026 | QApplication::style().drawItem(p, x+1, y+1, w, h, |
2023 | AlignCenter|ShowPrefix|DontClip|SingleLine, | 2027 | AlignCenter|ShowPrefix|DontClip|SingleLine, |
2024 | g, mi->isEnabled(), dummy, mi->text(), | 2028 | g, mi->isEnabled(), dummy, mi->text(), |
2025 | -1, &shadow); | 2029 | -1, &shadow); |
2026 | QApplication::style().drawItem(p, x, y, w, h, | 2030 | QApplication::style().drawItem(p, x, y, w, h, |
2027 | AlignCenter|ShowPrefix|DontClip|SingleLine, | 2031 | AlignCenter|ShowPrefix|DontClip|SingleLine, |
2028 | g, mi->isEnabled(), mi-> pixmap ( ), mi->text(), | 2032 | g, mi->isEnabled(), mi-> pixmap ( ), mi->text(), |
2029 | -1, &g.text()); | 2033 | -1, &g.text()); |
2030 | } | 2034 | } |
2031 | delete dummy; | 2035 | delete dummy; |
2032 | } | 2036 | } |
2033 | else{ | 2037 | else{ |
2034 | if(active) | 2038 | if(active) |
2035 | drawClearBevel(p, x+1, y+1, w-1, h-1, g.button(), g.background()); | 2039 | drawClearBevel(p, x+1, y+1, w-1, h-1, g.button(), g.background()); |
2036 | QApplication::style().drawItem(p, x, y, w, h, | 2040 | QApplication::style().drawItem(p, x, y, w, h, |
2037 | AlignCenter|ShowPrefix|DontClip|SingleLine, | 2041 | AlignCenter|ShowPrefix|DontClip|SingleLine, |
2038 | g, mi->isEnabled(), mi-> pixmap ( ), mi->text(), | 2042 | g, mi->isEnabled(), mi-> pixmap ( ), mi->text(), |
2039 | -1, &g.text()); | 2043 | -1, &g.text()); |
2040 | } | 2044 | } |
2041 | } | 2045 | } |
2042 | 2046 | ||
2043 | void LiquidStyle::drawPopupPanel(QPainter *p, int x, int y, int w, int h, | 2047 | void LiquidStyle::drawPopupPanel(QPainter *p, int x, int y, int w, int h, |
2044 | const QColorGroup &g, int /*lineWidth*/, | 2048 | const QColorGroup &g, int /*lineWidth*/, |
2045 | const QBrush * /*fill*/) | 2049 | const QBrush * /*fill*/) |
2046 | { | 2050 | { |
2047 | QColor c; | 2051 | QColor c; |
2048 | switch(menuHandler->transType()){ | 2052 | switch(menuHandler->transType()){ |
2049 | case None: | 2053 | case None: |
2050 | case StippledBg: | 2054 | case StippledBg: |
2051 | case TransStippleBg: | 2055 | case TransStippleBg: |
2052 | c = g.background(); | 2056 | c = g.background(); |
2053 | break; | 2057 | break; |
2054 | case StippledBtn: | 2058 | case StippledBtn: |
2055 | case TransStippleBtn: | 2059 | case TransStippleBtn: |
2056 | c = g.button(); | 2060 | c = g.button(); |
2057 | break; | 2061 | break; |
2058 | default: | 2062 | default: |
2059 | c = menuHandler->bgColor(); | 2063 | c = menuHandler->bgColor(); |
2060 | } | 2064 | } |
2061 | p->setPen(c.dark(140)); | 2065 | p->setPen(c.dark(140)); |
2062 | p->drawRect(x, y, w, h); | 2066 | p->drawRect(x, y, w, h); |
2063 | p->setPen(c.light(120)); | 2067 | p->setPen(c.light(120)); |
2064 | p->drawRect(x+1, y+1, w-2, h-2); | 2068 | p->drawRect(x+1, y+1, w-2, h-2); |
2065 | } | 2069 | } |
2066 | 2070 | ||
@@ -2094,211 +2098,214 @@ static const int windowsRightBorder = 12; | |||
2094 | else{ | 2098 | else{ |
2095 | if(menuHandler->transType() == None){ | 2099 | if(menuHandler->transType() == None){ |
2096 | p->fillRect(x, y, w, h, pal.active().background()); | 2100 | p->fillRect(x, y, w, h, pal.active().background()); |
2097 | } | 2101 | } |
2098 | else if(menuHandler->transType() == StippledBg){ | 2102 | else if(menuHandler->transType() == StippledBg){ |
2099 | p->fillRect(x, y, w, h, bgBrush); | 2103 | p->fillRect(x, y, w, h, bgBrush); |
2100 | } | 2104 | } |
2101 | else if(menuHandler->transType() == StippledBtn){ | 2105 | else if(menuHandler->transType() == StippledBtn){ |
2102 | p->fillRect(x, y, w, h, menuBrush); | 2106 | p->fillRect(x, y, w, h, menuBrush); |
2103 | } | 2107 | } |
2104 | else{ | 2108 | else{ |
2105 | QPixmap *pix = menuHandler->pixmap(((QWidget*)p->device())->winId()); | 2109 | QPixmap *pix = menuHandler->pixmap(((QWidget*)p->device())->winId()); |
2106 | if(pix) | 2110 | if(pix) |
2107 | p->drawPixmap(x, y, *pix, x, y, w, h); | 2111 | p->drawPixmap(x, y, *pix, x, y, w, h); |
2108 | } | 2112 | } |
2109 | } | 2113 | } |
2110 | 2114 | ||
2111 | if(!mi) | 2115 | if(!mi) |
2112 | return; | 2116 | return; |
2113 | 2117 | ||
2114 | QColor discol; | 2118 | QColor discol; |
2115 | if (dis) { | 2119 | if (dis) { |
2116 | discol = itemg.mid(); | 2120 | discol = itemg.mid(); |
2117 | p->setPen(discol); | 2121 | p->setPen(discol); |
2118 | } | 2122 | } |
2119 | 2123 | ||
2120 | QColorGroup cg2(itemg); | 2124 | QColorGroup cg2(itemg); |
2121 | 2125 | ||
2122 | if(menuHandler->transType() == Custom){ | 2126 | if(menuHandler->transType() == Custom){ |
2123 | cg2.setColor(QColorGroup::Foreground, menuHandler->textColor()); | 2127 | cg2.setColor(QColorGroup::Foreground, menuHandler->textColor()); |
2124 | cg2.setColor(QColorGroup::Text, menuHandler->textColor()); | 2128 | cg2.setColor(QColorGroup::Text, menuHandler->textColor()); |
2125 | cg2.setColor(QColorGroup::Light, menuHandler->textColor().light(120)); | 2129 | cg2.setColor(QColorGroup::Light, menuHandler->textColor().light(120)); |
2126 | cg2.setColor(QColorGroup::Mid, menuHandler->textColor().dark(120)); | 2130 | cg2.setColor(QColorGroup::Mid, menuHandler->textColor().dark(120)); |
2127 | } | 2131 | } |
2128 | else{ | 2132 | else{ |
2129 | cg2 = QColorGroup(discol, itemg.highlight(), black, black, | 2133 | cg2 = QColorGroup(discol, itemg.highlight(), black, black, |
2130 | dis ? discol : black, discol, black); | 2134 | dis ? discol : black, discol, black); |
2131 | } | 2135 | } |
2132 | 2136 | ||
2133 | if(mi->isSeparator()){ | 2137 | if(mi->isSeparator()){ |
2134 | QColor c; | 2138 | QColor c; |
2135 | switch(menuHandler->transType()){ | 2139 | switch(menuHandler->transType()){ |
2136 | case None: | 2140 | case None: |
2137 | case StippledBg: | 2141 | case StippledBg: |
2138 | case TransStippleBg: | 2142 | case TransStippleBg: |
2139 | c = QApplication::palette().active().background(); | 2143 | c = QApplication::palette().active().background(); |
2140 | break; | 2144 | break; |
2141 | case StippledBtn: | 2145 | case StippledBtn: |
2142 | case TransStippleBtn: | 2146 | case TransStippleBtn: |
2143 | c = QApplication::palette().active().button(); | 2147 | c = QApplication::palette().active().button(); |
2144 | break; | 2148 | break; |
2145 | default: | 2149 | default: |
2146 | c = menuHandler->bgColor(); | 2150 | c = menuHandler->bgColor(); |
2147 | } | 2151 | } |
2148 | p->setPen(c.dark(140)); | 2152 | p->setPen(c.dark(140)); |
2149 | p->drawLine(x, y, x+w, y ); | 2153 | p->drawLine(x, y, x+w, y ); |
2150 | p->setPen(c.light(115)); | 2154 | p->setPen(c.light(115)); |
2151 | p->drawLine(x, y+1, x+w, y+1 ); | 2155 | p->drawLine(x, y+1, x+w, y+1 ); |
2152 | return; | 2156 | return; |
2153 | } | 2157 | } |
2154 | if(mi->iconSet()) { | 2158 | if(mi->iconSet()) { |
2155 | QIconSet::Mode mode = dis? QIconSet::Disabled : QIconSet::Normal; | 2159 | QIconSet::Mode mode = dis? QIconSet::Disabled : QIconSet::Normal; |
2156 | if (!dis) | 2160 | if (!dis) |
2157 | mode = QIconSet::Active; | 2161 | mode = QIconSet::Active; |
2158 | QPixmap pixmap = mi->iconSet()->pixmap(QIconSet::Small, mode); | 2162 | QPixmap pixmap; |
2163 | if ( mode == QIconSet::Disabled ) | ||
2164 | pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
2165 | else | ||
2166 | pixmap = mi->iconSet()->pixmap(); | ||
2159 | int pixw = pixmap.width(); | 2167 | int pixw = pixmap.width(); |
2160 | int pixh = pixmap.height(); | 2168 | int pixh = pixmap.height(); |
2161 | QRect cr(x, y, checkcol, h); | 2169 | QRect cr(x, y, checkcol, h); |
2162 | QRect pmr(0, 0, pixw, pixh); | 2170 | QRect pmr(0, 0, pixw, pixh); |
2163 | pmr.moveCenter( cr.center() ); | 2171 | pmr.moveCenter( cr.center() ); |
2164 | p->setPen(itemg.highlightedText()); | 2172 | p->setPen(itemg.highlightedText()); |
2165 | p->drawPixmap(pmr.topLeft(), pixmap ); | 2173 | p->drawPixmap(pmr.topLeft(), pixmap ); |
2166 | 2174 | ||
2167 | } | 2175 | } |
2168 | else if(checkable) { | 2176 | else if(checkable) { |
2169 | int mw = checkcol + motifItemFrame; | 2177 | int mw = checkcol + motifItemFrame; |
2170 | int mh = h - 2*motifItemFrame; | 2178 | int mh = h - 2*motifItemFrame; |
2171 | if (mi->isChecked()){ | 2179 | if (mi->isChecked()){ |
2172 | drawCheckMark( p, x + motifItemFrame, | 2180 | drawCheckMark( p, x + motifItemFrame, |
2173 | y+motifItemFrame, mw, mh, cg2, act, dis ); | 2181 | y+motifItemFrame, mw, mh, cg2, act, dis ); |
2174 | } | 2182 | } |
2175 | } | 2183 | } |
2176 | if(menuHandler->transType() == Custom) | 2184 | if(menuHandler->transType() == Custom) |
2177 | p->setPen(menuHandler->textColor()); | 2185 | p->setPen(menuHandler->textColor()); |
2178 | else | 2186 | else |
2179 | p->setPen(itemg.text()); | 2187 | p->setPen(itemg.text()); |
2180 | 2188 | ||
2181 | 2189 | ||
2182 | int xm = motifItemFrame + checkcol + motifItemHMargin; | 2190 | int xm = motifItemFrame + checkcol + motifItemHMargin; |
2183 | QString s = mi->text(); | 2191 | QString s = mi->text(); |
2184 | if (!s.isNull()) { | 2192 | if (!s.isNull()) { |
2185 | int t = s.find( '\t' ); | 2193 | int t = s.find( '\t' ); |
2186 | int m = motifItemVMargin; | 2194 | int m = motifItemVMargin; |
2187 | const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; | 2195 | const int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine; |
2188 | QPen oldPen = p->pen(); | 2196 | QPen oldPen = p->pen(); |
2189 | if(menuHandler->useShadowText()){ | 2197 | if(menuHandler->useShadowText()){ |
2190 | if(menuHandler->transType() == Custom) | 2198 | if(menuHandler->transType() == Custom) |
2191 | p->setPen(menuHandler->bgColor().dark(130)); | 2199 | p->setPen(menuHandler->bgColor().dark(130)); |
2192 | else if(menuHandler->transType() == StippledBtn || | 2200 | else if(menuHandler->transType() == StippledBtn || |
2193 | menuHandler->transType() == TransStippleBtn) | 2201 | menuHandler->transType() == TransStippleBtn) |
2194 | p->setPen(itemg.button().dark(130)); | 2202 | p->setPen(itemg.button().dark(130)); |
2195 | else | 2203 | else |
2196 | p->setPen(bgBrush.color().dark(130)); | 2204 | p->setPen(bgBrush.color().dark(130)); |
2197 | 2205 | ||
2198 | if (t >= 0) { | 2206 | if (t >= 0) { |
2199 | p->drawText(x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+2, | 2207 | p->drawText(x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+2, |
2200 | y+m+2, tab-1, h-2*m-1, text_flags, s.mid( t+1 )); | 2208 | y+m+2, tab-1, h-2*m-1, text_flags, s.mid( t+1 )); |
2201 | } | 2209 | } |
2202 | p->drawText(x+xm+1, y+m+1, w-xm-tab, h-2*m-1, text_flags, s, t); | 2210 | p->drawText(x+xm+1, y+m+1, w-xm-tab, h-2*m-1, text_flags, s, t); |
2203 | } | 2211 | } |
2204 | p->setPen(oldPen); | 2212 | p->setPen(oldPen); |
2205 | if (t >= 0) { | 2213 | if (t >= 0) { |
2206 | p->drawText(x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, | 2214 | p->drawText(x+w-tab-windowsRightBorder-motifItemHMargin-motifItemFrame+1, |
2207 | y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); | 2215 | y+m+1, tab, h-2*m, text_flags, s.mid( t+1 )); |
2208 | } | 2216 | } |
2209 | p->drawText(x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t); | 2217 | p->drawText(x+xm, y+m, w-xm-tab+1, h-2*m, text_flags, s, t); |
2210 | 2218 | ||
2211 | } | 2219 | } |
2212 | else if (mi->pixmap()) { | 2220 | else if (mi->pixmap()) { |
2213 | QPixmap *pixmap = mi->pixmap(); | 2221 | QPixmap *pixmap = mi->pixmap(); |
2214 | if (pixmap->depth() == 1) | 2222 | if (pixmap->depth() == 1) |
2215 | p->setBackgroundMode(OpaqueMode); | 2223 | p->setBackgroundMode(OpaqueMode); |
2216 | p->drawPixmap( x+xm, y+motifItemFrame, *pixmap); | 2224 | p->drawPixmap( x+xm, y+motifItemFrame, *pixmap); |
2217 | if (pixmap->depth() == 1) | 2225 | if (pixmap->depth() == 1) |
2218 | p->setBackgroundMode(TransparentMode); | 2226 | p->setBackgroundMode(TransparentMode); |
2219 | } | 2227 | } |
2220 | if (mi->popup()) { | 2228 | if (mi->popup()) { |
2221 | int dim = (h-2*motifItemFrame) / 2; | 2229 | int dim = (h-2*motifItemFrame) / 2; |
2222 | drawArrow(p, RightArrow, true, | 2230 | drawArrow(p, RightArrow, true, |
2223 | x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2, | 2231 | x+w - motifArrowHMargin - motifItemFrame - dim, y+h/2-dim/2, |
2224 | dim, dim, cg2, TRUE); | 2232 | dim, dim, cg2, TRUE); |
2225 | } | 2233 | } |
2226 | } | 2234 | } |
2227 | 2235 | ||
2228 | int LiquidStyle::popupMenuItemHeight(bool /*checkable*/, QMenuItem *mi, | 2236 | int LiquidStyle::popupMenuItemHeight(bool /*checkable*/, QMenuItem *mi, |
2229 | const QFontMetrics &fm) | 2237 | const QFontMetrics &fm) |
2230 | { | 2238 | { |
2231 | if (mi->isSeparator()) | 2239 | if (mi->isSeparator()) |
2232 | return 2; | 2240 | return 2; |
2233 | 2241 | ||
2234 | int h = 0; | 2242 | int h = 0; |
2235 | if (mi->pixmap()) | 2243 | if (mi->pixmap()) |
2236 | h = mi->pixmap()->height(); | 2244 | h = mi->pixmap()->height(); |
2237 | 2245 | ||
2238 | if (mi->iconSet()) | 2246 | if (mi->iconSet()) |
2239 | h = QMAX(mi->iconSet()-> | 2247 | h = QMAX(mi->iconSet()->pixmap().height(), h); |
2240 | pixmap(QIconSet::Small, QIconSet::Normal).height(), h); | ||
2241 | 2248 | ||
2242 | h = QMAX(fm.height() + 4, h); | 2249 | h = QMAX(fm.height() + 4, h); |
2243 | 2250 | ||
2244 | // we want a minimum size of 18 | 2251 | // we want a minimum size of 18 |
2245 | h = QMAX(h, 18); | 2252 | h = QMAX(h, 18); |
2246 | 2253 | ||
2247 | return h; | 2254 | return h; |
2248 | } | 2255 | } |
2249 | 2256 | ||
2250 | 2257 | ||
2251 | void LiquidStyle::drawFocusRect(QPainter *p, const QRect &r, | 2258 | void LiquidStyle::drawFocusRect(QPainter *p, const QRect &r, |
2252 | const QColorGroup &g, const QColor *c, | 2259 | const QColorGroup &g, const QColor *c, |
2253 | bool atBorder) | 2260 | bool atBorder) |
2254 | { | 2261 | { |
2255 | // are we painting a widget? | 2262 | // are we painting a widget? |
2256 | if(p->device()->devType() == QInternal::Widget){ | 2263 | if(p->device()->devType() == QInternal::Widget){ |
2257 | // if so does it use a special focus rectangle? | 2264 | // if so does it use a special focus rectangle? |
2258 | QWidget *w = (QWidget *)p->device(); | 2265 | QWidget *w = (QWidget *)p->device(); |
2259 | if(w->inherits("QPushButton") || w->inherits("QSlider") || w->inherits("QComboBox") || w->inherits("QToolButton" )){ | 2266 | if(w->inherits("QPushButton") || w->inherits("QSlider") || w->inherits("QComboBox") || w->inherits("QToolButton" )){ |
2260 | return; | 2267 | return; |
2261 | } | 2268 | } |
2262 | else{ | 2269 | else{ |
2263 | QWindowsStyle::drawFocusRect(p, r, g, c, atBorder); | 2270 | QWindowsStyle::drawFocusRect(p, r, g, c, atBorder); |
2264 | } | 2271 | } |
2265 | } | 2272 | } |
2266 | else | 2273 | else |
2267 | QWindowsStyle::drawFocusRect(p, r, g, c, atBorder); | 2274 | QWindowsStyle::drawFocusRect(p, r, g, c, atBorder); |
2268 | 2275 | ||
2269 | } | 2276 | } |
2270 | 2277 | ||
2271 | void LiquidStyle::polishPopupMenu(QPopupMenu *mnu) | 2278 | void LiquidStyle::polishPopupMenu(QPopupMenu *mnu) |
2272 | { | 2279 | { |
2273 | mnu->installEventFilter(menuHandler); | 2280 | mnu->installEventFilter(menuHandler); |
2274 | QWindowsStyle::polishPopupMenu(mnu); | 2281 | QWindowsStyle::polishPopupMenu(mnu); |
2275 | } | 2282 | } |
2276 | 2283 | ||
2277 | void LiquidStyle::drawTab(QPainter *p, const QTabBar *tabBar, QTab *tab, | 2284 | void LiquidStyle::drawTab(QPainter *p, const QTabBar *tabBar, QTab *tab, |
2278 | bool selected) | 2285 | bool selected) |
2279 | { | 2286 | { |
2280 | if(tabBar->shape() != QTabBar::RoundedAbove){ | 2287 | if(tabBar->shape() != QTabBar::RoundedAbove){ |
2281 | QWindowsStyle::drawTab(p, tabBar, tab, selected); | 2288 | QWindowsStyle::drawTab(p, tabBar, tab, selected); |
2282 | return; | 2289 | return; |
2283 | } | 2290 | } |
2284 | QPixmap tilePix; | 2291 | QPixmap tilePix; |
2285 | QRect r = tab->rect(); | 2292 | QRect r = tab->rect(); |
2286 | //QPixmap *pix = selected ? tabBar->hasFocus() ? pixmaps[TabFocus] : | 2293 | //QPixmap *pix = selected ? tabBar->hasFocus() ? pixmaps[TabFocus] : |
2287 | // pixmaps[TabDown] : pixmaps[Tab]; | 2294 | // pixmaps[TabDown] : pixmaps[Tab]; |
2288 | 2295 | ||
2289 | QPixmap *pix = selected ? getPixmap(TabDown) : getPixmap(Tab); | 2296 | QPixmap *pix = selected ? getPixmap(TabDown) : getPixmap(Tab); |
2290 | p->drawPixmap(r.x(), r.y(), *pix, 0, 0, 9, r.height()); | 2297 | p->drawPixmap(r.x(), r.y(), *pix, 0, 0, 9, r.height()); |
2291 | p->drawPixmap(r.right()-9, r.y(), *pix, pix->width()-9, 0, 9, r.height()); | 2298 | p->drawPixmap(r.right()-9, r.y(), *pix, pix->width()-9, 0, 9, r.height()); |
2292 | tilePix.resize(pix->width()-18, r.height()); | 2299 | tilePix.resize(pix->width()-18, r.height()); |
2293 | bitBlt(&tilePix, 0, 0, pix, 9, 0, pix->width()-18, r.height()); | 2300 | bitBlt(&tilePix, 0, 0, pix, 9, 0, pix->width()-18, r.height()); |
2294 | p->drawTiledPixmap(r.x()+9, r.y(), r.width()-18, r.height(), tilePix); | 2301 | p->drawTiledPixmap(r.x()+9, r.y(), r.width()-18, r.height(), tilePix); |
2295 | QColor c = tabBar->colorGroup().button(); | 2302 | QColor c = tabBar->colorGroup().button(); |
2296 | if(!selected){ | 2303 | if(!selected){ |
2297 | p->setPen(c.dark(130)); | 2304 | p->setPen(c.dark(130)); |
2298 | p->drawLine(r.x(), r.bottom(), r.right(), r.bottom()); | 2305 | p->drawLine(r.x(), r.bottom(), r.right(), r.bottom()); |
2299 | } | 2306 | } |
2300 | 2307 | ||
2301 | /* | 2308 | /* |
2302 | p->setPen(c.light(110)); | 2309 | p->setPen(c.light(110)); |
2303 | p->drawLine(r.x(), r.bottom()+1, r.right(), r.bottom()+1); | 2310 | p->drawLine(r.x(), r.bottom()+1, r.right(), r.bottom()+1); |
2304 | p->setPen(c); | 2311 | p->setPen(c); |
@@ -2369,208 +2376,208 @@ void LiquidStyle::drawTab(QPainter *p, const QTabBar *tabBar, QTab *tab, | |||
2369 | 2376 | ||
2370 | 2377 | ||
2371 | 2378 | ||
2372 | void LiquidStyle::drawTabMask(QPainter *p, const QTabBar*, QTab *tab, | 2379 | void LiquidStyle::drawTabMask(QPainter *p, const QTabBar*, QTab *tab, |
2373 | bool selected) | 2380 | bool selected) |
2374 | 2381 | ||
2375 | 2382 | ||
2376 | { | 2383 | { |
2377 | //p->fillRect(tab->rect(), Qt::color1); | 2384 | //p->fillRect(tab->rect(), Qt::color1); |
2378 | QRect r = tab->rect(); | 2385 | QRect r = tab->rect(); |
2379 | QPixmap *pix = selected ? getPixmap(TabDown) : getPixmap(Tab); | 2386 | QPixmap *pix = selected ? getPixmap(TabDown) : getPixmap(Tab); |
2380 | p->drawPixmap(r.x(), r.y(), *pix->mask(), 0, 0, 9, r.height()); | 2387 | p->drawPixmap(r.x(), r.y(), *pix->mask(), 0, 0, 9, r.height()); |
2381 | p->drawPixmap(r.right()-9, r.y(), *pix->mask(), pix->width()-9, 0, 9, r.height()); | 2388 | p->drawPixmap(r.right()-9, r.y(), *pix->mask(), pix->width()-9, 0, 9, r.height()); |
2382 | p->fillRect(r.x()+9, r.y(), r.width()-18, r.height(), Qt::color1); | 2389 | p->fillRect(r.x()+9, r.y(), r.width()-18, r.height(), Qt::color1); |
2383 | } | 2390 | } |
2384 | 2391 | ||
2385 | void LiquidStyle::tabbarMetrics(const QTabBar *t, int &hFrame, int &vFrame, | 2392 | void LiquidStyle::tabbarMetrics(const QTabBar *t, int &hFrame, int &vFrame, |
2386 | int &overlap) | 2393 | int &overlap) |
2387 | { | 2394 | { |
2388 | if(t->shape() == QTabBar::RoundedAbove){ | 2395 | if(t->shape() == QTabBar::RoundedAbove){ |
2389 | overlap = 1; | 2396 | overlap = 1; |
2390 | hFrame = 18; // was 24 | 2397 | hFrame = 18; // was 24 |
2391 | vFrame = 8; // was 10 | 2398 | vFrame = 8; // was 10 |
2392 | } | 2399 | } |
2393 | else | 2400 | else |
2394 | QWindowsStyle::tabbarMetrics(t, hFrame, vFrame, overlap); | 2401 | QWindowsStyle::tabbarMetrics(t, hFrame, vFrame, overlap); |
2395 | } | 2402 | } |
2396 | 2403 | ||
2397 | 2404 | ||
2398 | 2405 | ||
2399 | void LiquidStyle::drawSplitter(QPainter *p, int x, int y, int w, int h, | 2406 | void LiquidStyle::drawSplitter(QPainter *p, int x, int y, int w, int h, |
2400 | const QColorGroup &g, Orientation) | 2407 | const QColorGroup &g, Orientation) |
2401 | { | 2408 | { |
2402 | drawClearBevel(p, x, y, w, h, highlightWidget == p->device() ? | 2409 | drawClearBevel(p, x, y, w, h, highlightWidget == p->device() ? |
2403 | g.button().light(120) : g.button(), g.background()); | 2410 | g.button().light(120) : g.button(), g.background()); |
2404 | } | 2411 | } |
2405 | 2412 | ||
2406 | 2413 | ||
2407 | void LiquidStyle::drawPanel(QPainter *p, int x, int y, int w, int h, | 2414 | void LiquidStyle::drawPanel(QPainter *p, int x, int y, int w, int h, |
2408 | const QColorGroup &g, bool sunken, | 2415 | const QColorGroup &g, bool sunken, |
2409 | int lineWidth, const QBrush *fill) | 2416 | int lineWidth, const QBrush *fill) |
2410 | { | 2417 | { |
2411 | if(p->device()->devType() == QInternal::Widget && | 2418 | if(p->device()->devType() == QInternal::Widget && |
2412 | ((QWidget *)p->device())->inherits("QLineEdit")){ | 2419 | ((QWidget *)p->device())->inherits("QLineEdit")){ |
2413 | int x2 = x+w-1; | 2420 | int x2 = x+w-1; |
2414 | int y2 = y+h-1; | 2421 | int y2 = y+h-1; |
2415 | p->setPen(g.dark()); | 2422 | p->setPen(g.dark()); |
2416 | p->drawRect(x, y, w, h); | 2423 | p->drawRect(x, y, w, h); |
2417 | p->setPen(g.mid()); | 2424 | p->setPen(g.mid()); |
2418 | p->drawLine(x+1, y+1, x2-2, y+1); | 2425 | p->drawLine(x+1, y+1, x2-2, y+1); |
2419 | p->drawLine(x+1, y+1, x+1, y2-1); | 2426 | p->drawLine(x+1, y+1, x+1, y2-1); |
2420 | } | 2427 | } |
2421 | else if(lineWidth != 2 || !sunken) | 2428 | else if(lineWidth != 2 || !sunken) |
2422 | QWindowsStyle::drawPanel(p, x, y, w, h, g, sunken, lineWidth, fill); | 2429 | QWindowsStyle::drawPanel(p, x, y, w, h, g, sunken, lineWidth, fill); |
2423 | else{ | 2430 | else{ |
2424 | QPen oldPen = p->pen(); | 2431 | QPen oldPen = p->pen(); |
2425 | int x2 = x+w-1; | 2432 | int x2 = x+w-1; |
2426 | int y2 = y+h-1; | 2433 | int y2 = y+h-1; |
2427 | p->setPen(g.light()); | 2434 | p->setPen(g.light()); |
2428 | p->drawLine(x, y2, x2, y2); | 2435 | p->drawLine(x, y2, x2, y2); |
2429 | p->drawLine(x2, y, x2, y2); | 2436 | p->drawLine(x2, y, x2, y2); |
2430 | p->setPen(g.mid()); | 2437 | p->setPen(g.mid()); |
2431 | p->drawLine(x, y, x2, y); | 2438 | p->drawLine(x, y, x2, y); |
2432 | p->drawLine(x, y, x, y2); | 2439 | p->drawLine(x, y, x, y2); |
2433 | 2440 | ||
2434 | p->setPen(g.midlight()); | 2441 | p->setPen(g.midlight()); |
2435 | p->drawLine(x+1, y2-1, x2-1, y2-1); | 2442 | p->drawLine(x+1, y2-1, x2-1, y2-1); |
2436 | p->drawLine(x2-1, y+1, x2-1, y2-1); | 2443 | p->drawLine(x2-1, y+1, x2-1, y2-1); |
2437 | p->setPen(g.dark()); | 2444 | p->setPen(g.dark()); |
2438 | p->drawLine(x+1, y+1, x2-1, y+1); | 2445 | p->drawLine(x+1, y+1, x2-1, y+1); |
2439 | p->drawLine(x+1, y+1, x+1, y2-1); | 2446 | p->drawLine(x+1, y+1, x+1, y2-1); |
2440 | p->setPen(oldPen); | 2447 | p->setPen(oldPen); |
2441 | if(fill){ | 2448 | if(fill){ |
2442 | // I believe here we are only supposed to fill if there is a | 2449 | // I believe here we are only supposed to fill if there is a |
2443 | // specified fill brush... | 2450 | // specified fill brush... |
2444 | p->fillRect(x+2, y+2, w-4, h-4, *fill); | 2451 | p->fillRect(x+2, y+2, w-4, h-4, *fill); |
2445 | } | 2452 | } |
2446 | } | 2453 | } |
2447 | } | 2454 | } |
2448 | 2455 | ||
2449 | 2456 | ||
2450 | void LiquidStyle::adjustHSV(QPixmap &pix, int h, int s, int v) | 2457 | void LiquidStyle::adjustHSV(QPixmap &pix, int h, int s, int v) |
2451 | { | 2458 | { |
2452 | QBitmap *maskBmp = NULL; | 2459 | QBitmap *maskBmp = NULL; |
2453 | if(pix.mask()) | 2460 | if(pix.mask()) |
2454 | maskBmp = new QBitmap(*pix.mask()); | 2461 | maskBmp = new QBitmap(*pix.mask()); |
2455 | QImage img = pix.convertToImage(); | 2462 | QImage img = pix.convertToImage(); |
2456 | if(img.depth() != 32) | 2463 | if(img.depth() != 32) |
2457 | img = img.convertDepth(32); | 2464 | img = img.convertDepth(32); |
2458 | unsigned int *data = (unsigned int *)img.bits(); | 2465 | unsigned int *data = (unsigned int *)img.bits(); |
2459 | int total = img.width()*img.height(); | 2466 | int total = img.width()*img.height(); |
2460 | int current; | 2467 | int current; |
2461 | QColor c; | 2468 | QColor c; |
2462 | int oldH, oldS, oldV; | 2469 | int oldH, oldS, oldV; |
2463 | if(v < 235) | 2470 | if(v < 235) |
2464 | v += 20; | 2471 | v += 20; |
2465 | else | 2472 | else |
2466 | v = 255; | 2473 | v = 255; |
2467 | float intensity = v/255.0; | 2474 | float intensity = v/255.0; |
2468 | 2475 | ||
2469 | for(current=0; current<total; ++current){ | 2476 | for(current=0; current<total; ++current){ |
2470 | c.setRgb(data[current]); | 2477 | c.setRgb(data[current]); |
2471 | c.hsv(&oldH, &oldS, &oldV); | 2478 | c.hsv(&oldH, &oldS, &oldV); |
2472 | oldV = (int)(oldV*intensity); | 2479 | oldV = (int)(oldV*intensity); |
2473 | c.setHsv(h, s, oldV); | 2480 | c.setHsv(h, s, oldV); |
2474 | data[current] = c.rgb(); | 2481 | data[current] = c.rgb(); |
2475 | } | 2482 | } |
2476 | pix.convertFromImage(img); | 2483 | pix.convertFromImage(img); |
2477 | if(maskBmp) | 2484 | if(maskBmp) |
2478 | pix.setMask(*maskBmp); | 2485 | pix.setMask(*maskBmp); |
2479 | } | 2486 | } |
2480 | 2487 | ||
2481 | void LiquidStyle::intensity(QPixmap &pix, float percent) | 2488 | void LiquidStyle::intensity(QPixmap &pix, float percent) |
2482 | { | 2489 | { |
2483 | QImage image = pix.convertToImage(); | 2490 | QImage image = pix.convertToImage(); |
2484 | int i, tmp, r, g, b; | 2491 | int i, tmp, r, g, b; |
2485 | int segColors = image.depth() > 8 ? 256 : image.numColors(); | 2492 | int segColors = image.depth() > 8 ? 256 : image.numColors(); |
2486 | unsigned char *segTbl = new unsigned char[segColors]; | 2493 | unsigned char *segTbl = new unsigned char[segColors]; |
2487 | int pixels = image.depth() > 8 ? image.width()*image.height() : | 2494 | int pixels = image.depth() > 8 ? image.width()*image.height() : |
2488 | image.numColors(); | 2495 | image.numColors(); |
2489 | unsigned int *data = image.depth() > 8 ? (unsigned int *)image.bits() : | 2496 | unsigned int *data = image.depth() > 8 ? (unsigned int *)image.bits() : |
2490 | (unsigned int *)image.colorTable(); | 2497 | (unsigned int *)image.colorTable(); |
2491 | 2498 | ||
2492 | bool brighten = (percent >= 0); | 2499 | bool brighten = (percent >= 0); |
2493 | if(percent < 0) | 2500 | if(percent < 0) |
2494 | percent = -percent; | 2501 | percent = -percent; |
2495 | 2502 | ||
2496 | if(brighten){ // keep overflow check out of loops | 2503 | if(brighten){ // keep overflow check out of loops |
2497 | for(i=0; i < segColors; ++i){ | 2504 | for(i=0; i < segColors; ++i){ |
2498 | tmp = (int)(i*percent); | 2505 | tmp = (int)(i*percent); |
2499 | if(tmp > 255) | 2506 | if(tmp > 255) |
2500 | tmp = 255; | 2507 | tmp = 255; |
2501 | segTbl[i] = tmp; | 2508 | segTbl[i] = tmp; |
2502 | } | 2509 | } |
2503 | } | 2510 | } |
2504 | else{ | 2511 | else{ |
2505 | for(i=0; i < segColors; ++i){ | 2512 | for(i=0; i < segColors; ++i){ |
2506 | tmp = (int)(i*percent); | 2513 | tmp = (int)(i*percent); |
2507 | if(tmp < 0) | 2514 | if(tmp < 0) |
2508 | tmp = 0; | 2515 | tmp = 0; |
2509 | segTbl[i] = tmp; | 2516 | segTbl[i] = tmp; |
2510 | } | 2517 | } |
2511 | } | 2518 | } |
2512 | 2519 | ||
2513 | if(brighten){ // same here | 2520 | if(brighten){ // same here |
2514 | for(i=0; i < pixels; ++i){ | 2521 | for(i=0; i < pixels; ++i){ |
2515 | r = qRed(data[i]); | 2522 | r = qRed(data[i]); |
2516 | g = qGreen(data[i]); | 2523 | g = qGreen(data[i]); |
2517 | b = qBlue(data[i]); | 2524 | b = qBlue(data[i]); |
2518 | r = r + segTbl[r] > 255 ? 255 : r + segTbl[r]; | 2525 | r = r + segTbl[r] > 255 ? 255 : r + segTbl[r]; |
2519 | g = g + segTbl[g] > 255 ? 255 : g + segTbl[g]; | 2526 | g = g + segTbl[g] > 255 ? 255 : g + segTbl[g]; |
2520 | b = b + segTbl[b] > 255 ? 255 : b + segTbl[b]; | 2527 | b = b + segTbl[b] > 255 ? 255 : b + segTbl[b]; |
2521 | data[i] = qRgb(r, g, b); | 2528 | data[i] = qRgb(r, g, b); |
2522 | } | 2529 | } |
2523 | } | 2530 | } |
2524 | else{ | 2531 | else{ |
2525 | for(i=0; i < pixels; ++i){ | 2532 | for(i=0; i < pixels; ++i){ |
2526 | r = qRed(data[i]); | 2533 | r = qRed(data[i]); |
2527 | g = qGreen(data[i]); | 2534 | g = qGreen(data[i]); |
2528 | b = qBlue(data[i]); | 2535 | b = qBlue(data[i]); |
2529 | r = r - segTbl[r] < 0 ? 0 : r - segTbl[r]; | 2536 | r = r - segTbl[r] < 0 ? 0 : r - segTbl[r]; |
2530 | g = g - segTbl[g] < 0 ? 0 : g - segTbl[g]; | 2537 | g = g - segTbl[g] < 0 ? 0 : g - segTbl[g]; |
2531 | b = b - segTbl[b] < 0 ? 0 : b - segTbl[b]; | 2538 | b = b - segTbl[b] < 0 ? 0 : b - segTbl[b]; |
2532 | data[i] = qRgb(r, g, b); | 2539 | data[i] = qRgb(r, g, b); |
2533 | } | 2540 | } |
2534 | } | 2541 | } |
2535 | delete [] segTbl; | 2542 | delete [] segTbl; |
2536 | pix.convertFromImage(image); | 2543 | pix.convertFromImage(image); |
2537 | } | 2544 | } |
2538 | 2545 | ||
2539 | void LiquidStyle::drawRoundRect(QPainter *p, int x, int y, int w, int h) | 2546 | void LiquidStyle::drawRoundRect(QPainter *p, int x, int y, int w, int h) |
2540 | { | 2547 | { |
2541 | int x2 = x+w-1; | 2548 | int x2 = x+w-1; |
2542 | int y2 = y+h-1; | 2549 | int y2 = y+h-1; |
2543 | p->drawLine(x+1, y, x2-1, y); | 2550 | p->drawLine(x+1, y, x2-1, y); |
2544 | p->drawLine(x, y+1, x, y2-1); | 2551 | p->drawLine(x, y+1, x, y2-1); |
2545 | p->drawLine(x+1, y2, x2-1, y2); | 2552 | p->drawLine(x+1, y2, x2-1, y2); |
2546 | p->drawLine(x2, y+1, x2, y2-1); | 2553 | p->drawLine(x2, y+1, x2, y2-1); |
2547 | } | 2554 | } |
2548 | 2555 | ||
2549 | void LiquidStyle::drawSliderGroove (QPainter * p, int x, int y, int w, int h, | 2556 | void LiquidStyle::drawSliderGroove (QPainter * p, int x, int y, int w, int h, |
2550 | const QColorGroup &g, QCOORD, | 2557 | const QColorGroup &g, QCOORD, |
2551 | Orientation orient) | 2558 | Orientation orient) |
2552 | { | 2559 | { |
2553 | bool isFocus = ((QWidget *)p->device())->hasFocus(); | 2560 | bool isFocus = ((QWidget *)p->device())->hasFocus(); |
2554 | QColor c = isFocus ? g.background().dark(120) : g.background(); | 2561 | QColor c = isFocus ? g.background().dark(120) : g.background(); |
2555 | if(orient == Qt::Horizontal){ | 2562 | if(orient == Qt::Horizontal){ |
2556 | int x2 = x+w-1; | 2563 | int x2 = x+w-1; |
2557 | y+=2; | 2564 | y+=2; |
2558 | p->setPen(c.dark(130)); | 2565 | p->setPen(c.dark(130)); |
2559 | p->drawLine(x+1, y, x2-1, y); | 2566 | p->drawLine(x+1, y, x2-1, y); |
2560 | p->setPen(c.dark(150)); | 2567 | p->setPen(c.dark(150)); |
2561 | p->drawLine(x, y+1, x2, y+1); | 2568 | p->drawLine(x, y+1, x2, y+1); |
2562 | p->setPen(c.dark(125)); | 2569 | p->setPen(c.dark(125)); |
2563 | p->drawLine(x, y+2, x2, y+2); | 2570 | p->drawLine(x, y+2, x2, y+2); |
2564 | p->setPen(c.dark(130)); | 2571 | p->setPen(c.dark(130)); |
2565 | p->drawLine(x, y+3, x2, y+3); | 2572 | p->drawLine(x, y+3, x2, y+3); |
2566 | p->setPen(c.dark(120)); | 2573 | p->setPen(c.dark(120)); |
2567 | p->drawLine(x, y+4, x2, y+4); | 2574 | p->drawLine(x, y+4, x2, y+4); |
2568 | p->setPen(c.light(110)); | 2575 | p->setPen(c.light(110)); |
2569 | p->drawLine(x+1, y+5, x2-1, y+5); | 2576 | p->drawLine(x+1, y+5, x2-1, y+5); |
2570 | } | 2577 | } |
2571 | else{ | 2578 | else{ |
2572 | int y2 = y+h-1; | 2579 | int y2 = y+h-1; |
2573 | x+=2; | 2580 | x+=2; |
2574 | p->setPen(c.dark(130)); | 2581 | p->setPen(c.dark(130)); |
2575 | p->drawLine(x, y+1, x, y2-1); | 2582 | p->drawLine(x, y+1, x, y2-1); |
2576 | p->setPen(c.dark(150)); | 2583 | p->setPen(c.dark(150)); |
diff --git a/noncore/styles/phase/phasestyle.cpp b/noncore/styles/phase/phasestyle.cpp index 746354e..c2b9de8 100644 --- a/noncore/styles/phase/phasestyle.cpp +++ b/noncore/styles/phase/phasestyle.cpp | |||
@@ -329,129 +329,132 @@ void PhaseStyle::polish( QPalette &pal ) { | |||
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 | ||
339 | void PhaseStyle::polish( QApplication* app ) { | 339 | void 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 | ||
345 | void PhaseStyle::unPolish( QApplication* app ) { | 345 | void 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 | ||
350 | void PhaseStyle::drawPushButtonLabel (QPushButton *button, QPainter *painter) { | 350 | void 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 | if ( mode == QIconSet::Disabled ) |
394 | pixmap = button->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
395 | else | ||
396 | pixmap = button->iconSet()->pixmap(); | ||
394 | if (button->text().isEmpty() && !button->pixmap()) { | 397 | if (button->text().isEmpty() && !button->pixmap()) { |
395 | painter->drawPixmap(x+w/2 - pixmap.width()/2, | 398 | painter->drawPixmap(x+w/2 - pixmap.width()/2, |
396 | y+h/2 - pixmap.height()/2, pixmap); | 399 | y+h/2 - pixmap.height()/2, pixmap); |
397 | } else { | 400 | } else { |
398 | painter->drawPixmap(x+4, y+h/2 - pixmap.height()/2, pixmap); | 401 | painter->drawPixmap(x+4, y+h/2 - pixmap.height()/2, pixmap); |
399 | } | 402 | } |
400 | x += pixmap.width() + 4; | 403 | x += pixmap.width() + 4; |
401 | w -= pixmap.width() + 4; | 404 | w -= pixmap.width() + 4; |
402 | } | 405 | } |
403 | 406 | ||
404 | if (active || button->isDefault()) { // default button | 407 | if (active || button->isDefault()) { // default button |
405 | for(int n=0; n<2; n++) { | 408 | for(int n=0; n<2; n++) { |
406 | drawItem(painter, x+n, y, w, h, | 409 | drawItem(painter, x+n, y, w, h, |
407 | AlignCenter | ShowPrefix, | 410 | AlignCenter | ShowPrefix, |
408 | button->colorGroup(), | 411 | button->colorGroup(), |
409 | button->isEnabled(), | 412 | button->isEnabled(), |
410 | button->pixmap(), | 413 | button->pixmap(), |
411 | button->text(), -1, | 414 | button->text(), -1, |
412 | (button->isEnabled()) ? | 415 | (button->isEnabled()) ? |
413 | &button->colorGroup().buttonText() : | 416 | &button->colorGroup().buttonText() : |
414 | &button->colorGroup().mid()); | 417 | &button->colorGroup().mid()); |
415 | } | 418 | } |
416 | } else { // normal button | 419 | } else { // normal button |
417 | drawItem(painter, x, y, w, h, | 420 | drawItem(painter, x, y, w, h, |
418 | AlignCenter | ShowPrefix, | 421 | AlignCenter | ShowPrefix, |
419 | button->colorGroup(), | 422 | button->colorGroup(), |
420 | button->isEnabled(), | 423 | button->isEnabled(), |
421 | button->pixmap(), | 424 | button->pixmap(), |
422 | button->text(), -1, | 425 | button->text(), -1, |
423 | (button->isEnabled()) ? | 426 | (button->isEnabled()) ? |
424 | &button->colorGroup().buttonText() : | 427 | &button->colorGroup().buttonText() : |
425 | &button->colorGroup().mid()); | 428 | &button->colorGroup().mid()); |
426 | } | 429 | } |
427 | } | 430 | } |
428 | 431 | ||
429 | 432 | ||
430 | void PhaseStyle::drawFocusRect(QPainter *painter, const QRect &rect, | 433 | void PhaseStyle::drawFocusRect(QPainter *painter, const QRect &rect, |
431 | const QColorGroup &group, | 434 | const QColorGroup &group, |
432 | const QColor *, bool atBorder) { | 435 | const QColor *, bool atBorder) { |
433 | 436 | ||
434 | 437 | ||
435 | QPen old = painter->pen(); | 438 | QPen old = painter->pen(); |
436 | painter->setPen(group.highlight().dark(contrast)); | 439 | painter->setPen(group.highlight().dark(contrast)); |
437 | painter->setBrush(NoBrush); | 440 | painter->setBrush(NoBrush); |
438 | 441 | ||
439 | if ( atBorder ) | 442 | if ( atBorder ) |
440 | painter->drawRect(QRect(rect.x()+1, rect.y()+1, | 443 | painter->drawRect(QRect(rect.x()+1, rect.y()+1, |
441 | rect.width()-2, rect.height()-2 )); | 444 | rect.width()-2, rect.height()-2 )); |
442 | else | 445 | else |
443 | painter->drawRect(rect); | 446 | painter->drawRect(rect); |
444 | 447 | ||
445 | 448 | ||
446 | painter->setPen(old); | 449 | painter->setPen(old); |
447 | 450 | ||
448 | } | 451 | } |
449 | 452 | ||
450 | void PhaseStyle::drawSeperator( QPainter* painter, int x, int y, int w, | 453 | void PhaseStyle::drawSeperator( QPainter* painter, int x, int y, int w, |
451 | int h, const QColorGroup& group, bool, | 454 | int h, const QColorGroup& group, bool, |
452 | int , int ) { | 455 | int , int ) { |
453 | qWarning( "Seperator" ); | 456 | qWarning( "Seperator" ); |
454 | QRect rect(x, y, w, h); | 457 | QRect rect(x, y, w, h); |
455 | int x2 = rect.right(); | 458 | int x2 = rect.right(); |
456 | int y2 = rect.bottom(); | 459 | int y2 = rect.bottom(); |
457 | 460 | ||
@@ -508,221 +511,224 @@ void PhaseStyle::drawExclusiveIndicator(QPainter* painter, int x, int y, int w, | |||
508 | if (0 == w % 2) --w; | 511 | if (0 == w % 2) --w; |
509 | if (0 == h % 2) --h; | 512 | if (0 == h % 2) --h; |
510 | painter->drawEllipse(x, y, w, h ); | 513 | painter->drawEllipse(x, y, w, h ); |
511 | 514 | ||
512 | if(on) { | 515 | if(on) { |
513 | painter->setBrush(group.brush(QColorGroup::Highlight)); | 516 | painter->setBrush(group.brush(QColorGroup::Highlight)); |
514 | painter->drawEllipse(x+3,y+3,w-6,h-6); | 517 | painter->drawEllipse(x+3,y+3,w-6,h-6); |
515 | } | 518 | } |
516 | 519 | ||
517 | painter->restore(); | 520 | painter->restore(); |
518 | } | 521 | } |
519 | 522 | ||
520 | 523 | ||
521 | /* | 524 | /* |
522 | * Does not get called in QWS as it seems | 525 | * Does not get called in QWS as it seems |
523 | */ | 526 | */ |
524 | void PhaseStyle::drawExclusiveIndicatorMask(QPainter *painter, int x, int y, int w, | 527 | void PhaseStyle::drawExclusiveIndicatorMask(QPainter *painter, int x, int y, int w, |
525 | int h, bool /*on*/ ) { | 528 | int h, bool /*on*/ ) { |
526 | return; | 529 | return; |
527 | 530 | ||
528 | 531 | ||
529 | 532 | ||
530 | if (0 != w%2) --w; | 533 | if (0 != w%2) --w; |
531 | if (0 != h%2) --h; | 534 | if (0 != h%2) --h; |
532 | 535 | ||
533 | QRect r(x, y, w, h ); | 536 | QRect r(x, y, w, h ); |
534 | int x2 = r.right(); | 537 | int x2 = r.right(); |
535 | int y2 = r.bottom(); | 538 | int y2 = r.bottom(); |
536 | int cx = (x + x2) / 2; | 539 | int cx = (x + x2) / 2; |
537 | int cy = (y + y2) / 2; | 540 | int cy = (y + y2) / 2; |
538 | QPointArray parray; | 541 | QPointArray parray; |
539 | 542 | ||
540 | 543 | ||
541 | painter->setBrush(Qt::color1); | 544 | painter->setBrush(Qt::color1); |
542 | painter->setPen(Qt::color1); | 545 | painter->setPen(Qt::color1); |
543 | parray.putPoints(0, 8, | 546 | parray.putPoints(0, 8, |
544 | x,cy+1, x,cy, cx,y, cx+1,y, | 547 | x,cy+1, x,cy, cx,y, cx+1,y, |
545 | x2,cy, x2,cy+1, cx+1,y2, cx,y2); | 548 | x2,cy, x2,cy+1, cx+1,y2, cx,y2); |
546 | painter->drawPolygon(parray, 0, 8); | 549 | painter->drawPolygon(parray, 0, 8); |
547 | } | 550 | } |
548 | 551 | ||
549 | int PhaseStyle::defaultFrameWidth()const { | 552 | int PhaseStyle::defaultFrameWidth()const { |
550 | return 1; | 553 | return 1; |
551 | } | 554 | } |
552 | 555 | ||
553 | int PhaseStyle::popupMenuItemHeight ( bool , | 556 | int PhaseStyle::popupMenuItemHeight ( bool , |
554 | QMenuItem * mi, | 557 | QMenuItem * mi, |
555 | const QFontMetrics & fm ) { | 558 | const QFontMetrics & fm ) { |
556 | int h = 0; | 559 | int h = 0; |
557 | if (mi->custom() ) { | 560 | if (mi->custom() ) { |
558 | h = mi->custom()->sizeHint().height(); | 561 | h = mi->custom()->sizeHint().height(); |
559 | if (!mi->custom()->fullSpan() ) | 562 | if (!mi->custom()->fullSpan() ) |
560 | h += ITEMVMARGIN*2 + ITEMFRAME*2; | 563 | h += ITEMVMARGIN*2 + ITEMFRAME*2; |
561 | }else if (mi->isSeparator() ) { | 564 | }else if (mi->isSeparator() ) { |
562 | h = 1; | 565 | h = 1; |
563 | }else { | 566 | }else { |
564 | if ( mi->pixmap() ) { | 567 | if ( mi->pixmap() ) { |
565 | h = QMAX(h, mi->pixmap()->height() + ITEMFRAME*2); | 568 | h = QMAX(h, mi->pixmap()->height() + ITEMFRAME*2); |
566 | }else { | 569 | }else { |
567 | h = QMAX(h, MINICONSIZE+ITEMFRAME*2 ); | 570 | h = QMAX(h, MINICONSIZE+ITEMFRAME*2 ); |
568 | h = QMAX(h, fm.height() | 571 | h = QMAX(h, fm.height() |
569 | + ITEMVMARGIN*2 + ITEMFRAME*2 ); | 572 | + ITEMVMARGIN*2 + ITEMFRAME*2 ); |
570 | } | 573 | } |
571 | if ( mi->iconSet() ) | 574 | if ( mi->iconSet() ) |
572 | h = QMAX(h, mi->iconSet()-> | 575 | h = QMAX(h, mi->iconSet()->pixmap().height() |
573 | pixmap(QIconSet::Small, QIconSet::Normal ).height() | ||
574 | + ITEMFRAME*2 ); | 576 | + ITEMFRAME*2 ); |
575 | } | 577 | } |
576 | 578 | ||
577 | 579 | ||
578 | return h; | 580 | return h; |
579 | } | 581 | } |
580 | 582 | ||
581 | int PhaseStyle::extraPopupMenuItemWidth(bool checkable, int maxpmw, | 583 | int PhaseStyle::extraPopupMenuItemWidth(bool checkable, int maxpmw, |
582 | QMenuItem* mi, const QFontMetrics& ) { | 584 | QMenuItem* mi, const QFontMetrics& ) { |
583 | int w = 0; | 585 | int w = 0; |
584 | if (mi->isSeparator() ) | 586 | if (mi->isSeparator() ) |
585 | return 3; | 587 | return 3; |
586 | 588 | ||
587 | else if ( mi->pixmap() ) | 589 | else if ( mi->pixmap() ) |
588 | w = mi->pixmap()->width(); | 590 | w = mi->pixmap()->width(); |
589 | 591 | ||
590 | if (!mi->text().isNull() && | 592 | if (!mi->text().isNull() && |
591 | mi->text().find('\t' ) >= 0 ) | 593 | mi->text().find('\t' ) >= 0 ) |
592 | w += 12; | 594 | w += 12; |
593 | else if ( mi->popup() ) | 595 | else if ( mi->popup() ) |
594 | w += 2*ARROWMARGIN; | 596 | w += 2*ARROWMARGIN; |
595 | 597 | ||
596 | if ( maxpmw ) | 598 | if ( maxpmw ) |
597 | w += maxpmw +4; | 599 | w += maxpmw +4; |
598 | 600 | ||
599 | 601 | ||
600 | if ( maxpmw > 0 || checkable ) | 602 | if ( maxpmw > 0 || checkable ) |
601 | w += ITEMHMARGIN*2+8; | 603 | w += ITEMHMARGIN*2+8; |
602 | 604 | ||
603 | w += RIGHTBORDER; | 605 | w += RIGHTBORDER; |
604 | return w; | 606 | return w; |
605 | } | 607 | } |
606 | 608 | ||
607 | QSize PhaseStyle::indicatorSize()const { | 609 | QSize PhaseStyle::indicatorSize()const { |
608 | return QSize( 11, 11 ); | 610 | return QSize( 11, 11 ); |
609 | } | 611 | } |
610 | 612 | ||
611 | QSize PhaseStyle::exclusiveIndicatorSize()const { | 613 | QSize PhaseStyle::exclusiveIndicatorSize()const { |
612 | return QSize( 11, 11 ); | 614 | return QSize( 11, 11 ); |
613 | } | 615 | } |
614 | 616 | ||
615 | void PhaseStyle::getButtonShift( int &x, int &y ) { | 617 | void PhaseStyle::getButtonShift( int &x, int &y ) { |
616 | x++; | 618 | x++; |
617 | y++; | 619 | y++; |
618 | } | 620 | } |
619 | 621 | ||
620 | void PhaseStyle::drawPopupMenuItem ( QPainter * p, bool checkable, | 622 | void PhaseStyle::drawPopupMenuItem ( QPainter * p, bool checkable, |
621 | int maxpmw,int tabwidth, | 623 | int maxpmw,int tabwidth, |
622 | QMenuItem * mi, const QPalette & pal, | 624 | QMenuItem * mi, const QPalette & pal, |
623 | bool act, bool enabled, int x, | 625 | bool act, bool enabled, int x, |
624 | int y, int w, int h ) { | 626 | int y, int w, int h ) { |
625 | if ( !mi ) | 627 | if ( !mi ) |
626 | return; | 628 | return; |
627 | 629 | ||
628 | QRect rect(x, y, w, h ); | 630 | QRect rect(x, y, w, h ); |
629 | int x2, y2; | 631 | int x2, y2; |
630 | x2 = rect.right(); | 632 | x2 = rect.right(); |
631 | y2 = rect.bottom(); | 633 | y2 = rect.bottom(); |
632 | const QColorGroup& g = pal.active(); | 634 | const QColorGroup& g = pal.active(); |
633 | QColorGroup itemg = !enabled ? pal.disabled() : pal.active(); | 635 | QColorGroup itemg = !enabled ? pal.disabled() : pal.active(); |
634 | 636 | ||
635 | if ( checkable || maxpmw ) maxpmw = QMAX(maxpmw, 20); | 637 | if ( checkable || maxpmw ) maxpmw = QMAX(maxpmw, 20); |
636 | 638 | ||
637 | if (act && enabled ) | 639 | if (act && enabled ) |
638 | p->fillRect(x, y, w, h, g.highlight() ); | 640 | p->fillRect(x, y, w, h, g.highlight() ); |
639 | else | 641 | else |
640 | p->fillRect(x, y, w, h, g.background() ); | 642 | p->fillRect(x, y, w, h, g.background() ); |
641 | 643 | ||
642 | // draw seperator | 644 | // draw seperator |
643 | if (mi->isSeparator() ) { | 645 | if (mi->isSeparator() ) { |
644 | p->setPen( g.dark() ); | 646 | p->setPen( g.dark() ); |
645 | p->drawLine( x+8, y+1, x+w-8, y+1 ); | 647 | p->drawLine( x+8, y+1, x+w-8, y+1 ); |
646 | 648 | ||
647 | p->setPen( g.mid() ); | 649 | p->setPen( g.mid() ); |
648 | p->drawLine( x+8, y, x+w-8, y ); | 650 | p->drawLine( x+8, y, x+w-8, y ); |
649 | p->drawPoint(x+w,y+1); | 651 | p->drawPoint(x+w,y+1); |
650 | 652 | ||
651 | p->setPen( g.midlight() ); | 653 | p->setPen( g.midlight() ); |
652 | p->drawLine( x+8, y-1, x+w-8, y-1 ); | 654 | p->drawLine( x+8, y-1, x+w-8, y-1 ); |
653 | p->drawPoint(x+8, y ); | 655 | p->drawPoint(x+8, y ); |
654 | return; | 656 | return; |
655 | } | 657 | } |
656 | 658 | ||
657 | // draw icon | 659 | // draw icon |
658 | QIconSet::Mode mode; | 660 | QIconSet::Mode mode; |
659 | if ( mi->iconSet() && !mi->isChecked() ) { | 661 | if ( mi->iconSet() && !mi->isChecked() ) { |
660 | if ( act ) | 662 | if ( act ) |
661 | mode = enabled ? QIconSet::Active : QIconSet::Disabled; | 663 | mode = enabled ? QIconSet::Active : QIconSet::Disabled; |
662 | else | 664 | else |
663 | mode = enabled ? QIconSet::Normal : QIconSet::Disabled; | 665 | mode = enabled ? QIconSet::Normal : QIconSet::Disabled; |
664 | QPixmap pixmap = mi->iconSet()->pixmap(QIconSet::Small, mode ); | 666 | QPixmap pixmap; |
667 | if ( mode == QIconSet::Disabled ) | ||
668 | pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
669 | else | ||
670 | pixmap = mi->iconSet()->pixmap(); | ||
665 | QRect pmrect(0, 0, pixmap.width(), pixmap.height() ); | 671 | QRect pmrect(0, 0, pixmap.width(), pixmap.height() ); |
666 | QRect cr(x, y, maxpmw, h ); | 672 | QRect cr(x, y, maxpmw, h ); |
667 | pmrect.moveCenter( cr.center() ); | 673 | pmrect.moveCenter( cr.center() ); |
668 | p->drawPixmap(pmrect.topLeft(), pixmap); | 674 | p->drawPixmap(pmrect.topLeft(), pixmap); |
669 | } | 675 | } |
670 | 676 | ||
671 | // draw check | 677 | // draw check |
672 | if(mi->isChecked() ) { | 678 | if(mi->isChecked() ) { |
673 | drawCheckMark(p, x, y, maxpmw, h, itemg, act, !enabled ); | 679 | drawCheckMark(p, x, y, maxpmw, h, itemg, act, !enabled ); |
674 | } | 680 | } |
675 | 681 | ||
676 | 682 | ||
677 | // draw text | 683 | // draw text |
678 | int xm = maxpmw + 2; | 684 | int xm = maxpmw + 2; |
679 | int xp = x + xm; | 685 | int xp = x + xm; |
680 | int tw = w -xm - 2; | 686 | int tw = w -xm - 2; |
681 | 687 | ||
682 | p->setPen( enabled ? ( act ? g.highlightedText() : g.buttonText() ) : | 688 | p->setPen( enabled ? ( act ? g.highlightedText() : g.buttonText() ) : |
683 | g.mid() ); | 689 | g.mid() ); |
684 | 690 | ||
685 | 691 | ||
686 | if ( mi->custom() ) { | 692 | if ( mi->custom() ) { |
687 | p->save(); | 693 | p->save(); |
688 | mi->custom()->paint(p, g, act, enabled, | 694 | mi->custom()->paint(p, g, act, enabled, |
689 | xp, y+1, tw, h-2 ); | 695 | xp, y+1, tw, h-2 ); |
690 | p->restore(); | 696 | p->restore(); |
691 | }else { // draw label | 697 | }else { // draw label |
692 | QString text = mi->text(); | 698 | QString text = mi->text(); |
693 | if (!text.isNull() ) { | 699 | if (!text.isNull() ) { |
694 | int t = text.find('\t'); | 700 | int t = text.find('\t'); |
695 | const int tflags = AlignVCenter | DontClip | | 701 | const int tflags = AlignVCenter | DontClip | |
696 | ShowPrefix | SingleLine | | 702 | ShowPrefix | SingleLine | |
697 | AlignLeft; | 703 | AlignLeft; |
698 | 704 | ||
699 | if (t >= 0) { | 705 | if (t >= 0) { |
700 | int tabx = x + w - tabwidth - RIGHTBORDER - | 706 | int tabx = x + w - tabwidth - RIGHTBORDER - |
701 | ITEMHMARGIN - ITEMFRAME; | 707 | ITEMHMARGIN - ITEMFRAME; |
702 | p->drawText(tabx, y+ITEMVMARGIN, tabwidth, | 708 | p->drawText(tabx, y+ITEMVMARGIN, tabwidth, |
703 | h-2*ITEMVMARGIN, tflags, | 709 | h-2*ITEMVMARGIN, tflags, |
704 | text.mid(t+1) ); | 710 | text.mid(t+1) ); |
705 | text = text.left(t ); | 711 | text = text.left(t ); |
706 | } | 712 | } |
707 | 713 | ||
708 | // draw left label | 714 | // draw left label |
709 | p->drawText(xp, y+ITEMVMARGIN, | 715 | p->drawText(xp, y+ITEMVMARGIN, |
710 | tw, h-2*ITEMVMARGIN, | 716 | tw, h-2*ITEMVMARGIN, |
711 | tflags, text, t); | 717 | tflags, text, t); |
712 | }else if ( mi->pixmap() ) { // pixmap as label | 718 | }else if ( mi->pixmap() ) { // pixmap as label |
713 | QPixmap pixmap = *mi->pixmap(); | 719 | QPixmap pixmap = *mi->pixmap(); |
714 | if ( pixmap.depth() == 1 ) | 720 | if ( pixmap.depth() == 1 ) |
715 | p->setBackgroundMode( OpaqueMode ); | 721 | p->setBackgroundMode( OpaqueMode ); |
716 | 722 | ||
717 | int dx = ((w-pixmap.width() ) /2 ) + | 723 | int dx = ((w-pixmap.width() ) /2 ) + |
718 | ((w - pixmap.width()) %2 ); | 724 | ((w - pixmap.width()) %2 ); |
719 | p->drawPixmap(x+dx, y+ITEMFRAME, pixmap ); | 725 | p->drawPixmap(x+dx, y+ITEMFRAME, pixmap ); |
720 | 726 | ||
721 | if ( pixmap.depth() == 1 ) | 727 | if ( pixmap.depth() == 1 ) |
722 | p->setBackgroundMode( TransparentMode ); | 728 | p->setBackgroundMode( TransparentMode ); |
723 | } | 729 | } |
724 | } | 730 | } |
725 | 731 | ||
726 | if ( mi->popup() ) { // draw submenu arrow | 732 | if ( mi->popup() ) { // draw submenu arrow |
727 | int dim = (h-2*ITEMFRAME) / 2; | 733 | int dim = (h-2*ITEMFRAME) / 2; |
728 | drawArrow( p, RightArrow, false, | 734 | drawArrow( p, RightArrow, false, |
diff --git a/noncore/styles/theme/othemestyle.cpp b/noncore/styles/theme/othemestyle.cpp index 98e7253..106d206 100644 --- a/noncore/styles/theme/othemestyle.cpp +++ b/noncore/styles/theme/othemestyle.cpp | |||
@@ -1,202 +1,202 @@ | |||
1 | /* This file is part of the KDE libraries | 1 | /* This file is part of the KDE libraries |
2 | Copyright (C) 1999 Daniel M. Duley <mosfet@kde.org> | 2 | Copyright (C) 1999 Daniel M. Duley <mosfet@kde.org> |
3 | 3 | ||
4 | This library is free software; you can redistribute it and/or | 4 | This library is free software; you can redistribute it and/or |
5 | modify it under the terms of the GNU Library General Public | 5 | modify it under the terms of the GNU Library General Public |
6 | License version 2 as published by the Free Software Foundation. | 6 | License version 2 as published by the Free Software Foundation. |
7 | 7 | ||
8 | This library is distributed in the hope that it will be useful, | 8 | This library is distributed in the hope that it will be useful, |
9 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
11 | Library General Public License for more details. | 11 | Library General Public License for more details. |
12 | 12 | ||
13 | You should have received a copy of the GNU Library General Public License | 13 | You should have received a copy of the GNU Library General Public License |
14 | along with this library; see the file COPYING.LIB. If not, write to | 14 | along with this library; see the file COPYING.LIB. If not, write to |
15 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 15 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
16 | Boston, MA 02111-1307, USA. | 16 | Boston, MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include "othemestyle.h" | 19 | #include "othemestyle.h" |
20 | #include "othemebase.h" | 20 | #include "othemebase.h" |
21 | #include <qpe/qpeapplication.h> | 21 | #include <qpe/qpeapplication.h> |
22 | #include <qbitmap.h> | 22 | #include <qbitmap.h> |
23 | #define INCLUDE_MENUITEM_DEF | 23 | #define INCLUDE_MENUITEM_DEF |
24 | #include <qmenudata.h> | 24 | #include <qmenudata.h> |
25 | #include <qpopupmenu.h> | 25 | #include <qpopupmenu.h> |
26 | #include <qtabbar.h> | 26 | #include <qtabbar.h> |
27 | #include <qglobal.h> | 27 | #include <qglobal.h> |
28 | #include <qprogressbar.h> | 28 | #include <qprogressbar.h> |
29 | 29 | ||
30 | #include <limits.h> | 30 | #include <limits.h> |
31 | #include <stdio.h> | 31 | #include <stdio.h> |
32 | 32 | ||
33 | typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, | 33 | typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, |
34 | QColorGroup &, bool, bool); | 34 | QColorGroup &, bool, bool); |
35 | 35 | ||
36 | QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl); | 36 | QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl); |
37 | 37 | ||
38 | 38 | ||
39 | /* !! HACK !! Beware | 39 | /* !! HACK !! Beware |
40 | * | 40 | * |
41 | * TT forgot to make the QProgressBar widget styleable in Qt 2.x | 41 | * TT forgot to make the QProgressBar widget styleable in Qt 2.x |
42 | * So the only way to customize the drawing, is to intercept the | 42 | * So the only way to customize the drawing, is to intercept the |
43 | * paint event - since we have to use protected functions, we need | 43 | * paint event - since we have to use protected functions, we need |
44 | * to derive a "hack" class from QProgressBar and do the painting | 44 | * to derive a "hack" class from QProgressBar and do the painting |
45 | * in there. | 45 | * in there. |
46 | * | 46 | * |
47 | * - sandman | 47 | * - sandman |
48 | */ | 48 | */ |
49 | 49 | ||
50 | class HackProgressBar : public QProgressBar { | 50 | class HackProgressBar : public QProgressBar { |
51 | public: | 51 | public: |
52 | HackProgressBar ( ); | 52 | HackProgressBar ( ); |
53 | 53 | ||
54 | void paint ( QPaintEvent *event, OThemeStyle *style ) | 54 | void paint ( QPaintEvent *event, OThemeStyle *style ) |
55 | { | 55 | { |
56 | QPainter p( this ); | 56 | QPainter p( this ); |
57 | 57 | ||
58 | if ( !contentsRect().contains( event->rect() ) ) { | 58 | if ( !contentsRect().contains( event->rect() ) ) { |
59 | p.save(); | 59 | p.save(); |
60 | p.setClipRegion( event->region().intersect(frameRect()) ); | 60 | p.setClipRegion( event->region().intersect(frameRect()) ); |
61 | drawFrame( &p); | 61 | drawFrame( &p); |
62 | p.restore(); | 62 | p.restore(); |
63 | } | 63 | } |
64 | if ( event->rect().intersects( contentsRect() )) { | 64 | if ( event->rect().intersects( contentsRect() )) { |
65 | p.setClipRegion( event->region().intersect( contentsRect() ) ); | 65 | p.setClipRegion( event->region().intersect( contentsRect() ) ); |
66 | 66 | ||
67 | int x, y, w, h; | 67 | int x, y, w, h; |
68 | contentsRect ( ). rect ( &x, &y, &w, &h ); | 68 | contentsRect ( ). rect ( &x, &y, &w, &h ); |
69 | 69 | ||
70 | int prog = progress ( ); | 70 | int prog = progress ( ); |
71 | int total = totalSteps ( ); | 71 | int total = totalSteps ( ); |
72 | if ( prog < 0 ) | 72 | if ( prog < 0 ) |
73 | prog = 0; | 73 | prog = 0; |
74 | if ( total <= 0 ) | 74 | if ( total <= 0 ) |
75 | total = 1; | 75 | total = 1; |
76 | int perc = prog * 100 / total; | 76 | int perc = prog * 100 / total; |
77 | 77 | ||
78 | style-> drawProgressBar ( &p, x, y, w, h, colorGroup ( ), perc ); | 78 | style-> drawProgressBar ( &p, x, y, w, h, colorGroup ( ), perc ); |
79 | 79 | ||
80 | if ( progress ( ) >= 0 && totalSteps ( ) > 0 ) { | 80 | if ( progress ( ) >= 0 && totalSteps ( ) > 0 ) { |
81 | QString pstr; | 81 | QString pstr; |
82 | pstr. sprintf ( "%d%%", 100 * progress()/totalSteps ()); | 82 | pstr. sprintf ( "%d%%", 100 * progress()/totalSteps ()); |
83 | p. setPen ( colorGroup().text());//g.highlightedText ( )); | 83 | p. setPen ( colorGroup().text());//g.highlightedText ( )); |
84 | p. drawText (x,y,w-1,h-1,AlignCenter,pstr); | 84 | p. drawText (x,y,w-1,h-1,AlignCenter,pstr); |
85 | } | 85 | } |
86 | } | 86 | } |
87 | } | 87 | } |
88 | }; | 88 | }; |
89 | 89 | ||
90 | 90 | ||
91 | #define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) | 91 | #define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) |
92 | 92 | ||
93 | OThemeStyle::OThemeStyle( const QString &configFile ) | 93 | OThemeStyle::OThemeStyle( const QString &configFile ) |
94 | : OThemeBase( configFile ) | 94 | : OThemeBase( configFile ) |
95 | { | 95 | { |
96 | setScrollBarExtent( getSBExtent(), getSBExtent() ); | 96 | setScrollBarExtent( getSBExtent(), getSBExtent() ); |
97 | setButtonDefaultIndicatorWidth( 0 ); // We REALLY should support one, see drawPushButton() below! | 97 | setButtonDefaultIndicatorWidth( 0 ); // We REALLY should support one, see drawPushButton() below! |
98 | } | 98 | } |
99 | 99 | ||
100 | OThemeStyle::~OThemeStyle() | 100 | OThemeStyle::~OThemeStyle() |
101 | {} | 101 | {} |
102 | 102 | ||
103 | void OThemeStyle::polish( QApplication * /*app*/ ) | 103 | void OThemeStyle::polish( QApplication * /*app*/ ) |
104 | { | 104 | { |
105 | qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl) &OThemeStyle::drawMenuBarItem); | 105 | qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl) &OThemeStyle::drawMenuBarItem); |
106 | } | 106 | } |
107 | 107 | ||
108 | 108 | ||
109 | void OThemeStyle::polish( QPalette &p ) | 109 | void OThemeStyle::polish( QPalette &p ) |
110 | { | 110 | { |
111 | oldPalette = p; | 111 | oldPalette = p; |
112 | 112 | ||
113 | QColor bg = oldPalette. color ( QPalette::Normal, QColorGroup::Background ); | 113 | QColor bg = oldPalette. color ( QPalette::Normal, QColorGroup::Background ); |
114 | 114 | ||
115 | if ( bgcolor. isValid ( )) | 115 | if ( bgcolor. isValid ( )) |
116 | bg = bgcolor; | 116 | bg = bgcolor; |
117 | 117 | ||
118 | if ( isColor ( Background )) | 118 | if ( isColor ( Background )) |
119 | bg = colorGroup ( oldPalette. active ( ), Background )-> background ( ); | 119 | bg = colorGroup ( oldPalette. active ( ), Background )-> background ( ); |
120 | 120 | ||
121 | p = QPalette ( bg, bg ); | 121 | p = QPalette ( bg, bg ); |
122 | 122 | ||
123 | if ( isPixmap( Background ) ) | 123 | if ( isPixmap( Background ) ) |
124 | p. setBrush ( QColorGroup::Background, QBrush ( bg, *uncached ( Background ))); | 124 | p. setBrush ( QColorGroup::Background, QBrush ( bg, *uncached ( Background ))); |
125 | 125 | ||
126 | if ( fgcolor. isValid ( )) { | 126 | if ( fgcolor. isValid ( )) { |
127 | p. setColor ( QColorGroup::Foreground, fgcolor ); | 127 | p. setColor ( QColorGroup::Foreground, fgcolor ); |
128 | p. setColor ( QColorGroup::ButtonText, fgcolor ); | 128 | p. setColor ( QColorGroup::ButtonText, fgcolor ); |
129 | } | 129 | } |
130 | if ( selfgcolor. isValid ( )) | 130 | if ( selfgcolor. isValid ( )) |
131 | p. setColor ( QColorGroup::HighlightedText, selfgcolor ); | 131 | p. setColor ( QColorGroup::HighlightedText, selfgcolor ); |
132 | if ( selbgcolor. isValid ( )) | 132 | if ( selbgcolor. isValid ( )) |
133 | p. setColor ( QColorGroup::Highlight, selbgcolor ); | 133 | p. setColor ( QColorGroup::Highlight, selbgcolor ); |
134 | if ( winfgcolor. isValid ( )) | 134 | if ( winfgcolor. isValid ( )) |
135 | p. setColor ( QColorGroup::Text, winfgcolor ); | 135 | p. setColor ( QColorGroup::Text, winfgcolor ); |
136 | if ( winbgcolor. isValid ( )) | 136 | if ( winbgcolor. isValid ( )) |
137 | p. setColor ( QColorGroup::Base, winbgcolor ); | 137 | p. setColor ( QColorGroup::Base, winbgcolor ); |
138 | 138 | ||
139 | } | 139 | } |
140 | 140 | ||
141 | 141 | ||
142 | void OThemeStyle::unPolish( QApplication *app ) | 142 | void OThemeStyle::unPolish( QApplication *app ) |
143 | { | 143 | { |
144 | qt_set_draw_menu_bar_impl ( 0 ); | 144 | qt_set_draw_menu_bar_impl ( 0 ); |
145 | app->setPalette( oldPalette, true ); | 145 | app->setPalette( oldPalette, true ); |
146 | } | 146 | } |
147 | 147 | ||
148 | void OThemeStyle::polish( QWidget *w ) | 148 | void OThemeStyle::polish( QWidget *w ) |
149 | { | 149 | { |
150 | if ( !w->isTopLevel() ) { | 150 | if ( !w->isTopLevel() ) { |
151 | if ( w->inherits( "QGroupBox" ) | 151 | if ( w->inherits( "QGroupBox" ) |
152 | || w->inherits( "QTabWidget" ) ) { | 152 | || w->inherits( "QTabWidget" ) ) { |
153 | w->setAutoMask( TRUE ); | 153 | w->setAutoMask( TRUE ); |
154 | return ; | 154 | return ; |
155 | } | 155 | } |
156 | if ( w->inherits( "QLabel" ) | 156 | if ( w->inherits( "QLabel" ) |
157 | || w->inherits( "QSlider" ) | 157 | || w->inherits( "QSlider" ) |
158 | || w->inherits( "QButton" ) | 158 | || w->inherits( "QButton" ) |
159 | || w->inherits( "QProgressBar" ) | 159 | || w->inherits( "QProgressBar" ) |
160 | ) { | 160 | ) { |
161 | w->setBackgroundOrigin( QWidget::ParentOrigin ); | 161 | w->setBackgroundOrigin( QWidget::ParentOrigin ); |
162 | } | 162 | } |
163 | } | 163 | } |
164 | if ( w->inherits( "QPopupMenu" ) ) { | 164 | if ( w->inherits( "QPopupMenu" ) ) { |
165 | popupPalette = w->palette(); | 165 | popupPalette = w->palette(); |
166 | if ( isColor( MenuItem ) || isColor( MenuItemDown ) ) { | 166 | if ( isColor( MenuItem ) || isColor( MenuItemDown ) ) { |
167 | QPalette newPal( w->palette() ); | 167 | QPalette newPal( w->palette() ); |
168 | w->setPalettePropagation( QWidget::SamePalette ); | 168 | w->setPalettePropagation( QWidget::SamePalette ); |
169 | if ( isColor( MenuItem ) ) { | 169 | if ( isColor( MenuItem ) ) { |
170 | newPal.setNormal( *colorGroup( newPal.normal(), MenuItem ) ); | 170 | newPal.setNormal( *colorGroup( newPal.normal(), MenuItem ) ); |
171 | newPal.setDisabled( *colorGroup( newPal.normal(), MenuItem ) ); | 171 | newPal.setDisabled( *colorGroup( newPal.normal(), MenuItem ) ); |
172 | } | 172 | } |
173 | if ( isColor( MenuItemDown ) ) | 173 | if ( isColor( MenuItemDown ) ) |
174 | newPal.setActive( *colorGroup( newPal.active(), MenuItemDown ) ); | 174 | newPal.setActive( *colorGroup( newPal.active(), MenuItemDown ) ); |
175 | w->setPalette( newPal ); | 175 | w->setPalette( newPal ); |
176 | } | 176 | } |
177 | } | 177 | } |
178 | else if ( w->inherits( "QCheckBox" ) ) { | 178 | else if ( w->inherits( "QCheckBox" ) ) { |
179 | if ( isColor( IndicatorOff ) || isColor( IndicatorOn ) ) { | 179 | if ( isColor( IndicatorOff ) || isColor( IndicatorOn ) ) { |
180 | QPalette newPal( w->palette() ); | 180 | QPalette newPal( w->palette() ); |
181 | w->setPalettePropagation( QWidget::SamePalette ); | 181 | w->setPalettePropagation( QWidget::SamePalette ); |
182 | if ( isColor( IndicatorOff ) ) { | 182 | if ( isColor( IndicatorOff ) ) { |
183 | newPal.setNormal( *colorGroup( newPal.normal(), IndicatorOff ) ); | 183 | newPal.setNormal( *colorGroup( newPal.normal(), IndicatorOff ) ); |
184 | newPal.setDisabled( *colorGroup( newPal.normal(), IndicatorOff ) ); | 184 | newPal.setDisabled( *colorGroup( newPal.normal(), IndicatorOff ) ); |
185 | } | 185 | } |
186 | if ( isColor( IndicatorOn ) ) | 186 | if ( isColor( IndicatorOn ) ) |
187 | newPal.setActive( *colorGroup( newPal.active(), IndicatorOn ) ); | 187 | newPal.setActive( *colorGroup( newPal.active(), IndicatorOn ) ); |
188 | w->setPalette( newPal ); | 188 | w->setPalette( newPal ); |
189 | } | 189 | } |
190 | } | 190 | } |
191 | else if ( w->inherits( "QRadioButton" ) ) { | 191 | else if ( w->inherits( "QRadioButton" ) ) { |
192 | if ( isColor( ExIndicatorOff ) || isColor( ExIndicatorOn ) ) { | 192 | if ( isColor( ExIndicatorOff ) || isColor( ExIndicatorOn ) ) { |
193 | QPalette newPal( w->palette() ); | 193 | QPalette newPal( w->palette() ); |
194 | w->setPalettePropagation( QWidget::SamePalette ); | 194 | w->setPalettePropagation( QWidget::SamePalette ); |
195 | if ( isColor( ExIndicatorOff ) ) { | 195 | if ( isColor( ExIndicatorOff ) ) { |
196 | newPal.setNormal( *colorGroup( newPal.normal(), ExIndicatorOff ) ); | 196 | newPal.setNormal( *colorGroup( newPal.normal(), ExIndicatorOff ) ); |
197 | newPal.setDisabled( *colorGroup( newPal.normal(), | 197 | newPal.setDisabled( *colorGroup( newPal.normal(), |
198 | ExIndicatorOff ) ); | 198 | ExIndicatorOff ) ); |
199 | } | 199 | } |
200 | if ( isColor( ExIndicatorOn ) ) | 200 | if ( isColor( ExIndicatorOn ) ) |
201 | newPal.setActive( *colorGroup( newPal.active(), ExIndicatorOn ) ); | 201 | newPal.setActive( *colorGroup( newPal.active(), ExIndicatorOn ) ); |
202 | w->setPalette( newPal ); | 202 | w->setPalette( newPal ); |
@@ -1122,414 +1122,417 @@ void OThemeStyle::drawShade( QPainter *p, int x, int y, int w, int h, | |||
1122 | p->setPen( highPen ); | 1122 | p->setPen( highPen ); |
1123 | p->drawLineSegments( highShade, 0, 2 ); | 1123 | p->drawLineSegments( highShade, 0, 2 ); |
1124 | p->setPen( lowPen ); | 1124 | p->setPen( lowPen ); |
1125 | p->drawLineSegments( lowShade, 0, 2 ); | 1125 | p->drawLineSegments( lowShade, 0, 2 ); |
1126 | 1126 | ||
1127 | p->setPen( ( sunken ) ? g.dark() : g.mid() ); | 1127 | p->setPen( ( sunken ) ? g.dark() : g.mid() ); |
1128 | p->drawLineSegments( highShade, 4 ); | 1128 | p->drawLineSegments( highShade, 4 ); |
1129 | p->setPen( ( sunken ) ? g.mid() : g.dark() ); | 1129 | p->setPen( ( sunken ) ? g.mid() : g.dark() ); |
1130 | p->drawLineSegments( lowShade, 4 ); | 1130 | p->drawLineSegments( lowShade, 4 ); |
1131 | } | 1131 | } |
1132 | else { | 1132 | else { |
1133 | p->setPen( ( sunken ) ? g.dark() : g.light() ); | 1133 | p->setPen( ( sunken ) ? g.dark() : g.light() ); |
1134 | p->drawLineSegments( highShade ); | 1134 | p->drawLineSegments( highShade ); |
1135 | p->setPen( ( sunken ) ? g.light() : g.dark() ); | 1135 | p->setPen( ( sunken ) ? g.light() : g.dark() ); |
1136 | p->drawLineSegments( lowShade ); | 1136 | p->drawLineSegments( lowShade ); |
1137 | } | 1137 | } |
1138 | } | 1138 | } |
1139 | } | 1139 | } |
1140 | 1140 | ||
1141 | void OThemeStyle::drawPushButtonLabel( QPushButton *btn, QPainter *p ) | 1141 | void OThemeStyle::drawPushButtonLabel( QPushButton *btn, QPainter *p ) |
1142 | { | 1142 | { |
1143 | WidgetType widget = btn->isDown() || btn->isOn() ? PushButtonDown : | 1143 | WidgetType widget = btn->isDown() || btn->isOn() ? PushButtonDown : |
1144 | PushButton; | 1144 | PushButton; |
1145 | const QColorGroup *cg = colorGroup( btn->colorGroup(), widget ); | 1145 | const QColorGroup *cg = colorGroup( btn->colorGroup(), widget ); |
1146 | int x, y, w, h; | 1146 | int x, y, w, h; |
1147 | 1147 | ||
1148 | QRect r = btn->rect(); | 1148 | QRect r = btn->rect(); |
1149 | r.rect( &x, &y, &w, &h ); | 1149 | r.rect( &x, &y, &w, &h ); |
1150 | x += decoWidth( widget ); | 1150 | x += decoWidth( widget ); |
1151 | y += decoWidth( widget ); | 1151 | y += decoWidth( widget ); |
1152 | w -= decoWidth( widget ) * 2; | 1152 | w -= decoWidth( widget ) * 2; |
1153 | h -= decoWidth( widget ) * 2; | 1153 | h -= decoWidth( widget ) * 2; |
1154 | bool act = btn->isOn() || btn->isDown(); | 1154 | bool act = btn->isOn() || btn->isDown(); |
1155 | 1155 | ||
1156 | // If this is a button with an associated popup menu, draw an arrow first | 1156 | // If this is a button with an associated popup menu, draw an arrow first |
1157 | if ( btn->popup() ) { | 1157 | if ( btn->popup() ) { |
1158 | int dx = menuButtonIndicatorWidth( btn->height() ); | 1158 | int dx = menuButtonIndicatorWidth( btn->height() ); |
1159 | 1159 | ||
1160 | QColorGroup g( btn->colorGroup() ); | 1160 | QColorGroup g( btn->colorGroup() ); |
1161 | int xx = x + w - dx - 4; | 1161 | int xx = x + w - dx - 4; |
1162 | int yy = y - 3; | 1162 | int yy = y - 3; |
1163 | int hh = h + 6; | 1163 | int hh = h + 6; |
1164 | 1164 | ||
1165 | if ( !act ) { | 1165 | if ( !act ) { |
1166 | p->setPen( g.light() ); | 1166 | p->setPen( g.light() ); |
1167 | p->drawLine( xx, yy + 3, xx, yy + hh - 4 ); | 1167 | p->drawLine( xx, yy + 3, xx, yy + hh - 4 ); |
1168 | } | 1168 | } |
1169 | else { | 1169 | else { |
1170 | p->setPen( g.button() ); | 1170 | p->setPen( g.button() ); |
1171 | p->drawLine( xx, yy + 4, xx, yy + hh - 4 ); | 1171 | p->drawLine( xx, yy + 4, xx, yy + hh - 4 ); |
1172 | } | 1172 | } |
1173 | drawArrow( p, DownArrow, FALSE, | 1173 | drawArrow( p, DownArrow, FALSE, |
1174 | x + w - dx - 2, y + 2, dx, h - 4, | 1174 | x + w - dx - 2, y + 2, dx, h - 4, |
1175 | btn->colorGroup(), | 1175 | btn->colorGroup(), |
1176 | btn->isEnabled() ); | 1176 | btn->isEnabled() ); |
1177 | w -= dx; | 1177 | w -= dx; |
1178 | } | 1178 | } |
1179 | 1179 | ||
1180 | // Next, draw iconset, if any | 1180 | // Next, draw iconset, if any |
1181 | if ( btn->iconSet() && !btn->iconSet() ->isNull() ) { | 1181 | if ( btn->iconSet() && !btn->iconSet() ->isNull() ) { |
1182 | QIconSet::Mode mode = btn->isEnabled() | 1182 | QIconSet::Mode mode = btn->isEnabled() |
1183 | ? QIconSet::Normal : QIconSet::Disabled; | 1183 | ? QIconSet::Normal : QIconSet::Disabled; |
1184 | if ( mode == QIconSet::Normal && btn->hasFocus() ) | 1184 | if ( mode == QIconSet::Normal && btn->hasFocus() ) |
1185 | mode = QIconSet::Active; | 1185 | mode = QIconSet::Active; |
1186 | QPixmap pixmap = btn->iconSet() ->pixmap( QIconSet::Small, mode ); | 1186 | QPixmap pixmap = btn->iconSet() ->pixmap( QIconSet::Automatic, mode ); |
1187 | int pixw = pixmap.width(); | 1187 | int pixw = pixmap.width(); |
1188 | int pixh = pixmap.height(); | 1188 | int pixh = pixmap.height(); |
1189 | 1189 | ||
1190 | p->drawPixmap( x + 6, y + h / 2 - pixh / 2, pixmap ); | 1190 | p->drawPixmap( x + 6, y + h / 2 - pixh / 2, pixmap ); |
1191 | x += pixw + 8; | 1191 | x += pixw + 8; |
1192 | w -= pixw + 8; | 1192 | w -= pixw + 8; |
1193 | } | 1193 | } |
1194 | 1194 | ||
1195 | if ( widget == PushButtonDown ) { | 1195 | if ( widget == PushButtonDown ) { |
1196 | drawItem( p, x + buttonXShift(), y + buttonYShift(), | 1196 | drawItem( p, x + buttonXShift(), y + buttonYShift(), |
1197 | w, h, AlignCenter | ShowPrefix, *cg, btn->isEnabled(), | 1197 | w, h, AlignCenter | ShowPrefix, *cg, btn->isEnabled(), |
1198 | btn->pixmap(), btn->text(), -1, &cg->buttonText() ); | 1198 | btn->pixmap(), btn->text(), -1, &cg->buttonText() ); |
1199 | } | 1199 | } |
1200 | else { | 1200 | else { |
1201 | drawItem( p, x, y, w, h, AlignCenter | ShowPrefix, *cg, | 1201 | drawItem( p, x, y, w, h, AlignCenter | ShowPrefix, *cg, |
1202 | btn->isEnabled(), btn->pixmap(), btn->text(), -1, | 1202 | btn->isEnabled(), btn->pixmap(), btn->text(), -1, |
1203 | &cg->buttonText() ); | 1203 | &cg->buttonText() ); |
1204 | } | 1204 | } |
1205 | } | 1205 | } |
1206 | 1206 | ||
1207 | int OThemeStyle::splitterWidth() const | 1207 | int OThemeStyle::splitterWidth() const |
1208 | { | 1208 | { |
1209 | return ( splitWidth() ); | 1209 | return ( splitWidth() ); |
1210 | } | 1210 | } |
1211 | 1211 | ||
1212 | void OThemeStyle::drawSplitter( QPainter *p, int x, int y, int w, int h, | 1212 | void OThemeStyle::drawSplitter( QPainter *p, int x, int y, int w, int h, |
1213 | const QColorGroup &g, Orientation ) | 1213 | const QColorGroup &g, Orientation ) |
1214 | { | 1214 | { |
1215 | drawBaseButton( p, x, y, w, h, *colorGroup( g, Splitter ), false, false, | 1215 | drawBaseButton( p, x, y, w, h, *colorGroup( g, Splitter ), false, false, |
1216 | Splitter ); | 1216 | Splitter ); |
1217 | } | 1217 | } |
1218 | 1218 | ||
1219 | void OThemeStyle::drawCheckMark( QPainter *p, int x, int y, int w, int h, | 1219 | void OThemeStyle::drawCheckMark( QPainter *p, int x, int y, int w, int h, |
1220 | const QColorGroup &g, bool act, bool dis ) | 1220 | const QColorGroup &g, bool act, bool dis ) |
1221 | { | 1221 | { |
1222 | if ( isPixmap( CheckMark ) ) { | 1222 | if ( isPixmap( CheckMark ) ) { |
1223 | if ( !dis ) | 1223 | if ( !dis ) |
1224 | p->drawPixmap( x + ( w - uncached( CheckMark ) ->width() ) / 2, | 1224 | p->drawPixmap( x + ( w - uncached( CheckMark ) ->width() ) / 2, |
1225 | y + ( h - uncached( CheckMark ) ->height() ) / 2, | 1225 | y + ( h - uncached( CheckMark ) ->height() ) / 2, |
1226 | *uncached( CheckMark ) ); | 1226 | *uncached( CheckMark ) ); |
1227 | } | 1227 | } |
1228 | else | 1228 | else |
1229 | QWindowsStyle::drawCheckMark( p, x, y, w, h, *colorGroup( g, CheckMark ), | 1229 | QWindowsStyle::drawCheckMark( p, x, y, w, h, *colorGroup( g, CheckMark ), |
1230 | act, dis ); | 1230 | act, dis ); |
1231 | } | 1231 | } |
1232 | 1232 | ||
1233 | int OThemeStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem *mi, | 1233 | int OThemeStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem *mi, |
1234 | const QFontMetrics &fm ) | 1234 | const QFontMetrics &fm ) |
1235 | { | 1235 | { |
1236 | int h2, h = 0; | 1236 | int h2, h = 0; |
1237 | int offset = QMAX( decoWidth( MenuItemDown ), decoWidth( MenuItem ) ) + 4; | 1237 | int offset = QMAX( decoWidth( MenuItemDown ), decoWidth( MenuItem ) ) + 4; |
1238 | 1238 | ||
1239 | if ( mi->isSeparator() ) | 1239 | if ( mi->isSeparator() ) |
1240 | return ( 2 ); | 1240 | return ( 2 ); |
1241 | if ( mi->isChecked() ) | 1241 | if ( mi->isChecked() ) |
1242 | h = isPixmap( CheckMark ) ? uncached( CheckMark ) ->height() + offset : | 1242 | h = isPixmap( CheckMark ) ? uncached( CheckMark ) ->height() + offset : |
1243 | offset + 16; | 1243 | offset + 16; |
1244 | if ( mi->pixmap() ) { | 1244 | if ( mi->pixmap() ) { |
1245 | h2 = mi->pixmap() ->height() + offset; | 1245 | h2 = mi->pixmap() ->height() + offset; |
1246 | h = h2 > h ? h2 : h; | 1246 | h = h2 > h ? h2 : h; |
1247 | } | 1247 | } |
1248 | if ( mi->iconSet() ) { | 1248 | if ( mi->iconSet() ) { |
1249 | h2 = mi->iconSet() -> | 1249 | h2 = mi->iconSet() ->pixmap().height() + offset; |
1250 | pixmap( QIconSet::Small, QIconSet::Normal ).height() + offset; | ||
1251 | h = h2 > h ? h2 : h; | 1250 | h = h2 > h ? h2 : h; |
1252 | } | 1251 | } |
1253 | h2 = fm.height() + offset; | 1252 | h2 = fm.height() + offset; |
1254 | h = h2 > h ? h2 : h; | 1253 | h = h2 > h ? h2 : h; |
1255 | return ( h ); | 1254 | return ( h ); |
1256 | } | 1255 | } |
1257 | 1256 | ||
1258 | void OThemeStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, | 1257 | void OThemeStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, |
1259 | int tab, QMenuItem* mi, | 1258 | int tab, QMenuItem* mi, |
1260 | const QPalette& pal, bool act, | 1259 | const QPalette& pal, bool act, |
1261 | bool enabled, int x, int y, int w, int h ) | 1260 | bool enabled, int x, int y, int w, int h ) |
1262 | { | 1261 | { |
1263 | // I changed the following method to be based from Qt's instead of my own | 1262 | // I changed the following method to be based from Qt's instead of my own |
1264 | // wacky code. Works much better now :P (mosfet) | 1263 | // wacky code. Works much better now :P (mosfet) |
1265 | static const int motifItemFrame = 2; // menu item frame width | 1264 | static const int motifItemFrame = 2; // menu item frame width |
1266 | static const int motifItemHMargin = 5; // menu item hor text margin | 1265 | static const int motifItemHMargin = 5; // menu item hor text margin |
1267 | static const int motifItemVMargin = 4; // menu item ver text margin | 1266 | static const int motifItemVMargin = 4; // menu item ver text margin |
1268 | 1267 | ||
1269 | static const int motifArrowHMargin = 6; // arrow horizontal margin | 1268 | static const int motifArrowHMargin = 6; // arrow horizontal margin |
1270 | static const int windowsRightBorder = 12; // right border on windowsstatic const int windowsCheckMarkWidth = 12; // checkmarks width on windows | 1269 | static const int windowsRightBorder = 12; // right border on windowsstatic const int windowsCheckMarkWidth = 12; // checkmarks width on windows |
1271 | bool dis = !enabled; | 1270 | bool dis = !enabled; |
1272 | const QColorGroup &g = dis ? *colorGroup( pal.normal(), MenuItem ) : | 1271 | const QColorGroup &g = dis ? *colorGroup( pal.normal(), MenuItem ) : |
1273 | *colorGroup( pal.normal(), MenuItemDown ); | 1272 | *colorGroup( pal.normal(), MenuItemDown ); |
1274 | 1273 | ||
1275 | QColorGroup itemg = dis ? *colorGroup( pal.disabled(), MenuItem ) | 1274 | QColorGroup itemg = dis ? *colorGroup( pal.disabled(), MenuItem ) |
1276 | : act ? *colorGroup( pal.active(), MenuItemDown ) | 1275 | : act ? *colorGroup( pal.active(), MenuItemDown ) |
1277 | : *colorGroup( pal.normal(), MenuItem ); | 1276 | : *colorGroup( pal.normal(), MenuItem ); |
1278 | 1277 | ||
1279 | maxpmw = QMAX( maxpmw, 20 ); | 1278 | maxpmw = QMAX( maxpmw, 20 ); |
1280 | int checkcol = maxpmw; | 1279 | int checkcol = maxpmw; |
1281 | 1280 | ||
1282 | if ( mi && mi->isSeparator() ) { | 1281 | if ( mi && mi->isSeparator() ) { |
1283 | p->setPen( g.dark() ); | 1282 | p->setPen( g.dark() ); |
1284 | p->drawLine( x, y, x + w, y ); | 1283 | p->drawLine( x, y, x + w, y ); |
1285 | p->setPen( g.light() ); | 1284 | p->setPen( g.light() ); |
1286 | p->drawLine( x, y + 1, x + w, y + 1 ); | 1285 | p->drawLine( x, y + 1, x + w, y + 1 ); |
1287 | return ; | 1286 | return ; |
1288 | } | 1287 | } |
1289 | if ( act ) { | 1288 | if ( act ) { |
1290 | drawBaseButton( p, x, y, w, h, g, true, false, MenuItemDown ); | 1289 | drawBaseButton( p, x, y, w, h, g, true, false, MenuItemDown ); |
1291 | } | 1290 | } |
1292 | else { | 1291 | else { |
1293 | drawShade( p, x, y, w, h, *colorGroup( g, MenuItem ), false, false, | 1292 | drawShade( p, x, y, w, h, *colorGroup( g, MenuItem ), false, false, |
1294 | highlightWidth( MenuItem ), borderWidth( MenuItem ), | 1293 | highlightWidth( MenuItem ), borderWidth( MenuItem ), |
1295 | shade() ); | 1294 | shade() ); |
1296 | int dw = decoWidth( MenuItem ); | 1295 | int dw = decoWidth( MenuItem ); |
1297 | if ( !isPixmap( MenuItem ) ) { | 1296 | if ( !isPixmap( MenuItem ) ) { |
1298 | p->fillRect( x + dw, y + dw, w - dw * 2, h - dw * 2, | 1297 | p->fillRect( x + dw, y + dw, w - dw * 2, h - dw * 2, |
1299 | colorGroup( g, MenuItem ) -> | 1298 | colorGroup( g, MenuItem ) -> |
1300 | brush( QColorGroup::Background ) ); | 1299 | brush( QColorGroup::Background ) ); |
1301 | } | 1300 | } |
1302 | else { | 1301 | else { |
1303 | // process inactive item pixmaps as one large item | 1302 | // process inactive item pixmaps as one large item |
1304 | p->drawTiledPixmap( x + dw, y + dw, w - dw * 2, h - dw * 2, *scalePixmap | 1303 | p->drawTiledPixmap( x + dw, y + dw, w - dw * 2, h - dw * 2, *scalePixmap |
1305 | (w, ((QWidget *)p->device())->height(), MenuItem), | 1304 | (w, ((QWidget *)p->device())->height(), MenuItem), |
1306 | //( w, p->clipRegion().boundingRect().height(), MenuItem ), // cliping does not work in Qt/E | 1305 | //( w, p->clipRegion().boundingRect().height(), MenuItem ), // cliping does not work in Qt/E |
1307 | x, y ); | 1306 | x, y ); |
1308 | } | 1307 | } |
1309 | 1308 | ||
1310 | if ( checkable && mi && mi->isChecked() ) { | 1309 | if ( checkable && mi && mi->isChecked() ) { |
1311 | // draw 'pressed' border around checkable items | 1310 | // draw 'pressed' border around checkable items |
1312 | // This is extremely important for items that have an iconset | 1311 | // This is extremely important for items that have an iconset |
1313 | // because the checkmark isn't drawn in that case | 1312 | // because the checkmark isn't drawn in that case |
1314 | // An alternative would be superimposing the checkmark over | 1313 | // An alternative would be superimposing the checkmark over |
1315 | // the iconset instead or not drawing the iconset at all. | 1314 | // the iconset instead or not drawing the iconset at all. |
1316 | int mw = checkcol + motifItemFrame; | 1315 | int mw = checkcol + motifItemFrame; |
1317 | drawShade( p, x, y, mw, h, g, true, false, | 1316 | drawShade( p, x, y, mw, h, g, true, false, |
1318 | highlightWidth( MenuItemDown ), | 1317 | highlightWidth( MenuItemDown ), |
1319 | borderWidth( MenuItemDown ), shade() ); | 1318 | borderWidth( MenuItemDown ), shade() ); |
1320 | } | 1319 | } |
1321 | } | 1320 | } |
1322 | if ( !mi ) | 1321 | if ( !mi ) |
1323 | return ; | 1322 | return ; |
1324 | if ( mi->iconSet() ) { | 1323 | if ( mi->iconSet() ) { |
1325 | QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; | 1324 | QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; |
1326 | if ( act && !dis ) | 1325 | if ( act && !dis ) |
1327 | mode = QIconSet::Active; | 1326 | mode = QIconSet::Active; |
1328 | QPixmap pixmap = mi->iconSet() ->pixmap( QIconSet::Small, mode ); | 1327 | QPixmap pixmap; |
1328 | if ( mode == QIconSet::Disabled ) | ||
1329 | pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
1330 | else | ||
1331 | pixmap = mi->iconSet()->pixmap(); | ||
1329 | int pixw = pixmap.width(); | 1332 | int pixw = pixmap.width(); |
1330 | int pixh = pixmap.height(); | 1333 | int pixh = pixmap.height(); |
1331 | QRect cr( x, y, checkcol, h ); | 1334 | QRect cr( x, y, checkcol, h ); |
1332 | QRect pmr( 0, 0, pixw, pixh ); | 1335 | QRect pmr( 0, 0, pixw, pixh ); |
1333 | pmr.moveCenter( cr.center() ); | 1336 | pmr.moveCenter( cr.center() ); |
1334 | p->setPen( itemg.text() ); | 1337 | p->setPen( itemg.text() ); |
1335 | p->drawPixmap( pmr.topLeft(), pixmap ); | 1338 | p->drawPixmap( pmr.topLeft(), pixmap ); |
1336 | 1339 | ||
1337 | } | 1340 | } |
1338 | else if ( checkable ) { | 1341 | else if ( checkable ) { |
1339 | int mw = checkcol + motifItemFrame; | 1342 | int mw = checkcol + motifItemFrame; |
1340 | int mh = h - 2 * motifItemFrame; | 1343 | int mh = h - 2 * motifItemFrame; |
1341 | if ( mi->isChecked() ) { | 1344 | if ( mi->isChecked() ) { |
1342 | drawCheckMark( p, x + motifItemFrame, | 1345 | drawCheckMark( p, x + motifItemFrame, |
1343 | y + motifItemFrame, mw, mh, itemg, act, dis ); | 1346 | y + motifItemFrame, mw, mh, itemg, act, dis ); |
1344 | } | 1347 | } |
1345 | } | 1348 | } |
1346 | 1349 | ||
1347 | p->setPen( colorGroup( g, act ? MenuItemDown : MenuItem ) ->text() ); | 1350 | p->setPen( colorGroup( g, act ? MenuItemDown : MenuItem ) ->text() ); |
1348 | 1351 | ||
1349 | QColor discol; | 1352 | QColor discol; |
1350 | if ( dis ) { | 1353 | if ( dis ) { |
1351 | discol = itemg.text(); | 1354 | discol = itemg.text(); |
1352 | p->setPen( discol ); | 1355 | p->setPen( discol ); |
1353 | } | 1356 | } |
1354 | 1357 | ||
1355 | int xm = motifItemFrame + checkcol + motifItemHMargin; | 1358 | int xm = motifItemFrame + checkcol + motifItemHMargin; |
1356 | 1359 | ||
1357 | QString s = mi->text(); | 1360 | QString s = mi->text(); |
1358 | if ( !s.isNull() ) { | 1361 | if ( !s.isNull() ) { |
1359 | int t = s.find( '\t' ); | 1362 | int t = s.find( '\t' ); |
1360 | int m = motifItemVMargin; | 1363 | int m = motifItemVMargin; |
1361 | const int text_flags = AlignVCenter | ShowPrefix | DontClip | SingleLine; | 1364 | const int text_flags = AlignVCenter | ShowPrefix | DontClip | SingleLine; |
1362 | if ( t >= 0 ) { | 1365 | if ( t >= 0 ) { |
1363 | if ( dis && !act ) { | 1366 | if ( dis && !act ) { |
1364 | p->setPen( g.light() ); | 1367 | p->setPen( g.light() ); |
1365 | p->drawText( x + w - tab - windowsRightBorder - motifItemHMargin - motifItemFrame + 1, | 1368 | p->drawText( x + w - tab - windowsRightBorder - motifItemHMargin - motifItemFrame + 1, |
1366 | y + m + 1, tab, h - 2 * m, text_flags, s.mid( t + 1 ) ); | 1369 | y + m + 1, tab, h - 2 * m, text_flags, s.mid( t + 1 ) ); |
1367 | p->setPen( discol ); | 1370 | p->setPen( discol ); |
1368 | } | 1371 | } |
1369 | p->drawText( x + w - tab - windowsRightBorder - motifItemHMargin - motifItemFrame, | 1372 | p->drawText( x + w - tab - windowsRightBorder - motifItemHMargin - motifItemFrame, |
1370 | y + m, tab, h - 2 * m, text_flags, s.mid( t + 1 ) ); | 1373 | y + m, tab, h - 2 * m, text_flags, s.mid( t + 1 ) ); |
1371 | } | 1374 | } |
1372 | if ( dis && !act ) { | 1375 | if ( dis && !act ) { |
1373 | p->setPen( g.light() ); | 1376 | p->setPen( g.light() ); |
1374 | p->drawText( x + xm + 1, y + m + 1, w - xm + 1, h - 2 * m, text_flags, s, t ); | 1377 | p->drawText( x + xm + 1, y + m + 1, w - xm + 1, h - 2 * m, text_flags, s, t ); |
1375 | p->setPen( discol ); | 1378 | p->setPen( discol ); |
1376 | } | 1379 | } |
1377 | p->drawText( x + xm, y + m, w - xm - tab + 1, h - 2 * m, text_flags, s, t ); | 1380 | p->drawText( x + xm, y + m, w - xm - tab + 1, h - 2 * m, text_flags, s, t ); |
1378 | } | 1381 | } |
1379 | else if ( mi->pixmap() ) { | 1382 | else if ( mi->pixmap() ) { |
1380 | QPixmap * pixmap = mi->pixmap(); | 1383 | QPixmap * pixmap = mi->pixmap(); |
1381 | if ( pixmap->depth() == 1 ) | 1384 | if ( pixmap->depth() == 1 ) |
1382 | p->setBackgroundMode( OpaqueMode ); | 1385 | p->setBackgroundMode( OpaqueMode ); |
1383 | p->drawPixmap( x + xm, y + motifItemFrame, *pixmap ); | 1386 | p->drawPixmap( x + xm, y + motifItemFrame, *pixmap ); |
1384 | if ( pixmap->depth() == 1 ) | 1387 | if ( pixmap->depth() == 1 ) |
1385 | p->setBackgroundMode( TransparentMode ); | 1388 | p->setBackgroundMode( TransparentMode ); |
1386 | } | 1389 | } |
1387 | if ( mi->popup() ) { | 1390 | if ( mi->popup() ) { |
1388 | int dim = ( h - 2 * motifItemFrame ) / 2; | 1391 | int dim = ( h - 2 * motifItemFrame ) / 2; |
1389 | if ( act ) { | 1392 | if ( act ) { |
1390 | if ( !dis ) | 1393 | if ( !dis ) |
1391 | discol = colorGroup( g, MenuItemDown ) ->text(); | 1394 | discol = colorGroup( g, MenuItemDown ) ->text(); |
1392 | //discol = white; | 1395 | //discol = white; |
1393 | QColorGroup g2( discol, g.highlight(), | 1396 | QColorGroup g2( discol, g.highlight(), |
1394 | white, white, | 1397 | white, white, |
1395 | dis ? discol : white, | 1398 | dis ? discol : white, |
1396 | discol, white ); | 1399 | discol, white ); |
1397 | drawArrow( p, RightArrow, true, | 1400 | drawArrow( p, RightArrow, true, |
1398 | x + w - motifArrowHMargin - motifItemFrame - dim, y + h / 2 - dim / 2, | 1401 | x + w - motifArrowHMargin - motifItemFrame - dim, y + h / 2 - dim / 2, |
1399 | dim, dim, g2, TRUE ); | 1402 | dim, dim, g2, TRUE ); |
1400 | } | 1403 | } |
1401 | else { | 1404 | else { |
1402 | drawArrow( p, RightArrow, | 1405 | drawArrow( p, RightArrow, |
1403 | false, | 1406 | false, |
1404 | x + w - motifArrowHMargin - motifItemFrame - dim, y + h / 2 - dim / 2, | 1407 | x + w - motifArrowHMargin - motifItemFrame - dim, y + h / 2 - dim / 2, |
1405 | dim, dim, g, mi->isEnabled() ); | 1408 | dim, dim, g, mi->isEnabled() ); |
1406 | } | 1409 | } |
1407 | } | 1410 | } |
1408 | } | 1411 | } |
1409 | 1412 | ||
1410 | void OThemeStyle::drawFocusRect( QPainter *p, const QRect &r, | 1413 | void OThemeStyle::drawFocusRect( QPainter *p, const QRect &r, |
1411 | const QColorGroup &g, const QColor *c, | 1414 | const QColorGroup &g, const QColor *c, |
1412 | bool atBorder ) | 1415 | bool atBorder ) |
1413 | { | 1416 | { |
1414 | p->setPen( g.dark() ); | 1417 | p->setPen( g.dark() ); |
1415 | if ( !is3DFocus() ) | 1418 | if ( !is3DFocus() ) |
1416 | QWindowsStyle::drawFocusRect( p, r, g, c, atBorder ); | 1419 | QWindowsStyle::drawFocusRect( p, r, g, c, atBorder ); |
1417 | else { | 1420 | else { |
1418 | int i = focusOffset(); | 1421 | int i = focusOffset(); |
1419 | p->drawLine( r.x() + i, r.y() + 1 + i, r.x() + i, r.bottom() - 1 - i ); | 1422 | p->drawLine( r.x() + i, r.y() + 1 + i, r.x() + i, r.bottom() - 1 - i ); |
1420 | p->drawLine( r.x() + 1 + i, r.y() + i, r.right() - 1 - i, r.y() + i ); | 1423 | p->drawLine( r.x() + 1 + i, r.y() + i, r.right() - 1 - i, r.y() + i ); |
1421 | p->setPen( g.light() ); | 1424 | p->setPen( g.light() ); |
1422 | p->drawLine( r.right() - i, r.y() + 1 + i, r.right() - i, r.bottom() - 1 - i ); | 1425 | p->drawLine( r.right() - i, r.y() + 1 + i, r.right() - i, r.bottom() - 1 - i ); |
1423 | p->drawLine( r.x() + 1 + i, r.bottom() - i, r.right() - 1 - i, r.bottom() - i ); | 1426 | p->drawLine( r.x() + 1 + i, r.bottom() - i, r.right() - 1 - i, r.bottom() - i ); |
1424 | } | 1427 | } |
1425 | } | 1428 | } |
1426 | 1429 | ||
1427 | #if 0 | 1430 | #if 0 |
1428 | void OThemeStyle::drawKMenuBar( QPainter *p, int x, int y, int w, int h, | 1431 | void OThemeStyle::drawKMenuBar( QPainter *p, int x, int y, int w, int h, |
1429 | const QColorGroup &g, bool, QBrush * ) | 1432 | const QColorGroup &g, bool, QBrush * ) |
1430 | { | 1433 | { |
1431 | drawBaseButton( p, x, y, w, h, *colorGroup( g, MenuBar ), false, false, | 1434 | drawBaseButton( p, x, y, w, h, *colorGroup( g, MenuBar ), false, false, |
1432 | MenuBar ); | 1435 | MenuBar ); |
1433 | } | 1436 | } |
1434 | #endif | 1437 | #endif |
1435 | 1438 | ||
1436 | void OThemeStyle::drawMenuBarItem( QPainter *p, int x, int y, int w, int h, | 1439 | void OThemeStyle::drawMenuBarItem( QPainter *p, int x, int y, int w, int h, |
1437 | QMenuItem *mi, const QColorGroup &g, | 1440 | QMenuItem *mi, const QColorGroup &g, |
1438 | bool /*enabled*/, bool active ) | 1441 | bool /*enabled*/, bool active ) |
1439 | { | 1442 | { |
1440 | if(active){ | 1443 | if(active){ |
1441 | x -= 2; // Bug in Qt/E | 1444 | x -= 2; // Bug in Qt/E |
1442 | y -= 2; | 1445 | y -= 2; |
1443 | w += 2; | 1446 | w += 2; |
1444 | h += 2; | 1447 | h += 2; |
1445 | } | 1448 | } |
1446 | 1449 | ||
1447 | const QColorGroup * cg = colorGroup( g, active ? MenuBarItem : MenuBar ); | 1450 | const QColorGroup * cg = colorGroup( g, active ? MenuBarItem : MenuBar ); |
1448 | QColor btext = cg->buttonText(); | 1451 | QColor btext = cg->buttonText(); |
1449 | if ( active ) | 1452 | if ( active ) |
1450 | drawBaseButton( p, x, y, w, h, *cg, false, false, MenuBarItem ); | 1453 | drawBaseButton( p, x, y, w, h, *cg, false, false, MenuBarItem ); |
1451 | //qDrawShadePanel(p, x, y, w, h, *cg, false, 1); | 1454 | //qDrawShadePanel(p, x, y, w, h, *cg, false, 1); |
1452 | 1455 | ||
1453 | drawItem( p, x, y, w, h, AlignCenter | ShowPrefix | DontClip | SingleLine, | 1456 | drawItem( p, x, y, w, h, AlignCenter | ShowPrefix | DontClip | SingleLine, |
1454 | *cg, mi-> isEnabled ( ), mi->pixmap(), mi->text(), | 1457 | *cg, mi-> isEnabled ( ), mi->pixmap(), mi->text(), |
1455 | -1, &btext ); | 1458 | -1, &btext ); |
1456 | } | 1459 | } |
1457 | 1460 | ||
1458 | 1461 | ||
1459 | 1462 | ||
1460 | void OThemeStyle::drawProgressBar ( QPainter *p, int x, int y, int w, int h, const QColorGroup &g, int percent ) | 1463 | void OThemeStyle::drawProgressBar ( QPainter *p, int x, int y, int w, int h, const QColorGroup &g, int percent ) |
1461 | { | 1464 | { |
1462 | const QColorGroup * cg = colorGroup( g, ProgressBg ); | 1465 | const QColorGroup * cg = colorGroup( g, ProgressBg ); |
1463 | QBrush bg; | 1466 | QBrush bg; |
1464 | bg.setColor( cg->color( QColorGroup::Background ) ); | 1467 | bg.setColor( cg->color( QColorGroup::Background ) ); |
1465 | if ( isPixmap( ProgressBg ) ) | 1468 | if ( isPixmap( ProgressBg ) ) |
1466 | bg.setPixmap( *uncached( ProgressBg ) ); | 1469 | bg.setPixmap( *uncached( ProgressBg ) ); |
1467 | 1470 | ||
1468 | int pw = w * percent / 100; | 1471 | int pw = w * percent / 100; |
1469 | 1472 | ||
1470 | p-> fillRect ( x + pw, y, w - pw, h, bg ); // ### TODO | 1473 | p-> fillRect ( x + pw, y, w - pw, h, bg ); // ### TODO |
1471 | 1474 | ||
1472 | drawBaseButton( p, x, y, pw, h, *cg, false, false, ProgressBar ); | 1475 | drawBaseButton( p, x, y, pw, h, *cg, false, false, ProgressBar ); |
1473 | } | 1476 | } |
1474 | 1477 | ||
1475 | #if 0 | 1478 | #if 0 |
1476 | 1479 | ||
1477 | void OThemeStyle::drawKProgressBlock( QPainter *p, int x, int y, int w, int h, | 1480 | void OThemeStyle::drawKProgressBlock( QPainter *p, int x, int y, int w, int h, |
1478 | const QColorGroup &g, QBrush * ) | 1481 | const QColorGroup &g, QBrush * ) |
1479 | { | 1482 | { |
1480 | drawBaseButton( p, x, y, w, h, *colorGroup( g, ProgressBar ), false, false, | 1483 | drawBaseButton( p, x, y, w, h, *colorGroup( g, ProgressBar ), false, false, |
1481 | ProgressBar ); | 1484 | ProgressBar ); |
1482 | } | 1485 | } |
1483 | 1486 | ||
1484 | void OThemeStyle::getKProgressBackground( const QColorGroup &g, QBrush &bg ) | 1487 | void OThemeStyle::getKProgressBackground( const QColorGroup &g, QBrush &bg ) |
1485 | { | 1488 | { |
1486 | const QColorGroup * cg = colorGroup( g, ProgressBg ); | 1489 | const QColorGroup * cg = colorGroup( g, ProgressBg ); |
1487 | bg.setColor( cg->color( QColorGroup::Background ) ); | 1490 | bg.setColor( cg->color( QColorGroup::Background ) ); |
1488 | if ( isPixmap( ProgressBg ) ) | 1491 | if ( isPixmap( ProgressBg ) ) |
1489 | bg.setPixmap( *uncached( ProgressBg ) ); | 1492 | bg.setPixmap( *uncached( ProgressBg ) ); |
1490 | } | 1493 | } |
1491 | #endif | 1494 | #endif |
1492 | 1495 | ||
1493 | void OThemeStyle::tabbarMetrics( const QTabBar* t, int& hframe, int& vframe, int& overlap ) | 1496 | void OThemeStyle::tabbarMetrics( const QTabBar* t, int& hframe, int& vframe, int& overlap ) |
1494 | { | 1497 | { |
1495 | QCommonStyle::tabbarMetrics( t, hframe, vframe, overlap ); | 1498 | QCommonStyle::tabbarMetrics( t, hframe, vframe, overlap ); |
1496 | } | 1499 | } |
1497 | 1500 | ||
1498 | void OThemeStyle::drawTab( QPainter* p, const QTabBar* tb, QTab* t , | 1501 | void OThemeStyle::drawTab( QPainter* p, const QTabBar* tb, QTab* t , |
1499 | bool selected ) | 1502 | bool selected ) |
1500 | { | 1503 | { |
1501 | WidgetType widget = selected ? ActiveTab : InactiveTab; | 1504 | WidgetType widget = selected ? ActiveTab : InactiveTab; |
1502 | const QColorGroup *cg = colorGroup( tb->colorGroup(), widget ); | 1505 | const QColorGroup *cg = colorGroup( tb->colorGroup(), widget ); |
1503 | int i; | 1506 | int i; |
1504 | int x = t->r.x(), y = t->r.y(); | 1507 | int x = t->r.x(), y = t->r.y(); |
1505 | int x2 = t->r.right(), y2 = t->r.bottom(); | 1508 | int x2 = t->r.right(), y2 = t->r.bottom(); |
1506 | int bWidth = borderWidth( widget ); | 1509 | int bWidth = borderWidth( widget ); |
1507 | int hWidth = highlightWidth( widget ); | 1510 | int hWidth = highlightWidth( widget ); |
1508 | if ( tb->shape() == QTabBar::RoundedAbove ) { | 1511 | if ( tb->shape() == QTabBar::RoundedAbove ) { |
1509 | if ( !selected ) { | 1512 | if ( !selected ) { |
1510 | p->fillRect( x, y, x2 - x + 1, 2, | 1513 | p->fillRect( x, y, x2 - x + 1, 2, |
1511 | tb->palette().normal().brush( QColorGroup::Background ) ); | 1514 | tb->palette().normal().brush( QColorGroup::Background ) ); |
1512 | y += 2; | 1515 | y += 2; |
1513 | } | 1516 | } |
1514 | p->setPen( cg->text() ); | 1517 | p->setPen( cg->text() ); |
1515 | i = 0; | 1518 | i = 0; |
1516 | if ( i < bWidth ) { | 1519 | if ( i < bWidth ) { |
1517 | p->drawLine( x, y + 1, x, y2 ); | 1520 | p->drawLine( x, y + 1, x, y2 ); |
1518 | p->drawLine( x2, y + 1, x2, y2 ); | 1521 | p->drawLine( x2, y + 1, x2, y2 ); |
1519 | p->drawLine( x + 1, y, x2 - 1, y ); | 1522 | p->drawLine( x + 1, y, x2 - 1, y ); |
1520 | if ( selected ? activeTabLine() : inactiveTabLine() ) { | 1523 | if ( selected ? activeTabLine() : inactiveTabLine() ) { |
1521 | p->drawLine( x, y2, x2, y2 ); | 1524 | p->drawLine( x, y2, x2, y2 ); |
1522 | --y2; | 1525 | --y2; |
1523 | } | 1526 | } |
1524 | ++i, ++x, ++y, --x2; | 1527 | ++i, ++x, ++y, --x2; |
1525 | } | 1528 | } |
1526 | for ( ; i < bWidth; ++i, ++x, ++y, --x2 ) { | 1529 | for ( ; i < bWidth; ++i, ++x, ++y, --x2 ) { |
1527 | p->drawLine( x, y, x, y2 ); | 1530 | p->drawLine( x, y, x, y2 ); |
1528 | p->drawLine( x2, y, x2, y2 ); | 1531 | p->drawLine( x2, y, x2, y2 ); |
1529 | p->drawLine( x, y, x2, y ); | 1532 | p->drawLine( x, y, x2, y ); |
1530 | if ( selected ? activeTabLine() : inactiveTabLine() ) { | 1533 | if ( selected ? activeTabLine() : inactiveTabLine() ) { |
1531 | p->drawLine( x, y2, x2, y2 ); | 1534 | p->drawLine( x, y2, x2, y2 ); |
1532 | --y2; | 1535 | --y2; |
1533 | } | 1536 | } |
1534 | } | 1537 | } |
1535 | i = 0; | 1538 | i = 0; |
diff --git a/noncore/styles/web/webstyle.cpp b/noncore/styles/web/webstyle.cpp index cd3cf08..7b58d89 100644 --- a/noncore/styles/web/webstyle.cpp +++ b/noncore/styles/web/webstyle.cpp | |||
@@ -1,109 +1,118 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2001 Rik Hemsley (rikkus) <rik@kde.org> | 2 | * Copyright (C) 2001 Rik Hemsley (rikkus) <rik@kde.org> |
3 | * | 3 | * |
4 | * This library is free software; you can redistribute it and/or | 4 | * This library is free software; you can redistribute it and/or |
5 | * modify it under the terms of the GNU Library General Public | 5 | * modify it under the terms of the GNU Library General Public |
6 | * License as published by the Free Software Foundation; either | 6 | * License as published by the Free Software Foundation; either |
7 | * version 2 of the License, or (at your option) any later version. | 7 | * version 2 of the License, or (at your option) any later version. |
8 | * | 8 | * |
9 | * This library is distributed in the hope that it will be useful, | 9 | * This library is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | * Library General Public License for more details. | 12 | * Library General Public License for more details. |
13 | * | 13 | * |
14 | * You should have received a copy of the GNU Library General Public License | 14 | * You should have received a copy of the GNU Library General Public License |
15 | * along with this library; see the file COPYING.LIB. If not, write to | 15 | * along with this library; see the file COPYING.LIB. If not, write to |
16 | * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 16 | * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
17 | * Boston, MA 02111-1307, USA. | 17 | * Boston, MA 02111-1307, USA. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #ifndef INCLUDE_MENUITEM_DEF | 20 | #ifndef INCLUDE_MENUITEM_DEF |
21 | #define INCLUDE_MENUITEM_DEF | 21 | #define INCLUDE_MENUITEM_DEF |
22 | #endif | 22 | #endif |
23 | 23 | ||
24 | #include <qmenudata.h> | 24 | #include <qmenudata.h> |
25 | #include <qpalette.h> | 25 | #include <qpalette.h> |
26 | #include <qbitmap.h> | 26 | #include <qbitmap.h> |
27 | #include <qtabbar.h> | 27 | #include <qtabbar.h> |
28 | #include <qpointarray.h> | 28 | #include <qpointarray.h> |
29 | #include <qscrollbar.h> | 29 | #include <qscrollbar.h> |
30 | #include <qframe.h> | 30 | #include <qframe.h> |
31 | #include <qpushbutton.h> | 31 | #include <qpushbutton.h> |
32 | #include <qdrawutil.h> | 32 | #include <qdrawutil.h> |
33 | #include <qpainter.h> | 33 | #include <qpainter.h> |
34 | 34 | ||
35 | #include "webstyle.h" | 35 | #include "webstyle.h" |
36 | 36 | ||
37 | static const int _indicatorSize = 9; | 37 | static const int _indicatorSize = 9; |
38 | static QButton * _highlightedButton = 0; | 38 | static QButton * _highlightedButton = 0; |
39 | static const int _scrollBarExtent = 12; | 39 | static const int _scrollBarExtent = 12; |
40 | 40 | ||
41 | static QFrame * _currentFrame = 0; | 41 | static QFrame * _currentFrame = 0; |
42 | static int _savedFrameLineWidth; | 42 | static int _savedFrameLineWidth; |
43 | static int _savedFrameMidLineWidth; | 43 | static int _savedFrameMidLineWidth; |
44 | static ulong _savedFrameStyle; | 44 | static ulong _savedFrameStyle; |
45 | 45 | ||
46 | static const int ITEMFRAME = 1; // menu stuff | ||
47 | static const int ITEMHMARGIN = 3; | ||
48 | static const int ITEMVMARGIN = 0; | ||
49 | |||
50 | static const int ARROWMARGIN = 6; | ||
51 | static const int RIGHTBORDER = 10; | ||
52 | static const int MINICONSIZE = 12; | ||
53 | |||
54 | |||
46 | static QColor contrastingForeground(const QColor & fg, const QColor & bg) | 55 | static QColor contrastingForeground(const QColor & fg, const QColor & bg) |
47 | { | 56 | { |
48 | int h, s, vbg, vfg; | 57 | int h, s, vbg, vfg; |
49 | 58 | ||
50 | bg.hsv(&h, &s, &vbg); | 59 | bg.hsv(&h, &s, &vbg); |
51 | fg.hsv(&h, &s, &vfg); | 60 | fg.hsv(&h, &s, &vfg); |
52 | 61 | ||
53 | int diff(vbg - vfg); | 62 | int diff(vbg - vfg); |
54 | 63 | ||
55 | if ((diff > -72) && (diff < 72)) | 64 | if ((diff > -72) && (diff < 72)) |
56 | { | 65 | { |
57 | return (vbg < 128) ? Qt::white : Qt::black; | 66 | return (vbg < 128) ? Qt::white : Qt::black; |
58 | } | 67 | } |
59 | else | 68 | else |
60 | { | 69 | { |
61 | return fg; | 70 | return fg; |
62 | } | 71 | } |
63 | } | 72 | } |
64 | 73 | ||
65 | // Gotta keep it separated. | 74 | // Gotta keep it separated. |
66 | 75 | ||
67 | static void | 76 | static void |
68 | scrollBarControlsMetrics | 77 | scrollBarControlsMetrics |
69 | ( | 78 | ( |
70 | const QScrollBar * sb, | 79 | const QScrollBar * sb, |
71 | int sliderStart, | 80 | int sliderStart, |
72 | int /* sliderMin */, | 81 | int /* sliderMin */, |
73 | int sliderMax, | 82 | int sliderMax, |
74 | int sliderLength, | 83 | int sliderLength, |
75 | int buttonDim, | 84 | int buttonDim, |
76 | QRect & rSub, | 85 | QRect & rSub, |
77 | QRect & rAdd, | 86 | QRect & rAdd, |
78 | QRect & rSubPage, | 87 | QRect & rSubPage, |
79 | QRect & rAddPage, | 88 | QRect & rAddPage, |
80 | QRect & rSlider | 89 | QRect & rSlider |
81 | ) | 90 | ) |
82 | { | 91 | { |
83 | bool horizontal = sb->orientation() == QScrollBar::Horizontal; | 92 | bool horizontal = sb->orientation() == QScrollBar::Horizontal; |
84 | 93 | ||
85 | int len = horizontal ? sb->width() : sb->height(); | 94 | int len = horizontal ? sb->width() : sb->height(); |
86 | 95 | ||
87 | int extent = horizontal ? sb->height() : sb->width(); | 96 | int extent = horizontal ? sb->height() : sb->width(); |
88 | 97 | ||
89 | QColorGroup g = sb->colorGroup(); | 98 | QColorGroup g = sb->colorGroup(); |
90 | 99 | ||
91 | if (sliderStart > sliderMax) | 100 | if (sliderStart > sliderMax) |
92 | sliderStart = sliderMax; | 101 | sliderStart = sliderMax; |
93 | 102 | ||
94 | int sliderEnd = sliderStart + sliderLength; | 103 | int sliderEnd = sliderStart + sliderLength; |
95 | 104 | ||
96 | int addX, addY; | 105 | int addX, addY; |
97 | int subX, subY; | 106 | int subX, subY; |
98 | int subPageX, subPageY, subPageW, subPageH; | 107 | int subPageX, subPageY, subPageW, subPageH; |
99 | int addPageX, addPageY, addPageW, addPageH; | 108 | int addPageX, addPageY, addPageW, addPageH; |
100 | int sliderX, sliderY, sliderW, sliderH; | 109 | int sliderX, sliderY, sliderW, sliderH; |
101 | 110 | ||
102 | if (horizontal) | 111 | if (horizontal) |
103 | { | 112 | { |
104 | subY = 0; | 113 | subY = 0; |
105 | addY = 0; | 114 | addY = 0; |
106 | subX = 0; | 115 | subX = 0; |
107 | addX = buttonDim; | 116 | addX = buttonDim; |
108 | 117 | ||
109 | subPageX = buttonDim * 2; | 118 | subPageX = buttonDim * 2; |
@@ -908,141 +917,252 @@ WebStyle::drawSliderGroove | |||
908 | if( o == Qt::Horizontal ) | 917 | if( o == Qt::Horizontal ) |
909 | p->drawLine(x, y + h / 2, w, y + h / 2); | 918 | p->drawLine(x, y + h / 2, w, y + h / 2); |
910 | else | 919 | else |
911 | if( o == Qt::Vertical ) | 920 | if( o == Qt::Vertical ) |
912 | p->drawLine(x + w / 2, y, x + w / 2, h); | 921 | p->drawLine(x + w / 2, y, x + w / 2, h); |
913 | 922 | ||
914 | p->restore(); | 923 | p->restore(); |
915 | } | 924 | } |
916 | 925 | ||
917 | void | 926 | void |
918 | WebStyle::drawArrow | 927 | WebStyle::drawArrow |
919 | ( | 928 | ( |
920 | QPainter * p, | 929 | QPainter * p, |
921 | Qt::ArrowType type, | 930 | Qt::ArrowType type, |
922 | bool down, | 931 | bool down, |
923 | int x, | 932 | int x, |
924 | int y, | 933 | int y, |
925 | int w, | 934 | int w, |
926 | int h, | 935 | int h, |
927 | const QColorGroup & g, | 936 | const QColorGroup & g, |
928 | bool enabled, | 937 | bool enabled, |
929 | const QBrush * fill | 938 | const QBrush * fill |
930 | ) | 939 | ) |
931 | { | 940 | { |
932 | QWindowsStyle::drawArrow(p, type, down, x, y, w, h, g, enabled, fill); | 941 | QWindowsStyle::drawArrow(p, type, down, x, y, w, h, g, enabled, fill); |
933 | } | 942 | } |
934 | 943 | ||
935 | void | 944 | void |
936 | WebStyle::drawSlider | 945 | WebStyle::drawSlider |
937 | ( | 946 | ( |
938 | QPainter * p, | 947 | QPainter * p, |
939 | int x, | 948 | int x, |
940 | int y, | 949 | int y, |
941 | int w, | 950 | int w, |
942 | int h, | 951 | int h, |
943 | const QColorGroup & g, | 952 | const QColorGroup & g, |
944 | Orientation o, | 953 | Orientation o, |
945 | bool /* tickAbove */, | 954 | bool /* tickAbove */, |
946 | bool /* tickBelow */ | 955 | bool /* tickBelow */ |
947 | ) | 956 | ) |
948 | { | 957 | { |
949 | p->save(); | 958 | p->save(); |
950 | 959 | ||
951 | p->fillRect(x + 1, y + 1, w - 2, h - 2, g.background()); | 960 | p->fillRect(x + 1, y + 1, w - 2, h - 2, g.background()); |
952 | p->setPen(g.dark()); | 961 | p->setPen(g.dark()); |
953 | p->setBrush(g.light()); | 962 | p->setBrush(g.light()); |
954 | 963 | ||
955 | int sl = sliderLength(); | 964 | int sl = sliderLength(); |
956 | 965 | ||
957 | if( o == Qt::Horizontal ) | 966 | if( o == Qt::Horizontal ) |
958 | p->drawEllipse(x, y + h / 2 - sl / 2, sl, sl); | 967 | p->drawEllipse(x, y + h / 2 - sl / 2, sl, sl); |
959 | else | 968 | else |
960 | if( o == Qt::Vertical ) | 969 | if( o == Qt::Vertical ) |
961 | p->drawEllipse(x + w / 2 - sl / 2, y, sl, sl); | 970 | p->drawEllipse(x + w / 2 - sl / 2, y, sl, sl); |
962 | 971 | ||
963 | p->restore(); | 972 | p->restore(); |
964 | } | 973 | } |
965 | 974 | ||
966 | void | 975 | void |
967 | WebStyle::drawPopupMenuItem | 976 | WebStyle::drawPopupMenuItem |
968 | ( | 977 | ( |
969 | QPainter * p, | 978 | QPainter * p, |
970 | bool checkable, | 979 | bool checkable, |
971 | int maxpmw, | 980 | int maxpmw, |
972 | int tab, | 981 | int tabwidth, |
973 | QMenuItem * mi, | 982 | QMenuItem * mi, |
974 | const QPalette & pal, | 983 | const QPalette & pal, |
975 | bool act, | 984 | bool act, |
976 | bool enabled, | 985 | bool enabled, |
977 | int x, | 986 | int x, |
978 | int y, | 987 | int y, |
979 | int w, | 988 | int w, |
980 | int h | 989 | int h |
981 | ) | 990 | ) |
982 | { | 991 | { |
983 | // TODO | 992 | // TODO |
984 | QWindowsStyle::drawPopupMenuItem(p, checkable, maxpmw, tab, mi, pal, act, enabled, x, y, w, h); | 993 | //QWindowsStyle::drawPopupMenuItem(p, checkable, maxpmw, tab, mi, pal, act, enabled, x, y, w, h); |
994 | if ( !mi ) | ||
995 | return; | ||
996 | |||
997 | QRect rect(x, y, w, h ); | ||
998 | int x2, y2; | ||
999 | x2 = rect.right(); | ||
1000 | y2 = rect.bottom(); | ||
1001 | const QColorGroup& g = pal.active(); | ||
1002 | QColorGroup itemg = !enabled ? pal.disabled() : pal.active(); | ||
1003 | |||
1004 | if ( checkable || maxpmw ) maxpmw = QMAX(maxpmw, 20); | ||
1005 | |||
1006 | if (act && enabled ) | ||
1007 | p->fillRect(x, y, w, h, g.highlight() ); | ||
1008 | else | ||
1009 | p->fillRect(x, y, w, h, g.background() ); | ||
1010 | |||
1011 | // draw seperator | ||
1012 | if (mi->isSeparator() ) { | ||
1013 | p->setPen( g.dark() ); | ||
1014 | p->drawLine( x+8, y+1, x+w-8, y+1 ); | ||
1015 | |||
1016 | p->setPen( g.mid() ); | ||
1017 | p->drawLine( x+8, y, x+w-8, y ); | ||
1018 | p->drawPoint(x+w,y+1); | ||
1019 | |||
1020 | p->setPen( g.midlight() ); | ||
1021 | p->drawLine( x+8, y-1, x+w-8, y-1 ); | ||
1022 | p->drawPoint(x+8, y ); | ||
1023 | return; | ||
1024 | } | ||
1025 | |||
1026 | // draw icon | ||
1027 | QIconSet::Mode mode; | ||
1028 | if ( mi->iconSet() && !mi->isChecked() ) { | ||
1029 | if ( act ) | ||
1030 | mode = enabled ? QIconSet::Active : QIconSet::Disabled; | ||
1031 | else | ||
1032 | mode = enabled ? QIconSet::Normal : QIconSet::Disabled; | ||
1033 | QPixmap pixmap; | ||
1034 | if ( mode == QIconSet::Disabled ) | ||
1035 | pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
1036 | else | ||
1037 | pixmap = mi->iconSet()->pixmap(); | ||
1038 | QRect pmrect(0, 0, pixmap.width(), pixmap.height() ); | ||
1039 | QRect cr(x, y, maxpmw, h ); | ||
1040 | pmrect.moveCenter( cr.center() ); | ||
1041 | p->drawPixmap(pmrect.topLeft(), pixmap); | ||
1042 | } | ||
1043 | |||
1044 | // draw check | ||
1045 | if(mi->isChecked() ) { | ||
1046 | drawCheckMark(p, x, y, maxpmw, h, itemg, act, !enabled ); | ||
1047 | } | ||
1048 | |||
1049 | |||
1050 | // draw text | ||
1051 | int xm = maxpmw + 2; | ||
1052 | int xp = x + xm; | ||
1053 | int tw = w -xm - 2; | ||
1054 | |||
1055 | p->setPen( enabled ? ( act ? g.highlightedText() : g.buttonText() ) : | ||
1056 | g.mid() ); | ||
1057 | |||
1058 | |||
1059 | if ( mi->custom() ) { | ||
1060 | p->save(); | ||
1061 | mi->custom()->paint(p, g, act, enabled, | ||
1062 | xp, y+1, tw, h-2 ); | ||
1063 | p->restore(); | ||
1064 | }else { // draw label | ||
1065 | QString text = mi->text(); | ||
1066 | if (!text.isNull() ) { | ||
1067 | int t = text.find('\t'); | ||
1068 | const int tflags = AlignVCenter | DontClip | | ||
1069 | ShowPrefix | SingleLine | | ||
1070 | AlignLeft; | ||
1071 | |||
1072 | if (t >= 0) { | ||
1073 | int tabx = x + w - tabwidth - RIGHTBORDER - | ||
1074 | ITEMHMARGIN - ITEMFRAME; | ||
1075 | p->drawText(tabx, y+ITEMVMARGIN, tabwidth, | ||
1076 | h-2*ITEMVMARGIN, tflags, | ||
1077 | text.mid(t+1) ); | ||
1078 | text = text.left(t ); | ||
1079 | } | ||
1080 | |||
1081 | // draw left label | ||
1082 | p->drawText(xp, y+ITEMVMARGIN, | ||
1083 | tw, h-2*ITEMVMARGIN, | ||
1084 | tflags, text, t); | ||
1085 | }else if ( mi->pixmap() ) { // pixmap as label | ||
1086 | QPixmap pixmap = *mi->pixmap(); | ||
1087 | if ( pixmap.depth() == 1 ) | ||
1088 | p->setBackgroundMode( OpaqueMode ); | ||
1089 | |||
1090 | int dx = ((w-pixmap.width() ) /2 ) + | ||
1091 | ((w - pixmap.width()) %2 ); | ||
1092 | p->drawPixmap(x+dx, y+ITEMFRAME, pixmap ); | ||
1093 | |||
1094 | if ( pixmap.depth() == 1 ) | ||
1095 | p->setBackgroundMode( TransparentMode ); | ||
1096 | } | ||
1097 | } | ||
1098 | |||
1099 | if ( mi->popup() ) { // draw submenu arrow | ||
1100 | int dim = (h-2*ITEMFRAME) / 2; | ||
1101 | drawArrow( p, RightArrow, false, | ||
1102 | x+w-ARROWMARGIN-ITEMFRAME-dim, | ||
1103 | y+h/2-dim/2, dim, dim, g, enabled ); | ||
1104 | } | ||
985 | } | 1105 | } |
986 | 1106 | ||
987 | void | 1107 | void |
988 | WebStyle::drawFocusRect | 1108 | WebStyle::drawFocusRect |
989 | ( | 1109 | ( |
990 | QPainter * p, | 1110 | QPainter * p, |
991 | const QRect & r, | 1111 | const QRect & r, |
992 | const QColorGroup & g, | 1112 | const QColorGroup & g, |
993 | const QColor * pen, | 1113 | const QColor * pen, |
994 | bool atBorder | 1114 | bool atBorder |
995 | ) | 1115 | ) |
996 | { | 1116 | { |
997 | p->save(); | 1117 | p->save(); |
998 | 1118 | ||
999 | if (0 != pen) | 1119 | if (0 != pen) |
1000 | p->setPen(0 == pen ? g.foreground() : *pen); | 1120 | p->setPen(0 == pen ? g.foreground() : *pen); |
1001 | p->setBrush(NoBrush); | 1121 | p->setBrush(NoBrush); |
1002 | 1122 | ||
1003 | if (atBorder) | 1123 | if (atBorder) |
1004 | { | 1124 | { |
1005 | p->drawRect(QRect(r.x() + 1, r.y() + 1, r.width() - 2, r.height() - 2)); | 1125 | p->drawRect(QRect(r.x() + 1, r.y() + 1, r.width() - 2, r.height() - 2)); |
1006 | } | 1126 | } |
1007 | else | 1127 | else |
1008 | { | 1128 | { |
1009 | p->drawRect(r); | 1129 | p->drawRect(r); |
1010 | } | 1130 | } |
1011 | 1131 | ||
1012 | p->restore(); | 1132 | p->restore(); |
1013 | } | 1133 | } |
1014 | 1134 | ||
1015 | void | 1135 | void |
1016 | WebStyle::drawPanel | 1136 | WebStyle::drawPanel |
1017 | ( | 1137 | ( |
1018 | QPainter * p, | 1138 | QPainter * p, |
1019 | int x, | 1139 | int x, |
1020 | int y, | 1140 | int y, |
1021 | int w, | 1141 | int w, |
1022 | int h, | 1142 | int h, |
1023 | const QColorGroup & g, | 1143 | const QColorGroup & g, |
1024 | bool /* sunken */, | 1144 | bool /* sunken */, |
1025 | int /* lineWidth */, | 1145 | int /* lineWidth */, |
1026 | const QBrush * fill | 1146 | const QBrush * fill |
1027 | ) | 1147 | ) |
1028 | { | 1148 | { |
1029 | p->save(); | 1149 | p->save(); |
1030 | 1150 | ||
1031 | p->setPen(g.dark()); | 1151 | p->setPen(g.dark()); |
1032 | 1152 | ||
1033 | p->setBrush(0 == fill ? NoBrush : *fill); | 1153 | p->setBrush(0 == fill ? NoBrush : *fill); |
1034 | 1154 | ||
1035 | p->drawRect(x, y, w, h); | 1155 | p->drawRect(x, y, w, h); |
1036 | 1156 | ||
1037 | p->restore(); | 1157 | p->restore(); |
1038 | } | 1158 | } |
1039 | 1159 | ||
1040 | void | 1160 | void |
1041 | WebStyle::drawPopupPanel | 1161 | WebStyle::drawPopupPanel |
1042 | ( | 1162 | ( |
1043 | QPainter * p, | 1163 | QPainter * p, |
1044 | int x, | 1164 | int x, |
1045 | int y, | 1165 | int y, |
1046 | int w, | 1166 | int w, |
1047 | int h, | 1167 | int h, |
1048 | const QColorGroup & g, | 1168 | const QColorGroup & g, |
@@ -1107,77 +1227,77 @@ WebStyle::drawTab | |||
1107 | p->save(); | 1227 | p->save(); |
1108 | 1228 | ||
1109 | p->setPen(selected ? g.dark() : g.mid()); | 1229 | p->setPen(selected ? g.dark() : g.mid()); |
1110 | p->fillRect(r, g.brush(QColorGroup::Background)); | 1230 | p->fillRect(r, g.brush(QColorGroup::Background)); |
1111 | 1231 | ||
1112 | switch (tabBar->shape()) | 1232 | switch (tabBar->shape()) |
1113 | { | 1233 | { |
1114 | case QTabBar::RoundedAbove: | 1234 | case QTabBar::RoundedAbove: |
1115 | case QTabBar::TriangularAbove: | 1235 | case QTabBar::TriangularAbove: |
1116 | p->drawLine(r.left(), r.top(), r.left(), r.bottom()); | 1236 | p->drawLine(r.left(), r.top(), r.left(), r.bottom()); |
1117 | p->drawLine(r.left(), r.top(), r.right(), r.top()); | 1237 | p->drawLine(r.left(), r.top(), r.right(), r.top()); |
1118 | p->drawLine(r.right(), r.top(), r.right(), r.bottom()); | 1238 | p->drawLine(r.right(), r.top(), r.right(), r.bottom()); |
1119 | if (!selected) | 1239 | if (!selected) |
1120 | { | 1240 | { |
1121 | p->setPen(g.dark()); | 1241 | p->setPen(g.dark()); |
1122 | p->drawLine(r.left(), r.bottom(), r.right(), r.bottom()); | 1242 | p->drawLine(r.left(), r.bottom(), r.right(), r.bottom()); |
1123 | } | 1243 | } |
1124 | break; | 1244 | break; |
1125 | case QTabBar::RoundedBelow: | 1245 | case QTabBar::RoundedBelow: |
1126 | case QTabBar::TriangularBelow: | 1246 | case QTabBar::TriangularBelow: |
1127 | if (!selected) | 1247 | if (!selected) |
1128 | { | 1248 | { |
1129 | p->setPen(g.dark()); | 1249 | p->setPen(g.dark()); |
1130 | p->drawLine(r.left(), r.top(), r.right(), r.top()); | 1250 | p->drawLine(r.left(), r.top(), r.right(), r.top()); |
1131 | } | 1251 | } |
1132 | p->drawLine(r.left(), r.top(), r.left(), r.bottom()); | 1252 | p->drawLine(r.left(), r.top(), r.left(), r.bottom()); |
1133 | p->drawLine(r.left(), r.bottom(), r.right(), r.bottom()); | 1253 | p->drawLine(r.left(), r.bottom(), r.right(), r.bottom()); |
1134 | p->drawLine(r.right(), r.top(), r.right(), r.bottom()); | 1254 | p->drawLine(r.right(), r.top(), r.right(), r.bottom()); |
1135 | break; | 1255 | break; |
1136 | } | 1256 | } |
1137 | 1257 | ||
1138 | p->restore(); | 1258 | p->restore(); |
1139 | } | 1259 | } |
1140 | 1260 | ||
1141 | void | 1261 | void |
1142 | WebStyle::drawTabMask | 1262 | WebStyle::drawTabMask |
1143 | ( | 1263 | ( |
1144 | QPainter * p, | 1264 | QPainter * p, |
1145 | const QTabBar *, | 1265 | const QTabBar *, |
1146 | QTab * tab, | 1266 | QTab * tab, |
1147 | bool | 1267 | bool |
1148 | ) | 1268 | ) |
1149 | { | 1269 | { |
1150 | p->fillRect(tab->rect(), Qt::color1); | 1270 | p->fillRect(tab->rect(), Qt::color1); |
1151 | } | 1271 | } |
1152 | 1272 | ||
1153 | 1273 | ||
1154 | int | 1274 | int |
1155 | WebStyle::popupMenuItemHeight(bool, QMenuItem * i, const QFontMetrics & fm) | 1275 | WebStyle::popupMenuItemHeight(bool, QMenuItem * i, const QFontMetrics & fm) |
1156 | { | 1276 | { |
1157 | if (i->isSeparator()) | 1277 | if (i->isSeparator()) |
1158 | return 1; | 1278 | return 1; |
1159 | 1279 | ||
1160 | int h = 0; | 1280 | int h = 0; |
1161 | 1281 | ||
1162 | if (0 != i->pixmap()) | 1282 | if (0 != i->pixmap()) |
1163 | { | 1283 | { |
1164 | h = i->pixmap()->height(); | 1284 | h = i->pixmap()->height(); |
1165 | } | 1285 | } |
1166 | 1286 | ||
1167 | if (0 != i->iconSet()) | 1287 | if (0 != i->iconSet()) |
1168 | { | 1288 | { |
1169 | h = QMAX | 1289 | h = QMAX |
1170 | ( | 1290 | ( |
1171 | i->iconSet()->pixmap(QIconSet::Small, QIconSet::Normal).height(), | 1291 | i->iconSet()->pixmap().height(), |
1172 | h | 1292 | h |
1173 | ); | 1293 | ); |
1174 | } | 1294 | } |
1175 | 1295 | ||
1176 | h = QMAX(fm.height() + 4, h); | 1296 | h = QMAX(fm.height() + 4, h); |
1177 | 1297 | ||
1178 | h = QMAX(18, h); | 1298 | h = QMAX(18, h); |
1179 | 1299 | ||
1180 | return h; | 1300 | return h; |
1181 | 1301 | ||
1182 | } | 1302 | } |
1183 | 1303 | ||
diff --git a/noncore/styles/web/webstyle.h b/noncore/styles/web/webstyle.h index 83ab784..d6f153b 100644 --- a/noncore/styles/web/webstyle.h +++ b/noncore/styles/web/webstyle.h | |||
@@ -154,129 +154,129 @@ class WebStyle : public QWindowsStyle { | |||
154 | void drawComboButton | 154 | void drawComboButton |
155 | ( | 155 | ( |
156 | QPainter *, | 156 | QPainter *, |
157 | int x, | 157 | int x, |
158 | int y, | 158 | int y, |
159 | int w, | 159 | int w, |
160 | int h, | 160 | int h, |
161 | const QColorGroup &, | 161 | const QColorGroup &, |
162 | bool sunken = false, | 162 | bool sunken = false, |
163 | bool editable = false, | 163 | bool editable = false, |
164 | bool enabled = true, | 164 | bool enabled = true, |
165 | const QBrush * fill = 0 | 165 | const QBrush * fill = 0 |
166 | ); | 166 | ); |
167 | 167 | ||
168 | QRect comboButtonRect(int x, int y, int w, int h); | 168 | QRect comboButtonRect(int x, int y, int w, int h); |
169 | 169 | ||
170 | QRect comboButtonFocusRect(int x, int y, int w, int h); | 170 | QRect comboButtonFocusRect(int x, int y, int w, int h); |
171 | 171 | ||
172 | int sliderLength() const; | 172 | int sliderLength() const; |
173 | 173 | ||
174 | void drawSliderGroove | 174 | void drawSliderGroove |
175 | ( | 175 | ( |
176 | QPainter *, | 176 | QPainter *, |
177 | int x, | 177 | int x, |
178 | int y, | 178 | int y, |
179 | int w, | 179 | int w, |
180 | int h, | 180 | int h, |
181 | const QColorGroup &, | 181 | const QColorGroup &, |
182 | QCOORD, | 182 | QCOORD, |
183 | Orientation | 183 | Orientation |
184 | ); | 184 | ); |
185 | 185 | ||
186 | void drawArrow | 186 | void drawArrow |
187 | ( | 187 | ( |
188 | QPainter *, | 188 | QPainter *, |
189 | Qt::ArrowType, | 189 | Qt::ArrowType, |
190 | bool down, | 190 | bool down, |
191 | int x, | 191 | int x, |
192 | int y, | 192 | int y, |
193 | int w, | 193 | int w, |
194 | int h, | 194 | int h, |
195 | const QColorGroup &, | 195 | const QColorGroup &, |
196 | bool enabled = true, | 196 | bool enabled = true, |
197 | const QBrush * fill = 0 | 197 | const QBrush * fill = 0 |
198 | ); | 198 | ); |
199 | 199 | ||
200 | void drawSlider | 200 | void drawSlider |
201 | ( | 201 | ( |
202 | QPainter *, | 202 | QPainter *, |
203 | int x, | 203 | int x, |
204 | int y, | 204 | int y, |
205 | int w, | 205 | int w, |
206 | int h, | 206 | int h, |
207 | const QColorGroup &, | 207 | const QColorGroup &, |
208 | Orientation, | 208 | Orientation, |
209 | bool tickAbove, | 209 | bool tickAbove, |
210 | bool tickBelow | 210 | bool tickBelow |
211 | ); | 211 | ); |
212 | 212 | ||
213 | void drawPopupMenuItem | 213 | void drawPopupMenuItem |
214 | ( | 214 | ( |
215 | QPainter *, | 215 | QPainter *, |
216 | bool checkable, | 216 | bool checkable, |
217 | int maxpmw, | 217 | int maxpmw, |
218 | int tab, | 218 | int tabwidth, |
219 | QMenuItem *, | 219 | QMenuItem *, |
220 | const QPalette &, | 220 | const QPalette &, |
221 | bool act, | 221 | bool act, |
222 | bool enabled, | 222 | bool enabled, |
223 | int x, | 223 | int x, |
224 | int y, | 224 | int y, |
225 | int w, | 225 | int w, |
226 | int h | 226 | int h |
227 | ); | 227 | ); |
228 | 228 | ||
229 | void drawFocusRect | 229 | void drawFocusRect |
230 | ( | 230 | ( |
231 | QPainter *, | 231 | QPainter *, |
232 | const QRect &, | 232 | const QRect &, |
233 | const QColorGroup &, | 233 | const QColorGroup &, |
234 | const QColor * pen, | 234 | const QColor * pen, |
235 | bool atBorder | 235 | bool atBorder |
236 | ); | 236 | ); |
237 | 237 | ||
238 | void drawPanel | 238 | void drawPanel |
239 | ( | 239 | ( |
240 | QPainter *, | 240 | QPainter *, |
241 | int x, | 241 | int x, |
242 | int y, | 242 | int y, |
243 | int w, | 243 | int w, |
244 | int h, | 244 | int h, |
245 | const QColorGroup &, | 245 | const QColorGroup &, |
246 | bool sunken, | 246 | bool sunken, |
247 | int lineWidth = 1, | 247 | int lineWidth = 1, |
248 | const QBrush * = 0 | 248 | const QBrush * = 0 |
249 | ); | 249 | ); |
250 | 250 | ||
251 | void drawPopupPanel | 251 | void drawPopupPanel |
252 | ( | 252 | ( |
253 | QPainter *, | 253 | QPainter *, |
254 | int x, | 254 | int x, |
255 | int y, | 255 | int y, |
256 | int w, | 256 | int w, |
257 | int h, | 257 | int h, |
258 | const QColorGroup &, | 258 | const QColorGroup &, |
259 | int lineWidth = 2, | 259 | int lineWidth = 2, |
260 | const QBrush * = 0 | 260 | const QBrush * = 0 |
261 | ); | 261 | ); |
262 | 262 | ||
263 | void drawSeparator | 263 | void drawSeparator |
264 | ( | 264 | ( |
265 | QPainter *, | 265 | QPainter *, |
266 | int x, | 266 | int x, |
267 | int y, | 267 | int y, |
268 | int w, | 268 | int w, |
269 | int h, | 269 | int h, |
270 | const QColorGroup &, | 270 | const QColorGroup &, |
271 | bool sunken = true, | 271 | bool sunken = true, |
272 | int lineWidth = 1, | 272 | int lineWidth = 1, |
273 | int midLineWidth = 0 | 273 | int midLineWidth = 0 |
274 | ); | 274 | ); |
275 | 275 | ||
276 | void drawTab | 276 | void drawTab |
277 | ( | 277 | ( |
278 | QPainter * p, | 278 | QPainter * p, |
279 | const QTabBar * tabBar, | 279 | const QTabBar * tabBar, |
280 | QTab * tab, | 280 | QTab * tab, |
281 | bool selected | 281 | bool selected |
282 | ); | 282 | ); |