-rw-r--r-- | library/lightstyle.cpp | 8 | ||||
-rw-r--r-- | library/qpestyle.cpp | 8 |
2 files changed, 12 insertions, 4 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 | ||
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 | */ |
1026 | int QPEStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) | 1026 | int 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 | ||
1046 | void QPEStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, | 1046 | void 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 | ||