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
@@ -1022,33 +1022,33 @@ int QPEStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi
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
@@ -1076,33 +1076,37 @@ void QPEStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int t
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"...