summaryrefslogtreecommitdiff
path: root/library/qpestyle.cpp
Unidiff
Diffstat (limited to 'library/qpestyle.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpestyle.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/library/qpestyle.cpp b/library/qpestyle.cpp
index dfd300f..665910c 100644
--- a/library/qpestyle.cpp
+++ b/library/qpestyle.cpp
@@ -1,46 +1,46 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "qpestyle.h" 21#include "qpestyle.h"
22#include "qpeapplication.h" 22#include <qpe/qpeapplication.h>
23#include <qpushbutton.h> 23#include <qpushbutton.h>
24 24
25#include <qpainter.h> 25#include <qpainter.h>
26 26
27#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) 27#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2)
28 28
29#if QT_VERSION >= 300 29#if QT_VERSION >= 300
30 30
31#include <qdrawutil.h> 31#include <qdrawutil.h>
32#include <qcombobox.h> 32#include <qcombobox.h>
33#include <qtabbar.h> 33#include <qtabbar.h>
34 34
35QPEStyle::QPEStyle() 35QPEStyle::QPEStyle()
36{ 36{
37} 37}
38 38
39QPEStyle::~QPEStyle() 39QPEStyle::~QPEStyle()
40{ 40{
41} 41}
42 42
43void QPEStyle::drawPrimitive( PrimitiveElement pe, QPainter *p, const QRect &r, 43void QPEStyle::drawPrimitive( PrimitiveElement pe, QPainter *p, const QRect &r,
44 const QColorGroup &cg, SFlags flags, const QStyleOption &data) const 44 const QColorGroup &cg, SFlags flags, const QStyleOption &data) const
45{ 45{
46 switch ( pe ) { 46 switch ( pe ) {
@@ -203,49 +203,49 @@ void QPEStyle::drawControl( ControlElement ce, QPainter *p,
203 if ( tb->shape() == QTabBar::RoundedAbove ) { 203 if ( tb->shape() == QTabBar::RoundedAbove ) {
204 p->setPen( cg.light() ); 204 p->setPen( cg.light() );
205 p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() ); 205 p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() );
206 if ( r2.left() == 0 ) 206 if ( r2.left() == 0 )
207 p->drawPoint( tb->rect().bottomLeft() ); 207 p->drawPoint( tb->rect().bottomLeft() );
208 else { 208 else {
209 p->setPen( cg.light() ); 209 p->setPen( cg.light() );
210 p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() ); 210 p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() );
211 } 211 }
212 212
213 if ( selected ) { 213 if ( selected ) {
214 p->setPen( cg.background() ); 214 p->setPen( cg.background() );
215 p->drawLine( r2.left()+2, r2.top()+1, r2.right()-2, r2.top()+1 ); 215 p->drawLine( r2.left()+2, r2.top()+1, r2.right()-2, r2.top()+1 );
216 p->fillRect( QRect( r2.left()+1, r2.top()+2, r2.width()-2, r2.height()-2), 216 p->fillRect( QRect( r2.left()+1, r2.top()+2, r2.width()-2, r2.height()-2),
217 cg.brush( QColorGroup::Background )); 217 cg.brush( QColorGroup::Background ));
218 } else { 218 } else {
219 r2.setRect( r2.left() + 2, r2.top() + 2, 219 r2.setRect( r2.left() + 2, r2.top() + 2,
220 r2.width() - 4, r2.height() - 2 ); 220 r2.width() - 4, r2.height() - 2 );
221 p->setPen( cg.button() ); 221 p->setPen( cg.button() );
222 p->drawLine( r2.left()+2, r2.top()+1, r2.right()-2, r2.top()+1 ); 222 p->drawLine( r2.left()+2, r2.top()+1, r2.right()-2, r2.top()+1 );
223 p->fillRect( QRect( r2.left()+1, r2.top()+2, r2.width()-2, r2.height()-3), 223 p->fillRect( QRect( r2.left()+1, r2.top()+2, r2.width()-2, r2.height()-3),
224 cg.brush( QColorGroup::Button )); 224 cg.brush( QColorGroup::Button ));
225 225
226 //do shading; will not work for pixmap brushes 226 //do shading; will not work for pixmap brushes
227 QColor bg = cg.button(); 227 QColor bg = cg.button();
228 // int h,s,v; 228 // int h,s,v;
229 // bg.hsv( &h, &s, &v ); 229 // bg.hsv( &h, &s, &v );
230 int n = r2.height()/2; 230 int n = r2.height()/2;
231 int dark = 100; 231 int dark = 100;
232 for ( int i = 1; i < n; i++ ) { 232 for ( int i = 1; i < n; i++ ) {
233 dark = (dark * (100+(i*15)/n) )/100; 233 dark = (dark * (100+(i*15)/n) )/100;
234 p->setPen( bg.dark( dark ) ); 234 p->setPen( bg.dark( dark ) );
235 int y = r2.bottom()-n+i; 235 int y = r2.bottom()-n+i;
236 int x1 = r2.left()+1; 236 int x1 = r2.left()+1;
237 int x2 = r2.right()-1; 237 int x2 = r2.right()-1;
238 p->drawLine( x1, y, x2, y ); 238 p->drawLine( x1, y, x2, y );
239 } 239 }
240 } 240 }
241 241
242 p->setPen( cg.light() ); 242 p->setPen( cg.light() );
243 p->drawLine( r2.left(), r2.bottom()-1, r2.left(), r2.top() + 2 ); 243 p->drawLine( r2.left(), r2.bottom()-1, r2.left(), r2.top() + 2 );
244 p->drawPoint( r2.left()+1, r2.top() + 1 ); 244 p->drawPoint( r2.left()+1, r2.top() + 1 );
245 p->drawLine( r2.left()+2, r2.top(), 245 p->drawLine( r2.left()+2, r2.top(),
246 r2.right() - 2, r2.top() ); 246 r2.right() - 2, r2.top() );
247 247
248 p->setPen( cg.dark() ); 248 p->setPen( cg.dark() );
249 p->drawPoint( r2.right() - 1, r2.top() + 1 ); 249 p->drawPoint( r2.right() - 1, r2.top() + 1 );
250 p->drawLine( r2.right(), r2.top() + 2, r2.right(), r2.bottom() - 1); 250 p->drawLine( r2.right(), r2.top() + 2, r2.right(), r2.bottom() - 1);
251 } else if ( tb->shape() == QTabBar::RoundedBelow ) { 251 } else if ( tb->shape() == QTabBar::RoundedBelow ) {
@@ -512,50 +512,50 @@ void QPEStyle::drawButton( QPainter *p, int x, int y, int w, int h,
512 p->setPen( g.dark() ); 512 p->setPen( g.dark() );
513 513
514 p->drawLine( x2, y, x2, y2 ); 514 p->drawLine( x2, y, x2, y2 );
515 p->drawLine( x, y2, x2, y2 ); 515 p->drawLine( x, y2, x2, y2 );
516 p->setPen( oldPen ); 516 p->setPen( oldPen );
517 517
518 p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):g.brush(QColorGroup::Button) ); 518 p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):g.brush(QColorGroup::Button) );
519} 519}
520 520
521void QPEStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h ) 521void QPEStyle::drawButtonMask ( QPainter * p, int x, int y, int w, int h )
522{ 522{
523 p->fillRect( x, y, w, h, color1 ); 523 p->fillRect( x, y, w, h, color1 );
524} 524}
525 525
526void QPEStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h, 526void QPEStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h,
527 const QColorGroup &g, bool sunken, const QBrush* fill ) 527 const QColorGroup &g, bool sunken, const QBrush* fill )
528{ 528{
529 drawButton( p, x, y, w, h, g, sunken, fill ); 529 drawButton( p, x, y, w, h, g, sunken, fill );
530} 530}
531 531
532QRect QPEStyle::comboButtonRect( int x, int y, int w, int h) 532QRect QPEStyle::comboButtonRect( int x, int y, int w, int h)
533{ 533{
534 return QRect(x+1, y+1, w-2-14, h-2); 534 return QRect(x+1, y+1, w-2-14, h-2);
535} 535}
536 536
537 537
538QRect QPEStyle::comboButtonFocusRect( int x, int y, int w, int h) 538QRect QPEStyle::comboButtonFocusRect( int x, int y, int w, int h)
539{ 539{
540 return QRect(x+2, y+2, w-4-14, h-4); 540 return QRect(x+2, y+2, w-4-14, h-4);
541} 541}
542 542
543void QPEStyle::drawComboButton( QPainter *p, int x, int y, int w, int h, 543void QPEStyle::drawComboButton( QPainter *p, int x, int y, int w, int h,
544 const QColorGroup &g, bool sunken, 544 const QColorGroup &g, bool sunken,
545 bool /*editable*/, 545 bool /*editable*/,
546 bool enabled, 546 bool enabled,
547 const QBrush *fill ) 547 const QBrush *fill )
548{ 548{
549 drawBevelButton( p, x, y, w, h, g, FALSE, fill ); 549 drawBevelButton( p, x, y, w, h, g, FALSE, fill );
550 drawBevelButton( p, x+w-14, y, 14, h, g, sunken, fill ); 550 drawBevelButton( p, x+w-14, y, 14, h, g, sunken, fill );
551 drawArrow( p, QStyle::DownArrow, sunken, 551 drawArrow( p, QStyle::DownArrow, sunken,
552 x+w-14+ 2, y+ 2, 14- 4, h- 4, g, enabled, 552 x+w-14+ 2, y+ 2, 14- 4, h- 4, g, enabled,
553 &g.brush( QColorGroup::Button ) ); 553 &g.brush( QColorGroup::Button ) );
554 554
555} 555}
556 556
557 557
558void QPEStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w, 558void QPEStyle::drawExclusiveIndicator ( QPainter * p, int x, int y, int w,
559 int h, const QColorGroup & g, bool on, bool down, bool enabled ) 559 int h, const QColorGroup & g, bool on, bool down, bool enabled )
560{ 560{
561 static const QCOORD pts1[] = { // dark lines 561 static const QCOORD pts1[] = { // dark lines
@@ -897,49 +897,49 @@ void QPEStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected )
897 if ( tb->shape() == QTabBar::RoundedAbove ) { 897 if ( tb->shape() == QTabBar::RoundedAbove ) {
898 p->setPen( tb->colorGroup().light() ); 898 p->setPen( tb->colorGroup().light() );
899 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 899 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
900 if ( r.left() == 0 ) 900 if ( r.left() == 0 )
901 p->drawPoint( tb->rect().bottomLeft() ); 901 p->drawPoint( tb->rect().bottomLeft() );
902 else { 902 else {
903 p->setPen( tb->colorGroup().light() ); 903 p->setPen( tb->colorGroup().light() );
904 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 904 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
905 } 905 }
906 906
907 if ( selected ) { 907 if ( selected ) {
908 p->setPen( tb->colorGroup().background() ); 908 p->setPen( tb->colorGroup().background() );
909 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 909 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
910 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2), 910 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2),
911 tb->colorGroup().brush( QColorGroup::Background )); 911 tb->colorGroup().brush( QColorGroup::Background ));
912 } else { 912 } else {
913 r.setRect( r.left() + 2, r.top() + 2, 913 r.setRect( r.left() + 2, r.top() + 2,
914 r.width() - 4, r.height() - 2 ); 914 r.width() - 4, r.height() - 2 );
915 p->setPen( tb->colorGroup().button() ); 915 p->setPen( tb->colorGroup().button() );
916 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 916 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
917 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3), 917 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3),
918 tb->colorGroup().brush( QColorGroup::Button )); 918 tb->colorGroup().brush( QColorGroup::Button ));
919 919
920 //do shading; will not work for pixmap brushes 920 //do shading; will not work for pixmap brushes
921 QColor bg = tb->colorGroup().button(); 921 QColor bg = tb->colorGroup().button();
922 // int h,s,v; 922 // int h,s,v;
923 // bg.hsv( &h, &s, &v ); 923 // bg.hsv( &h, &s, &v );
924 int n = r.height()/2; 924 int n = r.height()/2;
925 int dark = 100; 925 int dark = 100;
926 for ( int i = 1; i < n; i++ ) { 926 for ( int i = 1; i < n; i++ ) {
927 dark = (dark * (100+(i*15)/n) )/100; 927 dark = (dark * (100+(i*15)/n) )/100;
928 p->setPen( bg.dark( dark ) ); 928 p->setPen( bg.dark( dark ) );
929 int y = r.bottom()-n+i; 929 int y = r.bottom()-n+i;
930 int x1 = r.left()+1; 930 int x1 = r.left()+1;
931 int x2 = r.right()-1; 931 int x2 = r.right()-1;
932 p->drawLine( x1, y, x2, y ); 932 p->drawLine( x1, y, x2, y );
933 } 933 }
934 } 934 }
935 935
936 p->setPen( tb->colorGroup().light() ); 936 p->setPen( tb->colorGroup().light() );
937 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 ); 937 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 );
938 p->drawPoint( r.left()+1, r.top() + 1 ); 938 p->drawPoint( r.left()+1, r.top() + 1 );
939 p->drawLine( r.left()+2, r.top(), 939 p->drawLine( r.left()+2, r.top(),
940 r.right() - 2, r.top() ); 940 r.right() - 2, r.top() );
941 941
942 p->setPen( tb->colorGroup().dark() ); 942 p->setPen( tb->colorGroup().dark() );
943 p->drawPoint( r.right() - 1, r.top() + 1 ); 943 p->drawPoint( r.right() - 1, r.top() + 1 );
944 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1); 944 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1);
945 } else if ( tb->shape() == QTabBar::RoundedBelow ) { 945 } else if ( tb->shape() == QTabBar::RoundedBelow ) {
@@ -1007,71 +1007,71 @@ int QPEStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi
1007 } 1007 }
1008 1008
1009 if ( maxpmw ) { // we have iconsets 1009 if ( maxpmw ) { // we have iconsets
1010 w += maxpmw; 1010 w += maxpmw;
1011 w += 6; // add a little extra border around the iconset 1011 w += 6; // add a little extra border around the iconset
1012 } 1012 }
1013 1013
1014 if ( checkable && maxpmw < windowsCheckMarkWidth ) { 1014 if ( checkable && maxpmw < windowsCheckMarkWidth ) {
1015 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks 1015 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks
1016 } 1016 }
1017 1017
1018 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) 1018 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks)
1019 w += motifCheckMarkHMargin; // add space to separate the columns 1019 w += motifCheckMarkHMargin; // add space to separate the columns
1020 1020
1021 w += windowsRightBorder; // windows has a strange wide border on the right side 1021 w += windowsRightBorder; // windows has a strange wide border on the right side
1022 1022
1023 return w; 1023 return w;
1024#endif 1024#endif
1025} 1025}
1026 1026
1027/*! \reimp 1027/*! \reimp
1028*/ 1028*/
1029int QPEStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) 1029int QPEStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm )
1030{ 1030{
1031#ifndef QT_NO_MENUDATA 1031#ifndef QT_NO_MENUDATA
1032 int h = 0; 1032 int h = 0;
1033 if ( mi->isSeparator() ) // separator height 1033 if ( mi->isSeparator() ) // separator height
1034 h = motifSepHeight; 1034 h = motifSepHeight;
1035 else if ( mi->pixmap() ) // pixmap height 1035 else if ( mi->pixmap() ) // pixmap height
1036 h = mi->pixmap()->height() + 2*motifItemFrame; 1036 h = mi->pixmap()->height() + 2*motifItemFrame;
1037 else // text height 1037 else // text height
1038 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; 1038 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1;
1039 1039
1040 if ( !mi->isSeparator() && mi->iconSet() != 0 ) { 1040 if ( !mi->isSeparator() && mi->iconSet() != 0 ) {
1041 h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame ); 1041 h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame );
1042 } 1042 }
1043 if ( mi->custom() ) 1043 if ( mi->custom() )
1044 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; 1044 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1;
1045 return h; 1045 return h;
1046#endif 1046#endif
1047} 1047}
1048 1048
1049void QPEStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 1049void QPEStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
1050 const QPalette& pal, 1050 const QPalette& pal,
1051 bool act, bool enabled, int x, int y, int w, int h) 1051 bool act, bool enabled, int x, int y, int w, int h)
1052{ 1052{
1053#ifndef QT_NO_MENUDATA 1053#ifndef QT_NO_MENUDATA
1054 const QColorGroup & g = pal.active(); 1054 const QColorGroup & g = pal.active();
1055 bool dis = !enabled; 1055 bool dis = !enabled;
1056 QColorGroup itemg = dis ? pal.disabled() : pal.active(); 1056 QColorGroup itemg = dis ? pal.disabled() : pal.active();
1057 1057
1058 if ( checkable ) 1058 if ( checkable )
1059 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks 1059 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks
1060 1060
1061 int checkcol = maxpmw; 1061 int checkcol = maxpmw;
1062 1062
1063 if ( mi && mi->isSeparator() ) { // draw separator 1063 if ( mi && mi->isSeparator() ) { // draw separator
1064 p->setPen( g.dark() ); 1064 p->setPen( g.dark() );
1065 p->drawLine( x, y, x+w, y ); 1065 p->drawLine( x, y, x+w, y );
1066 p->setPen( g.light() ); 1066 p->setPen( g.light() );
1067 p->drawLine( x, y+1, x+w, y+1 ); 1067 p->drawLine( x, y+1, x+w, y+1 );
1068 return; 1068 return;
1069 } 1069 }
1070 1070
1071 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 1071 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
1072 g.brush( QColorGroup::Button ); 1072 g.brush( QColorGroup::Button );
1073 p->fillRect( x, y, w, h, fill); 1073 p->fillRect( x, y, w, h, fill);
1074 1074
1075 if ( !mi ) 1075 if ( !mi )
1076 return; 1076 return;
1077 1077