summaryrefslogtreecommitdiffstats
path: root/kstyles
diff options
context:
space:
mode:
Diffstat (limited to 'kstyles')
-rw-r--r--kstyles/asteroid/asteroid.cpp46
-rw-r--r--kstyles/highcolor/highcolor.cpp61
-rw-r--r--kstyles/highcontrast/highcontrast.cpp51
-rw-r--r--kstyles/highcontrast/highcontrast.h2
-rw-r--r--kstyles/keramik/keramik.cpp101
-rw-r--r--kstyles/kthemestyle/kthemestyle.cpp37
-rw-r--r--kstyles/light/lightstyle-v2.cpp17
-rw-r--r--kstyles/light/lightstyle-v3.cpp17
-rw-r--r--kstyles/plastik/plastik.cpp57
9 files changed, 272 insertions, 117 deletions
diff --git a/kstyles/asteroid/asteroid.cpp b/kstyles/asteroid/asteroid.cpp
index a618ef0e8..432756032 100644
--- a/kstyles/asteroid/asteroid.cpp
+++ b/kstyles/asteroid/asteroid.cpp
@@ -937,6 +937,34 @@ void AsteroidStyle::drawPrimitive(TQ_PrimitiveElement pe,
break;
}
+ case PE_MenuItemIndicatorCheck: {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+
+ bool active = sf & Style_Active;
+ bool disabled = !(sf & Style_Enabled);
+
+ int xp = x;
+
+ SFlags cflags = Style_Default;
+ if (disabled) {
+ cflags |= Style_On;
+ } else {
+ cflags |= Style_Enabled;
+ }
+
+ p->setPen(active ? cg.highlightedText() : cg.buttonText());
+
+ TQRect rr = TQRect(xp, y, w, h);
+ if (backwards) {
+ rr = visualRect(rr, r);
+ }
+
+ drawPrimitive(PE_CheckMark, p, ceData, elementFlags, rr, cg, cflags);
+
+ break;
+ }
+
default: {
KStyle::drawPrimitive(pe, p, ceData, elementFlags, r, cg, sf, o);
}
@@ -1572,23 +1600,7 @@ void AsteroidStyle::drawControl(TQ_ControlElement ce,
p->drawPixmap(pmr.topLeft(), pixmap);
} else if (checkable) {
if (mi->isChecked()) {
- int xp = xpos;
-
- SFlags cflags = Style_Default;
- if (disabled) {
- cflags |= Style_On;
- } else {
- cflags |= Style_Enabled;
- }
-
- p->setPen(active ? cg.highlightedText() : cg.buttonText());
-
- TQRect rr = TQRect(xp, y, checkcol, sh);
- if (backwards) {
- rr = visualRect(rr, r);
- }
-
- drawPrimitive(PE_CheckMark, p, ceData, elementFlags, rr, cg, cflags);
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, TQRect(x, y, checkcol, sh), cg, sf);
}
}
diff --git a/kstyles/highcolor/highcolor.cpp b/kstyles/highcolor/highcolor.cpp
index 120f7d6e6..c659f7451 100644
--- a/kstyles/highcolor/highcolor.cpp
+++ b/kstyles/highcolor/highcolor.cpp
@@ -260,8 +260,10 @@ void HighColorStyle::drawPrimitive( TQ_PrimitiveElement pe,
SFlags flags,
const TQStyleOption& opt ) const
{
- bool down = flags & Style_Down;
- bool on = flags & Style_On;
+ bool down = flags & Style_Down;
+ bool on = flags & Style_On;
+ bool active = flags & Style_Active;
+ bool reverse = TQApplication::reverseLayout();
switch(pe)
{
@@ -851,6 +853,42 @@ void HighColorStyle::drawPrimitive( TQ_PrimitiveElement pe,
break;
}
+ case PE_MenuItemIndicatorFrame: {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect(x, y, w, h), r );
+
+ int cx = reverse ? x+w - w : x;
+
+ // We only have to draw the background if the menu item is inactive -
+ // if it's active the "pressed" background is already drawn
+ if ( ! active )
+ qDrawShadePanel( p, cx, y, w, h, cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ }
+ break;
+
+ case PE_MenuItemIndicatorIconFrame: {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect(x, y, w, h), r );
+ qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ }
+ break;
+
+ case PE_MenuItemIndicatorCheck: {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect(x, y, w, h), r );
+
+ int cx = reverse ? x+w - w : x;
+
+ // Draw the checkmark
+ SFlags cflags = Style_Default;
+ cflags |= active ? Style_Enabled : Style_On;
+
+ drawPrimitive( PE_CheckMark, p, ceData, elementFlags, TQRect( cx + itemFrame, y + itemFrame, w - itemFrame*2, h - itemFrame*2), cg, cflags );
+ }
+ break;
default:
{
@@ -1345,8 +1383,7 @@ void HighColorStyle::drawControl( TQ_ControlElement element,
// Do we have an icon and are checked at the same time?
// Then draw a "pressed" background behind the icon
if ( checkable && !active && mi->isChecked() )
- qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(),
- cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ drawPrimitive(PE_MenuItemIndicatorIconFrame, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);
// Draw the icon
TQPixmap pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode );
TQRect pmr( 0, 0, pixmap.width(), pixmap.height() );
@@ -1356,20 +1393,8 @@ void HighColorStyle::drawControl( TQ_ControlElement element,
// Are we checked? (This time without an icon)
else if ( checkable && mi->isChecked() ) {
- int cx = reverse ? x+w - checkcol : x;
-
- // We only have to draw the background if the menu item is inactive -
- // if it's active the "pressed" background is already drawn
- if ( ! active )
- qDrawShadePanel( p, cx, y, checkcol, h, cg, true, 1,
- &cg.brush(TQColorGroup::Midlight) );
-
- // Draw the checkmark
- SFlags cflags = Style_Default;
- cflags |= active ? Style_Enabled : Style_On;
-
- drawPrimitive( PE_CheckMark, p, ceData, elementFlags, TQRect( cx + itemFrame, y + itemFrame,
- checkcol - itemFrame*2, h - itemFrame*2), cg, cflags );
+ drawPrimitive(PE_MenuItemIndicatorFrame, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);
}
// Time to draw the menu item label...
diff --git a/kstyles/highcontrast/highcontrast.cpp b/kstyles/highcontrast/highcontrast.cpp
index 9d28dfd05..d54caf69b 100644
--- a/kstyles/highcontrast/highcontrast.cpp
+++ b/kstyles/highcontrast/highcontrast.cpp
@@ -337,7 +337,7 @@ void HighContrastStyle::drawArrow (TQPainter* p, TQRect r, TQ_PrimitiveElement a
}
// This function draws primitive elements
-void HighContrastStyle::tqdrawPrimitive (TQ_PrimitiveElement pe,
+void HighContrastStyle::drawPrimitive (TQ_PrimitiveElement pe,
TQPainter *p,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
@@ -632,6 +632,41 @@ void HighContrastStyle::tqdrawPrimitive (TQ_PrimitiveElement pe,
}
+ case PE_MenuItemIndicatorFrame:
+ {
+ // Draw nothing
+ break;
+ }
+ break;
+ case PE_MenuItemIndicatorIconFrame:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect(x, y, w, h), r );
+ drawRect (p, cr, 0, false);
+ break;
+ }
+ case PE_MenuItemIndicatorCheck:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect(x, y, w, h), r );
+
+ TQRect rc (x, y, w, h);
+ addOffset (&rc, 2*basicLineWidth);
+ TQPoint center = rc.center();
+ if (rc.width() > rc.height())
+ rc.setWidth (rc.height());
+ else
+ rc.setHeight (rc.width());
+ rc.moveCenter (center);
+
+ p->drawLine (rc.topLeft(), rc.bottomRight());
+ p->drawLine (rc.topRight(), rc.bottomLeft());
+ break;
+ }
+
+
// ARROWS
// -------------------------------------------------------------------
case PE_ArrowUp:
@@ -1043,7 +1078,7 @@ void HighContrastStyle::drawControl (TQ_ControlElement element,
// Then draw a square border around the icon
if ( checkable && mi->isChecked() )
{
- drawRect (p, cr, 0, false);
+ drawPrimitive(PE_MenuItemIndicatorIconFrame, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);
}
}
@@ -1051,17 +1086,7 @@ void HighContrastStyle::drawControl (TQ_ControlElement element,
else if ( checkable && mi->isChecked() ) {
int cx = reverse ? x+w - checkcol : x;
- TQRect rc (cx, y, checkcol, h);
- addOffset (&rc, 2*basicLineWidth);
- TQPoint center = rc.center();
- if (rc.width() > rc.height())
- rc.setWidth (rc.height());
- else
- rc.setHeight (rc.width());
- rc.moveCenter (center);
-
- p->drawLine (rc.topLeft(), rc.bottomRight());
- p->drawLine (rc.topRight(), rc.bottomLeft());
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, TQRect(cx, y, checkcol, h), cg, flags);
}
// Time to draw the menu item label...
diff --git a/kstyles/highcontrast/highcontrast.h b/kstyles/highcontrast/highcontrast.h
index 56470993a..0831163fe 100644
--- a/kstyles/highcontrast/highcontrast.h
+++ b/kstyles/highcontrast/highcontrast.h
@@ -69,7 +69,7 @@ class HighContrastStyle : public KStyle
const TQStyleOption& = TQStyleOption::Default,
const TQWidget* widget = 0 ) const;
- void tqdrawPrimitive( TQ_PrimitiveElement pe,
+ void drawPrimitive( TQ_PrimitiveElement pe,
TQPainter* p,
TQStyleControlElementData ceData,
ControlElementFlags elementFlags,
diff --git a/kstyles/keramik/keramik.cpp b/kstyles/keramik/keramik.cpp
index 6d46df973..5cad1a6ee 100644
--- a/kstyles/keramik/keramik.cpp
+++ b/kstyles/keramik/keramik.cpp
@@ -555,8 +555,9 @@ void KeramikStyle::drawPrimitive( TQ_PrimitiveElement pe,
SFlags flags,
const TQStyleOption& opt ) const
{
- bool down = flags & Style_Down;
- bool on = flags & Style_On;
+ bool down = flags & Style_Down;
+ bool on = flags & Style_On;
+ bool active = flags & Style_Active;
bool disabled = ( flags & Style_Enabled ) == 0;
int x, y, w, h;
r.rect(&x, &y, &w, &h);
@@ -1129,6 +1130,41 @@ void KeramikStyle::drawPrimitive( TQ_PrimitiveElement pe,
break;
}
+ case PE_PanelScrollBar:
+ {
+ Keramik::ScrollBarPainter( KeramikGroove1, 2, (ceData.orientation == TQt::Horizontal)?true:false ).draw( p, r, cg.button(), cg.background(), (( flags & Style_Enabled ) == 0)?true:false );
+ break;
+ }
+
+ case PE_MenuItemIndicatorFrame:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect( x + 2, y + 2, w - 1, h - 4 ), r );
+ qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ }
+ break;
+ case PE_MenuItemIndicatorIconFrame:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect( x + 2, y + 2, w - 1, h - 4 ), r );
+ qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ }
+ break;
+ case PE_MenuItemIndicatorCheck:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect( x + 2, y + 2, w - 1, h - 4 ), r );
+
+ SFlags cflags = Style_Default;
+ cflags |= active ? Style_Enabled : Style_On;
+
+ drawPrimitive( PE_CheckMark, p, ceData, elementFlags, cr, cg, cflags );
+ }
+ break;
+
default:
{
// ARROWS
@@ -1204,12 +1240,11 @@ void KeramikStyle::drawKStylePrimitive( KStylePrimitive kpe,
// -------------------------------------------------------------------
case KPE_SliderGroove:
{
- const TQSlider* slider = static_cast< const TQSlider* >( widget );
- bool horizontal = slider->orientation() == Qt::Horizontal;
+ bool horizontal = ceData.orientation == TQt::Horizontal;
Keramik::TilePainter::PaintMode pmod = Keramik::TilePainter::PaintNormal;
- if (slider->erasePixmap() && !slider->erasePixmap()->isNull())
+ if (!ceData.bgPixmap.isNull())
pmod = Keramik::TilePainter::PaintFullBlend;
if ( horizontal )
@@ -1224,8 +1259,7 @@ void KeramikStyle::drawKStylePrimitive( KStylePrimitive kpe,
// -------------------------------------------------------------------
case KPE_SliderHandle:
{
- const TQSlider* slider = static_cast< const TQSlider* >( widget );
- bool horizontal = slider->orientation() == Qt::Horizontal;
+ bool horizontal = ceData.orientation == TQt::Horizontal;
TQColor hl = cg.highlight();
if (!disabled && flags & Style_Active)
@@ -1673,8 +1707,7 @@ void KeramikStyle::drawControl( TQ_ControlElement element,
// Do we have an icon and are checked at the same time?
// Then draw a "pressed" background behind the icon
if ( checkable && /*!active &&*/ mi->isChecked() )
- qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(),
- cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ drawPrimitive(PE_MenuItemIndicatorIconFrame, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);
// Draw the icon
TQPixmap pixmap = mi->iconSet()->pixmap( TQIconSet::Small, mode );
TQRect pmr( 0, 0, pixmap.width(), pixmap.height() );
@@ -1688,14 +1721,9 @@ void KeramikStyle::drawControl( TQ_ControlElement element,
// We only have to draw the background if the menu item is inactive -
// if it's active the "pressed" background is already drawn
// if ( ! active )
- qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1,
- &cg.brush(TQColorGroup::Midlight) );
-
+ drawPrimitive(PE_MenuItemIndicatorFrame, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);
// Draw the checkmark
- SFlags cflags = Style_Default;
- cflags |= active ? Style_Enabled : Style_On;
-
- drawPrimitive( PE_CheckMark, p, ceData, elementFlags, cr, cg, cflags );
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, flags);
}
// Time to draw the menu item label...
@@ -2620,27 +2648,26 @@ TQRect KeramikStyle::querySubControlMetrics( TQ_ComplexControl control,
case CC_ScrollBar:
{
- const TQScrollBar* sb = static_cast< const TQScrollBar* >( widget );
- bool horizontal = sb->orientation() == Qt::Horizontal;
+ bool horizontal = ceData.orientation == TQt::Horizontal;
int addline, subline, sliderpos, sliderlen, maxlen, slidermin;
if ( horizontal )
{
subline = loader.size( keramik_scrollbar_hbar_arrow1 ).width();
addline = loader.size( keramik_scrollbar_hbar_arrow2 ).width();
- maxlen = sb->width() - subline - addline + 2;
+ maxlen = ceData.rect.width() - subline - addline + 2;
}
else
{
subline = loader.size( keramik_scrollbar_vbar_arrow1 ).height();
addline = loader.size( keramik_scrollbar_vbar_arrow2 ).height();
- maxlen = sb->height() - subline - addline + 2;
+ maxlen = ceData.rect.height() - subline - addline + 2;
}
- sliderpos = sb->sliderStart();
- if ( sb->minValue() != sb->maxValue() )
+ sliderpos = ceData.startStep;
+ if ( ceData.minSteps != ceData.maxSteps )
{
- int range = sb->maxValue() - sb->minValue();
- sliderlen = ( sb->pageStep() * maxlen ) / ( range + sb->pageStep() );
- slidermin = pixelMetric( PM_ScrollBarSliderMin, ceData, elementFlags, sb );
+ int range = ceData.maxSteps - ceData.minSteps;
+ sliderlen = ( ceData.pageStep * maxlen ) / ( range + ceData.pageStep );
+ slidermin = pixelMetric( PM_ScrollBarSliderMin, ceData, elementFlags, widget );
if ( sliderlen < slidermin ) sliderlen = slidermin;
if ( sliderlen > maxlen ) sliderlen = maxlen;
}
@@ -2649,28 +2676,28 @@ TQRect KeramikStyle::querySubControlMetrics( TQ_ComplexControl control,
switch ( subcontrol )
{
case SC_ScrollBarGroove:
- if ( horizontal ) return TQRect( subline, 0, maxlen, sb->height() );
- else return TQRect( 0, subline, sb->width(), maxlen );
+ if ( horizontal ) return TQRect( subline, 0, maxlen, ceData.rect.height() );
+ else return TQRect( 0, subline, ceData.rect.width(), maxlen );
case SC_ScrollBarSlider:
- if (horizontal) return TQRect( sliderpos, 0, sliderlen, sb->height() );
- else return TQRect( 0, sliderpos, sb->width(), sliderlen );
+ if (horizontal) return TQRect( sliderpos, 0, sliderlen, ceData.rect.height() );
+ else return TQRect( 0, sliderpos, ceData.rect.width(), sliderlen );
case SC_ScrollBarSubLine:
- if ( horizontal ) return TQRect( 0, 0, subline, sb->height() );
- else return TQRect( 0, 0, sb->width(), subline );
+ if ( horizontal ) return TQRect( 0, 0, subline, ceData.rect.height() );
+ else return TQRect( 0, 0, ceData.rect.width(), subline );
case SC_ScrollBarAddLine:
- if ( horizontal ) return TQRect( sb->width() - addline, 0, addline, sb->height() );
- else return TQRect( 0, sb->height() - addline, sb->width(), addline );
+ if ( horizontal ) return TQRect( ceData.rect.width() - addline, 0, addline, ceData.rect.height() );
+ else return TQRect( 0, ceData.rect.height() - addline, ceData.rect.width(), addline );
case SC_ScrollBarSubPage:
- if ( horizontal ) return TQRect( subline, 0, sliderpos - subline, sb->height() );
- else return TQRect( 0, subline, sb->width(), sliderpos - subline );
+ if ( horizontal ) return TQRect( subline, 0, sliderpos - subline, ceData.rect.height() );
+ else return TQRect( 0, subline, ceData.rect.width(), sliderpos - subline );
case SC_ScrollBarAddPage:
- if ( horizontal ) return TQRect( sliderpos + sliderlen, 0, sb->width() - addline - (sliderpos + sliderlen) , sb->height() );
- else return TQRect( 0, sliderpos + sliderlen, sb->width(), sb->height() - addline - (sliderpos + sliderlen)
+ if ( horizontal ) return TQRect( sliderpos + sliderlen, 0, ceData.rect.width() - addline - (sliderpos + sliderlen) , ceData.rect.height() );
+ else return TQRect( 0, sliderpos + sliderlen, ceData.rect.width(), ceData.rect.height() - addline - (sliderpos + sliderlen)
/*maxlen - sliderpos - sliderlen + subline - 5*/ );
default: break;
diff --git a/kstyles/kthemestyle/kthemestyle.cpp b/kstyles/kthemestyle/kthemestyle.cpp
index 9a604014e..f79bb3765 100644
--- a/kstyles/kthemestyle/kthemestyle.cpp
+++ b/kstyles/kthemestyle/kthemestyle.cpp
@@ -732,6 +732,7 @@ void KThemeStyle::drawPrimitive ( PrimitiveElement pe, TQPainter * p, TQStyleCon
bool enabled = ( flags & Style_Enabled );
bool down = ( flags & Style_Down );
bool on = flags & Style_On;
+ bool active = flags & Style_Active;
TQColorGroup g = g_base;
switch ( pe )
@@ -1085,6 +1086,34 @@ void KThemeStyle::drawPrimitive ( PrimitiveElement pe, TQPainter * p, TQStyleCon
break;
}
+
+ case PE_MenuItemIndicatorFrame:
+ {
+ // Draw nothing
+ break;
+ }
+ case PE_MenuItemIndicatorIconFrame:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect( x, y, w, h ), r );
+ const TQColorGroup& cg_ours = *colorGroup( g_base, active ? MenuItemDown : MenuItem );
+ drawBaseButton( p, cr.x(), cr.y(), cr.width(), cr.height(), *colorGroup( cg_ours, BevelDown ), true, false, BevelDown );
+ break;
+ }
+ case PE_MenuItemIndicatorCheck:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect( x, y, w, h ), r );
+ const TQColorGroup& cg_ours = *colorGroup( g_base, active ? MenuItemDown : MenuItem );
+
+ SFlags cflags = Style_Default;
+ cflags |= active ? Style_Enabled : Style_On;
+
+ drawPrimitive( PE_CheckMark, p, ceData, elementFlags, TQRect( x + itemFrame, y + itemFrame, w - itemFrame * 2, h - itemFrame * 2 ), cg_ours, cflags );
+ break;
+ }
default:
handled = false;
}
@@ -1525,7 +1554,7 @@ void KThemeStyle::drawControl( ControlElement element,
// Do we have an icon and are checked at the same time?
// Then draw a "pressed" background behind the icon
if ( checkable && mi->isChecked() ) //!active && -- ??
- drawBaseButton( p, cr.x(), cr.y(), cr.width(), cr.height(), *colorGroup( cg_ours, BevelDown ), true, false, BevelDown );
+ drawPrimitive(PE_MenuItemIndicatorIconFrame, p, ceData, elementFlags, TQRect(x, y, checkcol, h), cg, how);
// Draw the icon
TQPixmap pixmap = mi->iconSet() ->pixmap( TQIconSet::Small, mode );
@@ -1549,11 +1578,7 @@ void KThemeStyle::drawControl( ControlElement element,
// &cg_ours.brush(TQColorGroup::Midlight) );
// Draw the checkmark
- SFlags cflags = Style_Default;
- cflags |= active ? Style_Enabled : Style_On;
-
- drawPrimitive( PE_CheckMark, p, ceData, elementFlags, TQRect( cx + itemFrame, y + itemFrame,
- checkcol - itemFrame * 2, h - itemFrame * 2 ), cg_ours, cflags );
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, TQRect(cx, y, checkcol, h), cg, how);
}
// Time to draw the menu item label...
diff --git a/kstyles/light/lightstyle-v2.cpp b/kstyles/light/lightstyle-v2.cpp
index a77a5fe03..e39c7c9b1 100644
--- a/kstyles/light/lightstyle-v2.cpp
+++ b/kstyles/light/lightstyle-v2.cpp
@@ -559,6 +559,18 @@ void LightStyleV2::drawPrimitive( TQ_PrimitiveElement pe,
p->fillRect(r.x(), r.y() + 2, r.width(), r.height() - 4, cg.highlight());
break;
+ case PE_MenuItemIndicatorFrame:
+ case PE_MenuItemIndicatorIconFrame:
+ {
+ qDrawShadePanel(p, r, cg, true, 1, &cg.brush(TQColorGroup::Midlight));
+ }
+ break;
+ case PE_MenuItemIndicatorCheck:
+ {
+ drawPrimitive(PE_CheckMark, p, ceData, elementFlags, r, cg, (flags & Style_Enabled) | Style_On);
+ }
+ break;
+
default:
if (pe == PE_HeaderArrow) {
if (flags & Style_Down)
@@ -837,7 +849,7 @@ void LightStyleV2::drawControl( TQ_ControlElement control,
if (mi->isChecked() &&
! (flags & Style_Active) &
(flags & Style_Enabled))
- qDrawShadePanel(p, cr, cg, true, 1, &cg.brush(TQColorGroup::Midlight));
+ drawPrimitive(PE_MenuItemIndicatorFrame, p, ceData, elementFlags, cr, cg, flags);
if (mi->iconSet()) {
TQIconSet::Mode mode =
@@ -856,8 +868,7 @@ void LightStyleV2::drawControl( TQ_ControlElement control,
p->setPen(cg.text());
p->drawPixmap(pmr.topLeft(), pixmap);
} else if ((elementFlags & CEF_IsCheckable) && mi->isChecked())
- drawPrimitive(PE_CheckMark, p, ceData, elementFlags, cr, cg,
- (flags & Style_Enabled) | Style_On);
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, cr, cg, flags);
TQColor textcolor;
TQColor embosscolor;
diff --git a/kstyles/light/lightstyle-v3.cpp b/kstyles/light/lightstyle-v3.cpp
index 565b8ac2c..b76c7bda3 100644
--- a/kstyles/light/lightstyle-v3.cpp
+++ b/kstyles/light/lightstyle-v3.cpp
@@ -748,6 +748,18 @@ void LightStyleV3::drawPrimitive( TQ_PrimitiveElement pe,
p->fillRect(r.x(), r.y() + 2, r.width(), r.height() - 4, cg.highlight());
break;
+ case PE_MenuItemIndicatorFrame:
+ case PE_MenuItemIndicatorIconFrame:
+ {
+ qDrawShadePanel(p, r, cg, true, 1, &cg.brush(TQColorGroup::Midlight));
+ }
+ break;
+ case PE_MenuItemIndicatorCheck:
+ {
+ drawPrimitive(PE_CheckMark, p, ceData, elementFlags, r, cg, (flags & Style_Enabled) | Style_On);
+ }
+ break;
+
default:
if (pe == PE_HeaderArrow) {
if (flags & Style_Down)
@@ -957,7 +969,7 @@ void LightStyleV3::drawControl( TQ_ControlElement control,
if (mi->isChecked() &&
! (flags & Style_Active) &
(flags & Style_Enabled))
- qDrawShadePanel(p, cr, cg, true, 1, &cg.brush(TQColorGroup::Midlight));
+ drawPrimitive(PE_MenuItemIndicatorFrame, p, ceData, elementFlags, cr, cg, flags);
if (mi->iconSet()) {
TQIconSet::Mode mode =
@@ -976,8 +988,7 @@ void LightStyleV3::drawControl( TQ_ControlElement control,
p->setPen(cg.text());
p->drawPixmap(pmr.topLeft(), pixmap);
} else if ((elementFlags & CEF_IsCheckable) && mi->isChecked())
- drawPrimitive(PE_CheckMark, p, ceData, elementFlags, cr, cg,
- (flags & Style_Enabled) | Style_On);
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, cr, cg, flags);
TQColor textcolor;
TQColor embosscolor;
diff --git a/kstyles/plastik/plastik.cpp b/kstyles/plastik/plastik.cpp
index f8e775cc5..5c50ced8c 100644
--- a/kstyles/plastik/plastik.cpp
+++ b/kstyles/plastik/plastik.cpp
@@ -2070,6 +2070,35 @@ void PlastikStyle::drawPrimitive(TQ_PrimitiveElement pe,
break;
}
+ case PE_MenuItemIndicatorFrame:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect( x + 2, y + 2, w - 1, h - 4 ), r );
+ qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ break;
+ }
+ case PE_MenuItemIndicatorIconFrame:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect( x + 2, y + 2, w - 1, h - 4 ), r );
+ qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ break;
+ }
+ case PE_MenuItemIndicatorCheck:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ TQRect cr = visualRect( TQRect( x + 2, y + 2, w - 1, h - 4 ), r );;
+ // Draw the checkmark
+ SFlags cflags = Style_On;
+ if (enabled)
+ cflags |= Style_Enabled;
+ drawPrimitive( PE_CheckMark, p, ceData, elementFlags, cr, cg, cflags );
+ break;
+ }
+
case PE_SpinWidgetUp:
case PE_SpinWidgetDown:
case PE_HeaderArrow:
@@ -2485,7 +2514,7 @@ void PlastikStyle::drawControl(TQ_ControlElement element,
{
// Don't leave blank holes if we set NoBackground for the TQPopupMenu.
// This only happens when the popupMenu spans more than one column.
- if (! ( widget->erasePixmap() && !widget->erasePixmap()->isNull() ) )
+ if ( ceData.bgPixmap.isNull() )
p->fillRect( r, cg.background().light( 105 ) );
break;
@@ -2507,16 +2536,16 @@ void PlastikStyle::drawControl(TQ_ControlElement element,
_contrast+3, Draw_Top|Draw_Bottom|Is_Horizontal);
}
else {
- if ( widget->erasePixmap() && !widget->erasePixmap()->isNull() )
- p->drawPixmap( r.topLeft(), *widget->erasePixmap(), r );
+ if ( ceData.bgPixmap.isNull() )
+ p->drawPixmap( r.topLeft(), ceData.bgPixmap, r );
else p->fillRect( r, cg.background().light(105) );
if(_drawFocusRect)
p->drawWinFocusRect( r );
}
}
// Draw the transparency pixmap
- else if ( widget->erasePixmap() && !widget->erasePixmap()->isNull() )
- p->drawPixmap( r.topLeft(), *widget->erasePixmap(), r );
+ else if ( !ceData.bgPixmap.isNull() )
+ p->drawPixmap( r.topLeft(), ceData.bgPixmap, r );
// Draw a solid background
else
p->fillRect( r, cg.background().light( 105 ) );
@@ -2545,8 +2574,7 @@ void PlastikStyle::drawControl(TQ_ControlElement element,
// Do we have an icon and are checked at the same time?
// Then draw a "pressed" background behind the icon
if ( checkable && /*!active &&*/ mi->isChecked() )
- qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(),
- cg, true, 1, &cg.brush(TQColorGroup::Midlight) );
+ drawPrimitive(PE_MenuItemIndicatorIconFrame, p, ceData, elementFlags, TQRect(r.x(), r.y(), checkcol, r.height()), cg, flags);
// Draw the icon
TQPixmap pixmap = mi->iconSet()->pixmap(TQIconSet::Small, mode);
TQRect pmr( 0, 0, pixmap.width(), pixmap.height() );
@@ -2560,14 +2588,9 @@ void PlastikStyle::drawControl(TQ_ControlElement element,
// We only have to draw the background if the menu item is inactive -
// if it's active the "pressed" background is already drawn
// if ( ! active )
- qDrawShadePanel( p, cr.x(), cr.y(), cr.width(), cr.height(), cg, true, 1,
- &cg.brush(TQColorGroup::Midlight) );
+ drawPrimitive(PE_MenuItemIndicatorFrame, p, ceData, elementFlags, TQRect(r.x(), r.y(), checkcol, r.height()), cg, flags);
- // Draw the checkmark
- SFlags cflags = Style_On;
- if (enabled)
- cflags |= Style_Enabled;
- drawPrimitive( PE_CheckMark, p, ceData, elementFlags, cr, cg, cflags );
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, TQRect(r.x(), r.y(), checkcol, r.height()), cg, flags);
}
// Time to draw the menu item label...
@@ -3191,11 +3214,7 @@ TQRect PlastikStyle::querySubControlMetrics(TQ_ComplexControl control,
const TQStyleOption &opt,
const TQWidget *widget) const
{
- if (!widget) {
- return TQRect();
- }
-
- TQRect r(widget->rect());
+ TQRect r(ceData.rect);
switch (control) {
case CC_ComboBox: {
switch (subcontrol) {