summaryrefslogtreecommitdiffstats
path: root/src/styles/qmotifstyle.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-10-30 22:41:50 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-10-30 22:41:50 -0500
commit69429dcfc35d449c78b346bdce536f17d926c755 (patch)
tree6c1d1015837f0e77a8e950e38a3a24ee616e598c /src/styles/qmotifstyle.cpp
parent22d1ab9eccc005b0497cff131593e6b9ff96e7c2 (diff)
downloadqt3-69429dcfc35d449c78b346bdce536f17d926c755.tar.gz
qt3-69429dcfc35d449c78b346bdce536f17d926c755.zip
Add new style primatives for enhanced third party style compatibility
Diffstat (limited to 'src/styles/qmotifstyle.cpp')
-rw-r--r--src/styles/qmotifstyle.cpp46
1 files changed, 32 insertions, 14 deletions
diff --git a/src/styles/qmotifstyle.cpp b/src/styles/qmotifstyle.cpp
index e91e0d0..422dacb 100644
--- a/src/styles/qmotifstyle.cpp
+++ b/src/styles/qmotifstyle.cpp
@@ -211,6 +211,9 @@ void QMotifStyle::drawPrimitive( PrimitiveElement pe,
SFlags flags,
const QStyleOption& opt ) const
{
+ bool dis = ! (flags & Style_Enabled);
+ bool act = flags & Style_Active;
+
switch( pe ) {
#ifndef QT_NO_LISTVIEW
case PE_CheckListExclusiveIndicator: {
@@ -761,6 +764,30 @@ void QMotifStyle::drawPrimitive( PrimitiveElement pe,
r.height() - 4, cg.brush(QColorGroup::Highlight));
break;
+ case PE_PanelScrollBar:
+ qDrawShadePanel(p, r, cg, TRUE,
+ pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags),
+ &cg.brush(QColorGroup::Mid));
+ break;
+
+ case PE_MenuItemIndicatorCheck:
+ {
+ int x, y, w, h;
+ r.rect( &x, &y, &w, &h );
+ QRect vrect = visualRect( QRect( x+motifItemFrame, y+motifItemFrame, w, h-2*motifItemFrame ), r );
+ int xvis = vrect.x();
+ int mw = w;
+ int mh = h - 2*motifItemFrame;
+
+ SFlags cflags = Style_Default;
+ if (! dis)
+ cflags |= Style_Enabled;
+ if (act)
+ cflags |= Style_On;
+
+ drawPrimitive(PE_CheckMark, p, ceData, elementFlags, QRect(xvis, y+motifItemFrame, mw, mh), cg, cflags);
+ }
+
default:
QCommonStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt );
break;
@@ -1076,18 +1103,8 @@ void QMotifStyle::drawControl( ControlElement element,
p->drawPixmap( pmr.topLeft(), pixmap );
} else if ( checkable ) { // just "checking"...
- int mw = checkcol;
- int mh = h - 2*motifItemFrame;
if ( mi->isChecked() ) {
- SFlags cflags = Style_Default;
- if (! dis)
- cflags |= Style_Enabled;
- if (act)
- cflags |= Style_On;
-
- drawPrimitive(PE_CheckMark, p, ceData, elementFlags,
- QRect(xvis, y+motifItemFrame, mw, mh),
- cg, cflags);
+ drawPrimitive(PE_MenuItemIndicatorCheck, p, ceData, elementFlags, QRect(x, y, checkcol, h), cg, flags);
}
}
@@ -1339,9 +1356,10 @@ void QMotifStyle::drawComplexControl( ComplexControl control,
if (sub == (SC_ScrollBarAddLine | SC_ScrollBarSubLine | SC_ScrollBarAddPage |
SC_ScrollBarSubPage | SC_ScrollBarFirst | SC_ScrollBarLast |
SC_ScrollBarSlider))
- qDrawShadePanel(p, ceData.rect, cg, TRUE,
- pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget),
- &cg.brush(QColorGroup::Mid));
+ drawPrimitive(PE_PanelScrollBar, p, ceData, elementFlags, ceData.rect, cg,
+ ((ceData.orientation == Qt::Horizontal) ?
+ Style_Horizontal : Style_Default));
+
QCommonStyle::drawComplexControl(control, p, ceData, elementFlags, r, cg, flags, sub,
subActive, opt, widget);
break;