summaryrefslogtreecommitdiffstats
path: root/src/styles
diff options
context:
space:
mode:
Diffstat (limited to 'src/styles')
-rw-r--r--src/styles/ntqcdestyle.h10
-rw-r--r--src/styles/ntqcommonstyle.h141
-rw-r--r--src/styles/ntqcompactstyle.h6
-rw-r--r--src/styles/ntqmotifplusstyle.h39
-rw-r--r--src/styles/ntqmotifstyle.h40
-rw-r--r--src/styles/ntqplatinumstyle.h24
-rw-r--r--src/styles/ntqsgistyle.h41
-rw-r--r--src/styles/ntqwindowsstyle.h43
-rw-r--r--src/styles/qcdestyle.cpp20
-rw-r--r--src/styles/qcommonstyle.cpp1445
-rw-r--r--src/styles/qcompactstyle.cpp15
-rw-r--r--src/styles/qmotifplusstyle.cpp389
-rw-r--r--src/styles/qmotifstyle.cpp402
-rw-r--r--src/styles/qplatinumstyle.cpp265
-rw-r--r--src/styles/qsgistyle.cpp340
-rw-r--r--src/styles/qwindowsstyle.cpp420
16 files changed, 2084 insertions, 1556 deletions
diff --git a/src/styles/ntqcdestyle.h b/src/styles/ntqcdestyle.h
index 5266130bd..13b2c024e 100644
--- a/src/styles/ntqcdestyle.h
+++ b/src/styles/ntqcdestyle.h
@@ -62,18 +62,22 @@ public:
TQCDEStyle( bool useHighlightCols = FALSE );
virtual ~TQCDEStyle();
- int pixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const;
+ int pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget = 0 ) const;
void drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how = Style_Default,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
void drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
diff --git a/src/styles/ntqcommonstyle.h b/src/styles/ntqcommonstyle.h
index 6fd636fd6..ed02fe418 100644
--- a/src/styles/ntqcommonstyle.h
+++ b/src/styles/ntqcommonstyle.h
@@ -55,6 +55,8 @@ public:
TQCommonStyle();
~TQCommonStyle();
+ // Old API
+ // DEPRECATED
void drawPrimitive( PrimitiveElement pe,
TQPainter *p,
const TQRect &r,
@@ -62,22 +64,63 @@ public:
SFlags flags = Style_Default,
const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ void drawPrimitive( PrimitiveElement pe,
+ TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQColorGroup &cg,
+ SFlags flags = Style_Default,
+ const TQStyleOption& = TQStyleOption::Default ) const;
+
+ // Old API
+ // DEPRECATED
void drawControl( ControlElement element,
- TQPainter *p,
- const TQWidget *widget,
- const TQRect &r,
- const TQColorGroup &cg,
- SFlags how = Style_Default,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ TQPainter *p,
+ const TQWidget *widget,
+ const TQRect &r,
+ const TQColorGroup &cg,
+ SFlags how = Style_Default,
+ const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ void drawControl( ControlElement element,
+ TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQColorGroup &cg,
+ SFlags how = Style_Default,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
+
+ // Old API
+ // DEPRECATED
void drawControlMask( ControlElement element,
- TQPainter *p,
- const TQWidget *widget,
- const TQRect &r,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ TQPainter *p,
+ const TQWidget *widget,
+ const TQRect &r,
+ const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ void drawControlMask( ControlElement element,
+ TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
+
+ // Old API
+ // DEPRECATED
TQRect subRect( SubRect r, const TQWidget *widget ) const;
+ // New API
+ TQRect subRect( SubRect r, const TQStyleControlElementData ceData, const ControlElementFlags elementFlags, const TQWidget *widget ) const;
+
+ // Old API
+ // DEPRECATED
void drawComplexControl( ComplexControl control,
TQPainter *p,
const TQWidget *widget,
@@ -92,35 +135,111 @@ public:
SCFlags subActive = SC_None,
const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ void drawComplexControl( ComplexControl control,
+ TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQColorGroup &cg,
+ SFlags how = Style_Default,
+#ifdef Q_QDOC
+ SCFlags sub = SC_All,
+#else
+ SCFlags sub = (uint)SC_All,
+#endif
+ SCFlags subActive = SC_None,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
+
+ // Old API
+ // DEPRECATED
void drawComplexControlMask( ComplexControl control,
TQPainter *p,
const TQWidget *widget,
const TQRect &r,
const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ void drawComplexControlMask( ComplexControl control,
+ TQPainter *p,
+ const TQStyleControlElementData ceData,
+ const ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
+
+ // Old API
+ // DEPRECATED
TQRect querySubControlMetrics( ComplexControl control,
const TQWidget *widget,
SubControl sc,
const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ TQRect querySubControlMetrics( ComplexControl control,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ SubControl sc,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
+
+ // Old API
+ // DEPRECATED
SubControl querySubControl( ComplexControl control,
const TQWidget *widget,
const TQPoint &pos,
const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ SubControl querySubControl( ComplexControl control,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQPoint &pos,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
+
+ // Old API
+ // DEPRECATED
int pixelMetric( PixelMetric m, const TQWidget *widget = 0 ) const;
+ // New API
+ int pixelMetric( PixelMetric m, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget = 0 ) const;
+
+ // Old API
+ // DEPRECATED
TQSize sizeFromContents( ContentsType s,
const TQWidget *widget,
const TQSize &contentsSize,
const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ TQSize sizeFromContents( ContentsType s,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQSize &contentsSize,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
+
+ // Old API
+ // DEPRECATED
int styleHint(StyleHint sh, const TQWidget *, const TQStyleOption &, TQStyleHintReturn *) const;
+ // New API
+ int styleHint(StyleHint sh, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQStyleOption &, TQStyleHintReturn *, const TQWidget * w) const;
+
+ // Old API
+ // DEPRECATED
TQPixmap stylePixmap( StylePixmap sp,
const TQWidget *widget = 0,
const TQStyleOption& = TQStyleOption::Default ) const;
+ // New API
+ TQPixmap stylePixmap( StylePixmap sp,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
private:
// Disabled copy constructor and operator=
@@ -130,8 +249,6 @@ private:
#endif
};
-
-
#endif // QT_NO_STYLE
#endif // TQCOMMONSTYLE_H
diff --git a/src/styles/ntqcompactstyle.h b/src/styles/ntqcompactstyle.h
index 2ce205815..a9d343726 100644
--- a/src/styles/ntqcompactstyle.h
+++ b/src/styles/ntqcompactstyle.h
@@ -58,10 +58,10 @@ class Q_EXPORT_STYLE_COMPACT TQCompactStyle : public TQWindowsStyle
public:
TQCompactStyle();
- int pixelMetric( PixelMetric metric, const TQWidget *widget = 0 );
+ int pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget = 0 );
- void drawControl( ControlElement element, TQPainter *p, const TQWidget *w, const TQRect &r,
- const TQColorGroup &cg, SFlags how = Style_Default, const TQStyleOption& = TQStyleOption::Default );
+ void drawControl( ControlElement element, TQPainter *p, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQRect &r,
+ const TQColorGroup &cg, SFlags how = Style_Default, const TQStyleOption& = TQStyleOption::Default, const TQWidget *w = 0 );
private: // Disabled copy constructor and operator=
#if defined(TQ_DISABLE_COPY)
diff --git a/src/styles/ntqmotifplusstyle.h b/src/styles/ntqmotifplusstyle.h
index 2766320a2..8027b9339 100644
--- a/src/styles/ntqmotifplusstyle.h
+++ b/src/styles/ntqmotifplusstyle.h
@@ -63,14 +63,16 @@ public:
virtual ~TQMotifPlusStyle();
void polish(TQPalette &pal);
- void polish(TQWidget *widget);
- void unPolish(TQWidget*widget);
+ void polish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *);
+ void unPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *);
- void polish(TQApplication *app);
- void unPolish(TQApplication *app);
+ void applicationPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *);
+ void applicationUnPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *);
void drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
@@ -78,17 +80,20 @@ public:
void drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how = Style_Default,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
- TQRect subRect(SubRect r, const TQWidget *widget) const;
+ TQRect subRect(SubRect r, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget) const;
void drawComplexControl(ComplexControl control,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how = Style_Default,
@@ -98,20 +103,22 @@ public:
SCFlags controls = (uint)SC_All,
#endif
SCFlags active = SC_None,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
TQRect querySubControlMetrics(ComplexControl control,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
SubControl subcontrol,
- const TQStyleOption& = TQStyleOption::Default) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0) const;
- int pixelMetric(PixelMetric metric, const TQWidget *widget = 0) const;
+ int pixelMetric(PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget = 0) const;
- int styleHint(StyleHint sh, const TQWidget *, const TQStyleOption & = TQStyleOption::Default,
- TQStyleHintReturn* = 0) const;
+ int styleHint(StyleHint sh, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQStyleOption & = TQStyleOption::Default,
+ TQStyleHintReturn* = 0, const TQWidget * = 0) const;
-protected:
- bool eventFilter(TQObject *, TQEvent *);
+ bool objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e );
private:
diff --git a/src/styles/ntqmotifstyle.h b/src/styles/ntqmotifstyle.h
index fbfbf2508..9b9d3650d 100644
--- a/src/styles/ntqmotifstyle.h
+++ b/src/styles/ntqmotifstyle.h
@@ -67,14 +67,16 @@ public:
bool useHighlightColors() const;
void polish( TQPalette& );
- void polish( TQWidget* );
- void polish( TQApplication* );
+ void polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
+ void applicationPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void polishPopupMenu( TQPopupMenu* );
// new style API
void drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
@@ -82,15 +84,18 @@ public:
void drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how = Style_Default,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
void drawComplexControl( ComplexControl control,
TQPainter *p,
- const TQWidget* widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect& r,
const TQColorGroup& cg,
SFlags how = Style_Default,
@@ -100,26 +105,31 @@ public:
SCFlags sub = (uint)SC_All,
#endif
SCFlags subActive = SC_None,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget* widget = 0 ) const;
TQRect querySubControlMetrics( ComplexControl control,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
SubControl sc,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
- int pixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const;
+ int pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget = 0 ) const;
TQSize sizeFromContents( ContentsType contents,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQSize &contentsSize,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
- TQRect subRect( SubRect r, const TQWidget *widget ) const;
+ TQRect subRect( SubRect r, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const;
- TQPixmap stylePixmap(StylePixmap, const TQWidget * = 0, const TQStyleOption& = TQStyleOption::Default) const;
+ TQPixmap stylePixmap(StylePixmap, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQStyleOption& = TQStyleOption::Default, const TQWidget * = 0) const;
- int styleHint(StyleHint sh, const TQWidget *, const TQStyleOption & = TQStyleOption::Default,
- TQStyleHintReturn* = 0) const;
+ int styleHint(StyleHint sh, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQStyleOption & = TQStyleOption::Default,
+ TQStyleHintReturn* = 0, const TQWidget * = 0) const;
private:
bool highlightCols;
diff --git a/src/styles/ntqplatinumstyle.h b/src/styles/ntqplatinumstyle.h
index 3b4657e3e..f0b0ec7ec 100644
--- a/src/styles/ntqplatinumstyle.h
+++ b/src/styles/ntqplatinumstyle.h
@@ -65,6 +65,8 @@ public:
// new Style Stuff
void drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
@@ -72,15 +74,18 @@ public:
void drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how = Style_Default,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
void drawComplexControl( ComplexControl control,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how = Style_Default,
@@ -90,16 +95,19 @@ public:
SCFlags sub = (uint)SC_All,
#endif
SCFlags subActive = SC_None,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
TQRect querySubControlMetrics( ComplexControl control,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
SubControl sc,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
- int pixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const;
+ int pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget = 0 ) const;
- TQRect subRect( SubRect r, const TQWidget *widget ) const;
+ TQRect subRect( SubRect r, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const;
protected:
TQColor mixedColor(const TQColor &, const TQColor &) const;
diff --git a/src/styles/ntqsgistyle.h b/src/styles/ntqsgistyle.h
index b724a5b84..73be2ae84 100644
--- a/src/styles/ntqsgistyle.h
+++ b/src/styles/ntqsgistyle.h
@@ -67,13 +67,15 @@ public:
#if !defined(Q_NO_USING_KEYWORD)
using TQMotifStyle::polish;
#endif
- void polish( TQWidget* );
- void unPolish( TQWidget* );
- void polish( TQApplication* );
- void unPolish( TQApplication* );
+ void polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
+ void unPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
+ void applicationPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
+ void applicationUnPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void * );
void drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
@@ -81,15 +83,18 @@ public:
void drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how = Style_Default,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
void drawComplexControl( ComplexControl control,
TQPainter *p,
- const TQWidget* widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect& r,
const TQColorGroup& cg,
SFlags how = Style_Default,
@@ -99,23 +104,27 @@ public:
SCFlags sub = (uint)SC_All,
#endif
SCFlags subActive = SC_None,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget* widget = 0 ) const;
- int pixelMetric( PixelMetric metric, const TQWidget *widget = 0 ) const;
+ int pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget = 0 ) const;
TQSize sizeFromContents( ContentsType contents,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQSize &contentsSize,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
- TQRect subRect( SubRect r, const TQWidget *widget ) const;
+ TQRect subRect( SubRect r, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const;
TQRect querySubControlMetrics( ComplexControl control,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
SubControl sc,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
-protected:
- bool eventFilter( TQObject*, TQEvent*);
+ bool objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e );
private:
TQSGIStylePrivate *d;
diff --git a/src/styles/ntqwindowsstyle.h b/src/styles/ntqwindowsstyle.h
index 5f7d4d7af..d626c3e3c 100644
--- a/src/styles/ntqwindowsstyle.h
+++ b/src/styles/ntqwindowsstyle.h
@@ -61,11 +61,11 @@ public:
TQWindowsStyle();
~TQWindowsStyle();
- void polish(TQApplication*);
- void unPolish(TQApplication*);
+ void applicationPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *);
+ void applicationUnPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *);
- void polish(TQWidget*);
- void unPolish(TQWidget*);
+ void polish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *);
+ void unPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *);
void polish( TQPalette & );
@@ -74,6 +74,8 @@ public:
// new stuff
void drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
@@ -81,15 +83,18 @@ public:
void drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags = Style_Default,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
void drawComplexControl( ComplexControl control,
TQPainter* p,
- const TQWidget* widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect& r,
const TQColorGroup& cg,
SFlags flags = Style_Default,
@@ -99,25 +104,33 @@ public:
SCFlags sub = (uint)SC_All,
#endif
SCFlags subActive = SC_None,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget* widget = 0 ) const;
int pixelMetric( PixelMetric metric,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQWidget *widget = 0 ) const;
TQSize sizeFromContents( ContentsType contents,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQSize &contentsSize,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
- int styleHint(StyleHint sh, const TQWidget *, const TQStyleOption & = TQStyleOption::Default,
- TQStyleHintReturn* = 0) const;
+ int styleHint(StyleHint sh, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQStyleOption & = TQStyleOption::Default,
+ TQStyleHintReturn* = 0, const TQWidget* = 0) const;
TQPixmap stylePixmap( StylePixmap stylepixmap,
- const TQWidget *widget = 0,
- const TQStyleOption& = TQStyleOption::Default ) const;
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQStyleOption& = TQStyleOption::Default,
+ const TQWidget *widget = 0 ) const;
- TQRect subRect( SubRect r, const TQWidget *widget ) const;
+ TQRect subRect( SubRect r, const TQStyleControlElementData ceData, const ControlElementFlags elementFlags, const TQWidget *widget ) const;
+ bool objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e );
private:
class Private;
diff --git a/src/styles/qcdestyle.cpp b/src/styles/qcdestyle.cpp
index 7a4f2693d..1b01c81d1 100644
--- a/src/styles/qcdestyle.cpp
+++ b/src/styles/qcdestyle.cpp
@@ -87,7 +87,7 @@ TQCDEStyle::~TQCDEStyle()
/*!\reimp
*/
-int TQCDEStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) const
+int TQCDEStyle::pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const
{
int ret;
@@ -102,7 +102,7 @@ int TQCDEStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) const
ret = 13;
break;
default:
- ret = TQMotifStyle::pixelMetric( metric, widget );
+ ret = TQMotifStyle::pixelMetric( metric, ceData, elementFlags, widget );
break;
}
return ret;
@@ -112,11 +112,13 @@ int TQCDEStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) const
*/
void TQCDEStyle::drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch( element ) {
@@ -127,11 +129,11 @@ void TQCDEStyle::drawControl( ControlElement element,
&cg.brush( TQColorGroup::Button ) );
else // other item
p->fillRect( r, cg.brush( TQColorGroup::Button ) );
- TQCommonStyle::drawControl( element, p, widget, r, cg, how, opt );
+ TQCommonStyle::drawControl( element, p, ceData, elementFlags, r, cg, how, opt, widget );
break;
}
default:
- TQMotifStyle::drawControl( element, p, widget, r, cg, how, opt );
+ TQMotifStyle::drawControl( element, p, ceData, elementFlags, r, cg, how, opt, widget );
break;
}
@@ -142,6 +144,8 @@ void TQCDEStyle::drawControl( ControlElement element,
*/
void TQCDEStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
@@ -154,7 +158,7 @@ void TQCDEStyle::drawPrimitive( PrimitiveElement pe,
bool on = flags & Style_On;
bool showUp = !( down ^ on );
TQBrush fill = showUp || flags & Style_NoChange ? cg.brush( TQColorGroup::Button ) : cg.brush( TQColorGroup::Mid );
- qDrawShadePanel( p, r, cg, !showUp, pixelMetric( PM_DefaultFrameWidth ), &cg.brush( TQColorGroup::Button ) );
+ qDrawShadePanel( p, r, cg, !showUp, pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags ), &cg.brush( TQColorGroup::Button ) );
if ( !( flags & Style_Off ) ) {
TQPointArray a( 7 * 2 );
@@ -360,7 +364,7 @@ void TQCDEStyle::drawPrimitive( PrimitiveElement pe,
}
break;
default:
- TQMotifStyle::drawPrimitive( pe, p, r, cg, flags, opt );
+ TQMotifStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt );
}
}
diff --git a/src/styles/qcommonstyle.cpp b/src/styles/qcommonstyle.cpp
index 4b51be9f1..20c6c9993 100644
--- a/src/styles/qcommonstyle.cpp
+++ b/src/styles/qcommonstyle.cpp
@@ -49,9 +49,11 @@
#include "ntqpixmap.h"
#include "ntqpushbutton.h"
#include "ntqtabbar.h"
+#include "ntqlineedit.h"
#include "ntqscrollbar.h"
#include "ntqtoolbutton.h"
#include "ntqtoolbar.h"
+#include "ntqcombobox.h"
#include "ntqdockarea.h"
#include "ntqheader.h"
#include "ntqspinbox.h"
@@ -135,6 +137,405 @@ static const char * const check_list_controller_xpm[] = {
" ",
" "};
+#include <ntqmetaobject.h>
+
+TQStringList getObjectTypeListForObject(const TQObject* object) {
+ TQStringList objectTypes;
+
+ if (object) {
+ TQMetaObject* objectMetaObject = object->metaObject();
+ const char* name;
+
+ while (objectMetaObject) {
+ name = objectMetaObject->className();
+ objectTypes.append(TQString(name));
+ objectMetaObject = objectMetaObject->superClass();
+ }
+ }
+
+ return objectTypes;
+}
+
+TQStyle::ControlElementFlags getControlElementFlagsForObject(const TQObject* object, TQStringList objectTypeList, const TQStyleOption& opt, bool populateReliantFields) {
+ TQStyle::ControlElementFlags cef = (TQStyle::ControlElementFlags)0;
+
+ if (object) {
+ if (objectTypeList.contains("TQPushButton")) {
+ const TQPushButton *button = dynamic_cast<const TQPushButton*>(object);
+ if (button) {
+ if (button->isDefault()) cef = cef | TQStyle::CEF_IsDefault;
+ if (button->autoDefault()) cef = cef | TQStyle::CEF_AutoDefault;
+ if (button->isMenuButton()) cef = cef | TQStyle::CEF_IsMenuWidget;
+ if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState;
+ if (button->isFlat()) cef = cef | TQStyle::CEF_IsFlat;
+ }
+ }
+ if (objectTypeList.contains("TQToolButton")) {
+ const TQToolButton *button = dynamic_cast<const TQToolButton*>(object);
+ if (button) {
+ if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState;
+ if (button->usesTextLabel()) cef = cef | TQStyle::CEF_UsesTextLabel;
+ if (button->usesBigPixmap()) cef = cef | TQStyle::CEF_UsesBigPixmap;
+ if (button->popup()) cef = cef | TQStyle::CEF_HasPopupMenu;
+ }
+ }
+ if (objectTypeList.contains("TQButton")) {
+ const TQButton *button = dynamic_cast<const TQButton*>(object);
+ if (button) {
+ if (button->isDown()) cef = cef | TQStyle::CEF_IsDown;
+ if (button->isOn()) cef = cef | TQStyle::CEF_IsOn;
+ if (button->isEnabled()) cef = cef | TQStyle::CEF_IsEnabled;
+ if (button->isToggleButton()) cef = cef | TQStyle::CEF_BiState;
+ }
+ }
+ if (objectTypeList.contains("TQTabBar")) {
+ const TQTabBar *tb = dynamic_cast<const TQTabBar*>(object);
+ TQTab * t = opt.tab();
+ if ((t) && (tb)) {
+ if (t->identifier() == tb->currentTab()) cef = cef | TQStyle::CEF_IsActive;
+ }
+ }
+ if (objectTypeList.contains("TQToolBox")) {
+ const TQToolBox *tb = dynamic_cast<const TQToolBox*>(object);
+ if (tb) {
+ if (!tb->currentItem()) cef = cef | TQStyle::CEF_IsContainerEmpty;
+ }
+ }
+ if (objectTypeList.contains("TQProgressBar")) {
+ const TQProgressBar *pb = dynamic_cast<const TQProgressBar*>(object);
+ if (pb) {
+ if (pb->centerIndicator()) cef = cef | TQStyle::CEF_CenterIndicator;
+ if (pb->indicatorFollowsStyle()) cef = cef | TQStyle::CEF_IndicatorFollowsStyle;
+ }
+ }
+ if (objectTypeList.contains("TQPopupMenu")) {
+ const TQPopupMenu *pm = dynamic_cast<const TQPopupMenu*>(object);
+ if (pm) {
+ if (pm->isCheckable()) cef = cef | TQStyle::CEF_IsCheckable;
+ }
+ }
+ if (objectTypeList.contains("TQComboBox")) {
+ const TQComboBox *cb = dynamic_cast<const TQComboBox*>(object);
+ if (cb) {
+ if (cb->editable()) cef = cef | TQStyle::CEF_IsEditable;
+ }
+ }
+ // Generic flags
+ const TQWidget* widget = dynamic_cast<const TQWidget*>(object);
+ if (widget) {
+ if (widget->parentWidget()) cef = cef | TQStyle::CEF_HasParentWidget;
+ if (widget->focusProxy()) cef = cef | TQStyle::CEF_HasFocusProxy;
+ if (widget->hasFocus()) cef = cef | TQStyle::CEF_HasFocus;
+ if (populateReliantFields) {
+ if (widget->isActiveWindow()) cef = cef | TQStyle::CEF_IsActiveWindow;
+ if (widget->isTopLevel()) cef = cef | TQStyle::CEF_IsTopLevel;
+ if (widget->isVisible()) cef = cef | TQStyle::CEF_IsVisible;
+ }
+ }
+ }
+ else {
+ cef = cef | TQStyle::CEF_UseGenericParameters;
+ }
+
+ return cef;
+}
+
+TQStyleControlElementData populateControlElementDataFromWidget(const TQWidget* widget, const TQStyleOption& opt, bool populateReliantFields) {
+ TQStyleControlElementData ceData;
+
+ if (widget) {
+ ceData.widgetObjectTypes = getObjectTypeListForObject(widget);
+ ceData.allDataPopulated = populateReliantFields;
+ const TQPixmap* erasePixmap = widget->backgroundPixmap();
+ if (erasePixmap) {
+ ceData.bgPixmap = *erasePixmap;
+ }
+ if (populateReliantFields) {
+ ceData.bgBrush = widget->backgroundBrush();
+ }
+ ceData.wflags = widget->getWFlags();
+ ceData.bgColor = widget->eraseColor();
+ ceData.bgOffset = widget->backgroundOffset();
+ ceData.backgroundMode = widget->backgroundMode();
+ if (populateReliantFields) {
+ ceData.fgColor = widget->foregroundColor();
+ ceData.colorGroup = widget->colorGroup();
+ }
+ ceData.geometry = widget->geometry();
+ ceData.rect = widget->rect();
+ ceData.pos = widget->pos();
+ const TQPixmap* icon = widget->icon();
+ if (icon) {
+ ceData.icon = *icon;
+ }
+ ceData.palette = widget->palette();
+ ceData.font = widget->font();
+ if (ceData.widgetObjectTypes.contains("TQPushButton")) {
+ const TQPushButton *button = dynamic_cast<const TQPushButton*>(widget);
+ if (button) {
+ TQIconSet* iconSet = 0;
+ const TQPixmap* fgPixmap = 0;
+ iconSet = button->iconSet();
+ fgPixmap = button->pixmap();
+ if (iconSet) {
+ ceData.iconSet = *iconSet;
+ }
+ if (fgPixmap) {
+ ceData.fgPixmap = *fgPixmap;
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQToolButton")) {
+ const TQToolButton *button = dynamic_cast<const TQToolButton*>(widget);
+ if (button) {
+ const TQPixmap* fgPixmap = 0;
+ ceData.iconSet = button->iconSet();
+ fgPixmap = button->pixmap();
+ if (fgPixmap) {
+ ceData.fgPixmap = *fgPixmap;
+ }
+ ceData.textLabel = button->textLabel();
+ ceData.toolButtonTextPosition = button->textPosition();
+ ceData.popupDelay = button->popupDelay();
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQCheckBox")) {
+ const TQCheckBox *button = dynamic_cast<const TQCheckBox*>(widget);
+ if (button) {
+ const TQPixmap* fgPixmap = 0;
+ fgPixmap = button->pixmap();
+ if (fgPixmap) {
+ ceData.fgPixmap = *fgPixmap;
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQRadioButton")) {
+ const TQRadioButton *button = dynamic_cast<const TQRadioButton*>(widget);
+ if (button) {
+ const TQPixmap* fgPixmap = 0;
+ fgPixmap = button->pixmap();
+ if (fgPixmap) {
+ ceData.fgPixmap = *fgPixmap;
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQButton")) {
+ const TQButton *button = dynamic_cast<const TQButton*>(widget);
+ if (button) {
+ ceData.text = button->text();
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQTabBar")) {
+ const TQTabBar *tb = dynamic_cast<const TQTabBar*>(widget);
+ if (tb) {
+ ceData.tabBarData.tabCount = tb->count();
+ ceData.tabBarData.shape = tb->shape();
+ ceData.tabBarData.identIndexMap.clear();
+ const TQTab* currentTab;
+ for (int i=0; i<tb->count(); ++i) {
+ currentTab = tb->tabAt(i);
+ if (currentTab) {
+ ceData.tabBarData.identIndexMap[currentTab->identifier()] = tb->indexOf(currentTab->identifier());
+ }
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQToolBox")) {
+ const TQToolBox *tb = dynamic_cast<const TQToolBox*>(widget);
+ if (tb) {
+ const TQWidget* currentItem = tb->currentItem();
+ if (currentItem) {
+ ceData.activeItemPaletteBgColor = currentItem->paletteBackgroundColor();
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQProgressBar")) {
+ const TQProgressBar *pb = dynamic_cast<const TQProgressBar*>(widget);
+ if (pb) {
+ ceData.currentStep = pb->progress();
+ ceData.totalSteps = pb->totalSteps();
+ ceData.progressText = pb->progressString();
+ ceData.percentageVisible = pb->percentageVisible();
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQHeader")) {
+ const TQHeader *header = dynamic_cast<const TQHeader*>(widget);
+ if (header) {
+ int section = opt.headerSection();
+ TQIconSet* iconSet = 0;
+ iconSet = header->iconSet(section);
+ ceData.textLabel = header->label(section);
+ if (iconSet) {
+ ceData.iconSet = *iconSet;
+ }
+ }
+ }
+ // Complex Controls
+ if (ceData.widgetObjectTypes.contains("TQScrollBar")) {
+ const TQScrollBar *sb = dynamic_cast<const TQScrollBar*>(widget);
+ if (sb) {
+ ceData.orientation = sb->orientation();
+ ceData.minSteps = sb->minValue();
+ ceData.maxSteps = sb->maxValue();
+ ceData.currentStep = sb->value();
+ ceData.startStep = sb->sliderStart();
+ ceData.lineStep = sb->lineStep();
+ ceData.pageStep = sb->pageStep();
+ if (populateReliantFields) {
+ ceData.sliderRect = sb->sliderRect();
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQSlider")) {
+ const TQSlider *sl = dynamic_cast<const TQSlider*>(widget);
+ if (sl) {
+ ceData.orientation = sl->orientation();
+ ceData.tickMarkSetting = sl->tickmarks();
+ ceData.tickInterval = sl->tickInterval();
+ ceData.currentStep = sl->value();
+ ceData.startStep = sl->sliderStart();
+ ceData.lineStep = sl->lineStep();
+ ceData.pageStep = sl->pageStep();
+ if (populateReliantFields) {
+ ceData.sliderRect = sl->sliderRect();
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQDialogButtons")) {
+ const TQDialogButtons *dlgbtns = dynamic_cast<const TQDialogButtons*>(widget);
+ if (dlgbtns) {
+ ceData.orientation = dlgbtns->orientation();
+ ceData.dlgVisibleButtons = dlgbtns->visibleButtons();
+ TQDialogButtons::Button btns[] = { TQDialogButtons::All, TQDialogButtons::Reject, TQDialogButtons::Accept, TQDialogButtons::Apply, TQDialogButtons::Retry, TQDialogButtons::Ignore, TQDialogButtons::Abort, TQDialogButtons::Help };
+ for(unsigned int i = 0; i < (sizeof(btns)/sizeof(btns[0])); i++) {
+ if (ceData.dlgVisibleButtons & btns[i]) {
+ ceData.dlgVisibleSizeHints[btns[i]] = dlgbtns->sizeHint(btns[i]);
+ }
+ }
+
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQTitleBar")) {
+ const TQTitleBar *tb = dynamic_cast<const TQTitleBar*>(widget);
+ if (tb) {
+ ceData.titleBarData.hasWindow = !!(tb->window());
+ if (ceData.titleBarData.hasWindow) {
+ ceData.titleBarData.windowState = tb->window()->windowState();
+ }
+ if (populateReliantFields) {
+ ceData.titleBarData.usesActiveColor = tb->usesActiveColor();
+ }
+ ceData.titleBarData.visibleText = tb->visibleText();
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQSpinWidget")) {
+ const TQSpinWidget *sw = dynamic_cast<const TQSpinWidget*>(widget);
+ if (sw) {
+ ceData.spinWidgetData.buttonSymbols = sw->buttonSymbols();
+ ceData.spinWidgetData.upRect = sw->upRect();
+ ceData.spinWidgetData.downRect = sw->downRect();
+ ceData.spinWidgetData.upEnabled = sw->isUpEnabled();
+ ceData.spinWidgetData.downEnabled = sw->isDownEnabled();
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQListView")) {
+ const TQListView *lv = dynamic_cast<const TQListView*>(widget);
+ if (lv) {
+ ceData.listViewData.rootDecorated = lv->rootIsDecorated();
+ ceData.listViewData.itemMargin = lv->itemMargin();
+ TQWidget* viewport = lv->viewport();
+ if (viewport) {
+ ceData.viewportData.widgetObjectTypes = getObjectTypeListForObject(viewport);
+ ceData.viewportData.allDataPopulated = populateReliantFields;
+ const TQPixmap* erasePixmap = viewport->backgroundPixmap();
+ if (erasePixmap) {
+ ceData.viewportData.bgPixmap = *erasePixmap;
+ }
+ if (populateReliantFields) {
+ ceData.viewportData.bgBrush = viewport->backgroundBrush();
+ }
+ ceData.viewportData.wflags = viewport->getWFlags();
+ ceData.viewportData.bgColor = viewport->eraseColor();
+ ceData.viewportData.bgOffset = viewport->backgroundOffset();
+ ceData.viewportData.backgroundMode = viewport->backgroundMode();
+ if (populateReliantFields) {
+ ceData.viewportData.fgColor = viewport->foregroundColor();
+ ceData.viewportData.colorGroup = viewport->colorGroup();
+ }
+ ceData.viewportData.geometry = viewport->geometry();
+ ceData.viewportData.rect = viewport->rect();
+ ceData.viewportData.pos = viewport->pos();
+ const TQPixmap* icon = viewport->icon();
+ if (icon) {
+ ceData.viewportData.icon = *icon;
+ }
+ ceData.viewportData.palette = viewport->palette();
+ ceData.viewportData.font = viewport->font();
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQComboBox")) {
+ const TQComboBox *cb = dynamic_cast<const TQComboBox*>(widget);
+ if (cb) {
+ const TQLineEdit* lineEdit = cb->lineEdit();
+ if (lineEdit) {
+ ceData.comboBoxLineEditFlags = getControlElementFlagsForObject(lineEdit, ceData.widgetObjectTypes, TQStyleOption::Default);
+ }
+ }
+ }
+ if (ceData.widgetObjectTypes.contains("TQFrame")) {
+ const TQFrame *frame = dynamic_cast<const TQFrame*>(widget);
+ if (frame) {
+ ceData.frameStyle = frame->frameStyle();
+ }
+ }
+
+ const TQWidget* parentWidget = widget->parentWidget();
+ if (parentWidget) {
+ ceData.parentWidgetData.widgetObjectTypes = getObjectTypeListForObject(parentWidget);
+ ceData.parentWidgetData.allDataPopulated = populateReliantFields;
+ const TQPixmap* erasePixmap = parentWidget->backgroundPixmap();
+ if (erasePixmap) {
+ ceData.parentWidgetData.bgPixmap = *erasePixmap;
+ }
+ if (populateReliantFields) {
+ ceData.parentWidgetData.bgBrush = parentWidget->backgroundBrush();
+ }
+ ceData.parentWidgetData.wflags = parentWidget->getWFlags();
+ ceData.parentWidgetData.bgColor = parentWidget->eraseColor();
+ ceData.parentWidgetData.bgOffset = parentWidget->backgroundOffset();
+ ceData.parentWidgetData.backgroundMode = parentWidget->backgroundMode();
+ if (populateReliantFields) {
+ ceData.parentWidgetData.fgColor = parentWidget->foregroundColor();
+ ceData.parentWidgetData.colorGroup = parentWidget->colorGroup();
+ }
+ ceData.parentWidgetData.geometry = parentWidget->geometry();
+ ceData.parentWidgetData.rect = parentWidget->rect();
+ ceData.parentWidgetData.pos = parentWidget->pos();
+ const TQPixmap* icon = parentWidget->icon();
+ if (icon) {
+ ceData.parentWidgetData.icon = *icon;
+ }
+ ceData.parentWidgetData.palette = parentWidget->palette();
+ ceData.parentWidgetData.font = parentWidget->font();
+
+ const TQDockWindow * dw = dynamic_cast<const TQDockWindow*>(parentWidget);
+ if (dw) {
+ if (dw->area()) {
+ ceData.dwData.hasDockArea = true;
+ ceData.dwData.areaOrientation = dw->area()->orientation();
+ }
+ else {
+ ceData.dwData.hasDockArea = false;
+ }
+ ceData.dwData.closeEnabled = dw->isCloseEnabled();
+ }
+ }
+ }
+
+ return ceData;
+}
+
/*! \reimp */
void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p,
@@ -143,6 +544,32 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
SFlags flags,
const TQStyleOption& opt ) const
{
+ const TQWidget* widget = 0;
+
+ // Determine if the request needs widget information and set widget appropriately
+ // FIXME
+ if ((pe == PE_CheckListController) || (pe == PE_CheckListExclusiveIndicator) || (pe == PE_CheckListIndicator)) {
+ TQCheckListItem *item = opt.checkListItem();
+ if (item) {
+ TQListView *lv = item->listView();
+ widget = dynamic_cast<TQWidget*>(lv);
+ }
+ }
+
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
+ drawPrimitive(pe, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), r, cg, flags, opt);
+}
+
+/*! \reimp */
+void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
+ TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQColorGroup &cg,
+ SFlags flags,
+ const TQStyleOption& opt ) const
+{
activePainter = p;
switch (pe) {
@@ -152,7 +579,6 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
break; }
case PE_CheckListExclusiveIndicator: {
TQCheckListItem *item = opt.checkListItem();
- TQListView *lv = item->listView();
if(!item)
return;
int x = r.x(), y = r.y();
@@ -174,7 +600,7 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
if ( flags & Style_Enabled )
p->setPen( cg.text() );
else
- p->setPen( TQPen( lv->palette().color( TQPalette::Disabled, TQColorGroup::Text ) ) );
+ p->setPen( TQPen( ceData.palette.color( TQPalette::Disabled, TQColorGroup::Text ) ) );
TQPointArray a( TQCOORDARRLEN(pts1), pts1 );
a.translate( x, y );
//p->setPen( cg.dark() );
@@ -205,21 +631,20 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
break; }
case PE_CheckListIndicator: {
TQCheckListItem *item = opt.checkListItem();
- TQListView *lv = item->listView();
if(!item)
return;
- int x = r.x(), y = r.y(), w = r.width(), h = r.width(), marg = lv->itemMargin();
+ int x = r.x(), y = r.y(), w = r.width(), h = r.width(), marg = ceData.listViewData.itemMargin;
if ( flags & Style_Enabled )
p->setPen( TQPen( cg.text(), 2 ) );
else
- p->setPen( TQPen( lv->palette().color( TQPalette::Disabled, TQColorGroup::Text ),
+ p->setPen( TQPen( ceData.palette.color( TQPalette::Disabled, TQColorGroup::Text ),
2 ) );
bool parentControl = FALSE;
if ( item->parent() && item->parent()->rtti() == 1 &&
((TQCheckListItem*) item->parent())->type() == TQCheckListItem::Controller )
parentControl = TRUE;
- if ( flags & Style_Selected && !lv->rootIsDecorated() && !parentControl ) {
+ if ( flags & Style_Selected && !ceData.listViewData.rootDecorated && !parentControl ) {
p->fillRect( 0, 0, x + marg + w + 4, item->height(),
cg.brush( TQColorGroup::Highlight ) );
if ( item->isEnabled() )
@@ -322,7 +747,7 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
case PE_SpinWidgetPlus:
case PE_SpinWidgetMinus: {
p->save();
- int fw = pixelMetric( PM_DefaultFrameWidth, 0 );
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, 0 );
TQRect br;
br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2,
r.height() - fw*2 );
@@ -353,7 +778,7 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
case PE_SpinWidgetUp:
case PE_SpinWidgetDown: {
- int fw = pixelMetric( PM_DefaultFrameWidth, 0 );
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, 0 );
TQRect br;
br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2,
r.height() - fw*2 );
@@ -378,8 +803,8 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
int bsx = 0;
int bsy = 0;
if ( flags & Style_Sunken ) {
- bsx = pixelMetric(PM_ButtonShiftHorizontal);
- bsy = pixelMetric(PM_ButtonShiftVertical);
+ bsx = pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags);
+ bsy = pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags);
}
p->save();
p->translate( sx + bsx, sy + bsy );
@@ -464,21 +889,21 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
case PE_Panel:
case PE_PanelPopup: {
- int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth)
+ int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags)
: opt.lineWidth();
qDrawShadePanel(p, r, cg, (flags & Style_Sunken), lw);
break; }
case PE_PanelDockWindow: {
- int lw = opt.isDefault() ? pixelMetric(PM_DockWindowFrameWidth)
+ int lw = opt.isDefault() ? pixelMetric(PM_DockWindowFrameWidth, ceData, elementFlags)
: opt.lineWidth();
qDrawShadePanel(p, r, cg, FALSE, lw);
break; }
case PE_PanelMenuBar: {
- int lw = opt.isDefault() ? pixelMetric(PM_MenuBarFrameWidth)
+ int lw = opt.isDefault() ? pixelMetric(PM_MenuBarFrameWidth, ceData, elementFlags)
: opt.lineWidth();
qDrawShadePanel(p, r, cg, FALSE, lw, &cg.brush(TQColorGroup::Button));
@@ -565,7 +990,7 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
break; }
case PE_PanelGroupBox: //We really do not need PE_GroupBoxFrame anymore, nasty holdover ###
- drawPrimitive( PE_GroupBoxFrame, p, r, cg, flags, opt );
+ drawPrimitive( PE_GroupBoxFrame, p, ceData, elementFlags, r, cg, flags, opt );
break;
case PE_GroupBoxFrame: {
#ifndef QT_NO_FRAME
@@ -587,11 +1012,11 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
case PE_PanelLineEdit:
case PE_PanelTabWidget:
case PE_WindowFrame:
- drawPrimitive( PE_Panel, p, r, cg, flags, opt );
+ drawPrimitive( PE_Panel, p, ceData, elementFlags, r, cg, flags, opt );
break;
case PE_RubberBand:
- drawPrimitive(PE_FocusRect, p, r, cg, flags, opt);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, r, cg, flags, opt);
break;
default:
break;
@@ -600,6 +1025,25 @@ void TQCommonStyle::drawPrimitive( PrimitiveElement pe,
activePainter = 0;
}
+void qt_style_erase_region(TQPainter* p, const TQRegion& region, TQStyleControlElementData ceData) {
+ TQRegion reg = region;
+
+ TQPoint offset = ceData.bgOffset;
+ int ox = offset.x();
+ int oy = offset.y();
+
+ TQRegion origcr = p->clipRegion();
+ p->setClipRegion(region);
+ if (!ceData.bgPixmap.isNull()) {
+ p->drawTiledPixmap(0, 0, ceData.geometry.width(), ceData.geometry.height(), ceData.bgPixmap, ox, oy);
+ }
+ else {
+ p->fillRect(ceData.rect, ceData.bgColor);
+ }
+ p->setClipRegion(origcr);
+ return;
+}
+
/*! \reimp */
void TQCommonStyle::drawControl( ControlElement element,
TQPainter *p,
@@ -610,12 +1054,27 @@ void TQCommonStyle::drawControl( ControlElement element,
const TQStyleOption& opt ) const
{
#if defined(QT_CHECK_STATE)
- if (! widget) {
- tqWarning("TQCommonStyle::drawControl: widget parameter cannot be zero!");
- return;
- }
+ if (!widget) {
+ tqWarning("TQCommonStyle::drawControl: widget parameter cannot be zero!");
+ return;
+ }
#endif
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt);
+ drawControl(element, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, opt), r, cg, flags, opt, widget);
+}
+
+/*! \reimp */
+void TQCommonStyle::drawControl( ControlElement element,
+ TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQColorGroup &cg,
+ SFlags flags,
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
+{
activePainter = p;
switch (element) {
@@ -625,18 +1084,18 @@ void TQCommonStyle::drawControl( ControlElement element,
reg = p->clipRegion();
else
reg = r;
- ((TQWidget *)widget)->erase( reg );
+ qt_style_erase_region(p, reg, ceData);
break; }
case CE_PushButton:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
TQRect br = r;
- int dbi = pixelMetric(PM_ButtonDefaultIndicator, widget);
+ int dbi = pixelMetric(PM_ButtonDefaultIndicator, ceData, elementFlags, widget);
- if (button->isDefault() || button->autoDefault()) {
- if ( button->isDefault())
- drawPrimitive(PE_ButtonDefault, p, br, cg, flags);
+ if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault)) {
+ if (elementFlags & CEF_IsDefault) {
+ drawPrimitive(PE_ButtonDefault, p, ceData, elementFlags, br, cg, flags);
+ }
br.setCoords(br.left() + dbi,
br.top() + dbi,
@@ -645,9 +1104,9 @@ void TQCommonStyle::drawControl( ControlElement element,
}
p->save();
- p->setBrushOrigin( -widget->backgroundOffset().x(),
- -widget->backgroundOffset().y() );
- drawPrimitive(PE_ButtonCommand, p, br, cg, flags);
+ p->setBrushOrigin( -ceData.bgOffset.x(),
+ -ceData.bgOffset.y() );
+ drawPrimitive(PE_ButtonCommand, p, ceData, elementFlags, br, cg, flags);
p->restore();
#endif
break;
@@ -656,43 +1115,42 @@ void TQCommonStyle::drawControl( ControlElement element,
case CE_PushButtonLabel:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
TQRect ir = r;
- if (button->isDown() || button->isOn()) {
+ if ((elementFlags & CEF_IsDown) || (elementFlags & CEF_IsOn)) {
flags |= Style_Sunken;
- ir.moveBy(pixelMetric(PM_ButtonShiftHorizontal, widget),
- pixelMetric(PM_ButtonShiftVertical, widget));
+ ir.moveBy(pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget),
+ pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget));
}
- if (button->isMenuButton()) {
- int mbi = pixelMetric(PM_MenuButtonIndicator, widget);
+ if (elementFlags & CEF_IsMenuWidget) {
+ int mbi = pixelMetric(PM_MenuButtonIndicator, ceData, elementFlags, widget);
TQRect ar(ir.right() - mbi, ir.y() + 2, mbi - 4, ir.height() - 4);
- drawPrimitive(PE_ArrowDown, p, ar, cg, flags, opt);
+ drawPrimitive(PE_ArrowDown, p, ceData, elementFlags, ar, cg, flags, opt);
ir.setWidth(ir.width() - mbi);
}
int tf=AlignVCenter | ShowPrefix;
- if (!styleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0))
+ if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, widget)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, widget)) && (!acceleratorsShown())))
tf |= NoAccel;
#ifndef QT_NO_ICONSET
- if ( button->iconSet() && ! button->iconSet()->isNull() ) {
+ if ( !ceData.iconSet.isNull() ) {
TQIconSet::Mode mode =
- button->isEnabled() ? TQIconSet::Normal : TQIconSet::Disabled;
- if ( mode == TQIconSet::Normal && button->hasFocus() )
+ (elementFlags & CEF_IsEnabled) ? TQIconSet::Normal : TQIconSet::Disabled;
+ if ( mode == TQIconSet::Normal && (elementFlags & CEF_HasFocus) )
mode = TQIconSet::Active;
TQIconSet::State state = TQIconSet::Off;
- if ( button->isToggleButton() && button->isOn() )
+ if ( (elementFlags & CEF_BiState) && (elementFlags & CEF_IsOn) )
state = TQIconSet::On;
- TQPixmap pixmap = button->iconSet()->pixmap( TQIconSet::Small, mode, state );
+ TQPixmap pixmap = ceData.iconSet.pixmap( TQIconSet::Small, mode, state );
int pixw = pixmap.width();
int pixh = pixmap.height();
//Center the icon if there is neither text nor pixmap
- if ( button->text().isEmpty() && !button->pixmap() )
+ if ( ceData.text.isEmpty() && ceData.fgPixmap.isNull() )
p->drawPixmap( ir.x() + ir.width() / 2 - pixw / 2, ir.y() + ir.height() / 2 - pixh / 2, pixmap );
else
p->drawPixmap( ir.x() + 2, ir.y() + ir.height() / 2 - pixh / 2, pixmap );
@@ -700,66 +1158,62 @@ void TQCommonStyle::drawControl( ControlElement element,
ir.moveBy(pixw + 4, 0);
ir.setWidth(ir.width() - (pixw + 4));
// left-align text if there is
- if (!button->text().isEmpty())
+ if (!ceData.text.isEmpty())
tf |= AlignLeft;
- else if (button->pixmap())
+ else if (!ceData.fgPixmap.isNull())
tf |= AlignHCenter;
} else
#endif //QT_NO_ICONSET
tf |= AlignHCenter;
drawItem(p, ir, tf, cg,
- flags & Style_Enabled, button->pixmap(), button->text(),
- button->text().length(), &(cg.buttonText()) );
+ flags & Style_Enabled, (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text,
+ ceData.text.length(), &(cg.buttonText()) );
if (flags & Style_HasFocus)
- drawPrimitive(PE_FocusRect, p, subRect(SR_PushButtonFocusRect, widget),
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, subRect(SR_PushButtonFocusRect, ceData, elementFlags, widget),
cg, flags);
#endif
break;
}
case CE_CheckBox:
- drawPrimitive(PE_Indicator, p, r, cg, flags, opt);
+ drawPrimitive(PE_Indicator, p, ceData, elementFlags, r, cg, flags, opt);
break;
case CE_CheckBoxLabel:
{
#ifndef QT_NO_CHECKBOX
- const TQCheckBox *checkbox = (const TQCheckBox *) widget;
-
int alignment = TQApplication::reverseLayout() ? AlignRight : AlignLeft;
- if (!styleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0))
+ if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, widget)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, widget)) && (!acceleratorsShown())))
alignment |= NoAccel;
drawItem(p, r, alignment | AlignVCenter | ShowPrefix, cg,
- flags & Style_Enabled, checkbox->pixmap(), checkbox->text());
+ flags & Style_Enabled, (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text);
if (flags & Style_HasFocus) {
- TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, widget), widget);
- drawPrimitive(PE_FocusRect, p, fr, cg, flags);
+ TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, ceData, elementFlags, widget), ceData, elementFlags);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, flags);
}
#endif
break;
}
case CE_RadioButton:
- drawPrimitive(PE_ExclusiveIndicator, p, r, cg, flags, opt);
+ drawPrimitive(PE_ExclusiveIndicator, p, ceData, elementFlags, r, cg, flags, opt);
break;
case CE_RadioButtonLabel:
{
#ifndef QT_NO_RADIOBUTTON
- const TQRadioButton *radiobutton = (const TQRadioButton *) widget;
-
int alignment = TQApplication::reverseLayout() ? AlignRight : AlignLeft;
- if (!styleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0))
+ if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, widget)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, widget)) && (!acceleratorsShown())))
alignment |= NoAccel;
drawItem(p, r, alignment | AlignVCenter | ShowPrefix, cg,
- flags & Style_Enabled, radiobutton->pixmap(), radiobutton->text());
+ flags & Style_Enabled, (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text);
if (flags & Style_HasFocus) {
- TQRect fr = visualRect(subRect(SR_RadioButtonFocusRect, widget), widget);
- drawPrimitive(PE_FocusRect, p, fr, cg, flags);
+ TQRect fr = visualRect(subRect(SR_RadioButtonFocusRect, ceData, elementFlags, widget), ceData, elementFlags);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, flags);
}
#endif
break;
@@ -768,10 +1222,8 @@ void TQCommonStyle::drawControl( ControlElement element,
#ifndef QT_NO_TABBAR
case CE_TabBarTab:
{
- const TQTabBar * tb = (const TQTabBar *) widget;
-
- if ( tb->shape() == TQTabBar::TriangularAbove ||
- tb->shape() == TQTabBar::TriangularBelow ) {
+ if ( ceData.tabBarData.shape == TQTabBar::TriangularAbove ||
+ ceData.tabBarData.shape == TQTabBar::TriangularBelow ) {
// triangular, above or below
int y;
int x;
@@ -790,7 +1242,7 @@ void TQCommonStyle::drawControl( ControlElement element,
for ( i = 0; i < 5; i++ )
a.setPoint( 9-i, right - a.point( i ).x(), a.point( i ).y() );
- if ( tb->shape() == TQTabBar::TriangularAbove )
+ if ( ceData.tabBarData.shape == TQTabBar::TriangularAbove )
for ( i = 0; i < 10; i++ )
a.setPoint( i, a.point(i).x(),
r.height() - 1 - a.point( i ).y() );
@@ -813,22 +1265,21 @@ void TQCommonStyle::drawControl( ControlElement element,
if ( opt.isDefault() )
break;
- const TQTabBar * tb = (const TQTabBar *) widget;
TQTab * t = opt.tab();
TQRect tr = r;
- if ( t->identifier() == tb->currentTab() )
+ if (elementFlags & CEF_IsActive)
tr.setBottom( tr.bottom() -
- pixelMetric( TQStyle::PM_DefaultFrameWidth, tb ) );
+ pixelMetric( TQStyle::PM_DefaultFrameWidth, ceData, elementFlags, widget ) );
int alignment = AlignCenter | ShowPrefix;
- if (!styleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0))
+ if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, widget)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, widget)) && (!acceleratorsShown())))
alignment |= NoAccel;
drawItem( p, tr, alignment, cg,
flags & Style_Enabled, 0, t->text() );
if ( (flags & Style_HasFocus) && !t->text().isEmpty() )
- drawPrimitive( PE_FocusRect, p, r, cg );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, r, cg );
break;
}
#endif // QT_NO_TABBAR
@@ -845,10 +1296,8 @@ void TQCommonStyle::drawControl( ControlElement element,
a.setPoint( 5, r.width() - 1, r.height() + 1 );
a.setPoint( 6, -1, r.height() + 1 );
- const TQToolBox *tb = (const TQToolBox*)widget;
-
- if ( flags & Style_Selected && tb->currentItem() )
- p->setBrush( tb->currentItem()->paletteBackgroundColor() );
+ if ( flags & Style_Selected && !(elementFlags & CEF_IsContainerEmpty) )
+ p->setBrush( ceData.activeItemPaletteBgColor );
else
p->setBrush( cg.brush(TQColorGroup::Background) );
@@ -869,32 +1318,31 @@ void TQCommonStyle::drawControl( ControlElement element,
#ifndef QT_NO_PROGRESSBAR
case CE_ProgressBarContents:
{
- const TQProgressBar *progressbar = (const TQProgressBar *) widget;
// Correct the highlight color if same as background,
// or else we cannot see the progress...
TQColorGroup cgh = cg;
if ( cgh.highlight() == cgh.background() )
- cgh.setColor( TQColorGroup::Highlight, progressbar->palette().active().highlight() );
+ cgh.setColor( TQColorGroup::Highlight, ceData.palette.active().highlight() );
bool reverse = TQApplication::reverseLayout();
int fw = 2;
int w = r.width() - 2*fw;
- if ( !progressbar->totalSteps() ) {
+ if ( !ceData.totalSteps ) {
// draw busy indicator
- int x = progressbar->progress() % (w * 2);
+ int x = ceData.currentStep % (w * 2);
if (x > w)
x = 2 * w - x;
x = reverse ? r.right() - x : x + r.x();
p->setPen( TQPen(cgh.highlight(), 4) );
p->drawLine(x, r.y() + 1, x, r.height() - fw);
} else {
- const int unit_width = pixelMetric(PM_ProgressBarChunkWidth, widget);
+ const int unit_width = pixelMetric(PM_ProgressBarChunkWidth, ceData, elementFlags, widget);
int u;
if ( unit_width > 1 )
u = (r.width()+unit_width/3) / unit_width;
else
u = w / unit_width;
- int p_v = progressbar->progress();
- int t_s = progressbar->totalSteps() ? progressbar->totalSteps() : 1;
+ int p_v = ceData.currentStep;
+ int t_s = ceData.totalSteps ? ceData.totalSteps : 1;
if ( u > 0 && p_v >= INT_MAX / u && t_s >= u ) {
// scale down to something usable.
@@ -917,7 +1365,7 @@ void TQCommonStyle::drawControl( ControlElement element,
int x0 = reverse ? r.right() - ((unit_width > 1) ?
unit_width : fw) : r.x() + fw;
for (int i=0; i<nu; i++) {
- drawPrimitive( PE_ProgressBarChunk, p,
+ drawPrimitive( PE_ProgressBarChunk, p, ceData, elementFlags,
TQRect( x0+x, r.y(), unit_width, r.height() ),
cgh, Style_Default, opt );
x += reverse ? -unit_width: unit_width;
@@ -928,7 +1376,7 @@ void TQCommonStyle::drawControl( ControlElement element,
if (nu < tnu) {
int pixels_left = w - (nu*unit_width);
int offset = reverse ? x0+x+unit_width-pixels_left : x0+x;
- drawPrimitive( PE_ProgressBarChunk, p,
+ drawPrimitive( PE_ProgressBarChunk, p, ceData, elementFlags,
TQRect( offset, r.y(), pixels_left,
r.height() ), cgh, Style_Default,
opt );
@@ -939,14 +1387,13 @@ void TQCommonStyle::drawControl( ControlElement element,
case CE_ProgressBarLabel:
{
- const TQProgressBar *progressbar = (const TQProgressBar *) widget;
TQColor penColor = cg.highlightedText();
TQColor *pcolor = 0;
- if ( progressbar->centerIndicator() && !progressbar->indicatorFollowsStyle() &&
- progressbar->progress()*2 >= progressbar->totalSteps() )
+ if ( (elementFlags & CEF_CenterIndicator) && !(elementFlags & CEF_IndicatorFollowsStyle) &&
+ ceData.currentStep*2 >= ceData.totalSteps )
pcolor = &penColor;
drawItem(p, r, AlignCenter | SingleLine, cg, flags & Style_Enabled, 0,
- progressbar->progressString(), -1, pcolor );
+ ceData.progressText, -1, pcolor );
}
break;
#endif // QT_NO_PROGRESSBAR
@@ -959,7 +1406,7 @@ void TQCommonStyle::drawControl( ControlElement element,
TQMenuItem *mi = opt.menuItem();
int alignment = AlignCenter|ShowPrefix|DontClip|SingleLine;
- if (!styleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0))
+ if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, widget)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, widget)) && (!acceleratorsShown())))
alignment |= NoAccel;
drawItem( p, r, alignment, cg,
flags & Style_Enabled, mi->pixmap(), mi->text(), -1,
@@ -971,7 +1418,6 @@ void TQCommonStyle::drawControl( ControlElement element,
#ifndef QT_NO_TOOLBUTTON
case CE_ToolButtonLabel:
{
- const TQToolButton *toolbutton = (const TQToolButton *) widget;
TQRect rect = r;
TQt::ArrowType arrowType = opt.isDefault()
? TQt::DownArrow : opt.arrowType();
@@ -979,8 +1425,8 @@ void TQCommonStyle::drawControl( ControlElement element,
int shiftX = 0;
int shiftY = 0;
if (flags & (Style_Down | Style_On)) {
- shiftX = pixelMetric(PM_ButtonShiftHorizontal, widget);
- shiftY = pixelMetric(PM_ButtonShiftVertical, widget);
+ shiftX = pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget);
+ shiftY = pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget);
}
if (!opt.isDefault()) {
@@ -994,45 +1440,45 @@ void TQCommonStyle::drawControl( ControlElement element,
}
rect.moveBy(shiftX, shiftY);
- drawPrimitive(pe, p, rect, cg, flags, opt);
+ drawPrimitive(pe, p, ceData, elementFlags, rect, cg, flags, opt);
} else {
- TQColor btext = toolbutton->paletteForegroundColor();
+ TQColor btext = ceData.fgColor;
- if (toolbutton->iconSet().isNull() &&
- ! toolbutton->text().isNull() &&
- ! toolbutton->usesTextLabel()) {
+ if (ceData.iconSet.isNull() &&
+ ! ceData.text.isNull() &&
+ ! (elementFlags & CEF_UsesTextLabel)) {
int alignment = AlignCenter | ShowPrefix;
- if (!styleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0))
+ if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, widget)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, widget)) && (!acceleratorsShown())))
alignment |= NoAccel;
rect.moveBy(shiftX, shiftY);
drawItem(p, rect, alignment, cg,
- flags & Style_Enabled, 0, toolbutton->text(),
- toolbutton->text().length(), &btext);
+ flags & Style_Enabled, 0, ceData.text,
+ ceData.text.length(), &btext);
} else {
TQPixmap pm;
TQIconSet::Size size =
- toolbutton->usesBigPixmap() ? TQIconSet::Large : TQIconSet::Small;
+ (elementFlags & CEF_UsesBigPixmap) ? TQIconSet::Large : TQIconSet::Small;
TQIconSet::State state =
- toolbutton->isOn() ? TQIconSet::On : TQIconSet::Off;
+ (elementFlags & CEF_IsOn) ? TQIconSet::On : TQIconSet::Off;
TQIconSet::Mode mode;
- if (! toolbutton->isEnabled())
+ if (! (elementFlags & CEF_IsEnabled))
mode = TQIconSet::Disabled;
else if (flags & (Style_Down | Style_On) ||
((flags & Style_Raised) && (flags & Style_AutoRaise)))
mode = TQIconSet::Active;
else
mode = TQIconSet::Normal;
- pm = toolbutton->iconSet().pixmap( size, mode, state );
+ pm = ceData.iconSet.pixmap( size, mode, state );
- if ( toolbutton->usesTextLabel() ) {
- p->setFont( toolbutton->font() );
+ if (elementFlags & CEF_UsesTextLabel) {
+ p->setFont( ceData.font );
TQRect pr = rect, tr = rect;
int alignment = ShowPrefix;
- if (!styleHint(SH_UnderlineAccelerator, widget, TQStyleOption::Default, 0))
+ if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, widget)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, widget)) && (!acceleratorsShown())))
alignment |= NoAccel;
- if ( toolbutton->textPosition() == TQToolButton::Under ) {
+ if ( ceData.toolButtonTextPosition == TQToolButton::Under ) {
int fh = p->fontMetrics().height();
pr.addCoords( 0, 1, 0, -fh-3 );
tr.addCoords( 0, pr.bottom(), 0, -3 );
@@ -1050,8 +1496,8 @@ void TQCommonStyle::drawControl( ControlElement element,
tr.moveBy(shiftX, shiftY);
drawItem( p, tr, alignment, cg,
- flags & Style_Enabled, 0, toolbutton->textLabel(),
- toolbutton->textLabel().length(), &btext);
+ flags & Style_Enabled, 0, ceData.textLabel,
+ ceData.textLabel.length(), &btext);
} else {
rect.moveBy(shiftX, shiftY);
drawItem( p, rect, AlignCenter, cg, TRUE, &pm, TQString::null );
@@ -1066,10 +1512,8 @@ void TQCommonStyle::drawControl( ControlElement element,
case CE_HeaderLabel:
{
TQRect rect = r;
- const TQHeader* header = (const TQHeader *) widget;
- int section = opt.headerSection();
- TQIconSet* icon = header->iconSet( section );
+ TQIconSet* icon = &ceData.iconSet;
if ( icon ) {
TQPixmap pixmap = icon->pixmap( TQIconSet::Small,
flags & Style_Enabled ?
@@ -1090,7 +1534,7 @@ void TQCommonStyle::drawControl( ControlElement element,
if (rect.isValid())
drawItem ( p, rect, AlignVCenter, cg, flags & Style_Enabled,
- 0, header->label( section ), -1, &(cg.buttonText()) );
+ 0, ceData.textLabel, -1, &(cg.buttonText()) );
}
#endif // QT_NO_HEADER
default:
@@ -1100,13 +1544,27 @@ void TQCommonStyle::drawControl( ControlElement element,
activePainter = 0;
}
-/*! \reimp */
void TQCommonStyle::drawControlMask( ControlElement control,
TQPainter *p,
const TQWidget *widget,
const TQRect &r,
const TQStyleOption& opt ) const
{
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt);
+ drawControlMask(control, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, opt), r, opt, widget);
+}
+
+/*! \reimp */
+void TQCommonStyle::drawControlMask( ControlElement control,
+ TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
+{
+ Q_UNUSED(ceData);
+ Q_UNUSED(elementFlags);
Q_UNUSED(widget);
activePainter = p;
@@ -1115,15 +1573,15 @@ void TQCommonStyle::drawControlMask( ControlElement control,
switch (control) {
case CE_PushButton:
- drawPrimitive(PE_ButtonCommand, p, r, cg, Style_Default, opt);
+ drawPrimitive(PE_ButtonCommand, p, ceData, elementFlags, r, cg, Style_Default, opt);
break;
case CE_CheckBox:
- drawPrimitive(PE_IndicatorMask, p, r, cg, Style_Default, opt);
+ drawPrimitive(PE_IndicatorMask, p, ceData, elementFlags, r, cg, Style_Default, opt);
break;
case CE_RadioButton:
- drawPrimitive(PE_ExclusiveIndicatorMask, p, r, cg, Style_Default, opt);
+ drawPrimitive(PE_ExclusiveIndicatorMask, p, ceData, elementFlags, r, cg, Style_Default, opt);
break;
default:
@@ -1138,13 +1596,20 @@ void TQCommonStyle::drawControlMask( ControlElement control,
TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
{
#if defined(QT_CHECK_STATE)
- if (! widget) {
- tqWarning("TQCommonStyle::subRect: widget parameter cannot be zero!");
- return TQRect();
- }
+ if (! widget) {
+ tqWarning("TQCommonStyle::subRect: widget parameter cannot be zero!");
+ return TQRect();
+ }
#endif
- TQRect rect, wrect(widget->rect());
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
+ return subRect(r, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), widget);
+}
+
+/*! \reimp */
+TQRect TQCommonStyle::subRect(SubRect r, const TQStyleControlElementData ceData, const ControlElementFlags elementFlags, const TQWidget *widget) const
+{
+ TQRect rect, wrect(ceData.rect);
switch (r) {
#ifndef QT_NO_DIALOGBUTTONS
@@ -1175,22 +1640,21 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
else if(r == SR_DialogButtonAbort)
srch = TQDialogButtons::Abort;
- const int bwidth = pixelMetric(PM_DialogButtonsButtonWidth, widget),
- bheight = pixelMetric(PM_DialogButtonsButtonHeight, widget),
- bspace = pixelMetric(PM_DialogButtonsSeparator, widget),
- fw = pixelMetric(PM_DefaultFrameWidth, widget);
- const TQDialogButtons *dbtns = (const TQDialogButtons *) widget;
+ const int bwidth = pixelMetric(PM_DialogButtonsButtonWidth, ceData, elementFlags, widget),
+ bheight = pixelMetric(PM_DialogButtonsButtonHeight, ceData, elementFlags, widget),
+ bspace = pixelMetric(PM_DialogButtonsSeparator, ceData, elementFlags, widget),
+ fw = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget);
int start = fw;
- if(dbtns->orientation() == Horizontal)
+ if(ceData.orientation == Horizontal)
start = wrect.right() - fw;
TQDialogButtons::Button btns[] = { TQDialogButtons::All, TQDialogButtons::Reject, TQDialogButtons::Accept, //reverse order (right to left)
TQDialogButtons::Apply, TQDialogButtons::Retry, TQDialogButtons::Ignore, TQDialogButtons::Abort,
TQDialogButtons::Help };
for(unsigned int i = 0, cnt = 0; i < (sizeof(btns)/sizeof(btns[0])); i++) {
- if(dbtns->isButtonVisible(btns[i])) {
- TQSize szH = dbtns->sizeHint(btns[i]);
+ if (ceData.dlgVisibleButtons & btns[i]) {
+ TQSize szH = ceData.dlgVisibleSizeHints[btns[i]];
int mwidth = TQMAX(bwidth, szH.width()), mheight = TQMAX(bheight, szH.height());
- if(dbtns->orientation() == Horizontal) {
+ if(ceData.orientation == Horizontal) {
start -= mwidth;
if(cnt)
start -= bspace;
@@ -1200,7 +1664,7 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
}
cnt++;
if(btns[i] == srch) {
- if(dbtns->orientation() == Horizontal)
+ if(ceData.orientation == Horizontal)
return TQRect(start, wrect.bottom() - fw - mheight, mwidth, mheight);
else
return TQRect(fw, start, mwidth, mheight);
@@ -1208,7 +1672,7 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
}
}
if(r == SR_DialogButtonCustom) {
- if(dbtns->orientation() == Horizontal)
+ if(ceData.orientation == Horizontal)
return TQRect(fw, fw, start - fw - bspace, wrect.height() - (fw*2));
else
return TQRect(fw, start, wrect.width() - (fw*2), wrect.height() - start - (fw*2));
@@ -1218,12 +1682,11 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_PushButtonContents:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
int dx1, dx2;
- dx1 = pixelMetric(PM_DefaultFrameWidth, widget);
- if (button->isDefault() || button->autoDefault())
- dx1 += pixelMetric(PM_ButtonDefaultIndicator, widget);
+ dx1 = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget);
+ if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault))
+ dx1 += pixelMetric(PM_ButtonDefaultIndicator, ceData, elementFlags, widget);
dx2 = dx1 * 2;
rect.setRect(wrect.x() + dx1,
@@ -1237,14 +1700,13 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_PushButtonFocusRect:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
int dbw1 = 0, dbw2 = 0;
- if (button->isDefault() || button->autoDefault()) {
- dbw1 = pixelMetric(PM_ButtonDefaultIndicator, widget);
+ if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault)) {
+ dbw1 = pixelMetric(PM_ButtonDefaultIndicator, ceData, elementFlags, widget);
dbw2 = dbw1 * 2;
}
- int dfw1 = pixelMetric(PM_DefaultFrameWidth, widget) * 2,
+ int dfw1 = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget) * 2,
dfw2 = dfw1 * 2;
rect.setRect(wrect.x() + dfw1 + dbw1,
@@ -1257,16 +1719,16 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_CheckBoxIndicator:
{
- int h = pixelMetric( PM_IndicatorHeight, widget );
+ int h = pixelMetric( PM_IndicatorHeight, ceData, elementFlags, widget );
rect.setRect(0, ( wrect.height() - h ) / 2,
- pixelMetric( PM_IndicatorWidth, widget ), h );
+ pixelMetric( PM_IndicatorWidth, ceData, elementFlags, widget ), h );
break;
}
case SR_CheckBoxContents:
{
#ifndef QT_NO_CHECKBOX
- TQRect ir = subRect(SR_CheckBoxIndicator, widget);
+ TQRect ir = subRect(SR_CheckBoxIndicator, ceData, elementFlags, widget);
rect.setRect(ir.right() + 6, wrect.y(),
wrect.width() - ir.width() - 6, wrect.height());
#endif
@@ -1276,23 +1738,22 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_CheckBoxFocusRect:
{
#ifndef QT_NO_CHECKBOX
- const TQCheckBox *checkbox = (const TQCheckBox *) widget;
- if ( !checkbox->pixmap() && checkbox->text().isEmpty() ) {
- rect = subRect( SR_CheckBoxIndicator, widget );
+ if ( ceData.fgPixmap.isNull() && ceData.text.isEmpty() ) {
+ rect = subRect( SR_CheckBoxIndicator, ceData, elementFlags, widget );
rect.addCoords( 1, 1, -1, -1 );
break;
}
- TQRect cr = subRect(SR_CheckBoxContents, widget);
+ TQRect cr = subRect(SR_CheckBoxContents, ceData, elementFlags, widget);
// don't create a painter if we have an active one
TQPainter *p = 0;
if (! activePainter)
- p = new TQPainter(checkbox);
+ p = new TQPainter(widget);
rect = itemRect((activePainter ? activePainter : p),
cr, AlignLeft | AlignVCenter | ShowPrefix,
- checkbox->isEnabled(),
- checkbox->pixmap(),
- checkbox->text());
+ (elementFlags & CEF_IsEnabled),
+ (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap,
+ ceData.text);
delete p;
@@ -1304,15 +1765,15 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_RadioButtonIndicator:
{
- int h = pixelMetric( PM_ExclusiveIndicatorHeight, widget );
+ int h = pixelMetric( PM_ExclusiveIndicatorHeight, ceData, elementFlags, widget );
rect.setRect(0, ( wrect.height() - h ) / 2,
- pixelMetric( PM_ExclusiveIndicatorWidth, widget ), h );
+ pixelMetric( PM_ExclusiveIndicatorWidth, ceData, elementFlags, widget ), h );
break;
}
case SR_RadioButtonContents:
{
- TQRect ir = subRect(SR_RadioButtonIndicator, widget);
+ TQRect ir = subRect(SR_RadioButtonIndicator, ceData, elementFlags, widget);
rect.setRect(ir.right() + 6, wrect.y(),
wrect.width() - ir.width() - 6, wrect.height());
break;
@@ -1321,23 +1782,22 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_RadioButtonFocusRect:
{
#ifndef QT_NO_RADIOBUTTON
- const TQRadioButton *radiobutton = (const TQRadioButton *) widget;
- if ( !radiobutton->pixmap() && radiobutton->text().isEmpty() ) {
- rect = subRect( SR_RadioButtonIndicator, widget );
+ if ( ceData.fgPixmap.isNull() && ceData.text.isEmpty() ) {
+ rect = subRect( SR_RadioButtonIndicator, ceData, elementFlags, widget );
rect.addCoords( 1, 1, -1, -1 );
break;
}
- TQRect cr = subRect(SR_RadioButtonContents, widget);
+ TQRect cr = subRect(SR_RadioButtonContents, ceData, elementFlags, widget);
// don't create a painter if we have an active one
TQPainter *p = 0;
if (! activePainter)
- p = new TQPainter(radiobutton);
+ p = new TQPainter(widget);
rect = itemRect((activePainter ? activePainter : p),
cr, AlignLeft | AlignVCenter | ShowPrefix,
- radiobutton->isEnabled(),
- radiobutton->pixmap(),
- radiobutton->text());
+ (elementFlags & CEF_IsEnabled),
+ (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap,
+ ceData.text);
delete p;
rect.addCoords( -3, -2, 3, 2 );
@@ -1347,21 +1807,20 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
}
case SR_ComboBoxFocusRect:
- rect.setRect(3, 3, widget->width()-6-16, widget->height()-6);
+ rect.setRect(3, 3, ceData.rect.width()-6-16, ceData.rect.height()-6);
break;
#ifndef QT_NO_SLIDER
case SR_SliderFocusRect:
{
- const TQSlider * sl = (const TQSlider *) widget;
- int tickOffset = pixelMetric( PM_SliderTickmarkOffset, sl );
- int thickness = pixelMetric( PM_SliderControlThickness, sl );
+ int tickOffset = pixelMetric( PM_SliderTickmarkOffset, ceData, elementFlags, widget );
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
- if ( sl->orientation() == Horizontal )
- rect.setRect( 0, tickOffset-1, sl->width(), thickness+2 );
+ if ( ceData.orientation == Horizontal )
+ rect.setRect( 0, tickOffset-1, ceData.rect.width(), thickness+2 );
else
- rect.setRect( tickOffset-1, 0, thickness+2, sl->height() );
- rect = rect.intersect( sl->rect() ); // ## is this really necessary?
+ rect.setRect( tickOffset-1, 0, thickness+2, ceData.rect.height() );
+ rect = rect.intersect( ceData.rect ); // ## is this really necessary?
break;
}
#endif // QT_NO_SLIDER
@@ -1369,18 +1828,16 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
#ifndef QT_NO_MAINWINDOW
case SR_DockWindowHandleRect:
{
- if (! widget->parentWidget())
+ if (!(elementFlags & CEF_HasParentWidget))
break;
- const TQDockWindow * dw = (const TQDockWindow *) widget->parentWidget();
-
- if ( !dw->area() || !dw->isCloseEnabled() )
- rect.setRect( 0, 0, widget->width(), widget->height() );
+ if ( !ceData.dwData.hasDockArea || !ceData.dwData.closeEnabled )
+ rect.setRect( 0, 0, ceData.rect.width(), ceData.rect.height() );
else {
- if ( dw->area()->orientation() == Horizontal )
- rect.setRect(0, 15, widget->width(), widget->height() - 15);
+ if ( ceData.dwData.areaOrientation == Horizontal )
+ rect.setRect(0, 15, ceData.rect.width(), ceData.rect.height() - 15);
else
- rect.setRect(0, 1, widget->width() - 15, widget->height() - 1);
+ rect.setRect(0, 1, ceData.rect.width() - 15, ceData.rect.height() - 1);
}
break;
}
@@ -1390,15 +1847,14 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_ProgressBarContents:
{
#ifndef QT_NO_PROGRESSBAR
- TQFontMetrics fm( ( widget ? widget->fontMetrics() :
+ TQFontMetrics fm( ( (!(elementFlags & CEF_UseGenericParameters)) ? TQFontMetrics(ceData.font) :
TQApplication::fontMetrics() ) );
- const TQProgressBar *progressbar = (const TQProgressBar *) widget;
int textw = 0;
- if (progressbar->percentageVisible())
+ if (ceData.percentageVisible)
textw = fm.width("100%") + 6;
- if (progressbar->indicatorFollowsStyle() ||
- ! progressbar->centerIndicator())
+ if ((elementFlags & CEF_IndicatorFollowsStyle) ||
+ ! (elementFlags & CEF_CenterIndicator))
rect.setCoords(wrect.left(), wrect.top(),
wrect.right() - textw, wrect.bottom());
else
@@ -1410,15 +1866,14 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_ProgressBarLabel:
{
#ifndef QT_NO_PROGRESSBAR
- TQFontMetrics fm( ( widget ? widget->fontMetrics() :
+ TQFontMetrics fm( ( (!(elementFlags & CEF_UseGenericParameters)) ? TQFontMetrics(ceData.font) :
TQApplication::fontMetrics() ) );
- const TQProgressBar *progressbar = (const TQProgressBar *) widget;
int textw = 0;
- if (progressbar->percentageVisible())
+ if (ceData.percentageVisible)
textw = fm.width("100%") + 6;
- if (progressbar->indicatorFollowsStyle() ||
- ! progressbar->centerIndicator())
+ if ((elementFlags & CEF_IndicatorFollowsStyle) ||
+ ! (elementFlags & CEF_CenterIndicator))
rect.setCoords(wrect.right() - textw, wrect.top(),
wrect.right(), wrect.bottom());
else
@@ -1428,7 +1883,7 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
}
case SR_ToolButtonContents:
- rect = querySubControlMetrics(CC_ToolButton, widget, SC_ToolButton);
+ rect = querySubControlMetrics(CC_ToolButton, ceData, elementFlags, SC_ToolButton, TQStyleOption::Default, widget);
break;
case SR_ToolBoxTabContents:
@@ -1448,17 +1903,17 @@ TQRect TQCommonStyle::subRect(SubRect r, const TQWidget *widget) const
/*
I really need this and I don't want to expose it in TQRangeControl..
*/
-static int qPositionFromValue( const TQRangeControl * rc, int logical_val,
+static int qPositionFromValue( TQStyleControlElementData ceData, int logical_val,
int span )
{
- if ( span <= 0 || logical_val < rc->minValue() ||
- rc->maxValue() <= rc->minValue() )
+ if ( span <= 0 || logical_val < ceData.minSteps ||
+ ceData.maxSteps <= ceData.minSteps )
return 0;
- if ( logical_val > rc->maxValue() )
+ if ( logical_val > ceData.maxSteps )
return span;
- uint range = rc->maxValue() - rc->minValue();
- uint p = logical_val - rc->minValue();
+ uint range = ceData.maxSteps - ceData.minSteps;
+ uint p = logical_val - ceData.minSteps;
if ( range > (uint)INT_MAX/4096 ) {
const int scale = 4096*2;
@@ -1490,85 +1945,101 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
const TQStyleOption& opt ) const
{
#if defined(QT_CHECK_STATE)
- if (! widget) {
- tqWarning("TQCommonStyle::drawComplexControl: widget parameter cannot be zero!");
- return;
- }
+ if (! widget) {
+ tqWarning("TQCommonStyle::drawComplexControl: widget parameter cannot be zero!");
+ return;
+ }
#endif
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
+ drawComplexControl(control, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), r, cg, flags, controls, active, opt, widget);
+}
+
+/*! \reimp */
+void TQCommonStyle::drawComplexControl( ComplexControl control,
+ TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQColorGroup &cg,
+ SFlags flags,
+ SCFlags controls,
+ SCFlags active,
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
+{
activePainter = p;
switch (control) {
#ifndef QT_NO_SCROLLBAR
case CC_ScrollBar:
{
- const TQScrollBar *scrollbar = (const TQScrollBar *) widget;
TQRect addline, subline, addpage, subpage, slider, first, last;
- bool maxedOut = (scrollbar->minValue() == scrollbar->maxValue());
+ bool maxedOut = (ceData.minSteps == ceData.maxSteps);
- subline = querySubControlMetrics(control, widget, SC_ScrollBarSubLine, opt);
- addline = querySubControlMetrics(control, widget, SC_ScrollBarAddLine, opt);
- subpage = querySubControlMetrics(control, widget, SC_ScrollBarSubPage, opt);
- addpage = querySubControlMetrics(control, widget, SC_ScrollBarAddPage, opt);
- slider = querySubControlMetrics(control, widget, SC_ScrollBarSlider, opt);
- first = querySubControlMetrics(control, widget, SC_ScrollBarFirst, opt);
- last = querySubControlMetrics(control, widget, SC_ScrollBarLast, opt);
+ subline = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarSubLine, opt, widget);
+ addline = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarAddLine, opt, widget);
+ subpage = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarSubPage, opt, widget);
+ addpage = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarAddPage, opt, widget);
+ slider = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarSlider, opt, widget);
+ first = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarFirst, opt, widget);
+ last = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarLast, opt, widget);
if ((controls & SC_ScrollBarSubLine) && subline.isValid())
- drawPrimitive(PE_ScrollBarSubLine, p, subline, cg,
+ drawPrimitive(PE_ScrollBarSubLine, p, ceData, elementFlags, subline, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarSubLine) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : 0));
if ((controls & SC_ScrollBarAddLine) && addline.isValid())
- drawPrimitive(PE_ScrollBarAddLine, p, addline, cg,
+ drawPrimitive(PE_ScrollBarAddLine, p, ceData, elementFlags, addline, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarAddLine) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : 0));
if ((controls & SC_ScrollBarSubPage) && subpage.isValid())
- drawPrimitive(PE_ScrollBarSubPage, p, subpage, cg,
+ drawPrimitive(PE_ScrollBarSubPage, p, ceData, elementFlags, subpage, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarSubPage) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : 0));
if ((controls & SC_ScrollBarAddPage) && addpage.isValid())
- drawPrimitive(PE_ScrollBarAddPage, p, addpage, cg,
+ drawPrimitive(PE_ScrollBarAddPage, p, ceData, elementFlags, addpage, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarAddPage) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : 0));
if ((controls & SC_ScrollBarFirst) && first.isValid())
- drawPrimitive(PE_ScrollBarFirst, p, first, cg,
+ drawPrimitive(PE_ScrollBarFirst, p, ceData, elementFlags, first, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarFirst) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : 0));
if ((controls & SC_ScrollBarLast) && last.isValid())
- drawPrimitive(PE_ScrollBarLast, p, last, cg,
+ drawPrimitive(PE_ScrollBarLast, p, ceData, elementFlags, last, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarLast) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : 0));
if ((controls & SC_ScrollBarSlider) && slider.isValid()) {
- drawPrimitive(PE_ScrollBarSlider, p, slider, cg,
+ drawPrimitive(PE_ScrollBarSlider, p, ceData, elementFlags, slider, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarSlider) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : 0));
// ### perhaps this should not be able to accept focus if maxedOut?
- if (scrollbar->hasFocus()) {
+ if (elementFlags & CEF_HasFocus) {
TQRect fr(slider.x() + 2, slider.y() + 2,
slider.width() - 5, slider.height() - 5);
- drawPrimitive(PE_FocusRect, p, fr, cg, Style_Default);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, Style_Default);
}
}
@@ -1579,15 +2050,13 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
#ifndef QT_NO_TOOLBUTTON
case CC_ToolButton:
{
- const TQToolButton *toolbutton = (const TQToolButton *) widget;
-
TQColorGroup c = cg;
- if ( toolbutton->backgroundMode() != PaletteButton )
+ if ( ceData.backgroundMode != PaletteButton )
c.setBrush( TQColorGroup::Button,
- toolbutton->paletteBackgroundColor() );
+ ceData.bgColor );
TQRect button, menuarea;
- button = visualRect( querySubControlMetrics(control, widget, SC_ToolButton, opt), widget );
- menuarea = visualRect( querySubControlMetrics(control, widget, SC_ToolButtonMenu, opt), widget );
+ button = visualRect( querySubControlMetrics(control, ceData, elementFlags, SC_ToolButton, opt, widget), ceData, elementFlags );
+ menuarea = visualRect( querySubControlMetrics(control, ceData, elementFlags, SC_ToolButtonMenu, opt, widget), ceData, elementFlags );
SFlags bflags = flags,
mflags = flags;
@@ -1599,27 +2068,26 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
if (controls & SC_ToolButton) {
if (bflags & (Style_Down | Style_On | Style_Raised)) {
- drawPrimitive(PE_ButtonTool, p, button, c, bflags, opt);
- } else if ( toolbutton->parentWidget() &&
- toolbutton->parentWidget()->backgroundPixmap() &&
- ! toolbutton->parentWidget()->backgroundPixmap()->isNull() ) {
+ drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, button, c, bflags, opt);
+ } else if ( (elementFlags & CEF_HasParentWidget) &&
+ ! ceData.parentWidgetData.bgPixmap.isNull() ) {
TQPixmap pixmap =
- *(toolbutton->parentWidget()->backgroundPixmap());
+ ceData.parentWidgetData.bgPixmap;
- p->drawTiledPixmap( r, pixmap, toolbutton->pos() );
+ p->drawTiledPixmap( r, pixmap, ceData.pos );
}
}
if (controls & SC_ToolButtonMenu) {
if (mflags & (Style_Down | Style_On | Style_Raised))
- drawPrimitive(PE_ButtonDropDown, p, menuarea, c, mflags, opt);
- drawPrimitive(PE_ArrowDown, p, menuarea, c, mflags, opt);
+ drawPrimitive(PE_ButtonDropDown, p, ceData, elementFlags, menuarea, c, mflags, opt);
+ drawPrimitive(PE_ArrowDown, p, ceData, elementFlags, menuarea, c, mflags, opt);
}
- if (toolbutton->hasFocus() && !toolbutton->focusProxy()) {
- TQRect fr = toolbutton->rect();
+ if ((elementFlags & CEF_HasFocus) && !(elementFlags & CEF_HasFocusProxy)) {
+ TQRect fr = ceData.rect;
fr.addCoords(3, 3, -3, -3);
- drawPrimitive(PE_FocusRect, p, fr, c);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, c);
}
break;
@@ -1629,10 +2097,9 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
#ifndef QT_NO_TITLEBAR
case CC_TitleBar:
{
- const TQTitleBar *titlebar = (const TQTitleBar *) widget;
if ( controls & SC_TitleBarLabel ) {
- TQColorGroup cgroup = titlebar->usesActiveColor() ?
- titlebar->palette().active() : titlebar->palette().inactive();
+ TQColorGroup cgroup = (ceData.titleBarData.usesActiveColor) ?
+ ceData.palette.active() : ceData.palette.inactive();
TQColor left = cgroup.highlight();
TQColor right = cgroup.base();
@@ -1642,27 +2109,27 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
double gS = left.green();
double bS = left.blue();
- const double rD = double(right.red() - rS) / titlebar->width();
- const double gD = double(right.green() - gS) / titlebar->width();
- const double bD = double(right.blue() - bS) / titlebar->width();
+ const double rD = double(right.red() - rS) / ceData.rect.width();
+ const double gD = double(right.green() - gS) / ceData.rect.width();
+ const double bD = double(right.blue() - bS) / ceData.rect.width();
- const int w = titlebar->width();
+ const int w = ceData.rect.width();
for ( int sx = 0; sx < w; sx++ ) {
rS+=rD;
gS+=gD;
bS+=bD;
p->setPen( TQColor( (int)rS, (int)gS, (int)bS ) );
- p->drawLine( sx, 0, sx, titlebar->height() );
+ p->drawLine( sx, 0, sx, ceData.rect.height() );
}
} else {
- p->fillRect( titlebar->rect(), left );
+ p->fillRect( ceData.rect, left );
}
- TQRect ir = visualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarLabel ), widget );
+ TQRect ir = visualRect( querySubControlMetrics( CC_TitleBar, ceData, elementFlags, SC_TitleBarLabel, TQStyleOption::Default, widget ), ceData, elementFlags );
p->setPen( cgroup.highlightedText() );
p->drawText(ir.x()+2, ir.y(), ir.width()-2, ir.height(),
- AlignAuto | AlignVCenter | SingleLine, titlebar->visibleText() );
+ AlignAuto | AlignVCenter | SingleLine, ceData.titleBarData.visibleText );
}
TQRect ir;
@@ -1670,46 +2137,46 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
TQPixmap pm;
if ( controls & SC_TitleBarCloseButton ) {
- ir = visualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarCloseButton ), widget );
+ ir = visualRect( querySubControlMetrics( CC_TitleBar, ceData, elementFlags, SC_TitleBarCloseButton, TQStyleOption::Default, widget ), ceData, elementFlags );
down = active & SC_TitleBarCloseButton;
if ( widget->testWFlags( WStyle_Tool )
#ifndef QT_NO_MAINWINDOW
|| ::tqt_cast<TQDockWindow*>(widget)
#endif
)
- pm = stylePixmap(SP_DockWindowCloseButton, widget);
+ pm = stylePixmap(SP_DockWindowCloseButton, ceData, elementFlags, TQStyleOption::Default, widget);
else
- pm = stylePixmap(SP_TitleBarCloseButton, widget);
- drawPrimitive(PE_ButtonTool, p, ir, titlebar->colorGroup(),
+ pm = stylePixmap(SP_TitleBarCloseButton, ceData, elementFlags, TQStyleOption::Default, widget);
+ drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, ir, ceData.colorGroup,
down ? Style_Down : Style_Raised);
p->save();
if( down )
- p->translate( pixelMetric(PM_ButtonShiftHorizontal, widget),
- pixelMetric(PM_ButtonShiftVertical, widget) );
- drawItem( p, ir, AlignCenter, titlebar->colorGroup(), TRUE, &pm, TQString::null );
+ p->translate( pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget),
+ pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget) );
+ drawItem( p, ir, AlignCenter, ceData.colorGroup, TRUE, &pm, TQString::null );
p->restore();
}
- if ( titlebar->window() ) {
+ if ( ceData.titleBarData.hasWindow ) {
if ( controls & SC_TitleBarMaxButton ) {
- ir = visualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarMaxButton ), widget );
+ ir = visualRect( querySubControlMetrics( CC_TitleBar, ceData, elementFlags, SC_TitleBarMaxButton, TQStyleOption::Default, widget ), ceData, elementFlags );
down = active & SC_TitleBarMaxButton;
- pm = TQPixmap(stylePixmap(SP_TitleBarMaxButton, widget));
- drawPrimitive(PE_ButtonTool, p, ir, titlebar->colorGroup(),
+ pm = TQPixmap(stylePixmap(SP_TitleBarMaxButton, ceData, elementFlags, TQStyleOption::Default, widget));
+ drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, ir, ceData.colorGroup,
down ? Style_Down : Style_Raised);
p->save();
if( down )
- p->translate( pixelMetric(PM_ButtonShiftHorizontal, widget),
- pixelMetric(PM_ButtonShiftVertical, widget) );
- drawItem( p, ir, AlignCenter, titlebar->colorGroup(), TRUE, &pm, TQString::null );
+ p->translate( pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget),
+ pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget) );
+ drawItem( p, ir, AlignCenter, ceData.colorGroup, TRUE, &pm, TQString::null );
p->restore();
}
if ( controls & SC_TitleBarNormalButton || controls & SC_TitleBarMinButton ) {
- ir = visualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarMinButton ), widget );
+ ir = visualRect( querySubControlMetrics( CC_TitleBar, ceData, elementFlags, SC_TitleBarMinButton, TQStyleOption::Default, widget ), ceData, elementFlags );
TQStyle::SubControl ctrl = (controls & SC_TitleBarNormalButton ?
SC_TitleBarNormalButton :
SC_TitleBarMinButton);
@@ -1717,53 +2184,53 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
SP_TitleBarNormalButton :
SP_TitleBarMinButton);
down = active & ctrl;
- pm = TQPixmap(stylePixmap(spixmap, widget));
- drawPrimitive(PE_ButtonTool, p, ir, titlebar->colorGroup(),
+ pm = TQPixmap(stylePixmap(spixmap, ceData, elementFlags, TQStyleOption::Default, widget));
+ drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, ir, ceData.colorGroup,
down ? Style_Down : Style_Raised);
p->save();
if( down )
- p->translate( pixelMetric(PM_ButtonShiftHorizontal, widget),
- pixelMetric(PM_ButtonShiftVertical, widget) );
- drawItem( p, ir, AlignCenter, titlebar->colorGroup(), TRUE, &pm, TQString::null );
+ p->translate( pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget),
+ pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget) );
+ drawItem( p, ir, AlignCenter, ceData.colorGroup, TRUE, &pm, TQString::null );
p->restore();
}
if ( controls & SC_TitleBarShadeButton ) {
- ir = visualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarShadeButton ), widget );
+ ir = visualRect( querySubControlMetrics( CC_TitleBar, ceData, elementFlags, SC_TitleBarShadeButton, TQStyleOption::Default, widget ), ceData, elementFlags );
down = active & SC_TitleBarShadeButton;
- pm = TQPixmap(stylePixmap(SP_TitleBarShadeButton, widget));
- drawPrimitive(PE_ButtonTool, p, ir, titlebar->colorGroup(),
+ pm = TQPixmap(stylePixmap(SP_TitleBarShadeButton, ceData, elementFlags, TQStyleOption::Default, widget));
+ drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, ir, ceData.colorGroup,
down ? Style_Down : Style_Raised);
p->save();
if( down )
- p->translate( pixelMetric(PM_ButtonShiftHorizontal, widget),
- pixelMetric(PM_ButtonShiftVertical, widget) );
- drawItem( p, ir, AlignCenter, titlebar->colorGroup(), TRUE, &pm, TQString::null );
+ p->translate( pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget),
+ pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget) );
+ drawItem( p, ir, AlignCenter, ceData.colorGroup, TRUE, &pm, TQString::null );
p->restore();
}
if ( controls & SC_TitleBarUnshadeButton ) {
- ir = visualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarUnshadeButton ), widget );
+ ir = visualRect( querySubControlMetrics( CC_TitleBar, ceData, elementFlags, SC_TitleBarUnshadeButton, TQStyleOption::Default, widget ), ceData, elementFlags );
down = active & SC_TitleBarUnshadeButton;
- pm = TQPixmap(stylePixmap(SP_TitleBarUnshadeButton, widget));
- drawPrimitive(PE_ButtonTool, p, ir, titlebar->colorGroup(),
+ pm = TQPixmap(stylePixmap(SP_TitleBarUnshadeButton, ceData, elementFlags, TQStyleOption::Default, widget));
+ drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, ir, ceData.colorGroup,
down ? Style_Down : Style_Raised);
p->save();
if( down )
- p->translate( pixelMetric(PM_ButtonShiftHorizontal, widget),
- pixelMetric(PM_ButtonShiftVertical, widget) );
- drawItem( p, ir, AlignCenter, titlebar->colorGroup(), TRUE, &pm, TQString::null );
+ p->translate( pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget),
+ pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget) );
+ drawItem( p, ir, AlignCenter, ceData.colorGroup, TRUE, &pm, TQString::null );
p->restore();
}
}
#ifndef QT_NO_WIDGET_TOPEXTRA
if ( controls & SC_TitleBarSysMenu ) {
- if ( titlebar->icon() ) {
- ir = visualRect( querySubControlMetrics( CC_TitleBar, widget, SC_TitleBarSysMenu ), widget );
- drawItem( p, ir, AlignCenter, titlebar->colorGroup(), TRUE, titlebar->icon(), TQString::null );
+ if ( !ceData.icon.isNull() ) {
+ ir = visualRect( querySubControlMetrics( CC_TitleBar, ceData, elementFlags, SC_TitleBarSysMenu, TQStyleOption::Default, widget ), ceData, elementFlags );
+ drawItem( p, ir, AlignCenter, ceData.colorGroup, TRUE, (ceData.icon.isNull())?NULL:&ceData.icon, TQString::null );
}
}
#endif
@@ -1773,7 +2240,6 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
case CC_SpinWidget: {
#ifndef QT_NO_SPINWIDGET
- const TQSpinWidget * sw = (const TQSpinWidget *) widget;
SFlags flags;
PrimitiveElement pe;
@@ -1787,15 +2253,15 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
flags |= Style_Sunken;
} else
flags |= Style_Raised;
- if ( sw->buttonSymbols() == TQSpinWidget::PlusMinus )
+ if ( ceData.spinWidgetData.buttonSymbols == TQSpinWidget::PlusMinus )
pe = PE_SpinWidgetPlus;
else
pe = PE_SpinWidgetUp;
- TQRect re = sw->upRect();
- TQColorGroup ucg = sw->isUpEnabled() ? cg : sw->palette().disabled();
- drawPrimitive(PE_ButtonBevel, p, re, ucg, flags);
- drawPrimitive(pe, p, re, ucg, flags);
+ TQRect re = ceData.spinWidgetData.upRect;
+ TQColorGroup ucg = ceData.spinWidgetData.upEnabled ? cg : ceData.palette.disabled();
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, re, ucg, flags);
+ drawPrimitive(pe, p, ceData, elementFlags, re, ucg, flags);
}
if ( controls & SC_SpinWidgetDown ) {
@@ -1805,15 +2271,15 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
flags |= Style_Sunken;
} else
flags |= Style_Raised;
- if ( sw->buttonSymbols() == TQSpinWidget::PlusMinus )
+ if ( ceData.spinWidgetData.buttonSymbols == TQSpinWidget::PlusMinus )
pe = PE_SpinWidgetMinus;
else
pe = PE_SpinWidgetDown;
- TQRect re = sw->downRect();
- TQColorGroup dcg = sw->isDownEnabled() ? cg : sw->palette().disabled();
- drawPrimitive(PE_ButtonBevel, p, re, dcg, flags);
- drawPrimitive(pe, p, re, dcg, flags);
+ TQRect re = ceData.spinWidgetData.downRect;
+ TQColorGroup dcg = ceData.spinWidgetData.downEnabled ? cg : ceData.palette.disabled();
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, re, dcg, flags);
+ drawPrimitive(pe, p, ceData, elementFlags, re, dcg, flags);
}
#endif
break; }
@@ -1822,19 +2288,18 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
case CC_Slider:
switch ( controls ) {
case SC_SliderTickmarks: {
- const TQSlider * sl = (const TQSlider *) widget;
- int tickOffset = pixelMetric( PM_SliderTickmarkOffset, sl );
- int ticks = sl->tickmarks();
- int thickness = pixelMetric( PM_SliderControlThickness, sl );
- int len = pixelMetric( PM_SliderLength, sl );
- int available = pixelMetric( PM_SliderSpaceAvailable, sl );
- int interval = sl->tickInterval();
+ int tickOffset = pixelMetric( PM_SliderTickmarkOffset, ceData, elementFlags, widget );
+ int ticks = ceData.tickMarkSetting;
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
+ int len = pixelMetric( PM_SliderLength, ceData, elementFlags, widget );
+ int available = pixelMetric( PM_SliderSpaceAvailable, ceData, elementFlags, widget );
+ int interval = ceData.tickInterval;
if ( interval <= 0 ) {
- interval = sl->lineStep();
- if ( qPositionFromValue( sl, interval, available ) -
- qPositionFromValue( sl, 0, available ) < 3 )
- interval = sl->pageStep();
+ interval = ceData.lineStep;
+ if ( qPositionFromValue( ceData, interval, available ) -
+ qPositionFromValue( ceData, 0, available ) < 3 )
+ interval = ceData.pageStep;
}
int fudge = len / 2;
@@ -1842,12 +2307,12 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
if ( ticks & TQSlider::Above ) {
p->setPen( cg.foreground() );
- int v = sl->minValue();
+ int v = ceData.minSteps;
if ( !interval )
interval = 1;
- while ( v <= sl->maxValue() + 1 ) {
- pos = qPositionFromValue( sl, v, available ) + fudge;
- if ( sl->orientation() == Horizontal )
+ while ( v <= ceData.maxSteps + 1 ) {
+ pos = qPositionFromValue( ceData, v, available ) + fudge;
+ if ( ceData.orientation == Horizontal )
p->drawLine( pos, 0, pos, tickOffset-2 );
else
p->drawLine( 0, pos, tickOffset-2, pos );
@@ -1857,12 +2322,12 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
if ( ticks & TQSlider::Below ) {
p->setPen( cg.foreground() );
- int v = sl->minValue();
+ int v = ceData.minSteps;
if ( !interval )
interval = 1;
- while ( v <= sl->maxValue() + 1 ) {
- pos = qPositionFromValue( sl, v, available ) + fudge;
- if ( sl->orientation() == Horizontal )
+ while ( v <= ceData.maxSteps + 1 ) {
+ pos = qPositionFromValue( ceData, v, available ) + fudge;
+ if ( ceData.orientation == Horizontal )
p->drawLine( pos, tickOffset+thickness+1, pos,
tickOffset+thickness+1 + available-2 );
else
@@ -1881,8 +2346,7 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
#ifndef QT_NO_LISTVIEW
case CC_ListView:
if ( controls & SC_ListView ) {
- TQListView *listview = (TQListView*)widget;
- p->fillRect( r, listview->viewport()->backgroundBrush() );
+ p->fillRect( r, ceData.viewportData.bgBrush );
}
break;
#endif //QT_NO_LISTVIEW
@@ -1893,7 +2357,6 @@ void TQCommonStyle::drawComplexControl( ComplexControl control,
activePainter = 0;
}
-
/*! \reimp */
void TQCommonStyle::drawComplexControlMask( ComplexControl control,
TQPainter *p,
@@ -1901,14 +2364,28 @@ void TQCommonStyle::drawComplexControlMask( ComplexControl control,
const TQRect &r,
const TQStyleOption& opt ) const
{
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
+ drawComplexControlMask(control, p, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), r, opt, widget);
+}
+
+/*! \reimp */
+void TQCommonStyle::drawComplexControlMask( ComplexControl control,
+ TQPainter *p,
+ const TQStyleControlElementData ceData,
+ const ControlElementFlags elementFlags,
+ const TQRect &r,
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
+{
Q_UNUSED(control);
+ Q_UNUSED(ceData);
+ Q_UNUSED(elementFlags);
Q_UNUSED(widget);
Q_UNUSED(opt);
p->fillRect(r, color1);
}
-
/*! \reimp */
TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
const TQWidget *widget,
@@ -1916,24 +2393,36 @@ TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
const TQStyleOption &opt ) const
{
#if defined(QT_CHECK_STATE)
- if (! widget) {
- tqWarning("TQCommonStyle::querySubControlMetrics: widget parameter cannot be zero!");
- return TQRect();
- }
+ if (! widget) {
+ tqWarning("TQCommonStyle::querySubControlMetrics: widget parameter cannot be zero!");
+ return TQRect();
+ }
#endif
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption(), false);
+ return querySubControlMetrics(control, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), sc, opt, widget);
+}
+
+/*! \reimp */
+TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ SubControl sc,
+ const TQStyleOption &opt,
+ const TQWidget *widget ) const
+{
switch ( control ) {
case CC_SpinWidget: {
- int fw = pixelMetric( PM_SpinBoxFrameWidth, widget);
+ int fw = pixelMetric( PM_SpinBoxFrameWidth, ceData, elementFlags, widget);
TQSize bs;
- bs.setHeight( widget->height()/2 - fw );
+ bs.setHeight( ceData.rect.height()/2 - fw );
if ( bs.height() < 8 )
bs.setHeight( 8 );
- bs.setWidth( TQMIN( bs.height() * 8 / 5, widget->width() / 4 ) ); // 1.6 -approximate golden mean
+ bs.setWidth( TQMIN( bs.height() * 8 / 5, ceData.rect.width() / 4 ) ); // 1.6 -approximate golden mean
bs = bs.expandedTo( TQApplication::globalStrut() );
int y = fw;
int x, lx, rx;
- x = widget->width() - y - bs.width();
+ x = ceData.rect.width() - y - bs.width();
lx = fw;
rx = x - fw;
switch ( sc ) {
@@ -1942,24 +2431,24 @@ TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
case SC_SpinWidgetDown:
return TQRect(x, y + bs.height(), bs.width(), bs.height());
case SC_SpinWidgetButtonField:
- return TQRect(x, y, bs.width(), widget->height() - 2*fw);
+ return TQRect(x, y, bs.width(), ceData.rect.height() - 2*fw);
case SC_SpinWidgetEditField:
- return TQRect(lx, fw, rx, widget->height() - 2*fw);
+ return TQRect(lx, fw, rx, ceData.rect.height() - 2*fw);
case SC_SpinWidgetFrame:
- return widget->rect();
+ return ceData.rect;
default:
break;
}
break; }
case CC_ComboBox: {
- int x = 0, y = 0, wi = widget->width(), he = widget->height();
+ int x = 0, y = 0, wi = ceData.rect.width(), he = ceData.rect.height();
int xpos = x;
xpos += wi - 2 - 16;
switch ( sc ) {
case SC_ComboBoxFrame:
- return widget->rect();
+ return ceData.rect;
case SC_ComboBoxArrow:
return TQRect(xpos, y+2, 16, he-4);
case SC_ComboBoxEditField:
@@ -1973,21 +2462,20 @@ TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
#ifndef QT_NO_SCROLLBAR
case CC_ScrollBar: {
- const TQScrollBar *scrollbar = (const TQScrollBar *) widget;
int sliderstart = 0;
- int sbextent = pixelMetric(PM_ScrollBarExtent, widget);
- int maxlen = ((scrollbar->orientation() == TQt::Horizontal) ?
- scrollbar->width() : scrollbar->height()) - (sbextent * 2);
+ int sbextent = pixelMetric(PM_ScrollBarExtent, ceData, elementFlags, widget);
+ int maxlen = ((ceData.orientation == TQt::Horizontal) ?
+ ceData.rect.width() : ceData.rect.height()) - (sbextent * 2);
int sliderlen;
- sliderstart = scrollbar->sliderStart();
+ sliderstart = ceData.startStep;
// calculate slider length
- if (scrollbar->maxValue() != scrollbar->minValue()) {
- uint range = scrollbar->maxValue() - scrollbar->minValue();
- sliderlen = (TQ_LLONG(scrollbar->pageStep()) * maxlen) / (range + scrollbar->pageStep());
+ if (ceData.maxSteps != ceData.minSteps) {
+ uint range = ceData.maxSteps - ceData.minSteps;
+ sliderlen = (TQ_LLONG(ceData.pageStep) * maxlen) / (range + ceData.pageStep);
- int slidermin = pixelMetric( PM_ScrollBarSliderMin, widget );
+ int slidermin = pixelMetric( PM_ScrollBarSliderMin, ceData, elementFlags, widget );
if ( sliderlen < slidermin || range > INT_MAX / 2 )
sliderlen = slidermin;
if ( sliderlen > maxlen )
@@ -1997,44 +2485,44 @@ TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
switch (sc) {
case SC_ScrollBarSubLine: // top/left button
- if (scrollbar->orientation() == TQt::Horizontal) {
- int buttonWidth = TQMIN(scrollbar->width()/2, sbextent);
+ if (ceData.orientation == TQt::Horizontal) {
+ int buttonWidth = TQMIN(ceData.rect.width()/2, sbextent);
return TQRect( 0, 0, buttonWidth, sbextent );
} else {
- int buttonHeight = TQMIN(scrollbar->height()/2, sbextent);
+ int buttonHeight = TQMIN(ceData.rect.height()/2, sbextent);
return TQRect( 0, 0, sbextent, buttonHeight );
}
case SC_ScrollBarAddLine: // bottom/right button
- if (scrollbar->orientation() == TQt::Horizontal) {
- int buttonWidth = TQMIN(scrollbar->width()/2, sbextent);
- return TQRect( scrollbar->width() - buttonWidth, 0, buttonWidth, sbextent );
+ if (ceData.orientation == TQt::Horizontal) {
+ int buttonWidth = TQMIN(ceData.rect.width()/2, sbextent);
+ return TQRect( ceData.rect.width() - buttonWidth, 0, buttonWidth, sbextent );
} else {
- int buttonHeight = TQMIN(scrollbar->height()/2, sbextent);
- return TQRect( 0, scrollbar->height() - buttonHeight, sbextent, buttonHeight );
+ int buttonHeight = TQMIN(ceData.rect.height()/2, sbextent);
+ return TQRect( 0, ceData.rect.height() - buttonHeight, sbextent, buttonHeight );
}
case SC_ScrollBarSubPage: // between top/left button and slider
- if (scrollbar->orientation() == TQt::Horizontal)
+ if (ceData.orientation == TQt::Horizontal)
return TQRect(sbextent, 0, sliderstart - sbextent, sbextent);
return TQRect(0, sbextent, sbextent, sliderstart - sbextent);
case SC_ScrollBarAddPage: // between bottom/right button and slider
- if (scrollbar->orientation() == TQt::Horizontal)
+ if (ceData.orientation == TQt::Horizontal)
return TQRect(sliderstart + sliderlen, 0,
maxlen - sliderstart - sliderlen + sbextent, sbextent);
return TQRect(0, sliderstart + sliderlen,
sbextent, maxlen - sliderstart - sliderlen + sbextent);
case SC_ScrollBarGroove:
- if (scrollbar->orientation() == TQt::Horizontal)
- return TQRect(sbextent, 0, scrollbar->width() - sbextent * 2,
- scrollbar->height());
- return TQRect(0, sbextent, scrollbar->width(),
- scrollbar->height() - sbextent * 2);
+ if (ceData.orientation == TQt::Horizontal)
+ return TQRect(sbextent, 0, ceData.rect.width() - sbextent * 2,
+ ceData.rect.height());
+ return TQRect(0, sbextent, ceData.rect.width(),
+ ceData.rect.height() - sbextent * 2);
case SC_ScrollBarSlider:
- if (scrollbar->orientation() == TQt::Horizontal)
+ if (ceData.orientation == TQt::Horizontal)
return TQRect(sliderstart, 0, sliderlen, sbextent);
return TQRect(0, sliderstart, sbextent, sliderlen);
@@ -2046,24 +2534,23 @@ TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
#ifndef QT_NO_SLIDER
case CC_Slider: {
- const TQSlider * sl = (const TQSlider *) widget;
- int tickOffset = pixelMetric( PM_SliderTickmarkOffset, sl );
- int thickness = pixelMetric( PM_SliderControlThickness, sl );
+ int tickOffset = pixelMetric( PM_SliderTickmarkOffset, ceData, elementFlags, widget );
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
switch ( sc ) {
case SC_SliderHandle: {
int sliderPos = 0;
- int len = pixelMetric( PM_SliderLength, sl );
+ int len = pixelMetric( PM_SliderLength, ceData, elementFlags, widget );
- sliderPos = sl->sliderStart();
+ sliderPos = ceData.startStep;
- if ( sl->orientation() == Horizontal )
+ if ( ceData.orientation == Horizontal )
return TQRect( sliderPos, tickOffset, len, thickness );
return TQRect( tickOffset, sliderPos, thickness, len ); }
case SC_SliderGroove: {
- if ( sl->orientation() == Horizontal )
- return TQRect( 0, tickOffset, sl->width(), thickness );
- return TQRect( tickOffset, 0, thickness, sl->height() ); }
+ if ( ceData.orientation == Horizontal )
+ return TQRect( 0, tickOffset, ceData.rect.width(), thickness );
+ return TQRect( tickOffset, 0, thickness, ceData.rect.height() ); }
default:
break;
@@ -2073,18 +2560,17 @@ TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
#if !defined(QT_NO_TOOLBUTTON) && !defined(QT_NO_POPUPMENU)
case CC_ToolButton: {
- const TQToolButton *toolbutton = (const TQToolButton *) widget;
- int mbi = pixelMetric(PM_MenuButtonIndicator, widget);
+ int mbi = pixelMetric(PM_MenuButtonIndicator, ceData, elementFlags, widget);
- TQRect rect = toolbutton->rect();
+ TQRect rect = ceData.rect;
switch (sc) {
case SC_ToolButton:
- if (toolbutton->popup() && ! toolbutton->popupDelay())
+ if ((elementFlags & CEF_HasPopupMenu) && ! ceData.popupDelay)
rect.addCoords(0, 0, -mbi, 0);
return rect;
case SC_ToolButtonMenu:
- if (toolbutton->popup() && ! toolbutton->popupDelay())
+ if ((elementFlags & CEF_HasPopupMenu) && ! ceData.popupDelay)
rect.addCoords(rect.width() - mbi, 0, 0, 0);
return rect;
@@ -2096,47 +2582,45 @@ TQRect TQCommonStyle::querySubControlMetrics( ComplexControl control,
#ifndef QT_NO_TITLEBAR
case CC_TitleBar: {
- const TQTitleBar *titlebar = (const TQTitleBar *) widget;
const int controlTop = 2;
- const int controlHeight = widget->height() - controlTop * 2;
+ const int controlHeight = ceData.rect.height() - controlTop * 2;
switch (sc) {
case SC_TitleBarLabel: {
- const TQTitleBar *titlebar = (TQTitleBar*)widget;
- TQRect ir( 0, 0, titlebar->width(), titlebar->height() );
- if ( titlebar->testWFlags( WStyle_Tool ) ) {
- if ( titlebar->testWFlags( WStyle_SysMenu ) )
+ TQRect ir( 0, 0, ceData.rect.width(), ceData.rect.height() );
+ if ( ceData.wflags & WStyle_Tool ) {
+ if ( ceData.wflags & WStyle_SysMenu )
ir.addCoords( 0, 0, -controlHeight-3, 0 );
- if ( titlebar->testWFlags( WStyle_MinMax ) )
+ if ( ceData.wflags & WStyle_MinMax )
ir.addCoords( 0, 0, -controlHeight-2, 0 );
} else {
- if ( titlebar->testWFlags( WStyle_SysMenu ) )
+ if ( ceData.wflags & WStyle_SysMenu )
ir.addCoords( controlHeight+3, 0, -controlHeight-3, 0 );
- if ( titlebar->testWFlags( WStyle_Minimize ) )
+ if ( ceData.wflags & WStyle_Minimize )
ir.addCoords( 0, 0, -controlHeight-2, 0 );
- if ( titlebar->testWFlags( WStyle_Maximize ) )
+ if ( ceData.wflags & WStyle_Maximize )
ir.addCoords( 0, 0, -controlHeight-2, 0 );
}
return ir; }
case SC_TitleBarCloseButton:
- return TQRect( titlebar->width() - ( controlHeight + controlTop ),
+ return TQRect( ceData.rect.width() - ( controlHeight + controlTop ),
controlTop, controlHeight, controlHeight );
case SC_TitleBarMaxButton:
case SC_TitleBarShadeButton:
case SC_TitleBarUnshadeButton:
- return TQRect( titlebar->width() - ( ( controlHeight + controlTop ) * 2 ),
+ return TQRect( ceData.rect.width() - ( ( controlHeight + controlTop ) * 2 ),
controlTop, controlHeight, controlHeight );
case SC_TitleBarMinButton:
case SC_TitleBarNormalButton: {
int offset = controlHeight + controlTop;
- if ( !titlebar->testWFlags( WStyle_Maximize ) )
+ if ( !( ceData.wflags & WStyle_Maximize ) )
offset *= 2;
else
offset *= 3;
- return TQRect( titlebar->width() - offset, controlTop, controlHeight, controlHeight );
+ return TQRect( ceData.rect.width() - offset, controlTop, controlHeight, controlHeight );
}
case SC_TitleBarSysMenu:
@@ -2160,6 +2644,18 @@ TQStyle::SubControl TQCommonStyle::querySubControl(ComplexControl control,
const TQPoint &pos,
const TQStyleOption& opt ) const
{
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, opt);
+ return querySubControl(control, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, opt), pos, opt, widget);
+}
+
+/*! \reimp */
+TQStyle::SubControl TQCommonStyle::querySubControl(ComplexControl control,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQPoint &pos,
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
+{
SubControl ret = SC_None;
switch (control) {
@@ -2180,8 +2676,8 @@ TQStyle::SubControl TQCommonStyle::querySubControl(ComplexControl control,
// we can do this because subcontrols were designed to be masks as well...
while (ret == SC_None && ctrl <= SC_ScrollBarGroove) {
- r = querySubControlMetrics(control, widget,
- (TQStyle::SubControl) ctrl, opt);
+ r = querySubControlMetrics(control, ceData, elementFlags,
+ (TQStyle::SubControl) ctrl, opt, widget);
if (r.isValid() && r.contains(pos))
ret = (TQStyle::SubControl) ctrl;
@@ -2194,27 +2690,26 @@ TQStyle::SubControl TQCommonStyle::querySubControl(ComplexControl control,
case CC_TitleBar:
{
#ifndef QT_NO_TITLEBAR
- const TQTitleBar *titlebar = (TQTitleBar*)widget;
TQRect r;
uint ctrl = SC_TitleBarLabel;
// we can do this because subcontrols were designed to be masks as well...
while (ret == SC_None && ctrl <= SC_TitleBarUnshadeButton) {
- r = visualRect( querySubControlMetrics( control, widget, (TQStyle::SubControl) ctrl, opt ), widget );
+ r = visualRect( querySubControlMetrics( control, ceData, elementFlags, (TQStyle::SubControl) ctrl, opt, widget ), ceData, elementFlags );
if (r.isValid() && r.contains(pos))
ret = (TQStyle::SubControl) ctrl;
ctrl <<= 1;
}
- if ( titlebar->window() ) {
- if (titlebar->testWFlags( WStyle_Tool )) {
+ if ( ceData.titleBarData.hasWindow ) {
+ if ( ceData.wflags & WStyle_Tool ) {
if ( ret == SC_TitleBarMinButton || ret == SC_TitleBarMaxButton ) {
- if ( titlebar->window()->isMinimized() )
+ if ( ceData.titleBarData.windowState & WindowMinimized )
ret = SC_TitleBarUnshadeButton;
else
ret = SC_TitleBarShadeButton;
}
- } else if ( ret == SC_TitleBarMinButton && titlebar->window()->isMinimized() ) {
+ } else if ( ret == SC_TitleBarMinButton && (ceData.titleBarData.windowState & WindowMinimized) ) {
ret = TQStyle::SC_TitleBarNormalButton;
}
}
@@ -2233,6 +2728,13 @@ TQStyle::SubControl TQCommonStyle::querySubControl(ComplexControl control,
/*! \reimp */
int TQCommonStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
{
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
+ return pixelMetric(m, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), widget);
+}
+
+/*! \reimp */
+int TQCommonStyle::pixelMetric(PixelMetric m, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget) const
+{
int ret;
switch (m) {
@@ -2250,20 +2752,17 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
ret = 16;
break;
case PM_TitleBarHeight: {
- if ( widget ) {
- if ( widget->testWFlags( WStyle_Tool ) ) {
- ret = TQMAX( widget->fontMetrics().lineSpacing(), 16 );
+ if ( !(elementFlags & CEF_UseGenericParameters) ) {
+ if ( ceData.wflags & WStyle_Tool ) {
+ ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 16 );
#ifndef QT_NO_MAINWINDOW
- } else if ( ::tqt_cast<TQDockWindow*>(widget) ) {
- ret = TQMAX( widget->fontMetrics().lineSpacing(), 13 );
+ } else if ( ceData.widgetObjectTypes.contains("TQDockWindow") ) {
+ ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 13 );
#endif
} else {
- ret = TQMAX( widget->fontMetrics().lineSpacing(), 18 );
+ ret = TQMAX( TQFontMetrics(ceData.font).lineSpacing(), 18 );
}
- } else {
- ret = 0;
}
-
break; }
case PM_ScrollBarSliderMin:
ret = 9;
@@ -2278,10 +2777,10 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
break;
case PM_MenuButtonIndicator:
- if (! widget)
+ if ( elementFlags & CEF_UseGenericParameters )
ret = 12;
else
- ret = TQMAX(12, (widget->height() - 4) / 3);
+ ret = TQMAX(12, (ceData.rect.height() - 4) / 3);
break;
case PM_ButtonShiftHorizontal:
@@ -2304,11 +2803,10 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
#ifndef QT_NO_SCROLLBAR
case PM_ScrollBarExtent:
- if ( !widget ) {
+ if ( elementFlags & CEF_UseGenericParameters ) {
ret = 16;
} else {
- const TQScrollBar *bar = (const TQScrollBar*)widget;
- int s = bar->orientation() == TQt::Horizontal ?
+ int s = ceData.orientation == TQt::Horizontal ?
TQApplication::globalStrut().height()
: TQApplication::globalStrut().width();
ret = TQMAX( 16, s );
@@ -2326,16 +2824,15 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
case PM_SliderTickmarkOffset:
{
- if (! widget) {
+ if ( elementFlags & CEF_UseGenericParameters ) {
ret = 0;
break;
}
- const TQSlider * sl = (const TQSlider *) widget;
- int space = (sl->orientation() == Horizontal) ? sl->height() :
- sl->width();
- int thickness = pixelMetric( PM_SliderControlThickness, sl );
- int ticks = sl->tickmarks();
+ int space = (ceData.orientation == Horizontal) ? ceData.rect.height() :
+ ceData.rect.width();
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
+ int ticks = ceData.tickMarkSetting;
if ( ticks == TQSlider::Both )
ret = (space - thickness) / 2;
@@ -2348,11 +2845,10 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
case PM_SliderSpaceAvailable:
{
- const TQSlider * sl = (const TQSlider *) widget;
- if ( sl->orientation() == Horizontal )
- ret = sl->width() - pixelMetric( PM_SliderLength, sl );
+ if ( ceData.orientation == Horizontal )
+ ret = ceData.rect.width() - pixelMetric( PM_SliderLength, ceData, elementFlags, widget );
else
- ret = sl->height() - pixelMetric( PM_SliderLength, sl );
+ ret = ceData.rect.height() - pixelMetric( PM_SliderLength, ceData, elementFlags, widget );
break;
}
#endif // QT_NO_SLIDER
@@ -2402,9 +2898,8 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
#ifndef QT_NO_TABBAR
case PM_TabBarTabVSpace:
{
- const TQTabBar * tb = (const TQTabBar *) widget;
- if ( tb && ( tb->shape() == TQTabBar::RoundedAbove ||
- tb->shape() == TQTabBar::RoundedBelow ) )
+ if ( ceData.widgetObjectTypes.contains("TQTabBar") && ( ceData.tabBarData.shape == TQTabBar::RoundedAbove ||
+ ceData.tabBarData.shape == TQTabBar::RoundedBelow ) )
ret = 10;
else
ret = 0;
@@ -2457,31 +2952,43 @@ int TQCommonStyle::pixelMetric(PixelMetric m, const TQWidget *widget) const
return ret;
}
-
/*! \reimp */
TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
const TQWidget *widget,
const TQSize &contentsSize,
const TQStyleOption& opt ) const
{
- TQSize sz(contentsSize);
+ TQSize sz(contentsSize);
#if defined(QT_CHECK_STATE)
- if (! widget) {
- tqWarning("TQCommonStyle::sizeFromContents: widget parameter cannot be zero!");
- return sz;
- }
+ if (! widget) {
+ tqWarning("TQCommonStyle::sizeFromContents: widget parameter cannot be zero!");
+ return sz;
+ }
#endif
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(widget, TQStyleOption());
+ return sizeFromContents(contents, ceData, getControlElementFlagsForObject(widget, ceData.widgetObjectTypes, TQStyleOption()), contentsSize, opt, widget);
+}
+
+/*! \reimp */
+TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQSize &contentsSize,
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
+{
+ TQSize sz(contentsSize);
+
switch (contents) {
#ifndef QT_NO_DIALOGBUTTONS
case CT_DialogButtons: {
- const TQDialogButtons *dbtns = (const TQDialogButtons *)widget;
int w = contentsSize.width(), h = contentsSize.height();
- const int bwidth = pixelMetric(PM_DialogButtonsButtonWidth, widget),
- bspace = pixelMetric(PM_DialogButtonsSeparator, widget),
- bheight = pixelMetric(PM_DialogButtonsButtonHeight, widget);
- if(dbtns->orientation() == Horizontal) {
+ const int bwidth = pixelMetric(PM_DialogButtonsButtonWidth, ceData, elementFlags, widget),
+ bspace = pixelMetric(PM_DialogButtonsSeparator, ceData, elementFlags, widget),
+ bheight = pixelMetric(PM_DialogButtonsButtonHeight, ceData, elementFlags, widget);
+ if(ceData.orientation == Horizontal) {
if(!w)
w = bwidth;
} else {
@@ -2492,10 +2999,10 @@ TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
TQDialogButtons::Apply, TQDialogButtons::Retry, TQDialogButtons::Ignore, TQDialogButtons::Abort,
TQDialogButtons::Help };
for(unsigned int i = 0, cnt = 0; i < (sizeof(btns)/sizeof(btns[0])); i++) {
- if(dbtns->isButtonVisible(btns[i])) {
- TQSize szH = dbtns->sizeHint(btns[i]);
+ if (ceData.dlgVisibleButtons & btns[i]) {
+ TQSize szH = ceData.dlgVisibleSizeHints[btns[i]];
int mwidth = TQMAX(bwidth, szH.width()), mheight = TQMAX(bheight, szH.height());
- if(dbtns->orientation() == Horizontal)
+ if(ceData.orientation == Horizontal)
h = TQMAX(h, mheight);
else
w = TQMAX(w, mwidth);
@@ -2503,30 +3010,29 @@ TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
if(cnt)
w += bspace;
cnt++;
- if(dbtns->orientation() == Horizontal)
+ if(ceData.orientation == Horizontal)
w += mwidth;
else
h += mheight;
}
}
- const int fw = pixelMetric(PM_DefaultFrameWidth, widget) * 2;
+ const int fw = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget) * 2;
sz = TQSize(w + fw, h + fw);
break; }
#endif //QT_NO_DIALOGBUTTONS
case CT_PushButton:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
int w = contentsSize.width(),
h = contentsSize.height(),
- bm = pixelMetric(PM_ButtonMargin, widget),
- fw = pixelMetric(PM_DefaultFrameWidth, widget) * 2;
+ bm = pixelMetric(PM_ButtonMargin, ceData, elementFlags, widget),
+ fw = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget) * 2;
w += bm + fw;
h += bm + fw;
- if (button->isDefault() || button->autoDefault()) {
- int dbw = pixelMetric(PM_ButtonDefaultIndicator, widget) * 2;
+ if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault)) {
+ int dbw = pixelMetric(PM_ButtonDefaultIndicator, ceData, elementFlags, widget) * 2;
w += dbw;
h += dbw;
}
@@ -2539,10 +3045,9 @@ TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
case CT_CheckBox:
{
#ifndef QT_NO_CHECKBOX
- const TQCheckBox *checkbox = (const TQCheckBox *) widget;
- TQRect irect = subRect(SR_CheckBoxIndicator, widget);
- int h = pixelMetric( PM_IndicatorHeight, widget );
- int margins = (!checkbox->pixmap() && checkbox->text().isEmpty()) ? 0 : 10;
+ TQRect irect = subRect(SR_CheckBoxIndicator, ceData, elementFlags, widget);
+ int h = pixelMetric( PM_IndicatorHeight, ceData, elementFlags, widget );
+ int margins = (ceData.fgPixmap.isNull() && ceData.text.isEmpty()) ? 0 : 10;
sz += TQSize(irect.right() + margins, 4 );
sz.setHeight( TQMAX( sz.height(), h ) );
#endif
@@ -2552,10 +3057,9 @@ TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
case CT_RadioButton:
{
#ifndef QT_NO_RADIOBUTTON
- const TQRadioButton *radiobutton = (const TQRadioButton *) widget;
- TQRect irect = subRect(SR_RadioButtonIndicator, widget);
- int h = pixelMetric( PM_ExclusiveIndicatorHeight, widget );
- int margins = (!radiobutton->pixmap() && radiobutton->text().isEmpty()) ? 0 : 10;
+ TQRect irect = subRect(SR_RadioButtonIndicator, ceData, elementFlags, widget);
+ int h = pixelMetric( PM_ExclusiveIndicatorHeight, ceData, elementFlags, widget );
+ int margins = (ceData.fgPixmap.isNull() && ceData.text.isEmpty()) ? 0 : 10;
sz += TQSize(irect.right() + margins, 4 );
sz.setHeight( TQMAX( sz.height(), h ) );
#endif
@@ -2570,7 +3074,7 @@ TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
case CT_ComboBox:
{
- int dfw = pixelMetric(PM_DefaultFrameWidth, widget) * 2;
+ int dfw = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget) * 2;
sz = TQSize(sz.width() + dfw + 21, sz.height() + dfw );
break;
}
@@ -2581,8 +3085,7 @@ TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
if (opt.isDefault())
break;
- const TQPopupMenu *popup = (const TQPopupMenu *) widget;
- bool checkable = popup->isCheckable();
+ bool checkable = (elementFlags & CEF_IsCheckable);
TQMenuItem *mi = opt.menuItem();
int maxpmw = opt.maxIconWidth();
int w = sz.width(), h = sz.height();
@@ -2600,7 +3103,7 @@ TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
if (mi->pixmap())
h = TQMAX(h, mi->pixmap()->height() + 4);
else
- h = TQMAX(h, popup->fontMetrics().height() + 8);
+ h = TQMAX(h, TQFontMetrics(ceData.font).height() + 8);
if (mi->iconSet() != 0)
h = TQMAX(h, mi->iconSet()->pixmap(TQIconSet::Small,
@@ -2639,10 +3142,18 @@ TQSize TQCommonStyle::sizeFromContents(ContentsType contents,
return sz;
}
+/*! \reimp */
+int TQCommonStyle::styleHint(StyleHint sh, const TQWidget * w, const TQStyleOption &so, TQStyleHintReturn *shr) const
+{
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(w, TQStyleOption(), false);
+ return styleHint(sh, ceData, getControlElementFlagsForObject(w, ceData.widgetObjectTypes, TQStyleOption(), false), so, shr, w);
+}
/*! \reimp */
-int TQCommonStyle::styleHint(StyleHint sh, const TQWidget * w, const TQStyleOption &, TQStyleHintReturn *) const
+int TQCommonStyle::styleHint(StyleHint sh, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQStyleOption &, TQStyleHintReturn *, const TQWidget * w) const
{
+ Q_UNUSED(w);
+
int ret;
switch (sh) {
@@ -2656,7 +3167,7 @@ int TQCommonStyle::styleHint(StyleHint sh, const TQWidget * w, const TQStyleOpti
break;
case SH_GroupBox_TextLabelColor:
- ret = (int) ( w ? w->paletteForegroundColor().rgb() : 0 );
+ ret = (int) ( (!(elementFlags & CEF_UseGenericParameters)) ? ceData.fgColor.rgb() : 0 );
break;
case SH_ListViewExpand_SelectMouseType:
@@ -2709,6 +3220,10 @@ int TQCommonStyle::styleHint(StyleHint sh, const TQWidget * w, const TQStyleOpti
ret = 1;
break;
+ case SH_HideUnderlineAcceleratorWhenAltUp:
+ ret = 0;
+ break;
+
default:
ret = 0;
break;
@@ -2718,10 +3233,16 @@ int TQCommonStyle::styleHint(StyleHint sh, const TQWidget * w, const TQStyleOpti
}
/*! \reimp */
-TQPixmap TQCommonStyle::stylePixmap(StylePixmap, const TQWidget *, const TQStyleOption&) const
+TQPixmap TQCommonStyle::stylePixmap(StylePixmap sp, const TQWidget *w, const TQStyleOption &so) const
{
- return TQPixmap();
+ TQStyleControlElementData ceData = populateControlElementDataFromWidget(w, TQStyleOption());
+ return stylePixmap(sp, ceData, getControlElementFlagsForObject(w, ceData.widgetObjectTypes, TQStyleOption()), so, w);
}
+/*! \reimp */
+TQPixmap TQCommonStyle::stylePixmap(StylePixmap, TQStyleControlElementData, ControlElementFlags, const TQStyleOption&, const TQWidget *) const
+{
+ return TQPixmap();
+}
#endif // QT_NO_STYLE
diff --git a/src/styles/qcompactstyle.cpp b/src/styles/qcompactstyle.cpp
index 7dc0ab37c..97f6aca86 100644
--- a/src/styles/qcompactstyle.cpp
+++ b/src/styles/qcompactstyle.cpp
@@ -55,7 +55,7 @@ TQCompactStyle::TQCompactStyle()
}
/*! \reimp */
-int TQCompactStyle::pixelMetric( PixelMetric metric, const TQWidget *widget )
+int TQCompactStyle::pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget )
{
int ret;
switch ( metric ) {
@@ -68,7 +68,7 @@ int TQCompactStyle::pixelMetric( PixelMetric metric, const TQWidget *widget )
ret = -1;
break;
default:
- ret = TQWindowsStyle::pixelMetric( metric, widget );
+ ret = TQWindowsStyle::pixelMetric( metric, ceData, elementFlags, widget );
break;
}
return ret;
@@ -143,16 +143,15 @@ void drawPopupMenuItem( TQPainter* p, bool checkable,
}
/*! \reimp */
-void TQCompactStyle::drawControl( ControlElement element, TQPainter *p, const TQWidget *widget, const TQRect &r,
- const TQColorGroup &g, SFlags flags, const TQStyleOption& opt )
+void TQCompactStyle::drawControl( ControlElement element, TQPainter *p, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQRect &r,
+ const TQColorGroup &g, SFlags flags, const TQStyleOption& opt, const TQWidget *widget )
{
switch ( element ) {
case CE_PopupMenuItem:
{
- if (! widget || opt.isDefault())
+ if (! (elementFlags & CEF_HasWidget) || opt.isDefault())
break;
- const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
TQMenuItem *mi = opt.menuItem();
if ( !mi )
break;
@@ -160,7 +159,7 @@ void TQCompactStyle::drawControl( ControlElement element, TQPainter *p, const TQ
int tab = opt.tabWidth();
int maxpmw = opt.maxIconWidth();
bool dis = !(flags & Style_Enabled);
- bool checkable = popupmenu->isCheckable();
+ bool checkable = (elementFlags & CEF_IsCheckable);
bool act = flags & Style_Active;
int x, y, w, h;
r.rect( &x, &y, &w, &h );
@@ -313,7 +312,7 @@ void TQCompactStyle::drawControl( ControlElement element, TQPainter *p, const TQ
break;
default:
- TQWindowsStyle::drawControl( element, p, widget, r, g, flags, opt );
+ TQWindowsStyle::drawControl( element, p, ceData, elementFlags, r, g, flags, opt, widget );
break;
}
}
diff --git a/src/styles/qmotifplusstyle.cpp b/src/styles/qmotifplusstyle.cpp
index 36358792f..2ad7e7f5a 100644
--- a/src/styles/qmotifplusstyle.cpp
+++ b/src/styles/qmotifplusstyle.cpp
@@ -69,7 +69,9 @@ struct TQMotifPlusStylePrivate
scrollbarElement(0), lastElement(0), ref(1)
{ ; }
- TQGuardedPtr<TQWidget> hoverWidget;
+ void* hoverWidget;
+ TQStyleControlElementData hoverWidgetData;
+ TQStyle::ControlElementFlags hoverWidgetFlags;
bool hovering, sliderActive, mousePressed;
int scrollbarElement, lastElement, ref;
TQPoint mousePos;
@@ -176,58 +178,64 @@ void TQMotifPlusStyle::polish(TQPalette &)
/*! \reimp */
-void TQMotifPlusStyle::polish(TQWidget *widget)
+void TQMotifPlusStyle::polish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr)
{
+ if (ceData.widgetObjectTypes.contains("TQWidget")) {
#ifndef QT_NO_FRAME
- if (::tqt_cast<TQFrame*>(widget) && ((TQFrame *) widget)->frameStyle() == TQFrame::Panel)
- ((TQFrame *) widget)->setFrameStyle(TQFrame::WinPanel);
+ if ((ceData.widgetObjectTypes.contains("TQFrame")) && (ceData.frameStyle == TQFrame::Panel)) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_FrameSetStyle, TQStyleWidgetActionRequestData(TQFrame::WinPanel));
+ }
#endif
#ifndef QT_NO_MENUBAR
- if (::tqt_cast<TQMenuBar*>(widget) && ((TQMenuBar *) widget)->frameStyle() != TQFrame::NoFrame)
- ((TQMenuBar *) widget)->setFrameStyle(TQFrame::StyledPanel | TQFrame::Raised);
+ if ((ceData.widgetObjectTypes.contains("TQMenuBar")) && (ceData.frameStyle != TQFrame::NoFrame)) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_FrameSetStyle, TQStyleWidgetActionRequestData(TQFrame::StyledPanel | TQFrame::Raised));
+ }
#endif
#ifndef QT_NO_TOOLBAR
- if (::tqt_cast<TQToolBar*>(widget))
- widget->layout()->setMargin(2);
+ if (ceData.widgetObjectTypes.contains("TQToolBar")) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetLayoutMargin, TQStyleWidgetActionRequestData(2));
+ }
#endif
+ }
if (useHoveringHighlight) {
- if (::tqt_cast<TQButton*>(widget) || ::tqt_cast<TQComboBox*>(widget))
- widget->installEventFilter(this);
+ if ((ceData.widgetObjectTypes.contains("TQButton")) || (ceData.widgetObjectTypes.contains("TQComboBox"))) {
+ installObjectEventHandler(ceData, elementFlags, ptr, this);
+ }
- if (::tqt_cast<TQScrollBar*>(widget) || ::tqt_cast<TQSlider*>(widget)) {
- widget->setMouseTracking(TRUE);
- widget->installEventFilter(this);
+ if ((ceData.widgetObjectTypes.contains("TQScrollBar")) || (ceData.widgetObjectTypes.contains("TQSlider"))) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_EnableMouseTracking);
+ installObjectEventHandler(ceData, elementFlags, ptr, this);
}
}
- TQMotifStyle::polish(widget);
+ TQMotifStyle::polish(ceData, elementFlags, ptr);
}
/*! \reimp */
-void TQMotifPlusStyle::unPolish(TQWidget *widget)
+void TQMotifPlusStyle::unPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr)
{
- widget->removeEventFilter(this);
- TQMotifStyle::unPolish(widget);
+ removeObjectEventHandler(ceData, elementFlags, ptr, this);
+ TQMotifStyle::unPolish(ceData, elementFlags, ptr);
}
/*! \reimp */
-void TQMotifPlusStyle::polish(TQApplication *)
+void TQMotifPlusStyle::applicationPolish(TQStyleControlElementData, ControlElementFlags, void *)
{
}
/*! \reimp */
-void TQMotifPlusStyle::unPolish(TQApplication *)
+void TQMotifPlusStyle::applicationUnPolish(TQStyleControlElementData, ControlElementFlags, void *)
{
}
/*! \reimp */
-int TQMotifPlusStyle::pixelMetric(PixelMetric metric, const TQWidget *widget) const
+int TQMotifPlusStyle::pixelMetric(PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget) const
{
int ret;
@@ -259,7 +267,7 @@ int TQMotifPlusStyle::pixelMetric(PixelMetric metric, const TQWidget *widget) co
break;
default:
- ret = TQMotifStyle::pixelMetric(metric, widget);
+ ret = TQMotifStyle::pixelMetric(metric, ceData, elementFlags, widget);
break;
}
@@ -270,6 +278,8 @@ int TQMotifPlusStyle::pixelMetric(PixelMetric metric, const TQWidget *widget) co
/*! \reimp */
void TQMotifPlusStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
@@ -303,11 +313,11 @@ void TQMotifPlusStyle::drawPrimitive( PrimitiveElement pe,
break;
case PE_SpinWidgetUp:
- drawPrimitive(PE_ArrowUp, p, r, cg, flags, opt);
+ drawPrimitive(PE_ArrowUp, p, ceData, elementFlags, r, cg, flags, opt);
break;
case PE_SpinWidgetDown:
- drawPrimitive(PE_ArrowDown, p, r, cg, flags, opt);
+ drawPrimitive(PE_ArrowDown, p, ceData, elementFlags, r, cg, flags, opt);
break;
case PE_Indicator:
@@ -632,7 +642,7 @@ void TQMotifPlusStyle::drawPrimitive( PrimitiveElement pe,
}
default:
- TQMotifStyle::drawPrimitive(pe, p, r, cg, flags, opt);
+ TQMotifStyle::drawPrimitive(pe, p, ceData, elementFlags, r, cg, flags, opt);
break;
}
}
@@ -642,11 +652,13 @@ void TQMotifPlusStyle::drawPrimitive( PrimitiveElement pe,
*/
void TQMotifPlusStyle::drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget) const
{
if (widget == singleton->hoverWidget)
flags |= Style_MouseOver;
@@ -655,12 +667,11 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
case CE_PushButton:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
TQRect br = r;
- int dbi = pixelMetric(PM_ButtonDefaultIndicator, widget);
+ int dbi = pixelMetric(PM_ButtonDefaultIndicator, ceData, elementFlags, widget);
- if (button->isDefault() || button->autoDefault()) {
- if (button->isDefault())
+ if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault)) {
+ if (elementFlags & CEF_IsDefault)
drawMotifPlusShade(p, br, cg, TRUE, FALSE,
&cg.brush(TQColorGroup::Background));
@@ -673,9 +684,9 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
if (flags & Style_HasFocus)
br.addCoords(1, 1, -1, -1);
p->save();
- p->setBrushOrigin( -button->backgroundOffset().x(),
- -button->backgroundOffset().y() );
- drawPrimitive(PE_ButtonCommand, p, br, cg, flags);
+ p->setBrushOrigin( -ceData.bgOffset.x(),
+ -ceData.bgOffset.y() );
+ drawPrimitive(PE_ButtonCommand, p, ceData, elementFlags, br, cg, flags);
p->restore();
#endif
break;
@@ -684,23 +695,21 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
case CE_CheckBoxLabel:
{
#ifndef QT_NO_CHECKBOX
- const TQCheckBox *checkbox = (const TQCheckBox *) widget;
-
if (flags & Style_MouseOver) {
- TQRegion r(checkbox->rect());
- r -= visualRect(subRect(SR_CheckBoxIndicator, widget), widget);
+ TQRegion r(ceData.rect);
+ r -= visualRect(subRect(SR_CheckBoxIndicator, ceData, elementFlags, widget), ceData, elementFlags);
p->setClipRegion(r);
- p->fillRect(checkbox->rect(), cg.brush(TQColorGroup::Midlight));
+ p->fillRect(ceData.rect, cg.brush(TQColorGroup::Midlight));
p->setClipping(FALSE);
}
int alignment = TQApplication::reverseLayout() ? AlignRight : AlignLeft;
drawItem(p, r, alignment | AlignVCenter | ShowPrefix, cg,
- flags & Style_Enabled, checkbox->pixmap(), checkbox->text());
+ flags & Style_Enabled, (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text);
- if (checkbox->hasFocus()) {
- TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, widget), widget);
- drawPrimitive(PE_FocusRect, p, fr, cg, flags);
+ if (elementFlags & CEF_HasFocus) {
+ TQRect fr = visualRect(subRect(SR_CheckBoxFocusRect, ceData, elementFlags, widget), ceData, elementFlags);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, flags);
}
#endif
break;
@@ -709,23 +718,21 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
case CE_RadioButtonLabel:
{
#ifndef QT_NO_RADIOBUTTON
- const TQRadioButton *radiobutton = (const TQRadioButton *) widget;
-
if (flags & Style_MouseOver) {
- TQRegion r(radiobutton->rect());
- r -= visualRect(subRect(SR_RadioButtonIndicator, widget), widget);
+ TQRegion r(ceData.rect);
+ r -= visualRect(subRect(SR_RadioButtonIndicator, ceData, elementFlags, widget), ceData, elementFlags);
p->setClipRegion(r);
- p->fillRect(radiobutton->rect(), cg.brush(TQColorGroup::Midlight));
+ p->fillRect(ceData.rect, cg.brush(TQColorGroup::Midlight));
p->setClipping(FALSE);
}
int alignment = TQApplication::reverseLayout() ? AlignRight : AlignLeft;
drawItem(p, r, alignment | AlignVCenter | ShowPrefix, cg,
- flags & Style_Enabled, radiobutton->pixmap(), radiobutton->text());
+ flags & Style_Enabled, (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text);
- if (radiobutton->hasFocus()) {
- TQRect fr = visualRect(subRect(SR_RadioButtonFocusRect, widget), widget);
- drawPrimitive(PE_FocusRect, p, fr, cg, flags);
+ if (elementFlags & CEF_HasFocus) {
+ TQRect fr = visualRect(subRect(SR_RadioButtonFocusRect, ceData, elementFlags, widget), ceData, elementFlags);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, flags);
}
#endif
break;
@@ -757,7 +764,6 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
if (! widget || opt.isDefault())
break;
- TQPopupMenu *popupmenu = (TQPopupMenu *) widget;
TQMenuItem *mi = opt.menuItem();
if ( !mi )
break;
@@ -765,7 +771,7 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
int tab = opt.tabWidth();
int maxpmw = opt.maxIconWidth();
bool dis = ! (flags & Style_Enabled);
- bool checkable = popupmenu->isCheckable();
+ bool checkable = (elementFlags & CEF_IsCheckable);
bool act = flags & Style_Active;
int x, y, w, h;
@@ -834,7 +840,7 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
if (act)
cflags |= Style_On;
- drawPrimitive(PE_CheckMark, p, vrect, cg, cflags);
+ drawPrimitive(PE_CheckMark, p, ceData, elementFlags, vrect, cg, cflags);
}
}
@@ -883,6 +889,7 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
TQStyle::PrimitiveElement arrow = (TQApplication::reverseLayout() ? PE_ArrowLeft : PE_ArrowRight);
vrect = visualRect( TQRect(x + w - hh - 6, y + (hh / 2), hh, hh), r );
drawPrimitive(arrow, p,
+ ceData, elementFlags,
vrect, cg,
((act && !dis) ?
Style_Down : Style_Default) |
@@ -895,16 +902,15 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
case CE_TabBarTab:
{
#ifndef QT_NO_TABBAR
- const TQTabBar *tabbar = (const TQTabBar *) widget;
bool selected = flags & Style_Selected;
- TQColorGroup g = tabbar->colorGroup();
+ TQColorGroup g = ceData.colorGroup;
TQPen oldpen = p->pen();
TQRect fr(r);
if (! selected) {
- if (tabbar->shape() == TQTabBar::RoundedAbove ||
- tabbar->shape() == TQTabBar::TriangularAbove) {
+ if (ceData.tabBarData.shape == TQTabBar::RoundedAbove ||
+ ceData.tabBarData.shape == TQTabBar::TriangularAbove) {
fr.setTop(fr.top() + 2);
} else {
fr.setBottom(fr.bottom() - 2);
@@ -917,7 +923,7 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
(selected) ? cg.brush(TQColorGroup::Button)
: cg.brush(TQColorGroup::Mid));
- if (tabbar->shape() == TQTabBar::RoundedAbove) {
+ if (ceData.tabBarData.shape == TQTabBar::RoundedAbove) {
// "rounded" tabs on top
fr.setBottom(fr.bottom() - 1);
@@ -941,7 +947,7 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
p->setPen(black);
p->drawLine(fr.right(), fr.top() + 1,
fr.right(), fr.bottom() - 1);
- } else if (tabbar->shape() == TQTabBar::RoundedBelow) {
+ } else if (ceData.tabBarData.shape == TQTabBar::RoundedBelow) {
// "rounded" tabs on bottom
fr.setTop(fr.top() + 1);
@@ -987,7 +993,7 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
}
} else
// triangular drawing code
- TQMotifStyle::drawControl(element, p, widget, r, cg, flags, opt);
+ TQMotifStyle::drawControl(element, p, ceData, elementFlags, r, cg, flags, opt, widget);
p->setPen(oldpen);
#endif
@@ -995,7 +1001,7 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
}
default:
- TQMotifStyle::drawControl(element, p, widget, r, cg, flags, opt);
+ TQMotifStyle::drawControl(element, p, ceData, elementFlags, r, cg, flags, opt, widget);
break;
}
}
@@ -1003,7 +1009,7 @@ void TQMotifPlusStyle::drawControl( ControlElement element,
/*! \reimp
*/
-TQRect TQMotifPlusStyle::subRect(SubRect r, const TQWidget *widget) const
+TQRect TQMotifPlusStyle::subRect(SubRect r, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget) const
{
TQRect rect;
@@ -1011,11 +1017,10 @@ TQRect TQMotifPlusStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_PushButtonFocusRect:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
- int dfi = pixelMetric(PM_ButtonDefaultIndicator, widget);
+ int dfi = pixelMetric(PM_ButtonDefaultIndicator, ceData, elementFlags, widget);
- rect = button->rect();
- if (button->isDefault() || button->autoDefault())
+ rect = ceData.rect;
+ if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault))
rect.addCoords(dfi, dfi, -dfi, -dfi);
#endif
break;
@@ -1023,38 +1028,36 @@ TQRect TQMotifPlusStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_CheckBoxIndicator:
{
- int h = pixelMetric( PM_IndicatorHeight );
- rect.setRect(( widget->rect().height() - h ) / 2,
- ( widget->rect().height() - h ) / 2,
- pixelMetric( PM_IndicatorWidth ), h );
+ int h = pixelMetric( PM_IndicatorHeight, ceData, elementFlags );
+ rect.setRect(( ceData.rect.height() - h ) / 2,
+ ( ceData.rect.height() - h ) / 2,
+ pixelMetric( PM_IndicatorWidth, ceData, elementFlags ), h );
break;
}
case SR_RadioButtonIndicator:
{
- int h = pixelMetric( PM_ExclusiveIndicatorHeight );
- rect.setRect( ( widget->rect().height() - h ) / 2,
- ( widget->rect().height() - h ) / 2,
- pixelMetric( PM_ExclusiveIndicatorWidth ), h );
+ int h = pixelMetric( PM_ExclusiveIndicatorHeight, ceData, elementFlags );
+ rect.setRect( ( ceData.rect.height() - h ) / 2,
+ ( ceData.rect.height() - h ) / 2,
+ pixelMetric( PM_ExclusiveIndicatorWidth, ceData, elementFlags ), h );
break;
}
case SR_CheckBoxFocusRect:
case SR_RadioButtonFocusRect:
- rect = widget->rect();
+ rect = ceData.rect;
break;
case SR_ComboBoxFocusRect:
{
#ifndef QT_NO_COMBOBOX
- const TQComboBox *combobox = (const TQComboBox *) widget;
-
- if (combobox->editable()) {
- rect = querySubControlMetrics(CC_ComboBox, widget,
- SC_ComboBoxEditField);
+ if (elementFlags & CEF_IsEditable) {
+ rect = querySubControlMetrics(CC_ComboBox, ceData, elementFlags,
+ SC_ComboBoxEditField, TQStyleOption::Default, widget);
rect.addCoords(-3, -3, 3, 3);
} else
- rect = combobox->rect();
+ rect = ceData.rect;
#endif
break;
}
@@ -1062,21 +1065,20 @@ TQRect TQMotifPlusStyle::subRect(SubRect r, const TQWidget *widget) const
case SR_SliderFocusRect:
{
#ifndef QT_NO_SLIDER
- const TQSlider *slider = (const TQSlider *) widget;
- int tickOffset = pixelMetric( PM_SliderTickmarkOffset, widget );
- int thickness = pixelMetric( PM_SliderControlThickness, widget );
+ int tickOffset = pixelMetric( PM_SliderTickmarkOffset, ceData, elementFlags, widget );
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
int x, y, wi, he;
- if ( slider->orientation() == Horizontal ) {
+ if ( ceData.orientation == Horizontal ) {
x = 0;
y = tickOffset;
- wi = slider->width();
+ wi = ceData.rect.width();
he = thickness;
} else {
x = tickOffset;
y = 0;
wi = thickness;
- he = slider->height();
+ he = ceData.rect.height();
}
rect.setRect(x, y, wi, he);
@@ -1085,7 +1087,7 @@ TQRect TQMotifPlusStyle::subRect(SubRect r, const TQWidget *widget) const
}
default:
- rect = TQMotifStyle::subRect(r, widget);
+ rect = TQMotifStyle::subRect(r, ceData, elementFlags, widget);
break;
}
@@ -1096,13 +1098,15 @@ TQRect TQMotifPlusStyle::subRect(SubRect r, const TQWidget *widget) const
/*! \reimp */
void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
SCFlags controls,
SCFlags active,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
if (widget == singleton->hoverWidget)
flags |= Style_MouseOver;
@@ -1111,17 +1115,16 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
case CC_ScrollBar:
{
#ifndef QT_NO_SCROLLBAR
- const TQScrollBar *scrollbar = (const TQScrollBar *) widget;
TQRect addline, subline, addpage, subpage, slider, first, last;
- bool maxedOut = (scrollbar->minValue() == scrollbar->maxValue());
+ bool maxedOut = (ceData.minSteps == ceData.maxSteps);
- subline = querySubControlMetrics(control, widget, SC_ScrollBarSubLine, opt);
- addline = querySubControlMetrics(control, widget, SC_ScrollBarAddLine, opt);
- subpage = querySubControlMetrics(control, widget, SC_ScrollBarSubPage, opt);
- addpage = querySubControlMetrics(control, widget, SC_ScrollBarAddPage, opt);
- slider = querySubControlMetrics(control, widget, SC_ScrollBarSlider, opt);
- first = querySubControlMetrics(control, widget, SC_ScrollBarFirst, opt);
- last = querySubControlMetrics(control, widget, SC_ScrollBarLast, opt);
+ subline = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarSubLine, opt, widget);
+ addline = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarAddLine, opt, widget);
+ subpage = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarSubPage, opt, widget);
+ addpage = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarAddPage, opt, widget);
+ slider = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarSlider, opt, widget);
+ first = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarFirst, opt, widget);
+ last = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarLast, opt, widget);
bool skipUpdate = FALSE;
if (singleton->hovering) {
@@ -1157,67 +1160,67 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
&cg.brush(TQColorGroup::Mid));
if ((controls & SC_ScrollBarSubLine) && subline.isValid())
- drawPrimitive(PE_ScrollBarSubLine, p, subline, cg,
+ drawPrimitive(PE_ScrollBarSubLine, p, ceData, elementFlags, subline, cg,
((active == SC_ScrollBarSubLine ||
singleton->scrollbarElement == SC_ScrollBarSubLine) ?
Style_MouseOver: Style_Default) |
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarSubLine) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : Style_Default));
if ((controls & SC_ScrollBarAddLine) && addline.isValid())
- drawPrimitive(PE_ScrollBarAddLine, p, addline, cg,
+ drawPrimitive(PE_ScrollBarAddLine, p, ceData, elementFlags, addline, cg,
((active == SC_ScrollBarAddLine ||
singleton->scrollbarElement == SC_ScrollBarAddLine) ?
Style_MouseOver: Style_Default) |
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarAddLine) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : Style_Default));
if ((controls & SC_ScrollBarSubPage) && subpage.isValid())
- drawPrimitive(PE_ScrollBarSubPage, p, subpage, cg,
+ drawPrimitive(PE_ScrollBarSubPage, p, ceData, elementFlags, subpage, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarSubPage) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : Style_Default));
if ((controls & SC_ScrollBarAddPage) && addpage.isValid())
- drawPrimitive(PE_ScrollBarAddPage, p, addpage, cg,
+ drawPrimitive(PE_ScrollBarAddPage, p, ceData, elementFlags, addpage, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarAddPage) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : Style_Default));
if ((controls & SC_ScrollBarFirst) && first.isValid())
- drawPrimitive(PE_ScrollBarFirst, p, first, cg,
+ drawPrimitive(PE_ScrollBarFirst, p, ceData, elementFlags, first, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarFirst) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : Style_Default));
if ((controls & SC_ScrollBarLast) && last.isValid())
- drawPrimitive(PE_ScrollBarLast, p, last, cg,
+ drawPrimitive(PE_ScrollBarLast, p, ceData, elementFlags, last, cg,
((maxedOut) ? Style_Default : Style_Enabled) |
((active == SC_ScrollBarLast) ?
Style_Down : Style_Default) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : Style_Default));
if ((controls & SC_ScrollBarSlider) && slider.isValid()) {
- drawPrimitive(PE_ScrollBarSlider, p, slider, cg,
+ drawPrimitive(PE_ScrollBarSlider, p, ceData, elementFlags, slider, cg,
((active == SC_ScrollBarSlider ||
singleton->scrollbarElement == SC_ScrollBarSlider) ?
Style_MouseOver: Style_Default) |
((maxedOut) ? Style_Default : Style_Enabled) |
- ((scrollbar->orientation() == TQt::Horizontal) ?
+ ((ceData.orientation == TQt::Horizontal) ?
Style_Horizontal : Style_Default));
// ### perhaps this should not be able to accept focus if maxedOut?
- if (scrollbar->hasFocus()) {
+ if (elementFlags & CEF_HasFocus) {
TQRect fr(slider.x() + 2, slider.y() + 2,
slider.width() - 5, slider.height() - 5);
- drawPrimitive(PE_FocusRect, p, fr, cg, Style_Default);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, Style_Default);
}
}
#endif
@@ -1227,27 +1230,25 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
case CC_ComboBox:
{
#ifndef QT_NO_COMBOBOX
- const TQComboBox *combobox = (const TQComboBox *) widget;
-
TQRect editfield, arrow;
editfield =
visualRect(querySubControlMetrics(CC_ComboBox,
- combobox,
+ ceData, elementFlags,
SC_ComboBoxEditField,
- opt), widget);
+ opt, widget), ceData, elementFlags);
arrow =
visualRect(querySubControlMetrics(CC_ComboBox,
- combobox,
+ ceData, elementFlags,
SC_ComboBoxArrow,
- opt), widget);
+ opt, widget), ceData, elementFlags);
- if (combobox->editable()) {
+ if (elementFlags & CEF_IsEditable) {
if (controls & SC_ComboBoxEditField && editfield.isValid()) {
editfield.addCoords(-3, -3, 3, 3);
- if (combobox->hasFocus())
+ if (elementFlags & CEF_HasFocus)
editfield.addCoords(1, 1, -1, -1);
drawMotifPlusShade(p, editfield, cg, TRUE, FALSE,
- (widget->isEnabled() ?
+ ((elementFlags & CEF_IsEnabled) ?
&cg.brush(TQColorGroup::Base) :
&cg.brush(TQColorGroup::Background)));
}
@@ -1261,12 +1262,12 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
if (active == SC_ComboBoxArrow)
flags |= Style_Sunken;
- drawPrimitive(PE_ArrowDown, p, arrow, cg, flags);
+ drawPrimitive(PE_ArrowDown, p, ceData, elementFlags, arrow, cg, flags);
}
} else {
if (controls & SC_ComboBoxEditField && editfield.isValid()) {
editfield.addCoords(-3, -3, 3, 3);
- if (combobox->hasFocus())
+ if (elementFlags & CEF_HasFocus)
editfield.addCoords(1, 1, -1, -1);
drawMotifPlusShade(p, editfield, cg, FALSE,
(flags & Style_MouseOver));
@@ -1276,10 +1277,10 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
drawMotifPlusShade(p, arrow, cg, FALSE, (flags & Style_MouseOver));
}
- if (combobox->hasFocus() ||
- (combobox->editable() && combobox->lineEdit()->hasFocus())) {
- TQRect fr = visualRect(subRect(SR_ComboBoxFocusRect, widget), widget);
- drawPrimitive(PE_FocusRect, p, fr, cg, flags);
+ if ((elementFlags & CEF_HasFocus) ||
+ ((elementFlags & CEF_IsEditable) && (ceData.comboBoxLineEditFlags & CEF_HasFocus))) {
+ TQRect fr = visualRect(subRect(SR_ComboBoxFocusRect, ceData, elementFlags, widget), ceData, elementFlags);
+ drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg, flags);
}
#endif
break;
@@ -1288,7 +1289,6 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
case CC_SpinWidget:
{
#ifndef QT_NO_SPINWIDGET
- const TQSpinWidget * sw = (const TQSpinWidget *) widget;
SFlags flags = Style_Default;
if (controls & SC_SpinWidgetFrame)
@@ -1300,14 +1300,14 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
flags |= Style_Down;
PrimitiveElement pe;
- if ( sw->buttonSymbols() == TQSpinWidget::PlusMinus )
+ if ( ceData.spinWidgetData.buttonSymbols == TQSpinWidget::PlusMinus )
pe = PE_SpinWidgetPlus;
else
pe = PE_SpinWidgetUp;
- TQRect re = sw->upRect();
- TQColorGroup ucg = sw->isUpEnabled() ? cg : sw->palette().disabled();
- drawPrimitive(pe, p, re, ucg, flags);
+ TQRect re = ceData.spinWidgetData.upRect;
+ TQColorGroup ucg = ceData.spinWidgetData.upEnabled ? cg : ceData.palette.disabled();
+ drawPrimitive(pe, p, ceData, elementFlags, re, ucg, flags);
}
if (controls & SC_SpinWidgetDown) {
@@ -1316,14 +1316,14 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
flags |= Style_Down;
PrimitiveElement pe;
- if ( sw->buttonSymbols() == TQSpinWidget::PlusMinus )
+ if ( ceData.spinWidgetData.buttonSymbols == TQSpinWidget::PlusMinus )
pe = PE_SpinWidgetMinus;
else
pe = PE_SpinWidgetDown;
- TQRect re = sw->downRect();
- TQColorGroup dcg = sw->isDownEnabled() ? cg : sw->palette().disabled();
- drawPrimitive(pe, p, re, dcg, flags);
+ TQRect re = ceData.spinWidgetData.downRect;
+ TQColorGroup dcg = ceData.spinWidgetData.downEnabled ? cg : ceData.palette.disabled();
+ drawPrimitive(pe, p, ceData, elementFlags, re, dcg, flags);
}
#endif
break;
@@ -1332,21 +1332,20 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
case CC_Slider:
{
#ifndef QT_NO_SLIDER
- const TQSlider *slider = (const TQSlider *) widget;
bool mouseover = (flags & Style_MouseOver);
- TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove,
- opt),
- handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle,
- opt);
+ TQRect groove = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderGroove,
+ opt, widget),
+ handle = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderHandle,
+ opt, widget);
if ((controls & SC_SliderGroove) && groove.isValid()) {
drawMotifPlusShade(p, groove, cg, TRUE, FALSE,
&cg.brush(TQColorGroup::Mid));
if ( flags & Style_HasFocus ) {
- TQRect fr = subRect( SR_SliderFocusRect, widget );
- drawPrimitive( PE_FocusRect, p, fr, cg, flags );
+ TQRect fr = subRect( SR_SliderFocusRect, ceData, elementFlags, widget );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, fr, cg, flags );
}
}
@@ -1356,9 +1355,9 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
flags |= Style_MouseOver;
else
flags &= ~Style_MouseOver;
- drawPrimitive(PE_ButtonBevel, p, handle, cg, flags | Style_Raised);
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, handle, cg, flags | Style_Raised);
- if ( slider->orientation() == Horizontal ) {
+ if ( ceData.orientation == Horizontal ) {
TQCOORD mid = handle.x() + handle.width() / 2;
qDrawShadeLine( p, mid, handle.y() + 1, mid ,
handle.y() + handle.height() - 3,
@@ -1372,15 +1371,15 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
}
if (controls & SC_SliderTickmarks)
- TQMotifStyle::drawComplexControl(control, p, widget, r, cg, flags,
- SC_SliderTickmarks, active, opt);
+ TQMotifStyle::drawComplexControl(control, p, ceData, elementFlags, r, cg, flags,
+ SC_SliderTickmarks, active, opt, widget);
#endif
break;
}
default:
- TQMotifStyle::drawComplexControl(control, p, widget, r, cg, flags,
- controls, active, opt);
+ TQMotifStyle::drawComplexControl(control, p, ceData, elementFlags, r, cg, flags,
+ controls, active, opt, widget);
}
}
@@ -1388,22 +1387,24 @@ void TQMotifPlusStyle::drawComplexControl(ComplexControl control,
/*! \reimp
*/
TQRect TQMotifPlusStyle::querySubControlMetrics(ComplexControl control,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
SubControl subcontrol,
- const TQStyleOption& opt) const
+ const TQStyleOption& opt,
+ const TQWidget *widget) const
{
switch (control) {
case CC_SpinWidget: {
- int fw = pixelMetric( PM_SpinBoxFrameWidth, 0 );
+ int fw = pixelMetric( PM_SpinBoxFrameWidth, ceData, elementFlags, 0 );
TQSize bs;
- bs.setHeight( (widget->height() + 1)/2 );
+ bs.setHeight( (ceData.rect.height() + 1)/2 );
if ( bs.height() < 10 )
bs.setHeight( 10 );
bs.setWidth( bs.height() ); // 1.6 -approximate golden mean
bs = bs.expandedTo( TQApplication::globalStrut() );
int y = 0;
int x, lx, rx, h;
- x = widget->width() - y - bs.width();
+ x = ceData.rect.width() - y - bs.width();
lx = fw;
rx = x - fw * 2;
h = bs.height() * 2;
@@ -1418,7 +1419,7 @@ TQRect TQMotifPlusStyle::querySubControlMetrics(ComplexControl control,
case SC_SpinWidgetEditField:
return TQRect(lx, fw, rx, h - 2*fw);
case SC_SpinWidgetFrame:
- return TQRect( 0, 0, widget->width() - bs.width(), h);
+ return TQRect( 0, 0, ceData.rect.width() - bs.width(), h);
default:
break;
}
@@ -1426,34 +1427,33 @@ TQRect TQMotifPlusStyle::querySubControlMetrics(ComplexControl control,
#ifndef QT_NO_COMBOBOX
case CC_ComboBox: {
- const TQComboBox *combobox = (const TQComboBox *) widget;
- if (combobox->editable()) {
- int space = (combobox->height() - 13) / 2;
+ if (elementFlags & CEF_IsEditable) {
+ int space = (ceData.rect.height() - 13) / 2;
switch (subcontrol) {
case SC_ComboBoxFrame:
return TQRect();
case SC_ComboBoxEditField: {
- TQRect rect = widget->rect();
+ TQRect rect = ceData.rect;
rect.setWidth(rect.width() - 13 - space * 2);
rect.addCoords(3, 3, -3, -3);
return rect; }
case SC_ComboBoxArrow:
- return TQRect(combobox->width() - 13 - space * 2, 0,
- 13 + space * 2, combobox->height());
+ return TQRect(ceData.rect.width() - 13 - space * 2, 0,
+ 13 + space * 2, ceData.rect.height());
default: break; // shouldn't get here
}
} else {
- int space = (combobox->height() - 7) / 2;
+ int space = (ceData.rect.height() - 7) / 2;
switch (subcontrol) {
case SC_ComboBoxFrame:
return TQRect();
case SC_ComboBoxEditField: {
- TQRect rect = widget->rect();
+ TQRect rect = ceData.rect;
rect.addCoords(3, 3, -3, -3);
return rect; }
case SC_ComboBoxArrow: // 12 wide, 7 tall
- return TQRect(combobox->width() - 12 - space, space, 12, 7);
+ return TQRect(ceData.rect.width() - 12 - space, space, 12, 7);
default: break; // shouldn't get here
}
}
@@ -1464,14 +1464,13 @@ TQRect TQMotifPlusStyle::querySubControlMetrics(ComplexControl control,
case CC_Slider: {
if (subcontrol == SC_SliderHandle) {
- const TQSlider *slider = (const TQSlider *) widget;
- int tickOffset = pixelMetric( PM_SliderTickmarkOffset, widget );
- int thickness = pixelMetric( PM_SliderControlThickness, widget );
- int len = pixelMetric( PM_SliderLength, widget ) + 2;
- int sliderPos = slider->sliderStart();
+ int tickOffset = pixelMetric( PM_SliderTickmarkOffset, ceData, elementFlags, widget );
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
+ int len = pixelMetric( PM_SliderLength, ceData, elementFlags, widget ) + 2;
+ int sliderPos = ceData.startStep;
int motifBorder = 2;
- if ( slider->orientation() == Horizontal )
+ if ( ceData.orientation == Horizontal )
return TQRect( sliderPos + motifBorder, tickOffset + motifBorder, len,
thickness - 2*motifBorder );
return TQRect( tickOffset + motifBorder, sliderPos + motifBorder,
@@ -1481,19 +1480,19 @@ TQRect TQMotifPlusStyle::querySubControlMetrics(ComplexControl control,
#endif
default: break;
}
- return TQMotifStyle::querySubControlMetrics(control, widget, subcontrol, opt);
+ return TQMotifStyle::querySubControlMetrics(control, ceData, elementFlags, subcontrol, opt, widget);
}
/*! \reimp */
-bool TQMotifPlusStyle::eventFilter(TQObject *object, TQEvent *event)
+bool TQMotifPlusStyle::objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *event )
{
switch(event->type()) {
case TQEvent::MouseButtonPress:
{
singleton->mousePressed = TRUE;
- if (!::tqt_cast<TQSlider*>(object))
+ if (!ceData.widgetObjectTypes.contains("TQSlider"))
break;
singleton->sliderActive = TRUE;
@@ -1504,50 +1503,52 @@ bool TQMotifPlusStyle::eventFilter(TQObject *object, TQEvent *event)
{
singleton->mousePressed = FALSE;
- if (!::tqt_cast<TQSlider*>(object))
+ if (!ceData.widgetObjectTypes.contains("TQSlider"))
break;
singleton->sliderActive = FALSE;
- ((TQWidget *) object)->repaint(FALSE);
+ widgetActionRequest(ceData, elementFlags, source, WAR_Repaint);
break;
}
case TQEvent::Enter:
{
- if (! object->isWidgetType())
+ if (!ceData.widgetObjectTypes.contains("TQWidget"))
break;
- singleton->hoverWidget = (TQWidget *) object;
- if (! singleton->hoverWidget->isEnabled()) {
+ singleton->hoverWidget = source;
+ singleton->hoverWidgetData = ceData;
+ singleton->hoverWidgetFlags = elementFlags;
+ if (!(singleton->hoverWidgetFlags & CEF_IsEnabled)) {
singleton->hoverWidget = 0;
break;
}
- singleton->hoverWidget->repaint(FALSE);
+ widgetActionRequest(singleton->hoverWidgetData, singleton->hoverWidgetFlags, singleton->hoverWidget, WAR_Repaint);
break;
}
case TQEvent::Leave:
{
- if (object != singleton->hoverWidget)
+ if (source != singleton->hoverWidget)
break;
- TQWidget *w = singleton->hoverWidget;
+ void *w = singleton->hoverWidget;
singleton->hoverWidget = 0;
- w->repaint(FALSE);
+ widgetActionRequest(singleton->hoverWidgetData, singleton->hoverWidgetFlags, w, WAR_Repaint);
break;
}
case TQEvent::MouseMove:
{
- if (! object->isWidgetType() || object != singleton->hoverWidget)
+ if ((!ceData.widgetObjectTypes.contains("TQWidget")) || source != singleton->hoverWidget)
break;
- if (!::tqt_cast<TQScrollBar*>(object) && ! ::tqt_cast<TQSlider*>(object))
+ if ((!ceData.widgetObjectTypes.contains("TQScrollBar")) && (!ceData.widgetObjectTypes.contains("TQSlider")))
break;
singleton->mousePos = ((TQMouseEvent *) event)->pos();
if (! singleton->mousePressed) {
singleton->hovering = TRUE;
- singleton->hoverWidget->repaint(FALSE);
+ widgetActionRequest(singleton->hoverWidgetData, singleton->hoverWidgetFlags, singleton->hoverWidget, WAR_Repaint);
singleton->hovering = FALSE;
}
@@ -1558,15 +1559,17 @@ bool TQMotifPlusStyle::eventFilter(TQObject *object, TQEvent *event)
break;
}
- return TQMotifStyle::eventFilter(object, event);
+ return TQMotifStyle::objectEventHandler(ceData, elementFlags, source, event);
}
/*! \reimp */
int TQMotifPlusStyle::styleHint(StyleHint hint,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQStyleOption &opt,
- TQStyleHintReturn *returnData) const
+ TQStyleHintReturn *returnData,
+ const TQWidget *widget) const
{
int ret;
switch (hint) {
@@ -1574,7 +1577,7 @@ int TQMotifPlusStyle::styleHint(StyleHint hint,
ret = 1;
break;
default:
- ret = TQMotifStyle::styleHint(hint, widget, opt, returnData);
+ ret = TQMotifStyle::styleHint(hint, ceData, elementFlags, opt, returnData, widget);
break;
}
return ret;
diff --git a/src/styles/qmotifstyle.cpp b/src/styles/qmotifstyle.cpp
index ce25794f9..37a5a34cf 100644
--- a/src/styles/qmotifstyle.cpp
+++ b/src/styles/qmotifstyle.cpp
@@ -171,9 +171,9 @@ void TQMotifStyle::polish( TQPalette& pal )
\internal
Keep TQStyle::polish() visible.
*/
-void TQMotifStyle::polish( TQWidget* w )
+void TQMotifStyle::polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{
- TQStyle::polish(w);
+ TQStyle::polish(ceData, elementFlags, ptr);
}
/*!
@@ -181,9 +181,9 @@ void TQMotifStyle::polish( TQWidget* w )
\internal
Keep TQStyle::polish() visible.
*/
-void TQMotifStyle::polish( TQApplication* a )
+void TQMotifStyle::applicationPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{
- TQStyle::polish(a);
+ TQStyle::applicationPolish(ceData, elementFlags, ptr);
}
static void rot(TQPointArray& a, int n)
@@ -204,6 +204,8 @@ static void rot(TQPointArray& a, int n)
*/
void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
@@ -251,7 +253,7 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
case PE_ButtonTool:
case PE_HeaderSection:
qDrawShadePanel( p, r, cg, bool(flags & (Style_Down | Style_On )),
- pixelMetric(PM_DefaultFrameWidth),
+ pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags),
&cg.brush(TQColorGroup::Button) );
break;
@@ -268,7 +270,7 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
r.x(), r.y() + r.height() - 1);
} else
qDrawShadePanel( p, r, cg, !showUp,
- pixelMetric(PM_DefaultFrameWidth), &fill );
+ pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags), &fill );
#endif
break;
}
@@ -509,7 +511,7 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
case PE_SpinWidgetMinus:
{
p->save();
- int fw = pixelMetric( PM_DefaultFrameWidth );
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags );
TQRect br;
br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2,
r.height() - fw*2 );
@@ -547,7 +549,7 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
case PE_SpinWidgetDown:
{
p->save();
- int fw = pixelMetric( PM_DefaultFrameWidth );
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags );
TQRect br;
br.setRect( r.x() + fw, r.y() + fw, r.width() - fw*2,
r.height() - fw*2 );
@@ -576,8 +578,8 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
int bsx = 0;
int bsy = 0;
if ( flags & Style_Sunken ) {
- bsx = pixelMetric(PM_ButtonShiftHorizontal);
- bsy = pixelMetric(PM_ButtonShiftVertical);
+ bsx = pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags);
+ bsy = pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags);
}
p->translate( sx + bsx, sy + bsy );
p->setPen( cg.buttonText() );
@@ -665,7 +667,7 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
case PE_DockWindowResizeHandle:
{
const int motifOffset = 10;
- int sw = pixelMetric( PM_SplitterWidth );
+ int sw = pixelMetric( PM_SplitterWidth, ceData, elementFlags );
if ( flags & Style_Horizontal ) {
TQCOORD yPos = r.y() + r.height() / 2;
TQCOORD kPos = r.width() - motifOffset - sw;
@@ -694,7 +696,7 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
const int markH = 6;
int posX = r.x() + ( r.width() - markW ) / 2 - 1;
int posY = r.y() + ( r.height() - markH ) / 2;
- int dfw = pixelMetric(PM_DefaultFrameWidth);
+ int dfw = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags);
if (dfw < 2) {
// Could do with some optimizing/caching...
@@ -736,12 +738,12 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
case PE_ScrollBarSubLine:
drawPrimitive(((flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp),
- p, r, cg, Style_Enabled | flags);
+ p, ceData, elementFlags, r, cg, Style_Enabled | flags);
break;
case PE_ScrollBarAddLine:
drawPrimitive(((flags & Style_Horizontal) ? PE_ArrowRight : PE_ArrowDown),
- p, r, cg, Style_Enabled | flags);
+ p, ceData, elementFlags, r, cg, Style_Enabled | flags);
break;
case PE_ScrollBarSubPage:
@@ -750,7 +752,7 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
break;
case PE_ScrollBarSlider:
- drawPrimitive(PE_ButtonBevel, p, r, cg,
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, r, cg,
(flags | Style_Raised) & ~Style_Down);
break;
@@ -760,7 +762,7 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
break;
default:
- TQCommonStyle::drawPrimitive( pe, p, r, cg, flags, opt );
+ TQCommonStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt );
break;
}
}
@@ -770,40 +772,40 @@ void TQMotifStyle::drawPrimitive( PrimitiveElement pe,
*/
void TQMotifStyle::drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch( element ) {
case CE_PushButton:
{
#ifndef QT_NO_PUSHBUTTON
int diw, x1, y1, x2, y2;
- const TQPushButton *btn;
TQColorGroup newCg = cg;
- btn = ( const TQPushButton * )widget;
p->setPen( cg.foreground() );
p->setBrush( TQBrush( cg.button(), NoBrush ) );
- diw = pixelMetric( PM_ButtonDefaultIndicator );
+ diw = pixelMetric( PM_ButtonDefaultIndicator, ceData, elementFlags );
r.coords( &x1, &y1, &x2, &y2 );
- if ( btn->isDefault() || btn->autoDefault() ) {
+ if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault)) {
x1 += diw;
y1 += diw;
x2 -= diw;
y2 -= diw;
}
TQBrush fill;
- if ( btn->isDown() )
+ if ( elementFlags & CEF_IsDown )
fill = newCg.brush( TQColorGroup::Mid );
- else if ( btn->isOn() )
+ else if ( elementFlags & CEF_IsOn )
fill = TQBrush( newCg.mid(), Dense4Pattern );
else
fill = newCg.brush( TQColorGroup::Button );
newCg.setBrush( TQColorGroup::Button, fill );
- if ( btn->isDefault() ) {
+ if ( elementFlags & CEF_IsDefault ) {
if ( diw == 0 ) {
TQPointArray a;
a.setPoints( 9,
@@ -819,17 +821,17 @@ void TQMotifStyle::drawControl( ControlElement element,
qDrawShadePanel( p, r, newCg, TRUE );
}
}
- if ( !btn->isFlat() || btn->isOn() || btn->isDown() ) {
+ if ( !( elementFlags & CEF_IsFlat ) || ( elementFlags & CEF_IsOn ) || ( elementFlags & CEF_IsDown ) ) {
TQRect tmp( x1, y1, x2 - x1 + 1, y2 - y1 + 1 );
SFlags flags = Style_Default;
- if ( btn->isOn())
+ if ( elementFlags & CEF_IsOn )
flags |= Style_On;
- if (btn->isDown())
+ if ( elementFlags & CEF_IsDown )
flags |= Style_Down;
p->save();
- p->setBrushOrigin( -widget->backgroundOffset().x(),
- -widget->backgroundOffset().y() );
- drawPrimitive( PE_ButtonCommand, p,
+ p->setBrushOrigin( -ceData.bgOffset.x(),
+ -ceData.bgOffset.y() );
+ drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags,
tmp, newCg,
flags );
p->restore();
@@ -843,47 +845,46 @@ void TQMotifStyle::drawControl( ControlElement element,
case CE_TabBarTab:
{
#ifndef QT_NO_TABBAR
- if ( !widget || !widget->parentWidget() || !opt.tab() )
+ if ( (elementFlags & CEF_UseGenericParameters) || !(elementFlags & CEF_HasParentWidget) || !opt.tab() )
break;
- const TQTabBar * tb = (const TQTabBar *) widget;
const TQTab * t = opt.tab();
- int dfw = pixelMetric( PM_DefaultFrameWidth, tb );
+ int dfw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, widget );
bool selected = flags & Style_Selected;
int o = dfw > 1 ? 1 : 0;
bool lastTab = FALSE;
TQRect r2( r );
- if ( tb->shape() == TQTabBar::RoundedAbove ) {
- if ( styleHint( SH_TabBar_Alignment, tb ) == AlignRight &&
- tb->indexOf( t->identifier() ) == tb->count()-1 )
+ if ( ceData.tabBarData.shape == TQTabBar::RoundedAbove ) {
+ if ( styleHint( SH_TabBar_Alignment, ceData, elementFlags, TQStyleOption::Default, 0, widget ) == AlignRight &&
+ ceData.tabBarData.identIndexMap[t->identifier()] == ceData.tabBarData.tabCount-1 )
lastTab = TRUE;
if ( o ) {
- p->setPen( tb->colorGroup().light() );
+ p->setPen( ceData.colorGroup.light() );
p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() );
- p->setPen( tb->colorGroup().light() );
+ p->setPen( ceData.colorGroup.light() );
p->drawLine( r2.left(), r2.bottom()-1, r2.right(), r2.bottom()-1 );
if ( r2.left() == 0 )
- p->drawPoint( tb->rect().bottomLeft() );
+ p->drawPoint( ceData.rect.bottomLeft() );
}
else {
- p->setPen( tb->colorGroup().light() );
+ p->setPen( ceData.colorGroup.light() );
p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() );
}
if ( selected ) {
p->fillRect( TQRect( r2.left()+1, r2.bottom()-o, r2.width()-3, 2),
- tb->palette().active().brush( TQColorGroup::Background ));
- p->setPen( tb->colorGroup().background() );
+ ceData.palette.active().brush( TQColorGroup::Background ));
+ p->setPen( ceData.colorGroup.background() );
// p->drawLine( r2.left()+1, r2.bottom(), r2.right()-2, r2.bottom() );
// if (o)
// p->drawLine( r2.left()+1, r2.bottom()-1, r2.right()-2, r2.bottom()-1 );
p->drawLine( r2.left()+1, r2.bottom(), r2.left()+1, r2.top()+2 );
- p->setPen( tb->colorGroup().light() );
+ p->setPen( ceData.colorGroup.light() );
} else {
- p->setPen( tb->colorGroup().light() );
+ p->setPen( ceData.colorGroup.light() );
r2.setRect( r2.left() + 2, r2.top() + 2,
r2.width() - 4, r2.height() - 2 );
}
@@ -900,7 +901,7 @@ void TQMotifStyle::drawControl( ControlElement element,
r2.right() - 2, r2.top()+1 );
}
- p->setPen( tb->colorGroup().dark() );
+ p->setPen( ceData.colorGroup.dark() );
p->drawLine( r2.right() - 1, r2.top() + 2,
r2.right() - 1, r2.bottom() - 1 + (selected ? o : -o));
if ( o ) {
@@ -910,19 +911,19 @@ void TQMotifStyle::drawControl( ControlElement element,
(selected ? (lastTab ? 0:1):1+o));
p->drawPoint( r2.right() - 1, r2.top() + 1 );
}
- } else if ( tb->shape() == TQTabBar::RoundedBelow ) {
- if ( styleHint( SH_TabBar_Alignment, tb ) == AlignLeft &&
- tb->indexOf( t->identifier() ) == tb->count()-1 )
+ } else if ( ceData.tabBarData.shape == TQTabBar::RoundedBelow ) {
+ if ( styleHint( SH_TabBar_Alignment, ceData, elementFlags, TQStyleOption::Default, 0, widget ) == AlignLeft &&
+ ceData.tabBarData.identIndexMap[t->identifier()] == ceData.tabBarData.tabCount-1 )
lastTab = TRUE;
if ( selected ) {
p->fillRect( TQRect( r2.left()+1, r2.top(), r2.width()-3, 1),
- tb->palette().active().brush( TQColorGroup::Background ));
- p->setPen( tb->colorGroup().background() );
+ ceData.palette.active().brush( TQColorGroup::Background ));
+ p->setPen( ceData.colorGroup.background() );
// p->drawLine( r2.left()+1, r2.top(), r2.right()-2, r2.top() );
p->drawLine( r2.left()+1, r2.top(), r2.left()+1, r2.bottom()-2 );
- p->setPen( tb->colorGroup().dark() );
+ p->setPen( ceData.colorGroup.dark() );
} else {
- p->setPen( tb->colorGroup().dark() );
+ p->setPen( ceData.colorGroup.dark() );
p->drawLine( r2.left(), r2.top(), r2.right(), r2.top() );
p->drawLine( r2.left() + 1, r2.top() + 1,
r2.right() - (lastTab ? 0 : 2),
@@ -946,14 +947,14 @@ void TQMotifStyle::drawControl( ControlElement element,
r2.left() + 2, r2.bottom() );
}
- p->setPen( tb->colorGroup().light() );
+ p->setPen( ceData.colorGroup.light() );
p->drawLine( r2.left(), r2.top() + (selected ? 0 : 2),
r2.left(), r2.bottom() - 2 );
p->drawLine( r2.left() + 1, r2.top() + (selected ? 0 : 2),
r2.left() + 1, r2.bottom() - 3 );
} else {
- TQCommonStyle::drawControl( element, p, widget, r, cg, flags, opt );
+ TQCommonStyle::drawControl( element, p, ceData, elementFlags, r, cg, flags, opt, widget );
}
#endif
break;
@@ -966,32 +967,31 @@ void TQMotifStyle::drawControl( ControlElement element,
case CE_ProgressBarLabel:
{
#ifndef QT_NO_PROGRESSBAR
- const TQProgressBar * pb = (const TQProgressBar *) widget;
- const int unit_width = pixelMetric( PM_ProgressBarChunkWidth, pb );
+ const int unit_width = pixelMetric( PM_ProgressBarChunkWidth, ceData, elementFlags, widget );
int u = r.width() / unit_width;
- int p_v = pb->progress();
- int t_s = pb->totalSteps();
- if ( u > 0 && pb->progress() >= INT_MAX / u && t_s >= u ) {
+ int p_v = ceData.currentStep;
+ int t_s = ceData.totalSteps;
+ if ( u > 0 && ceData.currentStep >= INT_MAX / u && t_s >= u ) {
// scale down to something usable.
p_v /= u;
t_s /= u;
}
- if ( pb->percentageVisible() && pb->totalSteps() ) {
+ if ( ceData.percentageVisible && ceData.totalSteps ) {
int nu = ( u * p_v + t_s/2 ) / t_s;
int x = unit_width * nu;
- if (pb->indicatorFollowsStyle() || pb->centerIndicator()) {
+ if ((elementFlags & CEF_IndicatorFollowsStyle) || (elementFlags & CEF_CenterIndicator)) {
p->setPen( cg.highlightedText() );
p->setClipRect( r.x(), r.y(), x, r.height() );
- p->drawText( r, AlignCenter | SingleLine, pb->progressString() );
+ p->drawText( r, AlignCenter | SingleLine, ceData.progressText );
- if ( pb->progress() != pb->totalSteps() ) {
+ if ( ceData.currentStep != ceData.totalSteps ) {
p->setClipRect( r.x() + x, r.y(), r.width() - x, r.height() );
p->setPen( cg.highlight() );
- p->drawText( r, AlignCenter | SingleLine, pb->progressString() );
+ p->drawText( r, AlignCenter | SingleLine, ceData.progressText );
}
} else {
p->setPen( cg.text() );
- p->drawText( r, AlignCenter | SingleLine, pb->progressString() );
+ p->drawText( r, AlignCenter | SingleLine, ceData.progressText );
}
}
#endif
@@ -1001,10 +1001,9 @@ void TQMotifStyle::drawControl( ControlElement element,
#ifndef QT_NO_POPUPMENU
case CE_PopupMenuItem:
{
- if (! widget || opt.isDefault())
+ if ((elementFlags & CEF_UseGenericParameters) || opt.isDefault())
break;
- const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
TQMenuItem *mi = opt.menuItem();
if ( !mi )
break;
@@ -1012,7 +1011,7 @@ void TQMotifStyle::drawControl( ControlElement element,
int tab = opt.tabWidth();
int maxpmw = opt.maxIconWidth();
bool dis = ! (flags & Style_Enabled);
- bool checkable = popupmenu->isCheckable();
+ bool checkable = (elementFlags & CEF_IsCheckable);
bool act = flags & Style_Active;
int x, y, w, h;
@@ -1034,7 +1033,7 @@ void TQMotifStyle::drawControl( ControlElement element,
int pw = motifItemFrame;
if ( act && !dis ) { // active item frame
- if (pixelMetric( PM_DefaultFrameWidth ) > 1)
+ if (pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags ) > 1)
qDrawShadePanel( p, x, y, w, h, cg, FALSE, pw,
&cg.brush( TQColorGroup::Button ) );
else
@@ -1086,7 +1085,7 @@ void TQMotifStyle::drawControl( ControlElement element,
if (act)
cflags |= Style_On;
- drawPrimitive(PE_CheckMark, p,
+ drawPrimitive(PE_CheckMark, p, ceData, elementFlags,
TQRect(xvis, y+motifItemFrame, mw, mh),
cg, cflags);
}
@@ -1140,11 +1139,11 @@ void TQMotifStyle::drawControl( ControlElement element,
TQRect vr = visualRect( TQRect(x+w - motifArrowHMargin - motifItemFrame - dim,
y+h/2-dim/2, dim, dim), r );
if ( act )
- drawPrimitive(arrow, p, vr, cg,
+ drawPrimitive(arrow, p, ceData, elementFlags, vr, cg,
(Style_Down |
(dis ? Style_Default : Style_Enabled)) );
else
- drawPrimitive(arrow, p, vr, cg,
+ drawPrimitive(arrow, p, ceData, elementFlags, vr, cg,
(dis ? Style_Default : Style_Enabled));
}
@@ -1159,12 +1158,12 @@ void TQMotifStyle::drawControl( ControlElement element,
&cg.brush(TQColorGroup::Button) );
else // other item
p->fillRect( r, cg.brush(TQColorGroup::Button) );
- TQCommonStyle::drawControl( element, p, widget, r, cg, flags, opt );
+ TQCommonStyle::drawControl( element, p, ceData, elementFlags, r, cg, flags, opt, widget );
break;
}
default:
- TQCommonStyle::drawControl( element, p, widget, r, cg, flags, opt );
+ TQCommonStyle::drawControl( element, p, ceData, elementFlags, r, cg, flags, opt, widget );
break;
}
}
@@ -1220,20 +1219,22 @@ static void get_combo_parameters( const TQRect &r,
*/
void TQMotifStyle::drawComplexControl( ComplexControl control,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
SCFlags sub,
SCFlags subActive,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch ( control ) {
case CC_SpinWidget: {
SCFlags drawSub = SC_None;
if ( sub & SC_SpinWidgetFrame )
qDrawShadePanel( p, r, cg, TRUE,
- pixelMetric( PM_DefaultFrameWidth) );
+ pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags ) );
if ( sub & SC_SpinWidgetUp || sub & SC_SpinWidgetDown ) {
if ( sub & SC_SpinWidgetUp )
@@ -1241,20 +1242,18 @@ void TQMotifStyle::drawComplexControl( ComplexControl control,
if ( sub & SC_SpinWidgetDown )
drawSub |= SC_SpinWidgetDown;
- TQCommonStyle::drawComplexControl( control, p, widget, r, cg, flags,
- drawSub, subActive, opt );
+ TQCommonStyle::drawComplexControl( control, p, ceData, elementFlags, r, cg, flags,
+ drawSub, subActive, opt, widget );
}
break; }
case CC_Slider:
{
#ifndef QT_NO_SLIDER
- const TQSlider * slider = (const TQSlider *) widget;
-
- TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove,
- opt),
- handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle,
- opt);
+ TQRect groove = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderGroove,
+ opt, widget),
+ handle = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderHandle,
+ opt, widget);
if ((sub & SC_SliderGroove) && groove.isValid()) {
qDrawShadePanel( p, groove, cg, TRUE, 2,
@@ -1262,15 +1261,15 @@ void TQMotifStyle::drawComplexControl( ComplexControl control,
if ( flags & Style_HasFocus ) {
- TQRect fr = subRect( SR_SliderFocusRect, widget );
- drawPrimitive( PE_FocusRect, p, fr, cg );
+ TQRect fr = subRect( SR_SliderFocusRect, ceData, elementFlags, widget );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, fr, cg );
}
}
if (( sub & SC_SliderHandle ) && handle.isValid()) {
- drawPrimitive( PE_ButtonBevel, p, handle, cg );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, handle, cg );
- if ( slider->orientation() == Horizontal ) {
+ if ( ceData.orientation == Horizontal ) {
TQCOORD mid = handle.x() + handle.width() / 2;
qDrawShadeLine( p, mid, handle.y(), mid,
handle.y() + handle.height() - 2,
@@ -1284,9 +1283,9 @@ void TQMotifStyle::drawComplexControl( ComplexControl control,
}
if ( sub & SC_SliderTickmarks )
- TQCommonStyle::drawComplexControl( control, p, widget, r, cg, flags,
+ TQCommonStyle::drawComplexControl( control, p, ceData, elementFlags, r, cg, flags,
SC_SliderTickmarks, subActive,
- opt );
+ opt, widget );
#endif
break;
}
@@ -1296,12 +1295,12 @@ void TQMotifStyle::drawComplexControl( ComplexControl control,
if ( sub & SC_ComboBoxArrow ) {
const TQComboBox * cb = (const TQComboBox *) widget;
int awh, ax, ay, sh, sy, dh, ew;
- int fw = pixelMetric( PM_DefaultFrameWidth, cb);
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, cb);
- drawPrimitive( PE_ButtonCommand, p, r, cg, flags );
- TQRect ar = TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, cb, SC_ComboBoxArrow,
- opt ), cb );
- drawPrimitive( PE_ArrowDown, p, ar, cg, flags | Style_Enabled );
+ drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, r, cg, flags );
+ TQRect ar = TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, ceData, elementFlags, SC_ComboBoxArrow,
+ opt, cb ), ceData, elementFlags );
+ drawPrimitive( PE_ArrowDown, p, ceData, elementFlags, ar, cg, flags | Style_Enabled );
TQRect tr = r;
tr.addCoords( fw, fw, -fw, -fw );
@@ -1316,16 +1315,16 @@ void TQMotifStyle::drawComplexControl( ComplexControl control,
p->drawLine( ar.x()+awh-1, sy+1, ar.x()+awh-1, sy+sh-1 );
if ( cb->hasFocus() ) {
- TQRect re = TQStyle::visualRect( subRect( SR_ComboBoxFocusRect, cb ), cb );
- drawPrimitive( PE_FocusRect, p, re, cg );
+ TQRect re = TQStyle::visualRect( subRect( SR_ComboBoxFocusRect, ceData, elementFlags, cb ), ceData, elementFlags );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, re, cg );
}
}
if ( sub & SC_ComboBoxEditField ) {
TQComboBox * cb = (TQComboBox *) widget;
if ( cb->editable() ) {
- TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, cb,
- SC_ComboBoxEditField ), cb );
+ TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, ceData, elementFlags,
+ SC_ComboBoxEditField, cb ), ceData, elementFlags );
er.addCoords( -1, -1, 1, 1);
qDrawShadePanel( p, er, cg, TRUE, 1,
&cg.brush( TQColorGroup::Button ));
@@ -1340,11 +1339,11 @@ void TQMotifStyle::drawComplexControl( ComplexControl control,
if (sub == (SC_ScrollBarAddLine | SC_ScrollBarSubLine | SC_ScrollBarAddPage |
SC_ScrollBarSubPage | SC_ScrollBarFirst | SC_ScrollBarLast |
SC_ScrollBarSlider))
- qDrawShadePanel(p, widget->rect(), cg, TRUE,
- pixelMetric(PM_DefaultFrameWidth, widget),
+ qDrawShadePanel(p, ceData.rect, cg, TRUE,
+ pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget),
&cg.brush(TQColorGroup::Mid));
- TQCommonStyle::drawComplexControl(control, p, widget, r, cg, flags, sub,
- subActive, opt);
+ TQCommonStyle::drawComplexControl(control, p, ceData, elementFlags, r, cg, flags, sub,
+ subActive, opt, widget);
break;
}
@@ -1352,7 +1351,7 @@ void TQMotifStyle::drawComplexControl( ComplexControl control,
case CC_ListView:
{
if ( sub & SC_ListView ) {
- TQCommonStyle::drawComplexControl( control, p, widget, r, cg, flags, sub, subActive, opt );
+ TQCommonStyle::drawComplexControl( control, p, ceData, elementFlags, r, cg, flags, sub, subActive, opt, widget );
}
if ( sub & ( SC_ListViewBranch | SC_ListViewExpand ) ) {
if (opt.isDefault())
@@ -1455,14 +1454,14 @@ void TQMotifStyle::drawComplexControl( ComplexControl control,
#endif // QT_NO_LISTVIEW
default:
- TQCommonStyle::drawComplexControl( control, p, widget, r, cg, flags,
- sub, subActive, opt );
+ TQCommonStyle::drawComplexControl( control, p, ceData, elementFlags, r, cg, flags,
+ sub, subActive, opt, widget );
}
}
/*! \reimp */
-int TQMotifStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) const
+int TQMotifStyle::pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const
{
int ret;
@@ -1519,9 +1518,9 @@ int TQMotifStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) cons
#ifndef QT_NO_SLIDER
const TQSlider * sl = (const TQSlider *) widget;
if ( sl->orientation() == Horizontal )
- ret = sl->width() - pixelMetric( PM_SliderLength, sl ) - 6;
+ ret = sl->width() - pixelMetric( PM_SliderLength, ceData, elementFlags, sl ) - 6;
else
- ret = sl->height() - pixelMetric( PM_SliderLength, sl ) - 6;
+ ret = sl->height() - pixelMetric( PM_SliderLength, ceData, elementFlags, sl ) - 6;
#endif
break;
}
@@ -1540,7 +1539,7 @@ int TQMotifStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) cons
break;
default:
- ret = TQCommonStyle::pixelMetric( metric, widget );
+ ret = TQCommonStyle::pixelMetric( metric, ceData, elementFlags, widget );
break;
}
return ret;
@@ -1550,24 +1549,26 @@ int TQMotifStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) cons
/*!\reimp
*/
TQRect TQMotifStyle::querySubControlMetrics( ComplexControl control,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
SubControl sc,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch ( control ) {
case CC_SpinWidget: {
- if ( !widget )
+ if ( elementFlags & CEF_UseGenericParameters )
return TQRect();
- int fw = pixelMetric( PM_SpinBoxFrameWidth, 0 );
+ int fw = pixelMetric( PM_SpinBoxFrameWidth, ceData, elementFlags, 0 );
TQSize bs;
- bs.setHeight( widget->height()/2 );
+ bs.setHeight( ceData.rect.height()/2 );
if ( bs.height() < 8 )
bs.setHeight( 8 );
- bs.setWidth( TQMIN( bs.height() * 8 / 5, widget->width() / 4 ) ); // 1.6 -approximate golden mean
+ bs.setWidth( TQMIN( bs.height() * 8 / 5, ceData.rect.width() / 4 ) ); // 1.6 -approximate golden mean
bs = bs.expandedTo( TQApplication::globalStrut() );
int y = 0;
int x, lx, rx;
- x = widget->width() - y - bs.width();
+ x = ceData.rect.width() - y - bs.width();
lx = fw;
rx = x - fw * 2;
switch ( sc ) {
@@ -1576,12 +1577,12 @@ TQRect TQMotifStyle::querySubControlMetrics( ComplexControl control,
case SC_SpinWidgetDown:
return TQRect(x, y + bs.height(), bs.width(), bs.height());
case SC_SpinWidgetButtonField:
- return TQRect(x, y, bs.width(), widget->height() - 2*fw);
+ return TQRect(x, y, bs.width(), ceData.rect.height() - 2*fw);
case SC_SpinWidgetEditField:
- return TQRect(lx, fw, rx, widget->height() - 2*fw);
+ return TQRect(lx, fw, rx, ceData.rect.height() - 2*fw);
case SC_SpinWidgetFrame:
return TQRect( 0, 0,
- widget->width() - bs.width(), widget->height() );
+ ceData.rect.width() - bs.width(), ceData.rect.height() );
default:
break;
}
@@ -1590,14 +1591,13 @@ TQRect TQMotifStyle::querySubControlMetrics( ComplexControl control,
#ifndef QT_NO_SLIDER
case CC_Slider: {
if (sc == SC_SliderHandle) {
- const TQSlider * sl = (const TQSlider *) widget;
- int tickOffset = pixelMetric( PM_SliderTickmarkOffset, sl );
- int thickness = pixelMetric( PM_SliderControlThickness, sl );
- int sliderPos = sl->sliderStart();
- int len = pixelMetric( PM_SliderLength, sl );
+ int tickOffset = pixelMetric( PM_SliderTickmarkOffset, ceData, elementFlags, widget );
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
+ int sliderPos = ceData.startStep;
+ int len = pixelMetric( PM_SliderLength, ceData, elementFlags, widget );
int motifBorder = 3;
- if ( sl->orientation() == Horizontal )
+ if ( ceData.orientation == Horizontal )
return TQRect( sliderPos + motifBorder, tickOffset + motifBorder, len,
thickness - 2*motifBorder );
return TQRect( tickOffset + motifBorder, sliderPos + motifBorder,
@@ -1608,25 +1608,24 @@ TQRect TQMotifStyle::querySubControlMetrics( ComplexControl control,
#ifndef QT_NO_SCROLLBAR
case CC_ScrollBar: {
- if (! widget)
+ if (elementFlags & CEF_UseGenericParameters)
return TQRect();
- const TQScrollBar *scrollbar = (const TQScrollBar *) widget;
- int sliderstart = scrollbar->sliderStart();
- int sbextent = pixelMetric(PM_ScrollBarExtent, widget);
- int fw = pixelMetric(PM_DefaultFrameWidth, widget);
+ int sliderstart = ceData.startStep;
+ int sbextent = pixelMetric(PM_ScrollBarExtent, ceData, elementFlags, widget);
+ int fw = pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags, widget);
int buttonw = sbextent - (fw * 2);
int buttonh = sbextent - (fw * 2);
- int maxlen = ((scrollbar->orientation() == TQt::Horizontal) ?
- scrollbar->width() : scrollbar->height()) -
+ int maxlen = ((ceData.orientation == TQt::Horizontal) ?
+ ceData.rect.width() : ceData.rect.height()) -
(buttonw * 2) - (fw * 2);
int sliderlen;
// calculate slider length
- if (scrollbar->maxValue() != scrollbar->minValue()) {
- uint range = scrollbar->maxValue() - scrollbar->minValue();
- sliderlen = (scrollbar->pageStep() * maxlen) /
- (range + scrollbar->pageStep());
+ if (ceData.maxSteps != ceData.minSteps) {
+ uint range = ceData.maxSteps - ceData.minSteps;
+ sliderlen = (ceData.pageStep * maxlen) /
+ (range + ceData.pageStep);
if ( sliderlen < 9 || range > INT_MAX/2 )
sliderlen = 9;
@@ -1638,47 +1637,47 @@ TQRect TQMotifStyle::querySubControlMetrics( ComplexControl control,
switch (sc) {
case SC_ScrollBarSubLine:
// top/left button
- if (scrollbar->orientation() == TQt::Horizontal) {
- if ( scrollbar->width()/2 < sbextent )
- buttonw = scrollbar->width()/2 - (fw*2);
+ if (ceData.orientation == TQt::Horizontal) {
+ if ( ceData.rect.width()/2 < sbextent )
+ buttonw = ceData.rect.width()/2 - (fw*2);
return TQRect(fw, fw, buttonw, buttonh);
} else {
- if ( scrollbar->height()/2 < sbextent )
- buttonh = scrollbar->height()/2 - (fw*2);
+ if ( ceData.rect.height()/2 < sbextent )
+ buttonh = ceData.rect.height()/2 - (fw*2);
return TQRect(fw, fw, buttonw, buttonh);
}
case SC_ScrollBarAddLine:
// bottom/right button
- if (scrollbar->orientation() == TQt::Horizontal) {
- if ( scrollbar->width()/2 < sbextent )
- buttonw = scrollbar->width()/2 - (fw*2);
- return TQRect(scrollbar->width() - buttonw - fw, fw,
+ if (ceData.orientation == TQt::Horizontal) {
+ if ( ceData.rect.width()/2 < sbextent )
+ buttonw = ceData.rect.width()/2 - (fw*2);
+ return TQRect(ceData.rect.width() - buttonw - fw, fw,
buttonw, buttonh);
} else {
- if ( scrollbar->height()/2 < sbextent )
- buttonh = scrollbar->height()/2 - (fw*2);
- return TQRect(fw, scrollbar->height() - buttonh - fw,
+ if ( ceData.rect.height()/2 < sbextent )
+ buttonh = ceData.rect.height()/2 - (fw*2);
+ return TQRect(fw, ceData.rect.height() - buttonh - fw,
buttonw, buttonh);
}
case SC_ScrollBarSubPage:
- if (scrollbar->orientation() == TQt::Horizontal)
+ if (ceData.orientation == TQt::Horizontal)
return TQRect(buttonw + fw, fw, sliderstart - buttonw - fw, buttonw);
return TQRect(fw, buttonw + fw, buttonw, sliderstart - buttonw - fw);
case SC_ScrollBarAddPage:
- if (scrollbar->orientation() == TQt::Horizontal)
+ if (ceData.orientation == TQt::Horizontal)
return TQRect(sliderstart + sliderlen, fw,
maxlen - sliderstart - sliderlen + buttonw + fw, buttonw);
return TQRect(fw, sliderstart + sliderlen, buttonw,
maxlen - sliderstart - sliderlen + buttonw + fw);
case SC_ScrollBarGroove:
- if (scrollbar->orientation() == TQt::Horizontal)
+ if (ceData.orientation == TQt::Horizontal)
return TQRect(buttonw + fw, fw, maxlen, buttonw);
return TQRect(fw, buttonw + fw, buttonw, maxlen);
case SC_ScrollBarSlider:
- if (scrollbar->orientation() == TQt::Horizontal)
+ if (ceData.orientation == TQt::Horizontal)
return TQRect(sliderstart, fw, sliderlen, buttonw);
return TQRect(fw, sliderstart, buttonw, sliderlen);
@@ -1693,18 +1692,16 @@ TQRect TQMotifStyle::querySubControlMetrics( ComplexControl control,
switch ( sc ) {
case SC_ComboBoxArrow: {
- const TQComboBox * cb = (const TQComboBox *) widget;
int ew, awh, sh, dh, ax, ay, sy;
- int fw = pixelMetric( PM_DefaultFrameWidth, cb );
- TQRect cr = cb->rect();
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, widget );
+ TQRect cr = ceData.rect;
cr.addCoords( fw, fw, -fw, -fw );
get_combo_parameters( cr, ew, awh, ax, ay, sh, dh, sy );
return TQRect( ax, ay, awh, awh ); }
case SC_ComboBoxEditField: {
- const TQComboBox * cb = (const TQComboBox *) widget;
- int fw = pixelMetric( PM_DefaultFrameWidth, cb );
- TQRect rect = cb->rect();
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, widget );
+ TQRect rect = ceData.rect;
rect.addCoords( fw, fw, -fw, -fw );
int ew = get_combo_extra_width( rect.height(), rect.width() );
rect.addCoords( 1, 1, -1-ew, -1 );
@@ -1717,15 +1714,17 @@ TQRect TQMotifStyle::querySubControlMetrics( ComplexControl control,
#endif
default: break;
}
- return TQCommonStyle::querySubControlMetrics( control, widget, sc, opt );
+ return TQCommonStyle::querySubControlMetrics( control, ceData, elementFlags, sc, opt, widget );
}
/*!\reimp
*/
TQSize TQMotifStyle::sizeFromContents( ContentsType contents,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQSize &contentsSize,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
TQSize sz(contentsSize);
@@ -1733,10 +1732,9 @@ TQSize TQMotifStyle::sizeFromContents( ContentsType contents,
case CT_PushButton:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
- sz = TQCommonStyle::sizeFromContents(contents, widget, contentsSize, opt);
- if ((button->isDefault() || button->autoDefault()) &&
- sz.width() < 80 && ! button->pixmap())
+ sz = TQCommonStyle::sizeFromContents(contents, ceData, elementFlags, contentsSize, opt, widget);
+ if (((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault)) &&
+ sz.width() < 80 && ceData.fgPixmap.isNull())
sz.setWidth(80);
#endif
break;
@@ -1745,11 +1743,10 @@ TQSize TQMotifStyle::sizeFromContents( ContentsType contents,
case CT_PopupMenuItem:
{
#ifndef QT_NO_POPUPMENU
- if (! widget || opt.isDefault())
+ if ((elementFlags & CEF_UseGenericParameters) || opt.isDefault())
break;
- const TQPopupMenu *popup = (TQPopupMenu *) widget;
- bool checkable = popup->isCheckable();
+ bool checkable = (elementFlags & CEF_IsCheckable);
TQMenuItem *mi = opt.menuItem();
int maxpmw = opt.maxIconWidth();
int w = sz.width(), h = sz.height();
@@ -1794,7 +1791,7 @@ TQSize TQMotifStyle::sizeFromContents( ContentsType contents,
}
default:
- sz = TQCommonStyle::sizeFromContents( contents, widget, contentsSize, opt );
+ sz = TQCommonStyle::sizeFromContents( contents, ceData, elementFlags, contentsSize, opt, widget );
break;
}
@@ -1803,21 +1800,21 @@ TQSize TQMotifStyle::sizeFromContents( ContentsType contents,
/*!\reimp
*/
-TQRect TQMotifStyle::subRect( SubRect r, const TQWidget *widget ) const
+TQRect TQMotifStyle::subRect( SubRect r, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const
{
TQRect rect;
- TQRect wrect = widget->rect();
+ TQRect wrect = ceData.rect;
switch ( r ) {
case SR_SliderFocusRect:
- rect = TQCommonStyle::subRect( r, widget );
+ rect = TQCommonStyle::subRect( r, ceData, elementFlags, widget );
rect.addCoords( 2, 2, -2, -2 );
break;
case SR_ComboBoxFocusRect:
{
int awh, ax, ay, sh, sy, dh, ew;
- int fw = pixelMetric( PM_DefaultFrameWidth, widget );
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, widget );
TQRect tr = wrect;
tr.addCoords( fw, fw, -fw, -fw );
@@ -1829,17 +1826,16 @@ TQRect TQMotifStyle::subRect( SubRect r, const TQWidget *widget ) const
case SR_DockWindowHandleRect:
{
#ifndef QT_NO_MAINWINDOW
- if ( !widget || !widget->parent() )
+ if ( (elementFlags & CEF_UseGenericParameters) || !(elementFlags & CEF_HasParentWidget) )
break;
- const TQDockWindow * dw = (const TQDockWindow *) widget->parent();
- if ( !dw->area() || !dw->isCloseEnabled() )
- rect.setRect( 0, 0, widget->width(), widget->height() );
+ if ( !ceData.dwData.hasDockArea || !ceData.dwData.closeEnabled )
+ rect.setRect( 0, 0, ceData.rect.width(), ceData.rect.height() );
else {
- if ( dw->area()->orientation() == Horizontal )
- rect.setRect(2, 15, widget->width()-2, widget->height() - 15);
+ if ( ceData.dwData.areaOrientation == Horizontal )
+ rect.setRect(2, 15, ceData.rect.width()-2, ceData.rect.height() - 15);
else
- rect.setRect(0, 2, widget->width() - 15, widget->height() - 2);
+ rect.setRect(0, 2, ceData.rect.width() - 15, ceData.rect.height() - 2);
}
#endif
break;
@@ -1849,15 +1845,14 @@ TQRect TQMotifStyle::subRect( SubRect r, const TQWidget *widget ) const
case SR_ProgressBarContents:
{
#ifndef QT_NO_PROGRESSBAR
- TQFontMetrics fm( ( widget ? widget->fontMetrics() :
+ TQFontMetrics fm( ( (!(elementFlags & CEF_UseGenericParameters)) ? TQFontMetrics(ceData.font) :
TQApplication::fontMetrics() ) );
- const TQProgressBar *progressbar = (const TQProgressBar *) widget;
int textw = 0;
- if (progressbar->percentageVisible())
+ if (ceData.percentageVisible)
textw = fm.width("100%") + 6;
- if (progressbar->indicatorFollowsStyle() ||
- progressbar->centerIndicator())
+ if ((elementFlags & CEF_IndicatorFollowsStyle) ||
+ (elementFlags & CEF_CenterIndicator))
rect = wrect;
else
rect.setCoords(wrect.left(), wrect.top(),
@@ -1869,15 +1864,14 @@ TQRect TQMotifStyle::subRect( SubRect r, const TQWidget *widget ) const
case SR_ProgressBarLabel:
{
#ifndef QT_NO_PROGRESSBAR
- TQFontMetrics fm( ( widget ? widget->fontMetrics() :
+ TQFontMetrics fm( ( (!(elementFlags & CEF_UseGenericParameters)) ? TQFontMetrics(ceData.font) :
TQApplication::fontMetrics() ) );
- const TQProgressBar *progressbar = (const TQProgressBar *) widget;
int textw = 0;
- if (progressbar->percentageVisible())
+ if (ceData.percentageVisible)
textw = fm.width("100%") + 6;
- if (progressbar->indicatorFollowsStyle() ||
- progressbar->centerIndicator())
+ if ((elementFlags & CEF_IndicatorFollowsStyle) ||
+ (elementFlags & CEF_CenterIndicator))
rect = wrect;
else
rect.setCoords(wrect.right() - textw, wrect.top(),
@@ -1889,7 +1883,7 @@ TQRect TQMotifStyle::subRect( SubRect r, const TQWidget *widget ) const
case SR_CheckBoxContents:
{
#ifndef QT_NO_CHECKBOX
- TQRect ir = subRect(SR_CheckBoxIndicator, widget);
+ TQRect ir = subRect(SR_CheckBoxIndicator, ceData, elementFlags, widget);
rect.setRect(ir.right() + 10, wrect.y(),
wrect.width() - ir.width() - 10, wrect.height());
#endif
@@ -1898,14 +1892,14 @@ TQRect TQMotifStyle::subRect( SubRect r, const TQWidget *widget ) const
case SR_RadioButtonContents:
{
- TQRect ir = subRect(SR_RadioButtonIndicator, widget);
+ TQRect ir = subRect(SR_RadioButtonIndicator, ceData, elementFlags, widget);
rect.setRect(ir.right() + 10, wrect.y(),
wrect.width() - ir.width() - 10, wrect.height());
break;
}
default:
- rect = TQCommonStyle::subRect( r, widget );
+ rect = TQCommonStyle::subRect( r, ceData, elementFlags, widget );
}
return rect;
@@ -2228,8 +2222,10 @@ static const char *const question_xpm[] = {
\reimp
*/
TQPixmap TQMotifStyle::stylePixmap(StylePixmap sp,
- const TQWidget *widget,
- const TQStyleOption& opt) const
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQStyleOption& opt,
+ const TQWidget *widget) const
{
#ifndef QT_NO_IMAGEIO_XPM
switch (sp) {
@@ -2306,15 +2302,17 @@ TQPixmap TQMotifStyle::stylePixmap(StylePixmap sp,
}
#endif
- return TQCommonStyle::stylePixmap(sp, widget, opt);
+ return TQCommonStyle::stylePixmap(sp, ceData, elementFlags, opt, widget);
}
/*! \reimp */
int TQMotifStyle::styleHint(StyleHint hint,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQStyleOption &opt,
- TQStyleHintReturn *returnData) const
+ TQStyleHintReturn *returnData,
+ const TQWidget *widget) const
{
int ret;
@@ -2348,7 +2346,7 @@ int TQMotifStyle::styleHint(StyleHint hint,
break;
default:
- ret = TQCommonStyle::styleHint(hint, widget, opt, returnData);
+ ret = TQCommonStyle::styleHint(hint, ceData, elementFlags, opt, returnData, widget);
break;
}
diff --git a/src/styles/qplatinumstyle.cpp b/src/styles/qplatinumstyle.cpp
index 8f9f9ab75..2bc0e4590 100644
--- a/src/styles/qplatinumstyle.cpp
+++ b/src/styles/qplatinumstyle.cpp
@@ -86,6 +86,8 @@ TQPlatinumStyle::~TQPlatinumStyle()
*/
void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
@@ -98,7 +100,7 @@ void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
// sunken...
if ( flags & Style_Sunken )
flags ^= Style_Sunken;
- drawPrimitive( PE_ButtonBevel, p, r, cg, flags, opt );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, r, cg, flags, opt );
break;
}
case PE_ButtonTool:
@@ -115,7 +117,7 @@ void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
fill = myCG.brush( TQColorGroup::Button );
myCG.setBrush( TQColorGroup::Mid, fill );
- drawPrimitive( PE_ButtonBevel, p, r, myCG, flags, opt );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, r, myCG, flags, opt );
break;
}
case PE_ButtonBevel:
@@ -450,7 +452,7 @@ void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
}
case PE_Indicator:
{
- drawPrimitive( PE_ButtonBevel, p, TQRect(r.x(), r.y(),
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, TQRect(r.x(), r.y(),
r.width() - 2, r.height()),
cg, flags );
p->fillRect( r.x() + r.width() - 2, r.y(), 2, r.height(),
@@ -606,14 +608,14 @@ void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
}
case PE_ScrollBarAddLine:
{
- drawPrimitive( PE_ButtonBevel, p, r, cg,
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, r, cg,
(flags & Style_Enabled) | ((flags & Style_Down)
? Style_Sunken
: Style_Raised) );
p->setPen( cg.shadow() );
p->drawRect( r );
drawPrimitive( ((flags & Style_Horizontal) ? PE_ArrowRight
- : PE_ArrowDown), p, TQRect(r.x() + 2,
+ : PE_ArrowDown), p, ceData, elementFlags, TQRect(r.x() + 2,
r.y() + 2,
r.width() - 4,
r.height() - 4),
@@ -622,14 +624,14 @@ void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
}
case PE_ScrollBarSubLine:
{
- drawPrimitive( PE_ButtonBevel, p, r, cg,
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, r, cg,
(flags & Style_Enabled) | ((flags & Style_Down)
? Style_Sunken
: Style_Raised) );
p->setPen( cg.shadow() );
p->drawRect( r );
drawPrimitive( ((flags & Style_Horizontal) ? PE_ArrowLeft
- : PE_ArrowUp ), p, TQRect(r.x() + 2,
+ : PE_ArrowUp ), p, ceData, elementFlags, TQRect(r.x() + 2,
r.y() + 2,
r.width() - 4,
r.height() - 4),
@@ -715,14 +717,14 @@ void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
{
TQPoint bo = p->brushOrigin();
p->setBrushOrigin( r.topLeft() );
- drawPrimitive( PE_ButtonBevel, p, r, cg, Style_Raised );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, r, cg, Style_Raised );
p->setBrushOrigin( bo );
drawRiffles( p, r.x(), r.y(), r.width(), r.height(), cg,
flags & Style_Horizontal );
p->setPen( cg.shadow() );
p->drawRect( r );
if ( flags & Style_HasFocus ) {
- drawPrimitive( PE_FocusRect, p, TQRect(r.x() + 2, r.y() + 2,
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, TQRect(r.x() + 2, r.y() + 2,
r.width() - 5,
r.height() - 5 ),
cg, flags );
@@ -730,7 +732,7 @@ void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
break;
}
default:
- TQWindowsStyle::drawPrimitive( pe, p, r, cg, flags, opt );
+ TQWindowsStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt );
break;
}
@@ -740,36 +742,36 @@ void TQPlatinumStyle::drawPrimitive( PrimitiveElement pe,
*/
void TQPlatinumStyle::drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch( element ) {
case CE_PushButton:
{
#ifndef QT_NO_PUSHBUTTON
TQColorGroup myCg( cg );
- const TQPushButton *btn;
int x1, y1, x2, y2;
bool useBevelButton;
SFlags flags;
flags = Style_Default;
- btn = (const TQPushButton*)widget;
- p->setBrushOrigin( -widget->backgroundOffset().x(),
- -widget->backgroundOffset().y() );
+ p->setBrushOrigin( -ceData.bgOffset.x(),
+ -ceData.bgOffset.y() );
// take care of the flags based on what we know...
- if ( btn->isDown() )
+ if ( elementFlags & CEF_IsDown )
flags |= Style_Down;
- if ( btn->isOn() )
+ if ( elementFlags & CEF_IsOn )
flags |= Style_On;
- if ( btn->isEnabled() )
+ if ( elementFlags & CEF_IsEnabled )
flags |= Style_Enabled;
- if ( btn->isDefault() )
+ if ( elementFlags & CEF_IsDefault )
flags |= Style_Default;
- if (! btn->isFlat() && !(flags & Style_Down))
+ if (! ( elementFlags & CEF_IsFlat ) && !(flags & Style_Down))
flags |= Style_Raised;
r.coords( &x1, &y1, &x2, &y2 );
@@ -778,28 +780,28 @@ void TQPlatinumStyle::drawControl( ControlElement element,
p->setBrush( TQBrush(cg.button(), NoBrush) );
TQBrush fill;
- if ( btn->isDown() ) {
+ if ( elementFlags & CEF_IsDown ) {
fill = cg.brush( TQColorGroup::Dark );
// this could be done differently, but this
// makes a down Bezel drawn correctly...
myCg.setBrush( TQColorGroup::Mid, fill );
- } else if ( btn->isOn() ) {
+ } else if ( elementFlags & CEF_IsOn ) {
fill = TQBrush( cg.mid(), Dense4Pattern );
myCg.setBrush( TQColorGroup::Mid, fill );
}
// to quote the old TQPlatinumStlye drawPushButton...
// small or square image buttons as well as toggle buttons are
// bevel buttons (what a heuristic....)
- if ( btn->isToggleButton()
- || ( btn->pixmap() &&
- (btn->width() * btn->height() < 1600 ||
- TQABS( btn->width() - btn->height()) < 10 )) )
+ if ( ( elementFlags & CEF_BiState )
+ || ( (!ceData.fgPixmap.isNull()) &&
+ (ceData.rect.width() * ceData.rect.height() < 1600 ||
+ TQABS( ceData.rect.width() - ceData.rect.height()) < 10 )) )
useBevelButton = TRUE;
else
useBevelButton = FALSE;
- int diw = pixelMetric( PM_ButtonDefaultIndicator, widget );
- if ( btn->isDefault() ) {
+ int diw = pixelMetric( PM_ButtonDefaultIndicator, ceData, elementFlags, widget );
+ if ( elementFlags & CEF_IsDefault ) {
x1 += 1;
y1 += 1;
x2 -= 1;
@@ -814,37 +816,37 @@ void TQPlatinumStyle::drawControl( ControlElement element,
cg2.setColor( TQColorGroup::Button, cg.mid() );
if ( useBevelButton ) {
- drawPrimitive( PE_ButtonBevel, p, TQRect( x1, y1,
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, TQRect( x1, y1,
x2 - x1 + 1,
y2 - y1 + 1 ),
myCg, myFlags, opt );
} else {
- drawPrimitive( PE_ButtonCommand, p, TQRect( x1, y1,
+ drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, TQRect( x1, y1,
x2 - x1 + 1,
y2 - y1 + 1 ),
cg2, myFlags, opt );
}
}
- if ( btn->isDefault() || btn->autoDefault() ) {
+ if ( ( elementFlags & CEF_IsDefault ) || ( elementFlags & CEF_AutoDefault ) ) {
x1 += diw;
y1 += diw;
x2 -= diw;
y2 -= diw;
}
- if ( !btn->isFlat() || btn->isOn() || btn->isDown() ) {
+ if ( (!( elementFlags & CEF_IsFlat )) || ( elementFlags & CEF_IsOn ) || ( elementFlags & CEF_IsDown ) ) {
if ( useBevelButton ) {
// fix for toggle buttons...
if ( flags & (Style_Down | Style_On) )
flags |= Style_Sunken;
- drawPrimitive( PE_ButtonBevel, p, TQRect( x1, y1,
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, TQRect( x1, y1,
x2 - x1 + 1,
y2 - y1 + 1 ),
myCg, flags, opt );
} else {
- drawPrimitive( PE_ButtonCommand, p, TQRect( x1, y1,
+ drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, TQRect( x1, y1,
x2 - x1 + 1,
y2 - y1 + 1 ),
myCg, flags, opt );
@@ -860,16 +862,14 @@ void TQPlatinumStyle::drawControl( ControlElement element,
case CE_PushButtonLabel:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *btn;
bool on;
int x, y, w, h;
SFlags flags;
flags = Style_Default;
- btn = (const TQPushButton*)widget;
- on = btn->isDown() || btn->isOn();
+ on = (( elementFlags & CEF_IsDown ) || ( elementFlags & CEF_IsOn ));
r.rect( &x, &y, &w, &h );
- if ( btn->isMenuButton() ) {
- int dx = pixelMetric( PM_MenuButtonIndicator, widget );
+ if ( elementFlags & CEF_IsMenuWidget ) {
+ int dx = pixelMetric( PM_MenuButtonIndicator, ceData, elementFlags, widget );
TQColorGroup g = cg;
int xx = x + w - dx - 4;
@@ -884,23 +884,23 @@ void TQPlatinumStyle::drawControl( ControlElement element,
p->setPen( g.light() );
p->drawLine( xx + 2, yy + 2, xx + 2, yy + hh - 2 );
}
- if ( btn->isEnabled() )
+ if ( elementFlags & CEF_IsEnabled )
flags |= Style_Enabled;
- drawPrimitive( PE_ArrowDown, p, TQRect(x + w - dx - 1, y + 2,
+ drawPrimitive( PE_ArrowDown, p, ceData, elementFlags, TQRect(x + w - dx - 1, y + 2,
dx, h - 4),
g, flags, opt );
w -= dx;
}
#ifndef QT_NO_ICONSET
- if ( btn->iconSet() && !btn->iconSet()->isNull() ) {
- TQIconSet::Mode mode = btn->isEnabled()
+ if ( !ceData.iconSet.isNull() ) {
+ TQIconSet::Mode mode = ( elementFlags & CEF_IsEnabled )
? TQIconSet::Normal : TQIconSet::Disabled;
- if ( mode == TQIconSet::Normal && btn->hasFocus() )
+ if ( mode == TQIconSet::Normal && ( elementFlags & CEF_HasFocus ) )
mode = TQIconSet::Active;
TQIconSet::State state = TQIconSet::Off;
- if ( btn->isToggleButton() && btn->isOn() )
+ if ( ( elementFlags & CEF_BiState ) && ( elementFlags & CEF_IsOn ) )
state = TQIconSet::On;
- TQPixmap pixmap = btn->iconSet()->pixmap( TQIconSet::Small,
+ TQPixmap pixmap = ceData.iconSet.pixmap( TQIconSet::Small,
mode, state );
int pixw = pixmap.width();
int pixh = pixmap.height();
@@ -911,19 +911,19 @@ void TQPlatinumStyle::drawControl( ControlElement element,
#endif
drawItem( p, TQRect( x, y, w, h ),
AlignCenter | ShowPrefix,
- btn->colorGroup(), btn->isEnabled(),
- btn->pixmap(), btn->text(), -1,
- on ? &btn->colorGroup().brightText()
- : &btn->colorGroup().buttonText() );
- if ( btn->hasFocus() )
- drawPrimitive( PE_FocusRect, p,
- subRect(SR_PushButtonFocusRect, widget),
+ ceData.colorGroup, ( elementFlags & CEF_IsEnabled ),
+ (ceData.fgPixmap.isNull())?NULL:&ceData.fgPixmap, ceData.text, -1,
+ on ? &ceData.colorGroup.brightText()
+ : &ceData.colorGroup.buttonText() );
+ if ( elementFlags & CEF_HasFocus )
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags,
+ subRect(SR_PushButtonFocusRect, ceData, elementFlags, widget),
cg, flags );
break;
#endif
}
default:
- TQWindowsStyle::drawControl( element, p, widget, r, cg, how, opt );
+ TQWindowsStyle::drawControl( element, p, ceData, elementFlags, r, cg, how, opt, widget );
break;
}
}
@@ -932,13 +932,15 @@ void TQPlatinumStyle::drawControl( ControlElement element,
*/
void TQPlatinumStyle::drawComplexControl( ComplexControl control,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags how,
SCFlags sub,
SCFlags subActive,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch ( control ) {
case CC_ComboBox:
@@ -1010,8 +1012,8 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
p->drawPoint( x + w - 3, y + h - 3 );
if ( sub & SC_ComboBoxArrow ) {
- TQRect rTmp = querySubControlMetrics( CC_ComboBox, widget,
- SC_ComboBoxArrow, opt );
+ TQRect rTmp = querySubControlMetrics( CC_ComboBox, ceData, elementFlags,
+ SC_ComboBoxArrow, opt, widget );
int xx = rTmp.x(),
yy = rTmp.y(),
ww = rTmp.width(),
@@ -1078,21 +1080,19 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
}
#ifndef QT_NO_COMBOBOX
if ( sub & SC_ComboBoxEditField ) {
- const TQComboBox *cmb;
- cmb = (const TQComboBox*)widget;
// sadly this is pretty much the windows code, except
// for the first fillRect call...
TQRect re =
TQStyle::visualRect( querySubControlMetrics( CC_ComboBox,
- widget,
- SC_ComboBoxEditField ),
- widget );
- if ( cmb->hasFocus() && !cmb->editable() )
+ ceData, elementFlags,
+ SC_ComboBoxEditField, TQStyleOption::Default, widget ),
+ ceData, elementFlags );
+ if ( ( elementFlags & CEF_HasFocus ) && (!( elementFlags & CEF_IsEditable )) )
p->fillRect( re.x() + 1, re.y() + 1,
re.width() - 2, re.height() - 2,
cg.brush( TQColorGroup::Highlight ) );
- if ( cmb->hasFocus() ) {
+ if ( elementFlags & CEF_HasFocus ) {
p->setPen( cg.highlightedText() );
p->setBackgroundColor( cg.highlight() );
} else {
@@ -1100,16 +1100,16 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
p->setBackgroundColor( cg.background() );
}
- if ( cmb->hasFocus() && !cmb->editable() ) {
+ if ( ( elementFlags & CEF_HasFocus ) && (!( elementFlags & CEF_IsEditable )) ) {
TQRect re =
- TQStyle::visualRect( subRect( SR_ComboBoxFocusRect,
- cmb ),
- widget );
- drawPrimitive( PE_FocusRect, p, re, cg,
+ TQStyle::visualRect( subRect( SR_ComboBoxFocusRect, ceData, elementFlags,
+ widget ),
+ ceData, elementFlags );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, re, cg,
Style_FocusAtBorder,
TQStyleOption(cg.highlight()));
}
- if ( cmb->editable() ) {
+ if ( elementFlags & CEF_IsEditable ) {
// need this for the moment...
// was the code in comboButton rect
TQRect ir( x + 3, y + 3,
@@ -1128,15 +1128,14 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
case CC_Slider:
{
#ifndef QT_NO_SLIDER
- const TQSlider *slider = (const TQSlider *) widget;
- int thickness = pixelMetric( PM_SliderControlThickness, widget );
- int len = pixelMetric( PM_SliderLength, widget );
- int ticks = slider->tickmarks();
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
+ int len = pixelMetric( PM_SliderLength, ceData, elementFlags, widget );
+ int ticks = ceData.tickMarkSetting;
- TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove,
- opt),
- handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle,
- opt);
+ TQRect groove = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderGroove,
+ opt, widget),
+ handle = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderHandle,
+ opt, widget);
if ((sub & SC_SliderGroove) && groove.isValid()) {
p->fillRect( groove, cg.brush(TQColorGroup::Background) );
@@ -1149,16 +1148,16 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
if ( ticks & TQSlider::Below )
mid -= len / 8;
- if ( slider->orientation() == Horizontal ) {
+ if ( ceData.orientation == Horizontal ) {
x = 0;
y = groove.y() + mid - 3;
- w = slider->width();
+ w = ceData.rect.width();
h = 7;
} else {
x = groove.x() + mid - 3;
y = 0;
w = 7;
- h = slider->height();
+ h = ceData.rect.height();
}
p->fillRect( x, y, w, h, cg.brush( TQColorGroup::Dark ));
@@ -1209,7 +1208,7 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
// ### end slider groove
if ( how & Style_HasFocus )
- drawPrimitive( PE_FocusRect, p, groove, cg );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, groove, cg );
}
if ((sub & SC_SliderHandle) && handle.isValid()) {
@@ -1224,7 +1223,7 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
int mx = handle.width() / 2;
int my = handle.height() / 2;
- if ( slider->orientation() == Vertical ) {
+ if ( ceData.orientation == Vertical ) {
// Background
TQBrush oldBrush = p->brush();
p->setBrush( cg.brush( TQColorGroup::Button ) );
@@ -1303,15 +1302,15 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
}
if ( sub & SC_SliderTickmarks )
- TQCommonStyle::drawComplexControl( control, p, widget, r,
+ TQCommonStyle::drawComplexControl( control, p, ceData, elementFlags, r,
cg, how, SC_SliderTickmarks,
- subActive, opt );
+ subActive, opt, widget );
#endif
break;
}
default:
- TQWindowsStyle::drawComplexControl( control, p, widget, r, cg,
- how, sub, subActive, opt );
+ TQWindowsStyle::drawComplexControl( control, p, ceData, elementFlags, r, cg,
+ how, sub, subActive, opt, widget );
break;
}
}
@@ -1321,18 +1320,18 @@ void TQPlatinumStyle::drawComplexControl( ComplexControl control,
/*!\reimp
*/
TQRect TQPlatinumStyle::querySubControlMetrics( ComplexControl control,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
SubControl sc,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch( control ) {
#ifndef QT_NO_COMBOBOX
case CC_ComboBox:
- const TQComboBox *cb;
- cb = (const TQComboBox *)widget;
switch( sc ) {
case SC_ComboBoxArrow: {
- TQRect ir = cb->rect();
+ TQRect ir = ceData.rect;
int xx;
if( TQApplication::reverseLayout() )
xx = ir.x();
@@ -1346,22 +1345,20 @@ TQRect TQPlatinumStyle::querySubControlMetrics( ComplexControl control,
#endif
#ifndef QT_NO_SCROLLBAR
case CC_ScrollBar: {
- const TQScrollBar *sb;
- sb = (const TQScrollBar *)widget;
- int sliderStart = sb->sliderStart();
- int sbextent = pixelMetric( PM_ScrollBarExtent, widget );
- int maxlen = ((sb->orientation() == TQt::Horizontal) ?
- sb->width() : sb->height()) - ( sbextent * 2 );
+ int sliderStart = ceData.startStep;
+ int sbextent = pixelMetric( PM_ScrollBarExtent, ceData, elementFlags, widget );
+ int maxlen = ((ceData.orientation == TQt::Horizontal) ?
+ ceData.rect.width() : ceData.rect.height()) - ( sbextent * 2 );
int sliderlen;
// calculate length
- if ( sb->maxValue() != sb->minValue() ) {
- uint range = sb->maxValue() - sb->minValue();
- sliderlen = ( sb->pageStep() * maxlen ) /
- ( range + sb->pageStep() );
+ if ( ceData.maxSteps != ceData.minSteps ) {
+ uint range = ceData.maxSteps - ceData.minSteps;
+ sliderlen = ( ceData.pageStep * maxlen ) /
+ ( range + ceData.pageStep );
- int slidermin = pixelMetric( PM_ScrollBarSliderMin, widget );
+ int slidermin = pixelMetric( PM_ScrollBarSliderMin, ceData, elementFlags, widget );
if ( sliderlen < slidermin || range > INT_MAX / 2 )
sliderlen = slidermin;
if ( sliderlen > maxlen )
@@ -1372,33 +1369,33 @@ TQRect TQPlatinumStyle::querySubControlMetrics( ComplexControl control,
switch ( sc ) {
case SC_ScrollBarSubLine:
- if ( sb->orientation() == TQt::Horizontal ) {
- int buttonw = TQMIN( sb->width() / 2, sbextent );
- return TQRect( sb->width() - 2 * buttonw, 0, buttonw, sbextent );
+ if ( ceData.orientation == TQt::Horizontal ) {
+ int buttonw = TQMIN( ceData.rect.width() / 2, sbextent );
+ return TQRect( ceData.rect.width() - 2 * buttonw, 0, buttonw, sbextent );
} else {
- int buttonh = TQMIN( sb->height() / 2, sbextent );
- return TQRect( 0, sb->height() - 2 * buttonh, sbextent, buttonh );
+ int buttonh = TQMIN( ceData.rect.height() / 2, sbextent );
+ return TQRect( 0, ceData.rect.height() - 2 * buttonh, sbextent, buttonh );
}
case SC_ScrollBarAddLine:
- if ( sb->orientation() == TQt::Horizontal ) {
- int buttonw = TQMIN( sb->width() / 2, sbextent );
- return TQRect( sb->width() - buttonw, 0, sbextent, buttonw );
+ if ( ceData.orientation == TQt::Horizontal ) {
+ int buttonw = TQMIN( ceData.rect.width() / 2, sbextent );
+ return TQRect( ceData.rect.width() - buttonw, 0, sbextent, buttonw );
} else {
- int buttonh = TQMIN( sb->height() / 2, sbextent );
- return TQRect(0, sb->height() - buttonh, sbextent, buttonh );
+ int buttonh = TQMIN( ceData.rect.height() / 2, sbextent );
+ return TQRect(0, ceData.rect.height() - buttonh, sbextent, buttonh );
}
case SC_ScrollBarSubPage:
- if ( sb->orientation() == TQt::Horizontal )
+ if ( ceData.orientation == TQt::Horizontal )
return TQRect( 1, 0, sliderStart, sbextent );
return TQRect( 0, 1, sbextent, sliderStart );
case SC_ScrollBarAddPage:
- if ( sb->orientation() == TQt::Horizontal )
+ if ( ceData.orientation == TQt::Horizontal )
return TQRect( sliderStart + sliderlen, 0, maxlen - sliderStart - sliderlen, sbextent );
return TQRect( 0, sliderStart + sliderlen, sbextent, maxlen - sliderStart - sliderlen );
case SC_ScrollBarGroove:
- if ( sb->orientation() == TQt::Horizontal )
- return TQRect( 1, 0, sb->width() - sbextent * 2, sb->height() );
- return TQRect( 0, 1, sb->width(), sb->height() - sbextent * 2 );
+ if ( ceData.orientation == TQt::Horizontal )
+ return TQRect( 1, 0, ceData.rect.width() - sbextent * 2, ceData.rect.height() );
+ return TQRect( 0, 1, ceData.rect.width(), ceData.rect.height() - sbextent * 2 );
default:
break;
}
@@ -1406,13 +1403,11 @@ TQRect TQPlatinumStyle::querySubControlMetrics( ComplexControl control,
#endif
#ifndef QT_NO_SLIDER
case CC_Slider: {
-
- const TQSlider *slider = (const TQSlider *) widget;
- int tickOffset = pixelMetric( PM_SliderTickmarkOffset, widget);
- int thickness = pixelMetric( PM_SliderControlThickness, widget);
+ int tickOffset = pixelMetric( PM_SliderTickmarkOffset, ceData, elementFlags, widget);
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget);
int mid = thickness / 2;
- int ticks = slider->tickmarks();
- int len = pixelMetric( PM_SliderLength, widget );
+ int ticks = ceData.tickMarkSetting;
+ int len = pixelMetric( PM_SliderLength, ceData, elementFlags, widget );
switch ( sc ) {
case SC_SliderGroove:
@@ -1420,9 +1415,9 @@ TQRect TQPlatinumStyle::querySubControlMetrics( ComplexControl control,
mid += len / 8;
if ( ticks & TQSlider::Below )
mid -= len / 8;
- if ( slider->orientation() == TQSlider::Horizontal )
- return TQRect( 0, tickOffset, slider->width(), thickness );
- return TQRect( tickOffset, 0, thickness, slider->height() );
+ if ( ceData.orientation == TQSlider::Horizontal )
+ return TQRect( 0, tickOffset, ceData.rect.width(), thickness );
+ return TQRect( tickOffset, 0, thickness, ceData.rect.height() );
default:
break;
}
@@ -1431,13 +1426,13 @@ TQRect TQPlatinumStyle::querySubControlMetrics( ComplexControl control,
default:
break;
}
- return TQWindowsStyle::querySubControlMetrics( control, widget, sc, opt );
+ return TQWindowsStyle::querySubControlMetrics( control, ceData, elementFlags, sc, opt, widget );
}
/*!\reimp
*/
-int TQPlatinumStyle::pixelMetric( PixelMetric metric,
+int TQPlatinumStyle::pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags,
const TQWidget *widget ) const
{
int ret;
@@ -1466,7 +1461,7 @@ int TQPlatinumStyle::pixelMetric( PixelMetric metric,
ret = -1;
break;
default:
- ret = TQWindowsStyle::pixelMetric( metric, widget );
+ ret = TQWindowsStyle::pixelMetric( metric, ceData, elementFlags, widget );
break;
}
return ret;
@@ -1474,19 +1469,19 @@ int TQPlatinumStyle::pixelMetric( PixelMetric metric,
/*!\reimp
*/
-TQRect TQPlatinumStyle::subRect( SubRect r, const TQWidget *widget ) const
+TQRect TQPlatinumStyle::subRect( SubRect r, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const
{
TQRect rect;
switch ( r ) {
case SR_ComboBoxFocusRect:
{
- TQRect tmpR = widget->rect();
+ TQRect tmpR = ceData.rect;
rect = TQRect( tmpR.x() + 4, tmpR.y() + 4, tmpR.width() - 8 - 16,
tmpR.height() - 8 );
break;
}
default:
- rect = TQWindowsStyle::subRect( r, widget );
+ rect = TQWindowsStyle::subRect( r, ceData, elementFlags, widget );
break;
}
return rect;
diff --git a/src/styles/qsgistyle.cpp b/src/styles/qsgistyle.cpp
index 86dcef363..930a34d09 100644
--- a/src/styles/qsgistyle.cpp
+++ b/src/styles/qsgistyle.cpp
@@ -65,7 +65,7 @@ struct SliderLastPosition
{
SliderLastPosition() : rect(0,-1,0,-1), slider(0) {}
TQRect rect;
- const TQSlider* slider;
+ const void* slider;
};
#endif
@@ -74,7 +74,7 @@ struct ScrollbarLastPosition
{
ScrollbarLastPosition() : rect( 0,-1, 0,-1 ), scrollbar(0) {}
TQRect rect;
- const TQScrollBar *scrollbar;
+ const void* scrollbar;
};
#endif
@@ -86,7 +86,7 @@ public:
{
}
- const TQWidget *hotWidget;
+ const void* hotWidget;
TQPoint mousePos;
#ifndef QT_NO_SCROLLBAR
ScrollbarLastPosition lastScrollbarRect;
@@ -136,10 +136,10 @@ TQSGIStyle::~TQSGIStyle()
bold italic font for menu options.
*/
void
-TQSGIStyle::polish( TQApplication* app)
+TQSGIStyle::applicationPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{
isApplicationStyle = 1;
- TQMotifStyle::polish( app );
+ TQMotifStyle::polish( ceData, elementFlags, ptr );
TQPalette pal = TQApplication::palette();
// check this on SGI-Boxes
@@ -181,7 +181,7 @@ TQSGIStyle::polish( TQApplication* app)
/*! \reimp
*/
void
-TQSGIStyle::unPolish( TQApplication* /* app */ )
+TQSGIStyle::applicationUnPolish( TQStyleControlElementData, ControlElementFlags, void * )
{
TQFont f = TQApplication::font();
TQApplication::setFont( f, TRUE ); // get rid of the special fonts for special widget classes
@@ -194,9 +194,9 @@ TQSGIStyle::unPolish( TQApplication* /* app */ )
hovering.
*/
void
-TQSGIStyle::polish( TQWidget* w )
+TQSGIStyle::polish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{
- TQMotifStyle::polish(w);
+ TQMotifStyle::polish(ceData, elementFlags, ptr);
if ( !isApplicationStyle ) {
TQPalette sgiPal = TQApplication::palette();
@@ -214,7 +214,7 @@ TQSGIStyle::polish( TQWidget* w )
sgiPal.setColor( TQPalette::Disabled, TQColorGroup::HighlightedText, sgiPal.disabled().base() );
}
- if ( ::tqt_cast<TQLineEdit*>(w) || ::tqt_cast<TQTextEdit*>(w) ) {
+ if ( (ceData.widgetObjectTypes.contains("TQLineEdit")) || (ceData.widgetObjectTypes.contains("TQTextEdit")) ) {
// different basecolor and highlighting in Q(Multi)LineEdit
sgiPal.setColor( TQColorGroup::Base, TQColor(211,181,181) );
sgiPal.setColor( TQPalette::Active, TQColorGroup::Highlight, sgiPal.active().midlight() );
@@ -224,89 +224,89 @@ TQSGIStyle::polish( TQWidget* w )
sgiPal.setColor( TQPalette::Disabled, TQColorGroup::Highlight, sgiPal.disabled().midlight() );
sgiPal.setColor( TQPalette::Disabled, TQColorGroup::HighlightedText, sgiPal.disabled().text() );
- } else if ( ::tqt_cast<TQMenuBar*>(w) || ::tqt_cast<TQToolBar*>(w) ) {
+ } else if ( (ceData.widgetObjectTypes.contains("TQMenuBar")) || (ceData.widgetObjectTypes.contains("TQToolBar")) ) {
sgiPal.setColor( TQColorGroup::Button, sgiPal.active().midlight() );
}
- w->setPalette( sgiPal );
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetPalette, TQStyleWidgetActionRequestData(sgiPal));
}
- if ( ::tqt_cast<TQButton*>(w) || ::tqt_cast<TQSlider*>(w) || ::tqt_cast<TQScrollBar*>(w) ) {
- w->installEventFilter( this );
- w->setMouseTracking( TRUE );
+ if ( (ceData.widgetObjectTypes.contains("TQButton")) || (ceData.widgetObjectTypes.contains("TQSlider")) || (ceData.widgetObjectTypes.contains("TQScrollBar")) ) {
+ installObjectEventHandler(ceData, elementFlags, ptr, this);
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_EnableMouseTracking);
#ifndef QT_NO_SCROLLBAR
- if ( ::tqt_cast<TQScrollBar*>(w) )
- w->setBackgroundMode( TQWidget::NoBackground );
+ if ( ceData.widgetObjectTypes.contains("TQScrollBar") ) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundMode, TQStyleWidgetActionRequestData(TQWidget::NoBackground));
+ }
#endif
- } else if ( ::tqt_cast<TQComboBox*>(w) ) {
+ } else if ( ceData.widgetObjectTypes.contains("TQComboBox") ) {
TQFont f = TQApplication::font();
f.setBold( TRUE );
f.setItalic( TRUE );
- w->setFont( f );
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetFont, TQStyleWidgetActionRequestData(f));
#ifndef QT_NO_MENUBAR
- } else if ( ::tqt_cast<TQMenuBar*>(w) ) {
- ((TQFrame*) w)->setFrameStyle(TQFrame::StyledPanel | TQFrame::Raised);
- w->setBackgroundMode( TQWidget::PaletteBackground );
+ } else if ( ceData.widgetObjectTypes.contains("TQMenuBar") ) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_FrameSetStyle, TQStyleWidgetActionRequestData(TQFrame::StyledPanel | TQFrame::Raised));
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundMode, TQStyleWidgetActionRequestData(TQWidget::PaletteBackground));
TQFont f = TQApplication::font();
f.setBold( TRUE );
f.setItalic( TRUE );
- w->setFont( f );
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetFont, TQStyleWidgetActionRequestData(f));
#endif
#ifndef QT_NO_POPUPMENU
- } else if ( ::tqt_cast<TQPopupMenu*>(w) ) {
- ((TQFrame*) w)->setLineWidth( pixelMetric( PM_DefaultFrameWidth ) + 1 );
+ } else if ( ceData.widgetObjectTypes.contains("TQPopupMenu") ) {
+ TQStyleWidgetActionRequestData requestData;
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_FrameSetLineWidth, TQStyleWidgetActionRequestData(pixelMetric( PM_DefaultFrameWidth, TQStyleControlElementData(), CEF_None ) + 1));
TQFont f = TQApplication::font();
f.setBold( TRUE );
f.setItalic( TRUE );
- w->setFont( f );
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetFont, TQStyleWidgetActionRequestData(f));
#endif
- } else if ( ::tqt_cast<TQToolBar*>(w) || w->inherits("TQToolBarSeparator") ) {
- w->setBackgroundMode( TQWidget::PaletteBackground );
+ } else if ( (ceData.widgetObjectTypes.contains("TQToolBar")) || (ceData.widgetObjectTypes.contains("TQToolBarSeparator")) ) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetBackgroundMode, TQStyleWidgetActionRequestData(TQWidget::PaletteBackground));
}
}
/*! \reimp */
void
-TQSGIStyle::unPolish( TQWidget* w )
+TQSGIStyle::unPolish( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr )
{
- if ( ::tqt_cast<TQButton*>(w) || ::tqt_cast<TQSlider*>(w) || ::tqt_cast<TQScrollBar*>(w) ) {
- w->removeEventFilter( this );
+ if ( (ceData.widgetObjectTypes.contains("TQButton")) || (ceData.widgetObjectTypes.contains("TQSlider")) || (ceData.widgetObjectTypes.contains("TQScrollBar")) ) {
+ removeObjectEventHandler(ceData, elementFlags, ptr, this);
#ifndef QT_NO_POPUPMENU
- } else if ( ::tqt_cast<TQPopupMenu*>(w) ) {
- ((TQFrame*)w)->setLineWidth( pixelMetric( PM_DefaultFrameWidth ) );
- w->setFont( TQApplication::font() );
+ } else if ( ceData.widgetObjectTypes.contains("TQPopupMenu") ) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_FrameSetLineWidth, TQStyleWidgetActionRequestData(pixelMetric( PM_DefaultFrameWidth, TQStyleControlElementData(), CEF_None )));
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetFont, TQStyleWidgetActionRequestData(TQApplication::font()));
#endif
#if !defined(QT_NO_MENUBAR) || !defined(QT_NO_COMBOBOX)
- } else if ( ::tqt_cast<TQMenuBar*>(w) || ::tqt_cast<TQComboBox*>(w) ) {
- w->setFont( TQApplication::font() );
+ } else if ( (ceData.widgetObjectTypes.contains("TQMenuBar")) || (ceData.widgetObjectTypes.contains("TQComboBox")) ) {
+ widgetActionRequest(ceData, elementFlags, ptr, WAR_SetFont, TQStyleWidgetActionRequestData(TQApplication::font()));
#endif
}
}
/*! \reimp */
-bool TQSGIStyle::eventFilter( TQObject* o, TQEvent* e )
+bool TQSGIStyle::objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e )
{
- if ( !o->isWidgetType() || e->type() == TQEvent::Paint )
- return TQMotifStyle::eventFilter( o, e );
-
- TQWidget *widget = (TQWidget*)o;
+ if ( (!(ceData.widgetObjectTypes.contains("TQWidget"))) || (e->type() == TQEvent::Paint) )
+ return TQMotifStyle::objectEventHandler( ceData, elementFlags, source, e );
switch ( e->type() ) {
case TQEvent::MouseButtonPress:
{
#ifndef QT_NO_SCROLLBAR
- if ( ::tqt_cast<TQScrollBar*>(widget) ) {
- d->lastScrollbarRect.rect = ((TQScrollBar*)widget)->sliderRect();
- d->lastScrollbarRect.scrollbar = ((TQScrollBar*)widget);
- widget->repaint( FALSE );
+ if (ceData.widgetObjectTypes.contains("TQScrollBar")) {
+ d->lastScrollbarRect.rect = ceData.sliderRect;
+ d->lastScrollbarRect.scrollbar = source;
+ widgetActionRequest(ceData, elementFlags, source, WAR_Repaint);
} else
#endif
{
#ifndef QT_NO_SLIDER
- if ( ::tqt_cast<TQSlider*>(widget) ) {
- d->lastSliderRect.rect = ((TQSlider*)widget)->sliderRect();
- d->lastSliderRect.slider = ((TQSlider*)widget);
- widget->repaint( FALSE );
+ if (ceData.widgetObjectTypes.contains("TQSlider")) {
+ d->lastSliderRect.rect = ceData.sliderRect;
+ d->lastSliderRect.slider = source;
+ widgetActionRequest(ceData, elementFlags, source, WAR_Repaint);
}
#endif
}
@@ -317,52 +317,52 @@ bool TQSGIStyle::eventFilter( TQObject* o, TQEvent* e )
{
if ( 0 ) {
#ifndef QT_NO_SCROLLBAR
- } else if ( ::tqt_cast<TQScrollBar*>(widget) ) {
+ } else if (ceData.widgetObjectTypes.contains("TQScrollBar")) {
TQRect oldRect = d->lastScrollbarRect.rect;
d->lastScrollbarRect.rect = TQRect( 0, -1, 0, -1 );
- widget->repaint( oldRect, FALSE );
+ widgetActionRequest(ceData, elementFlags, source, WAR_RepaintRect, TQStyleWidgetActionRequestData(oldRect));
#endif
#ifndef QT_NO_SLIDER
- } else if ( ::tqt_cast<TQSlider*>(widget) ) {
+ } else if (ceData.widgetObjectTypes.contains("TQSlider")) {
TQRect oldRect = d->lastSliderRect.rect;
d->lastSliderRect.rect = TQRect( 0, -1, 0, -1 );
- widget->repaint( oldRect, FALSE );
+ widgetActionRequest(ceData, elementFlags, source, WAR_RepaintRect, TQStyleWidgetActionRequestData(oldRect));
#endif
}
}
break;
case TQEvent::MouseMove:
- if ( !widget->isActiveWindow() )
+ if ( !(elementFlags & CEF_IsActiveWindow) )
break;
if ( ((TQMouseEvent*)e)->button() )
break;
- d->hotWidget = widget;
+ d->hotWidget = source;
d->mousePos = ((TQMouseEvent*)e)->pos();
- widget->repaint( FALSE );
+ widgetActionRequest(ceData, elementFlags, source, WAR_Repaint);
break;
case TQEvent::Enter:
- if ( !widget->isActiveWindow() )
+ if ( !(elementFlags & CEF_IsActiveWindow) )
break;
- d->hotWidget = widget;
- widget->repaint( FALSE );
+ d->hotWidget = source;
+ widgetActionRequest(ceData, elementFlags, source, WAR_Repaint);
break;
case TQEvent::Leave:
- if ( !widget->isActiveWindow() )
+ if ( !(elementFlags & CEF_IsActiveWindow) )
break;
- if ( widget == d->hotWidget) {
+ if ( source == d->hotWidget) {
d->hotWidget = 0;
- widget->repaint( FALSE );
+ widgetActionRequest(ceData, elementFlags, source, WAR_Repaint);
}
break;
default:
break;
}
- return TQMotifStyle::eventFilter( o, e );
+ return TQMotifStyle::objectEventHandler( ceData, elementFlags, source, e );
}
static const int sgiItemFrame = 2; // menu item frame width
@@ -375,7 +375,7 @@ static const int sgiTabSpacing = 12; // space between text and tab
static const int sgiCheckMarkSpace = 20;
/*! \reimp */
-int TQSGIStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) const
+int TQSGIStyle::pixelMetric( PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const
{
switch ( metric ) {
case PM_DefaultFrameWidth:
@@ -401,7 +401,7 @@ int TQSGIStyle::pixelMetric( PixelMetric metric, const TQWidget *widget ) const
default:
break;
}
- return TQMotifStyle::pixelMetric( metric, widget );
+ return TQMotifStyle::pixelMetric( metric, ceData, elementFlags, widget );
}
static void drawPanel( TQPainter *p, int x, int y, int w, int h,
@@ -552,6 +552,8 @@ static void get_combo_parameters( const TQRect &r,
/*! \reimp */
void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
@@ -562,7 +564,7 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
const int w = r.width();
const int h = r.height();
const bool sunken = flags & ( Style_Sunken | Style_Down | Style_On );
- const int defaultFrameWidth = pixelMetric( PM_DefaultFrameWidth );
+ const int defaultFrameWidth = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags );
bool hot = ( flags & Style_MouseOver ) && ( flags & Style_Enabled );
switch ( pe ) {
@@ -588,7 +590,7 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
case PE_ButtonBevel:
case PE_ButtonTool:
{
- drawPrimitive( PE_ButtonCommand, p, TQRect( x+1, y+1, w-2, h-2 ), cg, flags, opt );
+ drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, TQRect( x+1, y+1, w-2, h-2 ), cg, flags, opt );
TQPen oldPen = p->pen();
TQPointArray a;
@@ -642,11 +644,11 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
TQRect er = r;
er.addCoords( 1, 1, -1, -1 );
int iflags = flags & ~Style_On;
- drawPrimitive( PE_ButtonBevel, p, er, cg, iflags, opt );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, er, cg, iflags, opt );
if ( !(flags & TQStyle::Style_Off) ) {
er = r;
er.addCoords( 1, 2, 1, 1 );
- drawPrimitive( PE_CheckMark, p, er, cg, flags, opt );
+ drawPrimitive( PE_CheckMark, p, ceData, elementFlags, er, cg, flags, opt );
}
}
break;
@@ -795,17 +797,17 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
case PE_ScrollBarSubLine:
if ( !r.contains( d->mousePos ) && !(flags & Style_Active) )
flags &= ~Style_MouseOver;
- drawPrimitive( PE_ButtonCommand, p, r, cg, flags, opt );
+ drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, r, cg, flags, opt );
drawPrimitive(((flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp),
- p, r, cg, Style_Enabled | flags);
+ p, ceData, elementFlags, r, cg, Style_Enabled | flags);
break;
case PE_ScrollBarAddLine:
if ( !r.contains( d->mousePos ) )
flags &= ~Style_MouseOver;
- drawPrimitive( PE_ButtonCommand, p, r, cg, flags, opt );
+ drawPrimitive( PE_ButtonCommand, p, ceData, elementFlags, r, cg, flags, opt );
drawPrimitive(((flags & Style_Horizontal) ? PE_ArrowRight : PE_ArrowDown),
- p, r, cg, Style_Enabled | flags);
+ p, ceData, elementFlags, r, cg, Style_Enabled | flags);
break;
case PE_ScrollBarSubPage:
@@ -825,7 +827,7 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
TQPixmap pm( r.width(), r.height() );
TQPainter bp( &pm );
- drawPrimitive(PE_ButtonBevel, &bp, TQRect(0,0,r.width(),r.height()), cg, flags | Style_Enabled | Style_Raised);
+ drawPrimitive(PE_ButtonBevel, &bp, ceData, elementFlags, TQRect(0,0,r.width(),r.height()), cg, flags | Style_Enabled | Style_Raised);
if ( flags & Style_Horizontal ) {
const int sliderM = r.width() / 2;
if ( r.width() > 20 ) {
@@ -853,7 +855,7 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
case PE_Splitter:
{
const int motifOffset = 10;
- int sw = pixelMetric( PM_SplitterWidth );
+ int sw = pixelMetric( PM_SplitterWidth, ceData, elementFlags );
if ( flags & Style_Horizontal ) {
int xPos = x + w/2;
int kPos = motifOffset;
@@ -862,7 +864,7 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
qDrawShadeLine( p, xPos, kPos + kSize - 1 ,
xPos, h, cg );
- drawPrimitive( PE_ButtonBevel, p, TQRect(xPos-sw/2+1, kPos, kSize, kSize+1), cg, flags, opt );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, TQRect(xPos-sw/2+1, kPos, kSize, kSize+1), cg, flags, opt );
qDrawShadeLine( p, xPos+2, 0, xPos, kPos, cg );
} else {
int yPos = y + h/2;
@@ -870,14 +872,14 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
int kSize = sw - 2;
qDrawShadeLine( p, 0, yPos, kPos, yPos, cg );
- drawPrimitive( PE_ButtonBevel, p, TQRect( kPos, yPos-sw/2+1, kSize+1, kSize ), cg, flags, opt );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, TQRect( kPos, yPos-sw/2+1, kSize+1, kSize ), cg, flags, opt );
qDrawShadeLine( p, kPos + kSize+1, yPos, w, yPos, cg );
}
}
break;
default:
- TQMotifStyle::drawPrimitive( pe, p, r, cg, flags, opt );
+ TQMotifStyle::drawPrimitive( pe, p, ceData, elementFlags, r, cg, flags, opt );
break;
}
}
@@ -885,11 +887,13 @@ void TQSGIStyle::drawPrimitive( PrimitiveElement pe,
/*! \reimp */
void TQSGIStyle::drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
if ( widget == d->hotWidget )
flags |= Style_MouseOver;
@@ -898,17 +902,16 @@ void TQSGIStyle::drawControl( ControlElement element,
case CE_PushButton:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *btn = (TQPushButton*)widget;
int x1, y1, x2, y2;
r.coords( &x1, &y1, &x2, &y2 );
p->setPen( cg.foreground() );
p->setBrush( TQBrush( cg.button(),TQt::NoBrush ) );
- p->setBrushOrigin( -widget->backgroundOffset().x(),
- -widget->backgroundOffset().y() );
+ p->setBrushOrigin( -ceData.bgOffset.x(),
+ -ceData.bgOffset.y() );
- int diw = pixelMetric( TQStyle::PM_ButtonDefaultIndicator );
- if ( btn->isDefault() || btn->autoDefault() ) {
+ int diw = pixelMetric( TQStyle::PM_ButtonDefaultIndicator, ceData, elementFlags );
+ if ( ( elementFlags & CEF_IsDefault ) || ( elementFlags & CEF_AutoDefault ) ) {
x1 += diw;
y1 += diw;
x2 -= diw;
@@ -916,7 +919,7 @@ void TQSGIStyle::drawControl( ControlElement element,
}
TQPointArray a;
- if ( btn->isDefault() ) {
+ if ( elementFlags & CEF_IsDefault ) {
if ( diw == 0 ) {
a.setPoints( 9,
x1, y1, x2, y1, x2, y2, x1, y2, x1, y1+1,
@@ -928,13 +931,13 @@ void TQSGIStyle::drawControl( ControlElement element,
x2 -= 2;
y2 -= 2;
} else {
- qDrawShadePanel( p, btn->rect(), cg, TRUE );
+ qDrawShadePanel( p, ceData.rect, cg, TRUE );
}
}
TQBrush fill = cg.brush( TQColorGroup::Button );
- if ( !btn->isFlat() || btn->isOn() || btn->isDown() )
- drawPrimitive( PE_ButtonBevel, p, TQRect( x1, y1, x2-x1+1, y2-y1+1 ), cg, flags, opt );
+ if ( (!( elementFlags & CEF_IsFlat )) || ( elementFlags & CEF_IsOn ) || ( elementFlags & CEF_IsDown ) )
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, TQRect( x1, y1, x2-x1+1, y2-y1+1 ), cg, flags, opt );
if ( p->brush().style() != TQt::NoBrush )
p->setBrush( TQt::NoBrush );
@@ -945,16 +948,15 @@ void TQSGIStyle::drawControl( ControlElement element,
case CE_PopupMenuItem:
{
#ifndef QT_NO_POPUPMENU
- if (! widget || opt.isDefault())
+ if ( ( elementFlags & CEF_UseGenericParameters ) || opt.isDefault())
break;
TQMenuItem *mi = opt.menuItem();
if ( !mi )
break;
- const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
int tab = opt.tabWidth();
int maxpmw = opt.maxIconWidth();
bool dis = ! (flags & Style_Enabled);
- bool checkable = popupmenu->isCheckable();
+ bool checkable = ( elementFlags & CEF_IsCheckable );
bool act = flags & Style_Active;
int x, y, w, h;
@@ -973,7 +975,7 @@ void TQSGIStyle::drawControl( ControlElement element,
int pw = sgiItemFrame;
if ( act && !dis ) {
- if ( pixelMetric( PM_DefaultFrameWidth ) > 1 )
+ if ( pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags ) > 1 )
drawPanel( p, x, y, w, h, cg, FALSE, pw,
&cg.brush( TQColorGroup::Light ) );
else
@@ -1024,12 +1026,12 @@ void TQSGIStyle::drawControl( ControlElement element,
if ( mi->isChecked() ) {
TQRect er( x+sgiItemFrame+1, y+sgiItemFrame+3,
- pixelMetric(PM_IndicatorWidth),
- pixelMetric(PM_IndicatorHeight) );
+ pixelMetric(PM_IndicatorWidth, ceData, elementFlags),
+ pixelMetric(PM_IndicatorHeight, ceData, elementFlags) );
er.addCoords( 1, 1, -1, -1 );
- drawPrimitive( PE_ButtonBevel, p, er, cg, cflags, opt );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, er, cg, cflags, opt );
er.addCoords( 0, 1, 1, 1 );
- drawPrimitive( PE_CheckMark, p, er, cg, cflags | Style_On, opt );
+ drawPrimitive( PE_CheckMark, p, ceData, elementFlags, er, cg, cflags | Style_On, opt );
}
}
}
@@ -1082,7 +1084,7 @@ void TQSGIStyle::drawControl( ControlElement element,
}
if ( mi->popup() ) {
int dim = (h-2*sgiItemFrame) / 2;
- drawPrimitive( PE_ArrowRight, p, TQRect( x+w-sgiArrowHMargin-sgiItemFrame-dim, y+h/2-dim/2, dim, dim ), cg, flags );
+ drawPrimitive( PE_ArrowRight, p, ceData, elementFlags, TQRect( x+w-sgiArrowHMargin-sgiItemFrame-dim, y+h/2-dim/2, dim, dim ), cg, flags );
}
#endif
}
@@ -1128,11 +1130,11 @@ void TQSGIStyle::drawControl( ControlElement element,
break;
case CE_CheckBox:
- TQMotifStyle::drawControl( element, p, widget, r, cg, flags, opt );
+ TQMotifStyle::drawControl( element, p, ceData, elementFlags, r, cg, flags, opt, widget );
break;
default:
- TQMotifStyle::drawControl( element, p, widget, r, cg, flags, opt );
+ TQMotifStyle::drawControl( element, p, ceData, elementFlags, r, cg, flags, opt, widget );
break;
}
}
@@ -1140,13 +1142,15 @@ void TQSGIStyle::drawControl( ControlElement element,
/*! \reimp */
void TQSGIStyle::drawComplexControl( ComplexControl control,
TQPainter *p,
- const TQWidget* widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect& r,
const TQColorGroup& cg,
SFlags flags,
SCFlags sub,
SCFlags subActive,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget* widget ) const
{
if ( widget == d->hotWidget )
flags |= Style_MouseOver;
@@ -1155,33 +1159,31 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
case CC_Slider:
{
#ifndef QT_NO_SLIDER
- const TQSlider * slider = (const TQSlider *) widget;
-
- TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove,
- opt),
- handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle,
- opt);
+ TQRect groove = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderGroove,
+ opt, widget),
+ handle = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderHandle,
+ opt, widget);
if ((sub & SC_SliderGroove) && groove.isValid()) {
TQRegion region( groove );
if ( ( sub & SC_SliderHandle ) && handle.isValid() )
region = region.subtract( handle );
- if ( d->lastSliderRect.slider == slider && d->lastSliderRect.rect.isValid() )
+ if ( d->lastSliderRect.slider == widget && d->lastSliderRect.rect.isValid() )
region = region.subtract( d->lastSliderRect.rect );
p->setClipRegion( region );
TQRect grooveTop = groove;
grooveTop.addCoords( 1, 1, -1, -1 );
- drawPrimitive( PE_ButtonBevel, p, grooveTop, cg, flags & ~Style_MouseOver, opt );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, grooveTop, cg, flags & ~Style_MouseOver, opt );
if ( flags & Style_HasFocus ) {
- TQRect fr = subRect( SR_SliderFocusRect, widget );
- drawPrimitive( PE_FocusRect, p, fr, cg, flags & ~Style_MouseOver );
+ TQRect fr = subRect( SR_SliderFocusRect, ceData, elementFlags, widget );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, fr, cg, flags & ~Style_MouseOver );
}
- if ( d->lastSliderRect.slider == slider && d->lastSliderRect.rect.isValid() ) {
+ if ( d->lastSliderRect.slider == widget && d->lastSliderRect.rect.isValid() ) {
if ( ( sub & SC_SliderHandle ) && handle.isValid() ) {
- region = widget->rect();
+ region = ceData.rect;
region = region.subtract( handle );
p->setClipRegion( region );
} else {
@@ -1195,9 +1197,9 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
if (( sub & SC_SliderHandle ) && handle.isValid()) {
if ( flags & Style_MouseOver && !handle.contains( d->mousePos ) && subActive != SC_SliderHandle )
flags &= ~Style_MouseOver;
- drawPrimitive( PE_ButtonBevel, p, handle, cg, flags );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, handle, cg, flags );
- if ( slider->orientation() == Horizontal ) {
+ if ( ceData.orientation == Horizontal ) {
TQCOORD mid = handle.x() + handle.width() / 2;
qDrawShadeLine( p, mid, handle.y(), mid,
handle.y() + handle.height() - 2,
@@ -1211,50 +1213,48 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
}
if ( sub & SC_SliderTickmarks )
- TQMotifStyle::drawComplexControl( control, p, widget, r, cg, flags,
+ TQMotifStyle::drawComplexControl( control, p, ceData, elementFlags, r, cg, flags,
SC_SliderTickmarks, subActive,
- opt );
+ opt, widget );
#endif
break;
}
case CC_ComboBox:
{
#ifndef QT_NO_COMBOBOX
- const TQComboBox * cb = (TQComboBox *) widget;
-
if (sub & SC_ComboBoxFrame) {
TQRect fr =
- TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, cb,
- SC_ComboBoxFrame ), cb );
- drawPrimitive( PE_ButtonBevel, p, fr, cg, flags );
+ TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, ceData, elementFlags,
+ SC_ComboBoxFrame, TQStyleOption::Default, widget ), ceData, elementFlags );
+ drawPrimitive( PE_ButtonBevel, p, ceData, elementFlags, fr, cg, flags );
}
if ( sub & SC_ComboBoxArrow ) {
p->save();
TQRect er =
- TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, cb, SC_ComboBoxArrow ), cb );
+ TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, ceData, elementFlags, SC_ComboBoxArrow, TQStyleOption::Default, widget ), ceData, elementFlags );
er.addCoords( 0, 3, 0, 0 );
- drawPrimitive( PE_ArrowDown, p, er, cg, flags | Style_Enabled, opt );
+ drawPrimitive( PE_ArrowDown, p, ceData, elementFlags, er, cg, flags | Style_Enabled, opt );
int awh, ax, ay, sh, sy, dh, ew;
- get_combo_parameters( widget->rect(), ew, awh, ax, ay, sh, dh, sy );
+ get_combo_parameters( ceData.rect, ew, awh, ax, ay, sh, dh, sy );
TQBrush arrow = cg.brush( TQColorGroup::Dark );
p->fillRect( ax, sy-1, awh, sh, arrow );
p->restore();
- if ( cb->hasFocus() ) {
- TQRect re = TQStyle::visualRect( subRect( SR_ComboBoxFocusRect, cb ), cb );
- drawPrimitive( PE_FocusRect, p, re, cg );
+ if ( elementFlags & CEF_HasFocus ) {
+ TQRect re = TQStyle::visualRect( subRect( SR_ComboBoxFocusRect, ceData, elementFlags, widget ), ceData, elementFlags );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, re, cg );
}
}
if ( sub & SC_ComboBoxEditField ) {
- if ( cb->editable() ) {
+ if ( elementFlags & CEF_IsEditable ) {
TQRect er =
- TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, cb,
- SC_ComboBoxEditField ), cb );
+ TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, ceData, elementFlags,
+ SC_ComboBoxEditField, TQStyleOption::Default, widget ), ceData, elementFlags );
er.addCoords( -1, -1, 1, 1);
qDrawShadePanel( p, TQRect( er.x()-1, er.y()-1,
er.width()+2, er.height()+2 ),
@@ -1269,27 +1269,26 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
case CC_ScrollBar:
{
#ifndef QT_NO_SCROLLBAR
- TQScrollBar *scrollbar = (TQScrollBar*)widget;
- bool maxedOut = (scrollbar->minValue() == scrollbar->maxValue());
+ bool maxedOut = (ceData.minSteps == ceData.maxSteps);
if ( maxedOut )
flags &= ~Style_Enabled;
- TQRect handle = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarSlider, opt ), widget );
+ TQRect handle = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, ceData, elementFlags, SC_ScrollBarSlider, opt, widget ), ceData, elementFlags );
if ( sub & SC_ScrollBarGroove ) {
}
if ( sub & SC_ScrollBarAddLine ) {
- TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarAddLine, opt ), widget );
- drawPrimitive( PE_ScrollBarAddLine, p, er, cg, flags, opt );
+ TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, ceData, elementFlags, SC_ScrollBarAddLine, opt, widget ), ceData, elementFlags );
+ drawPrimitive( PE_ScrollBarAddLine, p, ceData, elementFlags, er, cg, flags, opt );
}
if ( sub & SC_ScrollBarSubLine ) {
- TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarSubLine, opt ), widget );
- drawPrimitive( PE_ScrollBarSubLine, p, er, cg, flags, opt );
+ TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, ceData, elementFlags, SC_ScrollBarSubLine, opt, widget ), ceData, elementFlags );
+ drawPrimitive( PE_ScrollBarSubLine, p, ceData, elementFlags, er, cg, flags, opt );
}
if ( sub & SC_ScrollBarAddPage ) {
- TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarAddPage, opt ), widget );
+ TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, ceData, elementFlags, SC_ScrollBarAddPage, opt, widget ), ceData, elementFlags );
TQRegion region( er );
- if ( d->lastScrollbarRect.scrollbar == scrollbar &&
+ if ( d->lastScrollbarRect.scrollbar == widget &&
d->lastScrollbarRect.rect.isValid() &&
er.intersects( d->lastScrollbarRect.rect ) ) {
region = region.subtract( d->lastScrollbarRect.rect );
@@ -1300,9 +1299,9 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
p->setClipRegion( region );
}
- drawPrimitive( PE_ScrollBarAddPage, p, er, cg, flags & ~Style_MouseOver, opt );
+ drawPrimitive( PE_ScrollBarAddPage, p, ceData, elementFlags, er, cg, flags & ~Style_MouseOver, opt );
- if ( d->lastScrollbarRect.scrollbar == scrollbar &&
+ if ( d->lastScrollbarRect.scrollbar == widget &&
d->lastScrollbarRect.rect.isValid() &&
er.intersects( d->lastScrollbarRect.rect ) ) {
if ( sub & SC_ScrollBarSlider && handle.isValid() ) {
@@ -1317,9 +1316,9 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
p->setClipping( FALSE );
}
if ( sub & SC_ScrollBarSubPage ) {
- TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, widget, SC_ScrollBarSubPage, opt ), widget );
+ TQRect er = TQStyle::visualRect( querySubControlMetrics( CC_ScrollBar, ceData, elementFlags, SC_ScrollBarSubPage, opt, widget ), ceData, elementFlags );
TQRegion region( er );
- if ( d->lastScrollbarRect.scrollbar == scrollbar &&
+ if ( d->lastScrollbarRect.scrollbar == widget &&
d->lastScrollbarRect.rect.isValid() &&
er.intersects( d->lastScrollbarRect.rect ) ) {
region = region.subtract( d->lastScrollbarRect.rect );
@@ -1329,8 +1328,8 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
region = region.subtract( handle );
p->setClipRegion( region );
}
- drawPrimitive( PE_ScrollBarSubPage, p, er, cg, flags & ~Style_MouseOver, opt );
- if ( d->lastScrollbarRect.scrollbar == scrollbar &&
+ drawPrimitive( PE_ScrollBarSubPage, p, ceData, elementFlags, er, cg, flags & ~Style_MouseOver, opt );
+ if ( d->lastScrollbarRect.scrollbar == widget &&
d->lastScrollbarRect.rect.isValid() &&
er.intersects( d->lastScrollbarRect.rect ) ) {
if ( sub & SC_ScrollBarSlider && handle.isValid() ) {
@@ -1349,14 +1348,14 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
if ( subActive == SC_ScrollBarSlider )
flags |= Style_Active;
- drawPrimitive( PE_ScrollBarSlider, p, handle, cg, flags, opt );
+ drawPrimitive( PE_ScrollBarSlider, p, ceData, elementFlags, handle, cg, flags, opt );
}
#endif
}
break;
default:
- TQMotifStyle::drawComplexControl( control, p, widget, r, cg, flags, sub, subActive, opt );
+// TQMotifStyle::drawComplexControl( control, p, ceData, elementFlags, r, cg, flags, sub, subActive, opt, widget );
break;
}
}
@@ -1364,9 +1363,11 @@ void TQSGIStyle::drawComplexControl( ComplexControl control,
/*!\reimp
*/
TQSize TQSGIStyle::sizeFromContents( ContentsType contents,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQSize &contentsSize,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
TQSize sz(contentsSize);
@@ -1374,15 +1375,14 @@ TQSize TQSGIStyle::sizeFromContents( ContentsType contents,
case CT_PopupMenuItem:
{
#ifndef QT_NO_POPUPMENU
- if (! widget || opt.isDefault())
+ if ((elementFlags & CEF_UseGenericParameters) || opt.isDefault())
break;
TQMenuItem *mi = opt.menuItem();
- sz = TQMotifStyle::sizeFromContents( contents, widget, contentsSize,
- opt );
+ sz = TQMotifStyle::sizeFromContents( contents, ceData, elementFlags, contentsSize,
+ opt, widget );
// SGI checkmark items needs a bit more room
- const TQPopupMenu *popup = (TQPopupMenu *) widget;
- if ( popup && popup->isCheckable() )
+ if ( elementFlags & CEF_IsCheckable )
sz.setWidth( sz.width() + 8 );
// submenu indicator needs a bit more room
if (mi->popup())
@@ -1395,7 +1395,7 @@ TQSize TQSGIStyle::sizeFromContents( ContentsType contents,
break;
default:
- sz = TQMotifStyle::sizeFromContents( contents, widget, contentsSize, opt );
+ sz = TQMotifStyle::sizeFromContents( contents, ceData, elementFlags, contentsSize, opt, widget );
break;
}
@@ -1403,7 +1403,7 @@ TQSize TQSGIStyle::sizeFromContents( ContentsType contents,
}
/*! \reimp */
-TQRect TQSGIStyle::subRect( SubRect r, const TQWidget *widget ) const
+TQRect TQSGIStyle::subRect( SubRect r, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget ) const
{
TQRect rect;
@@ -1411,8 +1411,8 @@ TQRect TQSGIStyle::subRect( SubRect r, const TQWidget *widget ) const
case SR_ComboBoxFocusRect:
{
int awh, ax, ay, sh, sy, dh, ew;
- int fw = pixelMetric( PM_DefaultFrameWidth, widget );
- TQRect tr = widget->rect();
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, widget );
+ TQRect tr = ceData.rect;
tr.addCoords( fw, fw, -fw, -fw );
get_combo_parameters( tr, ew, awh, ax, ay, sh, dh, sy );
@@ -1420,7 +1420,7 @@ TQRect TQSGIStyle::subRect( SubRect r, const TQWidget *widget ) const
}
break;
default:
- return TQMotifStyle::subRect( r, widget );
+ return TQMotifStyle::subRect( r, ceData, elementFlags, widget );
}
return rect;
@@ -1428,27 +1428,29 @@ TQRect TQSGIStyle::subRect( SubRect r, const TQWidget *widget ) const
/*! \reimp */
TQRect TQSGIStyle::querySubControlMetrics( ComplexControl control,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
SubControl sub,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch ( control ) {
case CC_ComboBox:
switch ( sub ) {
case SC_ComboBoxFrame:
- return widget->rect();
+ return ceData.rect;
case SC_ComboBoxArrow: {
int ew, awh, sh, dh, ax, ay, sy;
- int fw = pixelMetric( PM_DefaultFrameWidth, widget );
- TQRect cr = widget->rect();
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, widget );
+ TQRect cr = ceData.rect;
cr.addCoords( fw, fw, -fw, -fw );
get_combo_parameters( cr, ew, awh, ax, ay, sh, dh, sy );
return TQRect( ax, ay, awh, awh ); }
case SC_ComboBoxEditField: {
- int fw = pixelMetric( PM_DefaultFrameWidth, widget );
- TQRect rect = widget->rect();
+ int fw = pixelMetric( PM_DefaultFrameWidth, ceData, elementFlags, widget );
+ TQRect rect = ceData.rect;
rect.addCoords( fw, fw, -fw, -fw );
int ew = get_combo_extra_width( rect.height() );
rect.addCoords( 1, 1, -1-ew, -1 );
@@ -1459,10 +1461,10 @@ TQRect TQSGIStyle::querySubControlMetrics( ComplexControl control,
}
break;
case CC_ScrollBar:
- return TQCommonStyle::querySubControlMetrics( control, widget, sub, opt );
+ return TQCommonStyle::querySubControlMetrics( control, ceData, elementFlags, sub, opt, widget );
default: break;
}
- return TQMotifStyle::querySubControlMetrics( control, widget, sub, opt );
+ return TQMotifStyle::querySubControlMetrics( control, ceData, elementFlags, sub, opt, widget );
}
#endif // QT_NO_STYLE_SGI
diff --git a/src/styles/qwindowsstyle.cpp b/src/styles/qwindowsstyle.cpp
index e716a53e7..5a1289dca 100644
--- a/src/styles/qwindowsstyle.cpp
+++ b/src/styles/qwindowsstyle.cpp
@@ -66,10 +66,6 @@
#include "ntqobjectlist.h"
#include "ntqmenubar.h"
-#if defined(Q_WS_WIN)
-#include "qt_windows.h"
-#endif
-
#include <limits.h>
@@ -99,99 +95,42 @@ class TQWindowsStyle::Private : public TQObject
public:
Private(TQWindowsStyle *parent);
- bool hasSeenAlt(const TQWidget *widget) const;
- bool altDown() const { return alt_down; }
-
-protected:
- bool eventFilter(TQObject *o, TQEvent *e);
+ bool objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e );
private:
- TQPtrList<TQWidget> seenAlt;
- bool alt_down;
int menuBarTimer;
};
TQWindowsStyle::Private::Private(TQWindowsStyle *parent)
-: TQObject(parent, "TQWindowsStylePrivate"), alt_down(FALSE), menuBarTimer(0)
+: TQObject(parent, "TQWindowsStylePrivate"), menuBarTimer(0)
{
}
-// Returns true if the toplevel parent of \a widget has seen the Alt-key
-bool TQWindowsStyle::Private::hasSeenAlt(const TQWidget *widget) const
-{
- widget = widget->topLevelWidget();
- return seenAlt.contains(widget);
-}
-
// Records Alt- and Focus events
-bool TQWindowsStyle::Private::eventFilter(TQObject *o, TQEvent *e)
+bool TQWindowsStyle::Private::objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags, void* source, TQEvent *e )
{
- if (!o->isWidgetType())
- return TQObject::eventFilter(o, e);
+ if (!(ceData.widgetObjectTypes.contains("TQWidget"))) {
+ return TRUE;
+ }
- TQWidget *widget = ::tqt_cast<TQWidget*>(o);
+ TQWidget *widget = reinterpret_cast<TQWidget*>(source);
switch(e->type()) {
- case TQEvent::KeyPress:
- if (((TQKeyEvent*)e)->key() == Key_Alt) {
- widget = widget->topLevelWidget();
-
- // Alt has been pressed - find all widgets that care
- TQObjectList *l = widget->queryList("TQWidget");
- TQObjectListIt it( *l );
- TQWidget *w;
- while ( (w = (TQWidget*)it.current()) != 0 ) {
- ++it;
- if (w->isTopLevel() || !w->isVisible() ||
- w->style().styleHint(SH_UnderlineAccelerator, w))
- l->removeRef(w);
- }
- // Update states before repainting
- seenAlt.append(widget);
- alt_down = TRUE;
-
- // Repaint all relevant widgets
- it.toFirst();
- while ( (w = (TQWidget*)it.current()) != 0 ) {
- ++it;
- w->repaint(FALSE);
- }
- delete l;
- }
- break;
- case TQEvent::KeyRelease:
- if (((TQKeyEvent*)e)->key() == Key_Alt) {
- widget = widget->topLevelWidget();
-
- // Update state
- alt_down = FALSE;
- // Repaint only menubars
- TQObjectList *l = widget->queryList("TQMenuBar");
- TQObjectListIt it( *l );
- TQMenuBar *menuBar;
- while ( (menuBar = (TQMenuBar*)it.current()) != 0) {
- ++it;
- menuBar->repaint(FALSE);
- }
- }
- break;
case TQEvent::FocusIn:
case TQEvent::FocusOut:
{
// Menubars toggle based on focus
- TQMenuBar *menuBar = ::tqt_cast<TQMenuBar*>(o);
+ TQMenuBar *menuBar = ::tqt_cast<TQMenuBar*>(widget);
if (menuBar && !menuBarTimer) // delayed repaint to avoid flicker
menuBarTimer = menuBar->startTimer(0);
}
break;
case TQEvent::Close:
// Reset widget when closing
- seenAlt.removeRef(widget);
- seenAlt.removeRef(widget->topLevelWidget());
break;
case TQEvent::Timer:
{
- TQMenuBar *menuBar = ::tqt_cast<TQMenuBar*>(o);
+ TQMenuBar *menuBar = ::tqt_cast<TQMenuBar*>(widget);
TQTimerEvent *te = (TQTimerEvent*)e;
if (menuBar && te->timerId() == menuBarTimer) {
menuBar->killTimer(te->timerId());
@@ -205,7 +144,7 @@ bool TQWindowsStyle::Private::eventFilter(TQObject *o, TQEvent *e)
break;
}
- return TQObject::eventFilter(o, e);
+ return TRUE;
}
/*!
@@ -234,32 +173,40 @@ TQWindowsStyle::~TQWindowsStyle()
}
/*! \reimp */
-void TQWindowsStyle::polish(TQApplication *app)
+bool TQWindowsStyle::objectEventHandler( TQStyleControlElementData ceData, ControlElementFlags elementFlags, void* source, TQEvent *e ) {
+ if (d) {
+ return d->objectEventHandler(ceData, elementFlags, source, e);
+ }
+ return TRUE;
+}
+
+/*! \reimp */
+void TQWindowsStyle::applicationPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr)
{
// We only need the overhead when shortcuts are sometimes hidden
- if (!styleHint(SH_UnderlineAccelerator, 0)) {
+ if (styleHint(SH_UnderlineAccelerator, TQStyleControlElementData(), CEF_None, 0) && styleHint(SH_HideUnderlineAcceleratorWhenAltUp, TQStyleControlElementData(), CEF_None, 0)) {
d = new Private(this);
- app->installEventFilter(d);
+ installObjectEventHandler(ceData, elementFlags, ptr, this);
}
}
/*! \reimp */
-void TQWindowsStyle::unPolish(TQApplication *)
+void TQWindowsStyle::applicationUnPolish(TQStyleControlElementData, ControlElementFlags, void *)
{
delete d;
d = 0;
}
/*! \reimp */
-void TQWindowsStyle::polish(TQWidget *widget)
+void TQWindowsStyle::polish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr)
{
- TQCommonStyle::polish(widget);
+ TQCommonStyle::polish(ceData, elementFlags, ptr);
}
/*! \reimp */
-void TQWindowsStyle::unPolish(TQWidget *widget)
+void TQWindowsStyle::unPolish(TQStyleControlElementData ceData, ControlElementFlags elementFlags, void *ptr)
{
- TQCommonStyle::polish(widget);
+ TQCommonStyle::polish(ceData, elementFlags, ptr);
}
/*! \reimp */
@@ -271,6 +218,8 @@ void TQWindowsStyle::polish( TQPalette &pal )
/*! \reimp */
void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
TQPainter *p,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
@@ -315,31 +264,6 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
p->fillRect(r, fill);
break;
}
-#if defined(Q_WS_WIN)
- case PE_HeaderArrow:
- p->save();
- if ( flags & Style_Up ) { // invert logic to follow Windows style guide
- TQPointArray pa( 3 );
- p->setPen( cg.light() );
- p->drawLine( r.x() + r.width(), r.y(), r.x() + r.width() / 2, r.height() );
- p->setPen( cg.dark() );
- pa.setPoint( 0, r.x() + r.width() / 2, r.height() );
- pa.setPoint( 1, r.x(), r.y() );
- pa.setPoint( 2, r.x() + r.width(), r.y() );
- p->drawPolyline( pa );
- } else {
- TQPointArray pa( 3 );
- p->setPen( cg.light() );
- pa.setPoint( 0, r.x(), r.height() );
- pa.setPoint( 1, r.x() + r.width(), r.height() );
- pa.setPoint( 2, r.x() + r.width() / 2, r.y() );
- p->drawPolyline( pa );
- p->setPen( cg.dark() );
- p->drawLine( r.x(), r.height(), r.x() + r.width() / 2, r.y() );
- }
- p->restore();
- break;
-#endif
case PE_ButtonDefault:
p->setPen(cg.shadow());
@@ -507,7 +431,7 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
case PE_Panel:
case PE_PanelPopup:
{
- int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth)
+ int lw = opt.isDefault() ? pixelMetric(PM_DefaultFrameWidth, ceData, elementFlags)
: opt.lineWidth();
if (lw == 2) {
@@ -518,7 +442,7 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
}
qDrawWinPanel(p, r, popupCG, flags & Style_Sunken);
} else {
- TQCommonStyle::drawPrimitive(pe, p, r, cg, flags, opt);
+ TQCommonStyle::drawPrimitive(pe, p, ceData, elementFlags, r, cg, flags, opt);
}
break;
}
@@ -572,13 +496,13 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
p->setBrush( cg.brush( TQColorGroup::Button ) );
p->drawRect( r );
} else
- drawPrimitive(PE_ButtonBevel, p, r, cg, flags | Style_Raised);
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, r, cg, flags | Style_Raised);
} else
- drawPrimitive(PE_ButtonBevel, p, r, cg, (flags & Style_Enabled) |
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, r, cg, (flags & Style_Enabled) |
((flags & Style_Down) ? Style_Down : Style_Raised));
drawPrimitive(((flags & Style_Horizontal) ? PE_ArrowLeft : PE_ArrowUp),
- p, r, cg, flags);
+ p, ceData, elementFlags, r, cg, flags);
break;
case PE_ScrollBarAddLine:
@@ -588,13 +512,13 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
p->setBrush( cg.brush( TQColorGroup::Button ) );
p->drawRect( r );
} else
- drawPrimitive(PE_ButtonBevel, p, r, cg, flags | Style_Raised);
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, r, cg, flags | Style_Raised);
} else
- drawPrimitive(PE_ButtonBevel, p, r, cg, (flags & Style_Enabled) |
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, r, cg, (flags & Style_Enabled) |
((flags & Style_Down) ? Style_Down : Style_Raised));
drawPrimitive(((flags & Style_Horizontal) ? PE_ArrowRight : PE_ArrowDown),
- p, r, cg, flags);
+ p, ceData, elementFlags, r, cg, flags);
break;
case PE_ScrollBarAddPage:
@@ -632,7 +556,7 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
p->setBackgroundMode(OpaqueMode);
p->drawRect(r);
} else
- drawPrimitive(PE_ButtonBevel, p, r, cg, Style_Enabled | Style_Raised);
+ drawPrimitive(PE_ButtonBevel, p, ceData, elementFlags, r, cg, Style_Enabled | Style_Raised);
break;
case PE_WindowFrame:
@@ -674,8 +598,8 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
p->save();
if ( flags & Style_Down )
- p->translate( pixelMetric( PM_ButtonShiftHorizontal ),
- pixelMetric( PM_ButtonShiftVertical ) );
+ p->translate( pixelMetric( PM_ButtonShiftHorizontal, ceData, elementFlags ),
+ pixelMetric( PM_ButtonShiftVertical, ceData, elementFlags ) );
if ( flags & Style_Enabled ) {
a.translate( r.x() + r.width() / 2, r.y() + r.height() / 2 );
@@ -694,7 +618,7 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
}
p->restore();
} else
- TQCommonStyle::drawPrimitive(pe, p, r, cg, flags, opt);
+ TQCommonStyle::drawPrimitive(pe, p, ceData, elementFlags, r, cg, flags, opt);
}
}
@@ -704,33 +628,34 @@ void TQWindowsStyle::drawPrimitive( PrimitiveElement pe,
*/
void TQWindowsStyle::drawControl( ControlElement element,
TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch (element) {
#ifndef QT_NO_TABBAR
case CE_TabBarTab:
{
- if ( !widget || !widget->parentWidget() || !opt.tab() )
+ if ( ( elementFlags & CEF_UseGenericParameters ) || (!( elementFlags & CEF_HasParentWidget )) || !opt.tab() )
break;
- const TQTabBar * tb = (const TQTabBar *) widget;
const TQTab * t = opt.tab();
bool selected = flags & Style_Selected;
- bool lastTab = (tb->indexOf( t->identifier() ) == tb->count()-1) ?
+ bool lastTab = (ceData.tabBarData.identIndexMap[t->identifier()] == ceData.tabBarData.tabCount-1) ?
TRUE : FALSE;
TQRect r2( r );
- if ( tb->shape() == TQTabBar::RoundedAbove ) {
+ if ( ceData.tabBarData.shape == TQTabBar::RoundedAbove ) {
p->setPen( cg.midlight() );
p->drawLine( r2.left(), r2.bottom(), r2.right(), r2.bottom() );
p->setPen( cg.light() );
p->drawLine( r2.left(), r2.bottom()-1, r2.right(), r2.bottom()-1 );
if ( r2.left() == 0 )
- p->drawPoint( tb->rect().bottomLeft() );
+ p->drawPoint( ceData.rect.bottomLeft() );
if ( selected ) {
p->fillRect( TQRect( r2.left()+1, r2.bottom()-1, r2.width()-3, 2),
@@ -774,9 +699,9 @@ void TQWindowsStyle::drawControl( ControlElement element,
x2++;
p->drawLine( x2, r2.top() + 2, x2, r2.bottom() -
(selected ? (lastTab ? 0:1) :2));
- } else if ( tb->shape() == TQTabBar::RoundedBelow ) {
- bool rightAligned = styleHint( SH_TabBar_Alignment, tb ) == AlignRight;
- bool firstTab = tb->indexOf( t->identifier() ) == 0;
+ } else if ( ceData.tabBarData.shape == TQTabBar::RoundedBelow ) {
+ bool rightAligned = styleHint( SH_TabBar_Alignment, ceData, elementFlags, TQStyleOption::Default, 0, widget ) == AlignRight;
+ bool firstTab = ceData.tabBarData.identIndexMap[t->identifier()] == 0;
if ( selected ) {
p->fillRect( TQRect( r2.left()+1, r2.top(), r2.width()-3, 1),
cg.brush( TQColorGroup::Background ));
@@ -823,7 +748,7 @@ void TQWindowsStyle::drawControl( ControlElement element,
p->drawLine( r2.left(), r2.top() + (selected ? 0 : 2),
r2.left(), r2.bottom() - 2 );
} else {
- TQCommonStyle::drawControl(element, p, widget, r, cg, flags, opt);
+ TQCommonStyle::drawControl(element, p, ceData, elementFlags, r, cg, flags, opt, widget);
}
break;
}
@@ -838,10 +763,9 @@ void TQWindowsStyle::drawControl( ControlElement element,
#ifndef QT_NO_POPUPMENU
case CE_PopupMenuItem:
{
- if (! widget || opt.isDefault())
+ if (( elementFlags & CEF_UseGenericParameters ) || opt.isDefault())
break;
- const TQPopupMenu *popupmenu = (const TQPopupMenu *) widget;
TQMenuItem *mi = opt.menuItem();
if ( !mi )
break;
@@ -849,7 +773,7 @@ void TQWindowsStyle::drawControl( ControlElement element,
int tab = opt.tabWidth();
int maxpmw = opt.maxIconWidth();
bool dis = !(flags&Style_Enabled);
- bool checkable = popupmenu->isCheckable();
+ bool checkable = ( elementFlags & CEF_IsCheckable );
bool act = flags & Style_Active;
int x, y, w, h;
@@ -937,7 +861,7 @@ void TQWindowsStyle::drawControl( ControlElement element,
if (act)
cflags |= Style_On;
- drawPrimitive(PE_CheckMark, p,
+ drawPrimitive(PE_CheckMark, p, ceData, elementFlags,
visualRect( TQRect(xp, y + windowsItemFrame,
checkcol - 2*windowsItemFrame,
h - 2*windowsItemFrame), r ), cg, cflags);
@@ -973,8 +897,9 @@ void TQWindowsStyle::drawControl( ControlElement element,
if ( !s.isNull() ) { // draw text
int t = s.find( '\t' );
int text_flags = AlignVCenter|ShowPrefix | DontClip | SingleLine;
- if (!styleHint(SH_UnderlineAccelerator, widget))
+ if ((!styleHint(SH_UnderlineAccelerator, ceData, elementFlags, TQStyleOption::Default, 0, widget)) || ((styleHint(SH_HideUnderlineAcceleratorWhenAltUp, ceData, elementFlags, TQStyleOption::Default, 0, widget)) && (!acceleratorsShown()))) {
text_flags |= NoAccel;
+ }
text_flags |= (TQApplication::reverseLayout() ? AlignRight : AlignLeft );
if ( t >= 0 ) { // draw tab text
int xp = x + w - tab - windowsItemHMargin - windowsItemFrame + 1;
@@ -1014,10 +939,10 @@ void TQWindowsStyle::drawControl( ControlElement element,
if ( act ) {
TQColorGroup g2 = cg;
g2.setColor( TQColorGroup::ButtonText, g2.highlightedText() );
- drawPrimitive(arrow, p, vrect,
+ drawPrimitive(arrow, p, ceData, elementFlags, vrect,
g2, dis ? Style_Default : Style_Enabled);
} else {
- drawPrimitive(arrow, p, vrect,
+ drawPrimitive(arrow, p, ceData, elementFlags, vrect,
cg, dis ? Style_Default : Style_Enabled );
}
}
@@ -1042,17 +967,17 @@ void TQWindowsStyle::drawControl( ControlElement element,
qDrawShadeRect( p, r.x(), r.y(), r.width(), r.height(),
cg, active && down, 1, 0, &b );
if ( active && down ) {
- pr.moveBy( pixelMetric(PM_ButtonShiftHorizontal, widget),
- pixelMetric(PM_ButtonShiftVertical, widget) );
+ pr.moveBy( pixelMetric(PM_ButtonShiftHorizontal, ceData, elementFlags, widget),
+ pixelMetric(PM_ButtonShiftVertical, ceData, elementFlags, widget) );
p->setBrushOrigin(p->brushOrigin() - TQPoint(1,1));
}
}
- TQCommonStyle::drawControl(element, p, widget, pr, cg, flags, opt);
+ TQCommonStyle::drawControl(element, p, ceData, elementFlags, pr, cg, flags, opt, widget);
break;
}
default:
- TQCommonStyle::drawControl(element, p, widget, r, cg, flags, opt);
+ TQCommonStyle::drawControl(element, p, ceData, elementFlags, r, cg, flags, opt, widget);
}
}
@@ -1060,7 +985,7 @@ void TQWindowsStyle::drawControl( ControlElement element,
/*!
\reimp
*/
-int TQWindowsStyle::pixelMetric(PixelMetric metric, const TQWidget *widget) const
+int TQWindowsStyle::pixelMetric(PixelMetric metric, TQStyleControlElementData ceData, ControlElementFlags elementFlags, const TQWidget *widget) const
{
int ret;
@@ -1085,10 +1010,9 @@ int TQWindowsStyle::pixelMetric(PixelMetric metric, const TQWidget *widget) cons
// equally between the tickmark regions.
case PM_SliderControlThickness:
{
- const TQSlider * sl = (const TQSlider *) widget;
- int space = (sl->orientation() == Horizontal) ? sl->height()
- : sl->width();
- int ticks = sl->tickmarks();
+ int space = (ceData.orientation == Horizontal) ? ceData.rect.height()
+ : ceData.rect.width();
+ int ticks = ceData.tickMarkSetting;
int n = 0;
if ( ticks & TQSlider::Above ) n++;
if ( ticks & TQSlider::Below ) n++;
@@ -1099,7 +1023,7 @@ int TQWindowsStyle::pixelMetric(PixelMetric metric, const TQWidget *widget) cons
int thick = 6; // Magic constant to get 5 + 16 + 5
if ( ticks != TQSlider::Both && ticks != TQSlider::NoMarks )
- thick += pixelMetric( PM_SliderLength, sl ) / 4;
+ thick += pixelMetric( PM_SliderLength, ceData, elementFlags, widget ) / 4;
space -= thick;
//### the two sides may be unequal in size
@@ -1114,46 +1038,12 @@ int TQWindowsStyle::pixelMetric(PixelMetric metric, const TQWidget *widget) cons
ret = 0;
break;
-#if defined(Q_WS_WIN)
- case PM_TitleBarHeight:
- if ( widget && ( widget->testWFlags( WStyle_Tool ) || ::tqt_cast<TQDockWindow*>(widget) ) ) {
- // MS always use one less than they say
-#if defined(Q_OS_TEMP)
- ret = GetSystemMetrics( SM_CYCAPTION ) - 1;
-#else
- ret = GetSystemMetrics( SM_CYSMCAPTION ) - 1;
-#endif
- } else {
- ret = GetSystemMetrics( SM_CYCAPTION ) - 1;
- }
- break;
-
- case PM_ScrollBarExtent:
- {
-#ifndef Q_OS_TEMP
- NONCLIENTMETRICS ncm;
- ncm.cbSize = sizeof(NONCLIENTMETRICS);
- if ( SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0 ) )
- ret = TQMAX( ncm.iScrollHeight, ncm.iScrollWidth );
- else
-#endif
- ret = TQCommonStyle::pixelMetric( metric, widget );
- }
- break;
-#endif
-
case PM_SplitterWidth:
ret = TQMAX( 6, TQApplication::globalStrut().width() );
break;
-#if defined(Q_WS_WIN)
- case PM_MDIFrameWidth:
- ret = GetSystemMetrics(SM_CYFRAME);
- break;
-#endif
-
default:
- ret = TQCommonStyle::pixelMetric(metric, widget);
+ ret = TQCommonStyle::pixelMetric(metric, ceData, elementFlags, widget);
break;
}
@@ -1165,9 +1055,11 @@ int TQWindowsStyle::pixelMetric(PixelMetric metric, const TQWidget *widget) cons
\reimp
*/
TQSize TQWindowsStyle::sizeFromContents( ContentsType contents,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQSize &contentsSize,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
TQSize sz(contentsSize);
@@ -1175,15 +1067,14 @@ TQSize TQWindowsStyle::sizeFromContents( ContentsType contents,
case CT_PushButton:
{
#ifndef QT_NO_PUSHBUTTON
- const TQPushButton *button = (const TQPushButton *) widget;
- sz = TQCommonStyle::sizeFromContents(contents, widget, contentsSize, opt);
+ sz = TQCommonStyle::sizeFromContents(contents, ceData, elementFlags, contentsSize, opt, widget);
int w = sz.width(), h = sz.height();
int defwidth = 0;
- if (button->isDefault() || button->autoDefault())
- defwidth = 2*pixelMetric( PM_ButtonDefaultIndicator, widget );
+ if ((elementFlags & CEF_IsDefault) || (elementFlags & CEF_AutoDefault))
+ defwidth = 2*pixelMetric( PM_ButtonDefaultIndicator, ceData, elementFlags, widget );
- if (w < 80+defwidth && !button->pixmap())
+ if (w < 80+defwidth && ceData.fgPixmap.isNull())
w = 80+defwidth;
if (h < 23+defwidth)
h = 23+defwidth;
@@ -1196,11 +1087,10 @@ TQSize TQWindowsStyle::sizeFromContents( ContentsType contents,
case CT_PopupMenuItem:
{
#ifndef QT_NO_POPUPMENU
- if (! widget || opt.isDefault())
+ if (( elementFlags & CEF_UseGenericParameters ) || opt.isDefault())
break;
- const TQPopupMenu *popup = (const TQPopupMenu *) widget;
- bool checkable = popup->isCheckable();
+ bool checkable = ( elementFlags & CEF_IsCheckable );
TQMenuItem *mi = opt.menuItem();
int maxpmw = opt.maxIconWidth();
int w = sz.width(), h = sz.height();
@@ -1218,7 +1108,7 @@ TQSize TQWindowsStyle::sizeFromContents( ContentsType contents,
if (mi->pixmap())
h = TQMAX(h, mi->pixmap()->height() + 2*windowsItemFrame);
else if (! mi->text().isNull())
- h = TQMAX(h, popup->fontMetrics().height() + 2*windowsItemVMargin +
+ h = TQMAX(h, TQFontMetrics(ceData.font).height() + 2*windowsItemVMargin +
2*windowsItemFrame);
if (mi->iconSet() != 0)
@@ -1256,7 +1146,7 @@ TQSize TQWindowsStyle::sizeFromContents( ContentsType contents,
}
default:
- sz = TQCommonStyle::sizeFromContents(contents, widget, sz, opt);
+ sz = TQCommonStyle::sizeFromContents(contents, ceData, elementFlags, sz, opt, widget);
break;
}
@@ -1556,8 +1446,10 @@ static const char *const question_xpm[] = {
\reimp
*/
TQPixmap TQWindowsStyle::stylePixmap(StylePixmap stylepixmap,
- const TQWidget *widget,
- const TQStyleOption& opt) const
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
+ const TQStyleOption& opt,
+ const TQWidget *widget) const
{
#ifndef QT_NO_IMAGEIO_XPM
switch (stylepixmap) {
@@ -1587,26 +1479,28 @@ TQPixmap TQWindowsStyle::stylePixmap(StylePixmap stylepixmap,
break;
}
#endif //QT_NO_IMAGEIO_XPM
- return TQCommonStyle::stylePixmap(stylepixmap, widget, opt);
+ return TQCommonStyle::stylePixmap(stylepixmap, ceData, elementFlags, opt, widget);
}
/*!\reimp
*/
void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQRect &r,
const TQColorGroup &cg,
SFlags flags,
SCFlags sub,
SCFlags subActive,
- const TQStyleOption& opt ) const
+ const TQStyleOption& opt,
+ const TQWidget *widget ) const
{
switch (ctrl) {
#ifndef QT_NO_LISTVIEW
case CC_ListView:
{
if ( sub & SC_ListView ) {
- TQCommonStyle::drawComplexControl( ctrl, p, widget, r, cg, flags, sub, subActive, opt );
+ TQCommonStyle::drawComplexControl( ctrl, p, ceData, elementFlags, r, cg, flags, sub, subActive, opt, widget );
}
if ( sub & ( SC_ListViewBranch | SC_ListViewExpand ) ) {
if (opt.isDefault())
@@ -1769,13 +1663,13 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
if ( sub & SC_ComboBoxArrow ) {
SFlags flags = Style_Default;
- qDrawWinPanel( p, r, cg, TRUE, widget->isEnabled() ?
+ qDrawWinPanel( p, r, cg, TRUE, ( elementFlags & CEF_IsEnabled ) ?
&cg.brush( TQColorGroup::Base ):
&cg.brush( TQColorGroup::Background ) );
TQRect ar =
- TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, widget,
- SC_ComboBoxArrow ), widget );
+ TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, ceData, elementFlags,
+ SC_ComboBoxArrow, TQStyleOption::Default, widget ), ceData, elementFlags );
if ( subActive == SC_ComboBoxArrow ) {
p->setPen( cg.dark() );
p->setBrush( cg.brush( TQColorGroup::Button ) );
@@ -1785,25 +1679,24 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
&cg.brush( TQColorGroup::Button ) );
ar.addCoords( 2, 2, -2, -2 );
- if ( widget->isEnabled() )
+ if ( elementFlags & CEF_IsEnabled )
flags |= Style_Enabled;
if ( subActive == SC_ComboBoxArrow ) {
flags |= Style_Sunken;
}
- drawPrimitive( PE_ArrowDown, p, ar, cg, flags );
+ drawPrimitive( PE_ArrowDown, p, ceData, elementFlags, ar, cg, flags );
}
if ( sub & SC_ComboBoxEditField ) {
- const TQComboBox * cb = (const TQComboBox *) widget;
TQRect re =
- TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, widget,
- SC_ComboBoxEditField ), widget );
- if ( cb->hasFocus() && !cb->editable() )
+ TQStyle::visualRect( querySubControlMetrics( CC_ComboBox, ceData, elementFlags,
+ SC_ComboBoxEditField, TQStyleOption::Default, widget ), ceData, elementFlags );
+ if ( ( elementFlags & CEF_HasFocus ) && (!( elementFlags & CEF_IsEditable )) )
p->fillRect( re.x(), re.y(), re.width(), re.height(),
cg.brush( TQColorGroup::Highlight ) );
- if ( cb->hasFocus() ) {
+ if ( elementFlags & CEF_HasFocus ) {
p->setPen( cg.highlightedText() );
p->setBackgroundColor( cg.highlight() );
@@ -1812,10 +1705,10 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
p->setBackgroundColor( cg.background() );
}
- if ( cb->hasFocus() && !cb->editable() ) {
+ if ( ( elementFlags & CEF_HasFocus ) && (!( elementFlags & CEF_IsEditable )) ) {
TQRect re =
- TQStyle::visualRect( subRect( SR_ComboBoxFocusRect, cb ), widget );
- drawPrimitive( PE_FocusRect, p, re, cg, Style_FocusAtBorder, TQStyleOption(cg.highlight()));
+ TQStyle::visualRect( subRect( SR_ComboBoxFocusRect, ceData, elementFlags, widget ), ceData, elementFlags );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, re, cg, Style_FocusAtBorder, TQStyleOption(cg.highlight()));
}
}
@@ -1825,15 +1718,14 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
#ifndef QT_NO_SLIDER
case CC_Slider:
{
- const TQSlider *sl = (const TQSlider *) widget;
- int thickness = pixelMetric( PM_SliderControlThickness, widget );
- int len = pixelMetric( PM_SliderLength, widget );
- int ticks = sl->tickmarks();
+ int thickness = pixelMetric( PM_SliderControlThickness, ceData, elementFlags, widget );
+ int len = pixelMetric( PM_SliderLength, ceData, elementFlags, widget );
+ int ticks = ceData.tickMarkSetting;
- TQRect groove = querySubControlMetrics(CC_Slider, widget, SC_SliderGroove,
- opt),
- handle = querySubControlMetrics(CC_Slider, widget, SC_SliderHandle,
- opt);
+ TQRect groove = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderGroove,
+ opt, widget),
+ handle = querySubControlMetrics(CC_Slider, ceData, elementFlags, SC_SliderHandle,
+ opt, widget);
if ((sub & SC_SliderGroove) && groove.isValid()) {
int mid = thickness / 2;
@@ -1844,7 +1736,7 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
mid -= len / 8;
p->setPen( cg.shadow() );
- if ( sl->orientation() == Horizontal ) {
+ if ( ceData.orientation == Horizontal ) {
qDrawWinPanel( p, groove.x(), groove.y() + mid - 2,
groove.width(), 4, cg, TRUE );
p->drawLine( groove.x() + 1, groove.y() + mid - 1,
@@ -1859,9 +1751,9 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
}
if (sub & SC_SliderTickmarks)
- TQCommonStyle::drawComplexControl(ctrl, p, widget, r, cg, flags,
+ TQCommonStyle::drawComplexControl(ctrl, p, ceData, elementFlags, r, cg, flags,
SC_SliderTickmarks, subActive,
- opt );
+ opt, widget );
if ( sub & SC_SliderHandle ) {
// 4444440
@@ -1887,15 +1779,15 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
int y1 = y;
int y2 = y+he-1;
- Orientation orient = sl->orientation();
- bool tickAbove = sl->tickmarks() == TQSlider::Above;
- bool tickBelow = sl->tickmarks() == TQSlider::Below;
+ Orientation orient = ceData.orientation;
+ bool tickAbove = ceData.tickMarkSetting == TQSlider::Above;
+ bool tickBelow = ceData.tickMarkSetting == TQSlider::Below;
p->fillRect( x, y, wi, he, cg.brush( TQColorGroup::Background ) );
if ( flags & Style_HasFocus ) {
- TQRect re = subRect( SR_SliderFocusRect, sl );
- drawPrimitive( PE_FocusRect, p, re, cg );
+ TQRect re = subRect( SR_SliderFocusRect, ceData, elementFlags, widget );
+ drawPrimitive( PE_FocusRect, p, ceData, elementFlags, re, cg );
}
if ( (tickAbove && tickBelow) || (!tickAbove && !tickBelow) ) {
@@ -2032,8 +1924,8 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
#endif // QT_NO_SLIDER
default:
- TQCommonStyle::drawComplexControl( ctrl, p, widget, r, cg, flags, sub,
- subActive, opt );
+ TQCommonStyle::drawComplexControl( ctrl, p, ceData, elementFlags, r, cg, flags, sub,
+ subActive, opt, widget );
break;
}
}
@@ -2041,9 +1933,11 @@ void TQWindowsStyle::drawComplexControl( ComplexControl ctrl, TQPainter *p,
/*! \reimp */
int TQWindowsStyle::styleHint( StyleHint hint,
- const TQWidget *widget,
+ TQStyleControlElementData ceData,
+ ControlElementFlags elementFlags,
const TQStyleOption &opt,
- TQStyleHintReturn *returnData ) const
+ TQStyleHintReturn *returnData,
+ const TQWidget *widget ) const
{
int ret;
@@ -2063,11 +1957,6 @@ int TQWindowsStyle::styleHint( StyleHint hint,
break;
case SH_ItemView_ChangeHighlightOnFocus:
-#if defined(Q_WS_WIN)
- if ( qWinVersion() != WV_95 && qWinVersion() != WV_NT )
- ret = 1;
- else
-#endif
ret = 0;
break;
@@ -2075,59 +1964,8 @@ int TQWindowsStyle::styleHint( StyleHint hint,
ret = 0;
break;
-#if defined(Q_WS_WIN)
- case SH_UnderlineAccelerator:
- ret = 1;
- if ( qWinVersion() != WV_95 && qWinVersion() != WV_98 && qWinVersion() != WV_NT ) {
- BOOL cues;
- SystemParametersInfo(SPI_GETKEYBOARDCUES, 0, &cues, 0);
- ret = cues ? 1 : 0;
- // Do nothing if we always paint underlines
- if (!ret && widget && d) {
- TQMenuBar *menuBar = ::tqt_cast<TQMenuBar*>(widget);
- TQPopupMenu *popupMenu = 0;
- if (!menuBar)
- popupMenu = ::tqt_cast<TQPopupMenu*>(widget);
-
- // If we paint a menubar draw underlines if it has focus, or if alt is down,
- // or if a popup menu belonging to the menubar is active and paints underlines
- if (menuBar) {
- if (menuBar->hasFocus()) {
- ret = 1;
- } else if (d->altDown()) {
- ret = 1;
- } else if (tqApp->focusWidget() && tqApp->focusWidget()->isPopup()) {
- popupMenu = ::tqt_cast<TQPopupMenu*>(tqApp->focusWidget());
- TQMenuData *pm = popupMenu ? (TQMenuData*)popupMenu->tqt_cast("TQMenuData") : 0;
- if (pm && ((FriendlyMenuData*)pm)->parentMenu == menuBar) {
- if (d->hasSeenAlt(menuBar))
- ret = 1;
- }
- }
- // If we paint a popup menu draw underlines if the respective menubar does
- } else if (popupMenu) {
- TQMenuData *pm = (TQMenuData*)popupMenu->tqt_cast("TQMenuData");
- while (pm) {
- if (((FriendlyMenuData*)pm)->isMenuBar) {
- menuBar = (TQMenuBar*)pm;
- if (d->hasSeenAlt(menuBar))
- ret = 1;
- break;
- }
- pm = ((FriendlyMenuData*)pm)->parentMenu;
- }
- // Otherwise draw underlines if the toplevel widget has seen an alt-press
- } else if (d->hasSeenAlt(widget)) {
- ret = 1;
- }
- }
-
- }
- break;
-#endif
-
default:
- ret = TQCommonStyle::styleHint(hint, widget, opt, returnData);
+ ret = TQCommonStyle::styleHint(hint, ceData, elementFlags, opt, returnData, widget);
break;
}
@@ -2135,7 +1973,7 @@ int TQWindowsStyle::styleHint( StyleHint hint,
}
/*! \reimp */
-TQRect TQWindowsStyle::subRect(SubRect r, const TQWidget *widget) const
+TQRect TQWindowsStyle::subRect(SubRect r, const TQStyleControlElementData ceData, const ControlElementFlags elementFlags, const TQWidget *widget) const
{
TQRect rect;
@@ -2143,15 +1981,15 @@ TQRect TQWindowsStyle::subRect(SubRect r, const TQWidget *widget) const
#ifndef QT_NO_SLIDER
case SR_SliderFocusRect:
{
- rect = widget->rect();
+ rect = ceData.rect;
break;
}
#endif // QT_NO_SLIDER
case SR_ToolBoxTabContents:
- rect = widget->rect();
+ rect = ceData.rect;
break;
default:
- rect = TQCommonStyle::subRect( r, widget );
+ rect = TQCommonStyle::subRect( r, ceData, elementFlags, widget );
break;
}