summaryrefslogtreecommitdiff
path: root/library/lightstyle.cpp
authordrw <drw>2005-04-14 18:29:44 (UTC)
committer drw <drw>2005-04-14 18:29:44 (UTC)
commit7a3b813cc3bfbb2f7c31f347c35405851e82aecf (patch) (unidiff)
treeb9d384b6d33e396a0219386b4bf695b092bb606d /library/lightstyle.cpp
parent5f600ec21480d1d040203407a1d2446781702230 (diff)
downloadopie-7a3b813cc3bfbb2f7c31f347c35405851e82aecf.zip
opie-7a3b813cc3bfbb2f7c31f347c35405851e82aecf.tar.gz
opie-7a3b813cc3bfbb2f7c31f347c35405851e82aecf.tar.bz2
Fix icon sizing for light and qpe styles
Diffstat (limited to 'library/lightstyle.cpp') (more/less context) (show whitespace changes)
-rw-r--r--library/lightstyle.cpp8
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
@@ -1083,151 +1083,155 @@ static const int windowsCheckMarkWidth = 2; // checkmarks width on windows
1083*/ 1083*/
1084int LightStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) 1084int LightStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ )
1085{ 1085{
1086#ifndef QT_NO_MENUDATA 1086#ifndef QT_NO_MENUDATA
1087 int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm 1087 int w = 2*motifItemHMargin + 2*motifItemFrame; // a little bit of border can never harm
1088 1088
1089 if ( mi->isSeparator() ) 1089 if ( mi->isSeparator() )
1090 return 10; // arbitrary 1090 return 10; // arbitrary
1091 else if ( mi->pixmap() ) 1091 else if ( mi->pixmap() )
1092 w += mi->pixmap()->width();// pixmap only 1092 w += mi->pixmap()->width();// pixmap only
1093 1093
1094 if ( !mi->text().isNull() ) { 1094 if ( !mi->text().isNull() ) {
1095 if ( mi->text().find('\t') >= 0 )// string contains tab 1095 if ( mi->text().find('\t') >= 0 )// string contains tab
1096 w += motifTabSpacing; 1096 w += motifTabSpacing;
1097 } 1097 }
1098 1098
1099 if ( maxpmw ) { // we have iconsets 1099 if ( maxpmw ) { // we have iconsets
1100 w += maxpmw; 1100 w += maxpmw;
1101 w += 6; // add a little extra border around the iconset 1101 w += 6; // add a little extra border around the iconset
1102 } 1102 }
1103 1103
1104 if ( checkable && maxpmw < windowsCheckMarkWidth ) { 1104 if ( checkable && maxpmw < windowsCheckMarkWidth ) {
1105 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks 1105 w += windowsCheckMarkWidth - maxpmw; // space for the checkmarks
1106 } 1106 }
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*/
1119int LightStyle::popupMenuItemHeight( bool /*checkable*/, QMenuItem* mi, const QFontMetrics& fm ) 1119int 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
1139void LightStyle::drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 1139void 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 );
1156 p->setPen( g.light() ); 1156 p->setPen( g.light() );
1157 p->drawLine( x, y+1, x+w, y+1 ); 1157 p->drawLine( x, y+1, x+w, y+1 );
1158 return; 1158 return;
1159 } 1159 }
1160 1160
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
1210 p->setPen( act ? g.highlightedText() : g.buttonText() ); 1214 p->setPen( act ? g.highlightedText() : g.buttonText() );
1211 1215
1212 QColor discol; 1216 QColor discol;
1213 if ( dis ) { 1217 if ( dis ) {
1214 discol = itemg.text(); 1218 discol = itemg.text();
1215 p->setPen( discol ); 1219 p->setPen( discol );
1216 } 1220 }
1217 1221
1218 int xm = motifItemFrame + checkcol + motifItemHMargin; 1222 int xm = motifItemFrame + checkcol + motifItemHMargin;
1219 1223
1220 if ( mi->custom() ) { 1224 if ( mi->custom() ) {
1221 int m = motifItemVMargin; 1225 int m = motifItemVMargin;
1222 p->save(); 1226 p->save();
1223 if ( dis && !act ) { 1227 if ( dis && !act ) {
1224 p->setPen( g.light() ); 1228 p->setPen( g.light() );
1225 mi->custom()->paint( p, itemg, act, enabled, 1229 mi->custom()->paint( p, itemg, act, enabled,
1226 x+xm+1, y+m+1, w-xm-tab+1, h-2*m ); 1230 x+xm+1, y+m+1, w-xm-tab+1, h-2*m );
1227 p->setPen( discol ); 1231 p->setPen( discol );
1228 } 1232 }
1229 mi->custom()->paint( p, itemg, act, enabled, 1233 mi->custom()->paint( p, itemg, act, enabled,
1230 x+xm, y+m, w-xm-tab+1, h-2*m ); 1234 x+xm, y+m, w-xm-tab+1, h-2*m );
1231 p->restore(); 1235 p->restore();
1232 } 1236 }
1233 QString s = mi->text(); 1237 QString s = mi->text();