-rw-r--r-- | library/lightstyle.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/library/lightstyle.cpp b/library/lightstyle.cpp index 3bd1623..c5073ca 100644 --- a/library/lightstyle.cpp +++ b/library/lightstyle.cpp | |||
@@ -1107,49 +1107,49 @@ int LightStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* | |||
1107 | 1107 | ||
1108 | if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) | 1108 | if ( maxpmw > 0 || checkable ) // we have a check-column ( iconsets or checkmarks) |
1109 | w += motifCheckMarkHMargin; // add space to separate the columns | 1109 | w += motifCheckMarkHMargin; // add space to separate the columns |
1110 | 1110 | ||
1111 | w += windowsRightBorder; // windows has a strange wide border on the right side | 1111 | w += windowsRightBorder; // windows has a strange wide border on the right side |
1112 | 1112 | ||
1113 | return w; | 1113 | return w; |
1114 | #endif | 1114 | #endif |
1115 | } | 1115 | } |
1116 | 1116 | ||
1117 | /*! \reimp | 1117 | /*! \reimp |
1118 | */ | 1118 | */ |
1119 | int LightStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) | 1119 | int LightStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) |
1120 | { | 1120 | { |
1121 | #ifndef QT_NO_MENUDATA | 1121 | #ifndef QT_NO_MENUDATA |
1122 | int h = 0; | 1122 | int h = 0; |
1123 | if ( mi->isSeparator() ) // separator height | 1123 | if ( mi->isSeparator() ) // separator height |
1124 | h = motifSepHeight; | 1124 | h = motifSepHeight; |
1125 | else if ( mi->pixmap() ) // pixmap height | 1125 | else if ( mi->pixmap() ) // pixmap height |
1126 | h = mi->pixmap()->height() + 2*motifItemFrame; | 1126 | h = mi->pixmap()->height() + 2*motifItemFrame; |
1127 | else // text height | 1127 | else // text height |
1128 | h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame; | 1128 | h = fm.height() + 2*motifItemVMargin + 2*motifItemFrame; |
1129 | 1129 | ||
1130 | if ( !mi->isSeparator() && mi->iconSet() != 0 ) { | 1130 | if ( !mi->isSeparator() && mi->iconSet() != 0 ) { |
1131 | h = QMAX( h, mi->iconSet()->pixmap( QIconSet::Small, QIconSet::Normal ).height() + 2*motifItemFrame ); | 1131 | h = QMAX( h, mi->iconSet()->pixmap().height() + 2*motifItemFrame ); |
1132 | } | 1132 | } |
1133 | if ( mi->custom() ) | 1133 | if ( mi->custom() ) |
1134 | h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; | 1134 | h = QMAX( h, mi->custom()->sizeHint().height() + 2*motifItemVMargin + 2*motifItemFrame ) - 1; |
1135 | return h; | 1135 | return h; |
1136 | #endif | 1136 | #endif |
1137 | } | 1137 | } |
1138 | 1138 | ||
1139 | void LightStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, | 1139 | void LightStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, |
1140 | const QPalette& pal, | 1140 | const QPalette& pal, |
1141 | bool act, bool enabled, int x, int y, int w, int h) | 1141 | bool act, bool enabled, int x, int y, int w, int h) |
1142 | { | 1142 | { |
1143 | #ifndef QT_NO_MENUDATA | 1143 | #ifndef QT_NO_MENUDATA |
1144 | const QColorGroup & g = pal.active(); | 1144 | const QColorGroup & g = pal.active(); |
1145 | bool dis = !enabled; | 1145 | bool dis = !enabled; |
1146 | QColorGroup itemg = dis ? pal.disabled() : pal.active(); | 1146 | QColorGroup itemg = dis ? pal.disabled() : pal.active(); |
1147 | 1147 | ||
1148 | if ( checkable ) | 1148 | if ( checkable ) |
1149 | maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks | 1149 | maxpmw = QMAX( maxpmw, 8 ); // space for the checkmarks |
1150 | 1150 | ||
1151 | int checkcol = maxpmw; | 1151 | int checkcol = maxpmw; |
1152 | 1152 | ||
1153 | if ( mi && mi->isSeparator() ) { // draw separator | 1153 | if ( mi && mi->isSeparator() ) { // draw separator |
1154 | p->setPen( g.dark() ); | 1154 | p->setPen( g.dark() ); |
1155 | p->drawLine( x, y, x+w, y ); | 1155 | p->drawLine( x, y, x+w, y ); |
@@ -1161,49 +1161,53 @@ void LightStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int | |||
1161 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : | 1161 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : |
1162 | g.brush( QColorGroup::Button ); | 1162 | g.brush( QColorGroup::Button ); |
1163 | p->fillRect( x, y, w, h, fill); | 1163 | p->fillRect( x, y, w, h, fill); |
1164 | 1164 | ||
1165 | if ( !mi ) | 1165 | if ( !mi ) |
1166 | return; | 1166 | return; |
1167 | 1167 | ||
1168 | if ( mi->isChecked() ) { | 1168 | if ( mi->isChecked() ) { |
1169 | if ( act && !dis ) { | 1169 | if ( act && !dis ) { |
1170 | qDrawShadePanel( p, x, y, checkcol, h, | 1170 | qDrawShadePanel( p, x, y, checkcol, h, |
1171 | g, TRUE, 1, &g.brush( QColorGroup::Button ) ); | 1171 | g, TRUE, 1, &g.brush( QColorGroup::Button ) ); |
1172 | } else { | 1172 | } else { |
1173 | qDrawShadePanel( p, x, y, checkcol, h, | 1173 | qDrawShadePanel( p, x, y, checkcol, h, |
1174 | g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); | 1174 | g, TRUE, 1, &g.brush( QColorGroup::Midlight ) ); |
1175 | } | 1175 | } |
1176 | } else if ( !act ) { | 1176 | } else if ( !act ) { |
1177 | p->fillRect(x, y, checkcol , h, | 1177 | p->fillRect(x, y, checkcol , h, |
1178 | g.brush( QColorGroup::Button )); | 1178 | g.brush( QColorGroup::Button )); |
1179 | } | 1179 | } |
1180 | 1180 | ||
1181 | if ( mi->iconSet() ) { // draw iconset | 1181 | if ( mi->iconSet() ) { // draw iconset |
1182 | QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; | 1182 | QIconSet::Mode mode = dis ? QIconSet::Disabled : QIconSet::Normal; |
1183 | if (act && !dis ) | 1183 | if (act && !dis ) |
1184 | mode = QIconSet::Active; | 1184 | mode = QIconSet::Active; |
1185 | QPixmap pixmap = mi->iconSet()->pixmap( QIconSet::Small, mode ); | 1185 | QPixmap pixmap; |
1186 | if ( mode == QIconSet::Disabled ) | ||
1187 | pixmap = mi->iconSet()->pixmap( QIconSet::Automatic, mode ); | ||
1188 | else | ||
1189 | pixmap = mi->iconSet()->pixmap(); | ||
1186 | int pixw = pixmap.width(); | 1190 | int pixw = pixmap.width(); |
1187 | int pixh = pixmap.height(); | 1191 | int pixh = pixmap.height(); |
1188 | if ( act && !dis ) { | 1192 | if ( act && !dis ) { |
1189 | if ( !mi->isChecked() ) | 1193 | if ( !mi->isChecked() ) |
1190 | qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); | 1194 | qDrawShadePanel( p, x, y, checkcol, h, g, FALSE, 1, &g.brush( QColorGroup::Button ) ); |
1191 | } | 1195 | } |
1192 | QRect cr( x, y, checkcol, h ); | 1196 | QRect cr( x, y, checkcol, h ); |
1193 | QRect pmr( 0, 0, pixw, pixh ); | 1197 | QRect pmr( 0, 0, pixw, pixh ); |
1194 | pmr.moveCenter( cr.center() ); | 1198 | pmr.moveCenter( cr.center() ); |
1195 | p->setPen( itemg.text() ); | 1199 | p->setPen( itemg.text() ); |
1196 | p->drawPixmap( pmr.topLeft(), pixmap ); | 1200 | p->drawPixmap( pmr.topLeft(), pixmap ); |
1197 | 1201 | ||
1198 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : | 1202 | QBrush fill = act? g.brush( QColorGroup::Highlight ) : |
1199 | g.brush( QColorGroup::Button ); | 1203 | g.brush( QColorGroup::Button ); |
1200 | p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); | 1204 | p->fillRect( x+checkcol + 1, y, w - checkcol - 1, h, fill); |
1201 | } else if ( checkable ) {// just "checking"... | 1205 | } else if ( checkable ) {// just "checking"... |
1202 | int mw = checkcol + motifItemFrame; | 1206 | int mw = checkcol + motifItemFrame; |
1203 | int mh = h - 2*motifItemFrame; | 1207 | int mh = h - 2*motifItemFrame; |
1204 | if ( mi->isChecked() ) { | 1208 | if ( mi->isChecked() ) { |
1205 | drawCheckMark( p, x + motifItemFrame + 2, | 1209 | drawCheckMark( p, x + motifItemFrame + 2, |
1206 | y+motifItemFrame, mw, mh, itemg, act, dis ); | 1210 | y+motifItemFrame, mw, mh, itemg, act, dis ); |
1207 | } | 1211 | } |
1208 | } | 1212 | } |
1209 | 1213 | ||