summaryrefslogtreecommitdiff
path: root/library/qpestyle.cpp
Unidiff
Diffstat (limited to 'library/qpestyle.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpestyle.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/library/qpestyle.cpp b/library/qpestyle.cpp
index 0566f6b..9503e02 100644
--- a/library/qpestyle.cpp
+++ b/library/qpestyle.cpp
@@ -1014,49 +1014,49 @@ int QPEStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi
1014 1014
1015 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) 1015 if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks)
1016 w += motifCheckMarkHMargin; // add space to separate the columns 1016 w += motifCheckMarkHMargin; // add space to separate the columns
1017 1017
1018 w += windowsRightBorder; // windows has a strange wide border on the right side 1018 w += windowsRightBorder; // windows has a strange wide border on the right side
1019 1019
1020 return w; 1020 return w;
1021#endif 1021#endif
1022} 1022}
1023 1023
1024/*! \reimp 1024/*! \reimp
1025*/ 1025*/
1026int QPEStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) 1026int QPEStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm )
1027{ 1027{
1028#ifndef QT_NO_MENUDATA 1028#ifndef QT_NO_MENUDATA
1029 int h = 0; 1029 int h = 0;
1030 if ( mi->isSeparator() ) // separator height 1030 if ( mi->isSeparator() ) // separator height
1031 h = motifSepHeight; 1031 h = motifSepHeight;
1032 else if ( mi->pixmap() ) // pixmap height 1032 else if ( mi->pixmap() ) // pixmap height
1033 h = mi->pixmap()->height() + 2*motifItemFrame; 1033 h = mi->pixmap()->height() + 2*motifItemFrame;
1034 else // text height 1034 else // text height
1035 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1; 1035 h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame - 1;
1036 1036
1037 if ( !mi->isSeparator() && mi->iconSet() != 0 ) { 1037 if ( !mi->isSeparator() && mi->iconSet() != 0 ) {
1038 h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame ); 1038 h = QMAX( h, mi->iconSet()->pixmap().height() + 2*motifItemFrame );
1039 } 1039 }
1040 if ( mi->custom() ) 1040 if ( mi->custom() )
1041 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; 1041 h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1;
1042 return h; 1042 return h;
1043#endif 1043#endif
1044} 1044}
1045 1045
1046void QPEStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 1046void QPEStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
1047 const QPalette& pal, 1047 const QPalette& pal,
1048 bool act, bool enabled, int x, int y, int w, int h) 1048 bool act, bool enabled, int x, int y, int w, int h)
1049{ 1049{
1050#ifndef QT_NO_MENUDATA 1050#ifndef QT_NO_MENUDATA
1051 const QColorGroup & g = pal.active(); 1051 const QColorGroup & g = pal.active();
1052 bool dis = !enabled; 1052 bool dis = !enabled;
1053 QColorGroup itemg = dis ? pal.disabled() : pal.active(); 1053 QColorGroup itemg = dis ? pal.disabled() : pal.active();
1054 1054
1055 if ( checkable ) 1055 if ( checkable )
1056 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks 1056 maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks
1057 1057
1058 int checkcol = maxpmw; 1058 int checkcol = maxpmw;
1059 1059
1060 if ( mi && mi->isSeparator() ) { // draw separator 1060 if ( mi && mi->isSeparator() ) { // draw separator
1061 p->setPen( g.dark() ); 1061 p->setPen( g.dark() );
1062 p->drawLine( x, y, x+w, y ); 1062 p->drawLine( x, y, x+w, y );
@@ -1068,49 +1068,53 @@ void QPEStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int t
1068 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 1068 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
1069 g.brush( QColorGroup::Button ); 1069 g.brush( QColorGroup::Button );
1070 p->fillRect( x, y, w, h, fill); 1070 p->fillRect( x, y, w, h, fill);
1071 1071
1072 if ( !mi ) 1072 if ( !mi )
1073 return; 1073 return;
1074 1074
1075 if ( mi->isChecked() ) { 1075 if ( mi->isChecked() ) {
1076 if ( act && !dis ) { 1076 if ( act && !dis ) {
1077 qDrawShadePanel( p, x, y, checkcol, h, 1077 qDrawShadePanel( p, x, y, checkcol, h,
1078 g, TRUE, 1, &g.brush( QColorGroup::Button ) ); 1078 g, TRUE, 1, &g.brush( QColorGroup::Button ) );
1079 } else { 1079 } else {
1080 qDrawShadePanel( p, x, y, checkcol, h, 1080 qDrawShadePanel( p, x, y, checkcol, h,
1081 g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); 1081 g, TRUE, 1, &g.brush( QColorGroup::Midlight ) );
1082 } 1082 }
1083 } else if ( !act ) { 1083 } else if ( !act ) {
1084 p->fillRect(x, y, checkcol , h, 1084 p->fillRect(x, y, checkcol , h,
1085 g.brush( QColorGroup::Button )); 1085 g.brush( QColorGroup::Button ));
1086 } 1086 }
1087 1087
1088 if ( mi->iconSet() ) { // draw iconset 1088 if ( mi->iconSet() ) { // draw iconset
1089 QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; 1089 QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal;
1090 if (act && !dis ) 1090 if (act && !dis )
1091 mode = QIconSet::Active; 1091 mode = QIconSet::Active;
1092 QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode ); 1092 QPixmap pixmap;
1093 if ( mode == QIconSet::Disabled )
1094 pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode );
1095 else
1096 pixmap = mi->iconSet()->pixmap();
1093 int pixw = pixmap.width(); 1097 int pixw = pixmap.width();
1094 int pixh = pixmap.height(); 1098 int pixh = pixmap.height();
1095 if ( act && !dis ) { 1099 if ( act && !dis ) {
1096 if ( !mi->isChecked() ) 1100 if ( !mi->isChecked() )
1097 qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); 1101 qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) );
1098 } 1102 }
1099 QRect cr( x, y, checkcol, h ); 1103 QRect cr( x, y, checkcol, h );
1100 QRect pmr( 0, 0, pixw, pixh ); 1104 QRect pmr( 0, 0, pixw, pixh );
1101 pmr.moveCenter( cr.center() ); 1105 pmr.moveCenter( cr.center() );
1102 p->setPen( itemg.text() ); 1106 p->setPen( itemg.text() );
1103 p->drawPixmap( pmr.topLeft(), pixmap ); 1107 p->drawPixmap( pmr.topLeft(), pixmap );
1104 1108
1105 QBrush fill = act? g.brush( QColorGroup::Highlight ) : 1109 QBrush fill = act? g.brush( QColorGroup::Highlight ) :
1106 g.brush( QColorGroup::Button ); 1110 g.brush( QColorGroup::Button );
1107 p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); 1111 p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill);
1108 } else if ( checkable ) {// just "checking"... 1112 } else if ( checkable ) {// just "checking"...
1109 int mw = checkcol + motifItemFrame; 1113 int mw = checkcol + motifItemFrame;
1110 int mh = h - 2*motifItemFrame; 1114 int mh = h - 2*motifItemFrame;
1111 if ( mi->isChecked() ) { 1115 if ( mi->isChecked() ) {
1112 drawCheckMark( p, x + motifItemFrame + 2, 1116 drawCheckMark( p, x + motifItemFrame + 2,
1113 y+motifItemFrame, mw, mh, itemg, act, dis ); 1117 y+motifItemFrame, mw, mh, itemg, act, dis );
1114 } 1118 }
1115 } 1119 }
1116 1120