-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 | |||
@@ -88,77 +88,77 @@ void LauncherTabBar::layoutTabs() | |||
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 | ||
@@ -211,26 +211,26 @@ void LauncherTabBar::paint( QPainter * p, QTab * t, bool selected ) const | |||
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 ) { |
@@ -242,25 +242,29 @@ void LauncherTabBar::paint( QPainter * p, QTab * t, bool selected ) const | |||
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() ) { |
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,35 +1,35 @@ | |||
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> |
@@ -96,25 +96,25 @@ void MenuSettings::init ( ) | |||
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 | } |
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,63 +1,67 @@ | |||
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 | ||
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,41 +1,41 @@ | |||
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 | /** |
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 | |||
@@ -25,25 +25,24 @@ | |||
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 ) |
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 | |||
@@ -364,44 +364,44 @@ void FlatStyle::drawPushButtonLabel( QPushButton *btn, QPainter *p ) | |||
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++; |
@@ -883,47 +883,47 @@ int FlatStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* m | |||
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 ); |
@@ -945,25 +945,29 @@ void FlatStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int | |||
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 | ||
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 | |||
@@ -138,26 +138,26 @@ void FreshStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h ) | |||
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 ); |
@@ -519,25 +519,25 @@ void FreshStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected | |||
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 | } |
@@ -629,47 +629,47 @@ int FreshStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* | |||
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 ); |
@@ -693,25 +693,29 @@ void FreshStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int | |||
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 | ||
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,27 +1,27 @@ | |||
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> |
@@ -90,25 +90,25 @@ void TransMenuHandler::reloadSettings() | |||
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; |
@@ -128,61 +128,61 @@ bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev) | |||
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); |
@@ -490,25 +490,25 @@ void LiquidStyle::drawRoundButton(QPainter *painter, const QColor &c, | |||
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; |
@@ -590,28 +590,28 @@ QPixmap* LiquidStyle::getPixmap(BitmapData item) | |||
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*/); |
@@ -792,34 +792,34 @@ void LiquidStyle::polish(QWidget *w) | |||
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() && |
@@ -856,57 +856,57 @@ void LiquidStyle::polish(QWidget *w) | |||
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)); |
@@ -950,63 +950,63 @@ void LiquidStyle::unPolish(QWidget *w) | |||
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() ) ); |
@@ -1022,48 +1022,48 @@ public: | |||
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 |
@@ -1089,25 +1089,25 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) | |||
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) { |
@@ -1129,25 +1129,25 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) | |||
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), |
@@ -1184,37 +1184,37 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) | |||
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, |
@@ -1294,33 +1294,37 @@ void LiquidStyle::drawPushButtonLabel(QPushButton *btn, QPainter *p) | |||
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(), |
@@ -1396,37 +1400,37 @@ QRect LiquidStyle::buttonRect(int x, int y, int w, int h) | |||
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; |
@@ -1469,25 +1473,25 @@ void LiquidStyle::drawComboButtonMask(QPainter *p, int x, int y, int w, int h) | |||
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; |
@@ -1624,40 +1628,40 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, | |||
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(); |
@@ -1967,48 +1971,48 @@ void LiquidStyle::drawArrow(QPainter *p, Qt::ArrowType type, bool on, int x, | |||
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(), |
@@ -2146,25 +2150,29 @@ static const int windowsRightBorder = 12; | |||
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; |
@@ -2227,26 +2235,25 @@ static const int windowsRightBorder = 12; | |||
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, |
@@ -2421,25 +2428,25 @@ void LiquidStyle::drawPanel(QPainter *p, int x, int y, int w, int h, | |||
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 | } |
@@ -2479,46 +2486,46 @@ void LiquidStyle::adjustHSV(QPixmap &pix, int h, int s, int v) | |||
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{ |
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 | |||
@@ -381,25 +381,28 @@ void PhaseStyle::drawPushButtonLabel (QPushButton *button, QPainter *painter) { | |||
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++) { |
@@ -560,26 +563,25 @@ int PhaseStyle::popupMenuItemHeight ( bool , | |||
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; |
@@ -652,25 +654,29 @@ void PhaseStyle::drawPopupMenuItem ( QPainter * p, bool checkable, | |||
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 | ||
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 | |||
@@ -28,65 +28,65 @@ | |||
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 | ||
@@ -100,51 +100,51 @@ OThemeStyle::OThemeStyle( const QString &configFile ) | |||
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() ) { |
@@ -1174,25 +1174,25 @@ void OThemeStyle::drawPushButtonLabel( QPushButton *btn, QPainter *p ) | |||
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() ); |
@@ -1237,26 +1237,25 @@ int OThemeStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem *mi, | |||
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 | { |
@@ -1316,25 +1315,29 @@ void OThemeStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, | |||
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; |
@@ -1425,29 +1428,29 @@ void OThemeStyle::drawFocusRect( QPainter *p, const QRect &r, | |||
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, |
@@ -1455,29 +1458,29 @@ void OThemeStyle::drawMenuBarItem( QPainter *p, int x, int y, int w, int h, | |||
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 | ||
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 | |||
@@ -34,24 +34,33 @@ | |||
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; |
@@ -960,37 +969,148 @@ WebStyle::drawSlider | |||
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 | { |
@@ -1159,25 +1279,25 @@ WebStyle::popupMenuItemHeight(bool, QMenuItem * i, const QFontMetrics & fm) | |||
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 | |||
@@ -206,25 +206,25 @@ class WebStyle : public QWindowsStyle { | |||
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 | ( |