summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/lightstyle.cpp30
-rw-r--r--library/qpestyle.cpp8
2 files changed, 23 insertions, 15 deletions
diff --git a/library/lightstyle.cpp b/library/lightstyle.cpp
index 3bd1623..c5073ca 100644
--- a/library/lightstyle.cpp
+++ b/library/lightstyle.cpp
@@ -546,88 +546,88 @@ void LightStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int w, int h,
546 p->setPen(down ? g.mid() : g.base()); 546 p->setPen(down ? g.mid() : g.base());
547 p->setBrush(down ? g.mid() : g.base()); 547 p->setBrush(down ? g.mid() : g.base());
548 p->drawEllipse(x + 2, y + 2, w - 4, h - 4); 548 p->drawEllipse(x + 2, y + 2, w - 4, h - 4);
549 549
550 if (on) { 550 if (on) {
551 p->setBrush(g.foreground()); 551 p->setBrush(g.foreground());
552 p->drawEllipse(x + 3, y + 3, w - x - 6, h - y - 6); 552 p->drawEllipse(x + 3, y + 3, w - x - 6, h - y - 6);
553 } 553 }
554 554
555 p->restore(); 555 p->restore();
556} 556}
557 557
558 558
559 559
560#if 1 560#if 1
561//copied from QPE style 561//copied from QPE style
562void LightStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected ) 562void LightStyle::drawTab( QPainter *p, const QTabBar *tb, QTab *t, bool selected )
563{ 563{
564#if 0 564#if 0
565 //We can't do this, because QTabBar::focusInEvent redraws the 565 //We can't do this, because QTabBar::focusInEvent redraws the
566 // tab label with the default font. 566 // tab label with the default font.
567 QFont f = tb->font(); 567 QFont f = tb->font();
568 f.setBold( selected ); 568 f.setBold( selected );
569 p->setFont( f ); 569 p->setFont( f );
570#endif 570#endif
571 QRect r( t->rect() ); 571 QRect r( t->rect() );
572 if ( tb->shape() == QTabBar::RoundedAbove ) { 572 if ( tb->shape() == QTabBar::RoundedAbove ) {
573 p->setPen( tb->colorGroup().light() ); 573 p->setPen( tb->colorGroup().light() );
574 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 574 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
575 if ( r.left() == 0 ) 575 if ( r.left() == 0 )
576 p->drawPoint( tb->rect().bottomLeft() ); 576 p->drawPoint( tb->rect().bottomLeft() );
577 else { 577 else {
578 p->setPen( tb->colorGroup().light() ); 578 p->setPen( tb->colorGroup().light() );
579 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() ); 579 p->drawLine( r.left(), r.bottom(), r.right(), r.bottom() );
580 } 580 }
581 581
582 if ( selected ) { 582 if ( selected ) {
583 p->setPen( tb->colorGroup().background() ); 583 p->setPen( tb->colorGroup().background() );
584 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 584 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
585 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2), 585 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-2),
586 tb->colorGroup().brush( QColorGroup::Background )); 586 tb->colorGroup().brush( QColorGroup::Background ));
587 587
588 } else { 588 } else {
589 r.setRect( r.left() + 2, r.top() + 2, 589 r.setRect( r.left() + 2, r.top() + 2,
590 r.width() - 4, r.height() - 2 ); 590 r.width() - 4, r.height() - 2 );
591 p->setPen( tb->colorGroup().button() ); 591 p->setPen( tb->colorGroup().button() );
592 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 ); 592 p->drawLine( r.left()+2, r.top()+1, r.right()-2, r.top()+1 );
593 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3), 593 p->fillRect( QRect( r.left()+1, r.top()+2, r.width()-2, r.height()-3),
594 tb->colorGroup().brush( QColorGroup::Button )); 594 tb->colorGroup().brush( QColorGroup::Button ));
595 //do shading; will not work for pixmap brushes 595 //do shading; will not work for pixmap brushes
596 QColor bg = tb->colorGroup().button(); 596 QColor bg = tb->colorGroup().button();
597 // int h,s,v; 597 // int h,s,v;
598 // bg.hsv( &h, &s, &v ); 598 // bg.hsv( &h, &s, &v );
599 int n = r.height()/2; 599 int n = r.height()/2;
600 int dark = 100; 600 int dark = 100;
601 for ( int i = 1; i < n; i++ ) { 601 for ( int i = 1; i < n; i++ ) {
602 dark = (dark * (100+(i*15)/n) )/100; 602 dark = (dark * (100+(i*15)/n) )/100;
603 p->setPen( bg.dark( dark ) ); 603 p->setPen( bg.dark( dark ) );
604 int y = r.bottom()-n+i; 604 int y = r.bottom()-n+i;
605 int x1 = r.left()+1; 605 int x1 = r.left()+1;
606 int x2 = r.right()-1; 606 int x2 = r.right()-1;
607 p->drawLine( x1, y, x2, y ); 607 p->drawLine( x1, y, x2, y );
608 } 608 }
609 609
610 } 610 }
611 611
612 p->setPen( tb->colorGroup().light() ); 612 p->setPen( tb->colorGroup().light() );
613 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 ); 613 p->drawLine( r.left(), r.bottom()-1, r.left(), r.top() + 2 );
614 p->drawPoint( r.left()+1, r.top() + 1 ); 614 p->drawPoint( r.left()+1, r.top() + 1 );
615 p->drawLine( r.left()+2, r.top(), 615 p->drawLine( r.left()+2, r.top(),
616 r.right() - 2, r.top() ); 616 r.right() - 2, r.top() );
617 617
618 p->setPen( tb->colorGroup().dark() ); 618 p->setPen( tb->colorGroup().dark() );
619 p->drawPoint( r.right() - 1, r.top() + 1 ); 619 p->drawPoint( r.right() - 1, r.top() + 1 );
620 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1); 620 p->drawLine( r.right(), r.top() + 2, r.right(), r.bottom() - 1);
621 } else if ( tb->shape() == QTabBar::RoundedBelow ) { 621 } else if ( tb->shape() == QTabBar::RoundedBelow ) {
622 if ( selected ) { 622 if ( selected ) {
623 p->setPen( tb->colorGroup().background() ); 623 p->setPen( tb->colorGroup().background() );
624 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 ); 624 p->drawLine( r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1 );
625 p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2), 625 p->fillRect( QRect( r.left()+1, r.top(), r.width()-2, r.height()-2),
626 tb->palette().normal().brush( QColorGroup::Background )); 626 tb->palette().normal().brush( QColorGroup::Background ));
627 } else { 627 } else {
628 p->setPen( tb->colorGroup().dark() ); 628 p->setPen( tb->colorGroup().dark() );
629 p->drawLine( r.left(), r.top(), 629 p->drawLine( r.left(), r.top(),
630 r.right(), r.top() ); 630 r.right(), r.top() );
631 r.setRect( r.left() + 2, r.top(), 631 r.setRect( r.left() + 2, r.top(),
632 r.width() - 4, r.height() - 2 ); 632 r.width() - 4, r.height() - 2 );
633 p->setPen( tb->colorGroup().button() ); 633 p->setPen( tb->colorGroup().button() );
@@ -665,49 +665,49 @@ void LightStyle::drawTab(QPainter *p, const QTabBar *tabbar, QTab *tab,
665 QColorGroup g = tabbar->colorGroup(); 665 QColorGroup g = tabbar->colorGroup();
666 QRect fr(tab->r); 666 QRect fr(tab->r);
667 fr.setLeft(fr.left() + 2); 667 fr.setLeft(fr.left() + 2);
668 668
669 if (! selected) { 669 if (! selected) {
670 if (tabbar->shape() == QTabBar::RoundedAbove || 670 if (tabbar->shape() == QTabBar::RoundedAbove ||
671 tabbar->shape() == QTabBar::TriangularAbove) { 671 tabbar->shape() == QTabBar::TriangularAbove) {
672 672
673 fr.setTop(fr.top() + 2); 673 fr.setTop(fr.top() + 2);
674 } else { 674 } else {
675 fr.setBottom(fr.bottom() - 2); 675 fr.setBottom(fr.bottom() - 2);
676 } 676 }
677 } 677 }
678 678
679 QRegion tabr(tab->r); 679 QRegion tabr(tab->r);
680 680
681 QPointArray cliptri(4); 681 QPointArray cliptri(4);
682 cliptri.setPoint(0, fr.left(), fr.top()); 682 cliptri.setPoint(0, fr.left(), fr.top());
683 cliptri.setPoint(1, fr.left(), fr.top() + 5); 683 cliptri.setPoint(1, fr.left(), fr.top() + 5);
684 cliptri.setPoint(2, fr.left() + 5, fr.top()); 684 cliptri.setPoint(2, fr.left() + 5, fr.top());
685 cliptri.setPoint(3, fr.left(), fr.top()); 685 cliptri.setPoint(3, fr.left(), fr.top());
686 QRegion trir(cliptri); 686 QRegion trir(cliptri);
687 p->setClipRegion(tabr - trir); 687 p->setClipRegion(tabr - trir);
688 688
689 p->setPen( NoPen ); 689 p->setPen( NoPen );
690 p->setBrush(g.brush(selected ? QColorGroup::Background : QColorGroup::Mid)); 690 p->setBrush(g.brush(selected ? QColorGroup::Background : QColorGroup::Mid));
691 691
692 fr.setWidth(fr.width() - 1); 692 fr.setWidth(fr.width() - 1);
693 p->drawRect(fr.left() + 1, fr.top() + 1, fr.width() - 2, fr.height() - 2); 693 p->drawRect(fr.left() + 1, fr.top() + 1, fr.width() - 2, fr.height() - 2);
694 694
695 if (tabbar->shape() == QTabBar::RoundedAbove) { 695 if (tabbar->shape() == QTabBar::RoundedAbove) {
696 // "rounded" tabs on top 696 // "rounded" tabs on top
697 fr.setBottom(fr.bottom() - 1); 697 fr.setBottom(fr.bottom() - 1);
698 698
699 p->setPen(g.dark()); 699 p->setPen(g.dark());
700 p->drawLine(fr.left(), fr.top() + 5, fr.left(), fr.bottom() - 1); 700 p->drawLine(fr.left(), fr.top() + 5, fr.left(), fr.bottom() - 1);
701 p->drawLine(fr.left(), fr.top() + 5, fr.left() + 5, fr.top()); 701 p->drawLine(fr.left(), fr.top() + 5, fr.left() + 5, fr.top());
702 p->drawLine(fr.left() + 5, fr.top(), fr.right() - 1, fr.top()); 702 p->drawLine(fr.left() + 5, fr.top(), fr.right() - 1, fr.top());
703 p->drawLine(fr.right(), fr.top() + 1, fr.right(), fr.bottom() - 1); 703 p->drawLine(fr.right(), fr.top() + 1, fr.right(), fr.bottom() - 1);
704 704
705 if (selected) { 705 if (selected) {
706 p->drawLine(fr.right(), fr.bottom(), fr.right() + 2, fr.bottom()); 706 p->drawLine(fr.right(), fr.bottom(), fr.right() + 2, fr.bottom());
707 p->drawPoint(fr.left(), fr.bottom()); 707 p->drawPoint(fr.left(), fr.bottom());
708 } else 708 } else
709 p->drawLine(fr.left(), fr.bottom(), fr.right() + 2, fr.bottom()); 709 p->drawLine(fr.left(), fr.bottom(), fr.right() + 2, fr.bottom());
710 710
711 if (fr.left() == 2) { 711 if (fr.left() == 2) {
712 p->drawPoint(fr.left() - 1, fr.bottom() + 1); 712 p->drawPoint(fr.left() - 1, fr.bottom() + 1);
713 p->drawPoint(fr.left() - 2, fr.bottom() + 2); 713 p->drawPoint(fr.left() - 2, fr.bottom() + 2);
@@ -861,51 +861,51 @@ QStyle::ScrollControl LightStyle::scrollBarPointOver(const QScrollBar *scrollbar
861 return AddLine; 861 return AddLine;
862} 862}
863 863
864 864
865 865
866void LightStyle::drawScrollBarControls( QPainter* p, const QScrollBar* scrollbar, 866void LightStyle::drawScrollBarControls( QPainter* p, const QScrollBar* scrollbar,
867 int sliderStart, uint controls, 867 int sliderStart, uint controls,
868 uint activeControl ) 868 uint activeControl )
869{ 869{
870 QColorGroup g = scrollbar->colorGroup(); 870 QColorGroup g = scrollbar->colorGroup();
871 871
872 int sliderMin, sliderMax, sliderLength, buttonDim; 872 int sliderMin, sliderMax, sliderLength, buttonDim;
873 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim ); 873 scrollBarMetrics( scrollbar, sliderMin, sliderMax, sliderLength, buttonDim );
874 874
875 if (sliderStart > sliderMax) { // sanity check 875 if (sliderStart > sliderMax) { // sanity check
876 sliderStart = sliderMax; 876 sliderStart = sliderMax;
877 } 877 }
878 878
879 QRect addR, subR, subR2, addPageR, subPageR, sliderR; 879 QRect addR, subR, subR2, addPageR, subPageR, sliderR;
880 int length = ((scrollbar->orientation() == Horizontal) ? 880 int length = ((scrollbar->orientation() == Horizontal) ?
881 scrollbar->width() : scrollbar->height()); 881 scrollbar->width() : scrollbar->height());
882 int extent = ((scrollbar->orientation() == Horizontal) ? 882 int extent = ((scrollbar->orientation() == Horizontal) ?
883 scrollbar->height() : scrollbar->width()); 883 scrollbar->height() : scrollbar->width());
884 884
885 885
886 int fudge = 3; //####disgusting hack 886 int fudge = 3; //####disgusting hack
887 887
888 if (scrollbar->orientation() == Horizontal) { 888 if (scrollbar->orientation() == Horizontal) {
889 subR.setRect(0, defaultFrameWidth(), 889 subR.setRect(0, defaultFrameWidth(),
890 buttonDim + fudge, buttonDim); 890 buttonDim + fudge, buttonDim);
891 subR2.setRect(length - (buttonDim * 2), defaultFrameWidth() , 891 subR2.setRect(length - (buttonDim * 2), defaultFrameWidth() ,
892 buttonDim, buttonDim); 892 buttonDim, buttonDim);
893 addR.setRect(length - buttonDim, defaultFrameWidth(), 893 addR.setRect(length - buttonDim, defaultFrameWidth(),
894 buttonDim, buttonDim); 894 buttonDim, buttonDim);
895 } else { 895 } else {
896 subR.setRect(defaultFrameWidth() + 1, 0, 896 subR.setRect(defaultFrameWidth() + 1, 0,
897 buttonDim, buttonDim + fudge); 897 buttonDim, buttonDim + fudge);
898 subR2.setRect(defaultFrameWidth() + 1, length - (buttonDim * 2), 898 subR2.setRect(defaultFrameWidth() + 1, length - (buttonDim * 2),
899 buttonDim, buttonDim); 899 buttonDim, buttonDim);
900 addR.setRect(defaultFrameWidth() + 1, length - buttonDim, 900 addR.setRect(defaultFrameWidth() + 1, length - buttonDim,
901 buttonDim, buttonDim); 901 buttonDim, buttonDim);
902 } 902 }
903 903
904 int sliderEnd = sliderStart + sliderLength; 904 int sliderEnd = sliderStart + sliderLength;
905 int sliderW = extent - defaultFrameWidth() - 1; 905 int sliderW = extent - defaultFrameWidth() - 1;
906 if (scrollbar->orientation() == Horizontal) { 906 if (scrollbar->orientation() == Horizontal) {
907 subPageR.setRect( subR.right() + 1, defaultFrameWidth(), 907 subPageR.setRect( subR.right() + 1, defaultFrameWidth(),
908 sliderStart - subR.right() - 1 , sliderW ); 908 sliderStart - subR.right() - 1 , sliderW );
909 addPageR.setRect( sliderEnd, defaultFrameWidth(), 909 addPageR.setRect( sliderEnd, defaultFrameWidth(),
910 subR2.left() - sliderEnd, sliderW ); 910 subR2.left() - sliderEnd, sliderW );
911 sliderR.setRect( sliderStart, defaultFrameWidth(), sliderLength, sliderW ); 911 sliderR.setRect( sliderStart, defaultFrameWidth(), sliderLength, sliderW );
@@ -947,55 +947,55 @@ void LightStyle::drawScrollBarControls( QPainter* p, const QScrollBar* scrollbar
947 subR2.width(), subR2.height(), 947 subR2.width(), subR2.height(),
948 (( activeControl == SubLine ) ? 948 (( activeControl == SubLine ) ?
949 singleton->hoverPalette.active() : g), 949 singleton->hoverPalette.active() : g),
950 TRUE, &g.brush(QColorGroup::Background)); 950 TRUE, &g.brush(QColorGroup::Background));
951 } 951 }
952 952
953 if ( controls & SubPage ) 953 if ( controls & SubPage )
954 p->fillRect( subPageR, 954 p->fillRect( subPageR,
955 ((activeControl == SubPage) ? 955 ((activeControl == SubPage) ?
956 g.brush( QColorGroup::Dark ) : 956 g.brush( QColorGroup::Dark ) :
957 g.brush( QColorGroup::Mid ))); 957 g.brush( QColorGroup::Mid )));
958 if ( controls & AddPage ) 958 if ( controls & AddPage )
959 p->fillRect( addPageR, 959 p->fillRect( addPageR,
960 ((activeControl == AddPage) ? 960 ((activeControl == AddPage) ?
961 g.brush( QColorGroup::Dark ) : 961 g.brush( QColorGroup::Dark ) :
962 g.brush( QColorGroup::Mid ))); 962 g.brush( QColorGroup::Mid )));
963 963
964 if ( controls & Slider ) { 964 if ( controls & Slider ) {
965 965
966 QPoint bo = p->brushOrigin(); 966 QPoint bo = p->brushOrigin();
967 p->setBrushOrigin(sliderR.topLeft()); 967 p->setBrushOrigin(sliderR.topLeft());
968 if ( sliderR.isValid() ) { 968 if ( sliderR.isValid() ) {
969 p->fillRect( sliderR.x(), sliderR.y(), 2, 2, 969 p->fillRect( sliderR.x(), sliderR.y(), 2, 2,
970 g.brush( QColorGroup::Mid )); 970 g.brush( QColorGroup::Mid ));
971 p->fillRect( sliderR.x() + sliderR.width() - 2, 971 p->fillRect( sliderR.x() + sliderR.width() - 2,
972 sliderR.y(), 2, 2, 972 sliderR.y(), 2, 2,
973 g.brush( QColorGroup::Mid )); 973 g.brush( QColorGroup::Mid ));
974 p->fillRect( sliderR.x() + sliderR.width() - 2, 974 p->fillRect( sliderR.x() + sliderR.width() - 2,
975 sliderR.y() + sliderR.height() - 2, 2, 2, 975 sliderR.y() + sliderR.height() - 2, 2, 2,
976 g.brush( QColorGroup::Mid )); 976 g.brush( QColorGroup::Mid ));
977 p->fillRect( sliderR.x(), 977 p->fillRect( sliderR.x(),
978 sliderR.y() + sliderR.height() - 2, 2, 2, 978 sliderR.y() + sliderR.height() - 2, 2, 2,
979 g.brush( QColorGroup::Mid )); 979 g.brush( QColorGroup::Mid ));
980 980
981 QColorGroup cg( g ); 981 QColorGroup cg( g );
982 cg.setBrush( QColorGroup::Background, g.brush( QColorGroup::Mid ) ); 982 cg.setBrush( QColorGroup::Background, g.brush( QColorGroup::Mid ) );
983 drawBevelButton( p, sliderR.x(), sliderR.y(), 983 drawBevelButton( p, sliderR.x(), sliderR.y(),
984 sliderR.width(), sliderR.height(), 984 sliderR.width(), sliderR.height(),
985 cg, FALSE, &g.brush( QColorGroup::Button ) ); 985 cg, FALSE, &g.brush( QColorGroup::Button ) );
986 } 986 }
987 987
988 p->setBrushOrigin(bo); 988 p->setBrushOrigin(bo);
989 } 989 }
990} 990}
991 991
992 992
993void LightStyle::drawToolBarHandle(QPainter *p, const QRect &rect, 993void LightStyle::drawToolBarHandle(QPainter *p, const QRect &rect,
994 Qt::Orientation orientation, 994 Qt::Orientation orientation,
995 bool, const QColorGroup &g, bool) 995 bool, const QColorGroup &g, bool)
996{ 996{
997 p->save(); 997 p->save();
998 p->setPen(g.mid()); 998 p->setPen(g.mid());
999 p->setBrush(g.brush(QColorGroup::Mid)); 999 p->setBrush(g.brush(QColorGroup::Mid));
1000 1000
1001 if (orientation == Qt::Horizontal) { 1001 if (orientation == Qt::Horizontal) {
@@ -1097,113 +1097,117 @@ int LightStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*
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
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