00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __TDESTYLE_H
00028 #define __TDESTYLE_H
00029
00030
00031
00032
00033
00034
00035 #include <tqcommonstyle.h>
00036
00037 #include <tdelibs_export.h>
00038
00039 class KPixmap;
00040
00041 struct TDEStylePrivate;
00057 class TDEFX_EXPORT TDEStyle: public TQCommonStyle
00058 {
00059 Q_OBJECT
00060
00061
00062 public:
00063
00080 typedef uint TDEStyleFlags;
00081 enum TDEStyleOption {
00082 Default = 0x00000000,
00083 AllowMenuTransparency = 0x00000001,
00084 FilledFrameWorkaround = 0x00000002
00085 };
00086
00110 enum TDEStyleScrollBarType {
00111 WindowsStyleScrollBar = 0x00000000,
00112 PlatinumStyleScrollBar = 0x00000001,
00113 ThreeButtonScrollBar = 0x00000002,
00114 NextStyleScrollBar = 0x00000004
00115 };
00116
00136 TDEStyle( TDEStyleFlags flags = TDEStyle::Default,
00137 TDEStyleScrollBarType sbtype = TDEStyle::WindowsStyleScrollBar );
00138
00142 ~TDEStyle();
00143
00147 static TQString defaultStyle();
00148
00160 void setScrollBarType(TDEStyleScrollBarType sbtype);
00161
00167 TDEStyleFlags styleFlags() const;
00168
00169
00170
00182 virtual void renderMenuBlendPixmap( KPixmap& pix, const TQColorGroup& cg,
00183 const TQPopupMenu* popup ) const;
00184
00228 enum TDEStylePrimitive {
00229 KPE_DockWindowHandle,
00230 KPE_ToolBarHandle,
00231 KPE_GeneralHandle,
00232
00233 KPE_SliderGroove,
00234 KPE_SliderHandle,
00235
00236 KPE_ListViewExpander,
00237 KPE_ListViewBranch
00238 };
00239
00240
00241
00242 virtual void drawTDEStylePrimitive( TDEStylePrimitive kpe,
00243 TQPainter* p,
00244 const TQWidget* widget,
00245 const TQRect &r,
00246 const TQColorGroup &cg,
00247 SFlags flags = Style_Default,
00248 const TQStyleOption& = TQStyleOption::SO_Default ) const;
00249
00259 virtual void drawTDEStylePrimitive( TDEStylePrimitive kpe,
00260 TQPainter* p,
00261 const TQStyleControlElementData &ceData,
00262 ControlElementFlags elementFlags,
00263 const TQRect &r,
00264 const TQColorGroup &cg,
00265 SFlags flags = Style_Default,
00266 const TQStyleOption& = TQStyleOption::SO_Default,
00267 const TQWidget* widget = 0 ) const;
00268
00269
00270 enum TDEStylePixelMetric {
00271 KPM_MenuItemSeparatorHeight = 0x00000001,
00272 KPM_MenuItemHMargin = 0x00000002,
00273 KPM_MenuItemVMargin = 0x00000004,
00274 KPM_MenuItemHFrame = 0x00000008,
00275 KPM_MenuItemVFrame = 0x00000010,
00276 KPM_MenuItemCheckMarkHMargin = 0x00000020,
00277 KPM_MenuItemArrowHMargin = 0x00000040,
00278 KPM_MenuItemTabSpacing = 0x00000080,
00279 KPM_ListViewBranchThickness = 0x00000100
00280 };
00281
00282 int kPixelMetric( TDEStylePixelMetric kpm, const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, const TQWidget* widget = 0 ) const;
00283
00284
00285
00286 void polish( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void * );
00287 void unPolish( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void * );
00288 void polishPopupMenu( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void *ptr );
00289
00290 void drawPrimitive( TQ_PrimitiveElement pe,
00291 TQPainter* p,
00292 const TQStyleControlElementData &ceData,
00293 ControlElementFlags elementFlags,
00294 const TQRect &r,
00295 const TQColorGroup &cg,
00296 SFlags flags = Style_Default,
00297 const TQStyleOption& = TQStyleOption::SO_Default ) const;
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312 void drawControl( TQ_ControlElement element,
00313 TQPainter* p,
00314 const TQStyleControlElementData &ceData,
00315 ControlElementFlags elementFlags,
00316 const TQRect &r,
00317 const TQColorGroup &cg,
00318 SFlags flags = Style_Default,
00319 const TQStyleOption& = TQStyleOption::SO_Default,
00320 const TQWidget* widget = 0 ) const;
00321
00322 void drawComplexControl( TQ_ComplexControl control,
00323 TQPainter *p,
00324 const TQStyleControlElementData &ceData,
00325 ControlElementFlags elementFlags,
00326 const TQRect &r,
00327 const TQColorGroup &cg,
00328 SFlags flags = Style_Default,
00329 SCFlags controls = SC_All,
00330 SCFlags active = SC_None,
00331 const TQStyleOption& = TQStyleOption::SO_Default,
00332 const TQWidget* widget = 0 ) const;
00333
00334 SubControl querySubControl( TQ_ComplexControl control,
00335 const TQStyleControlElementData &ceData,
00336 ControlElementFlags elementFlags,
00337 const TQPoint &pos,
00338 const TQStyleOption& = TQStyleOption::SO_Default,
00339 const TQWidget* widget = 0 ) const;
00340
00341 TQRect querySubControlMetrics( TQ_ComplexControl control,
00342 const TQStyleControlElementData &ceData,
00343 ControlElementFlags elementFlags,
00344 SubControl sc,
00345 const TQStyleOption& = TQStyleOption::SO_Default,
00346 const TQWidget* widget = 0 ) const;
00347
00348 int pixelMetric( PixelMetric m, const TQStyleControlElementData &ceData, ControlElementFlags elementFlags,
00349 const TQWidget* widget = 0 ) const;
00350
00351 TQRect subRect( SubRect r, const TQStyleControlElementData &ceData, const ControlElementFlags elementFlags,
00352 const TQWidget* widget = 0 ) const;
00353
00354 TQPixmap stylePixmap( StylePixmap stylepixmap,
00355 const TQStyleControlElementData &ceData,
00356 ControlElementFlags elementFlags,
00357 const TQStyleOption& = TQStyleOption::SO_Default,
00358 const TQWidget* widget = 0 ) const;
00359
00360 int styleHint( TQ_StyleHint sh, const TQStyleControlElementData &ceData,
00361 ControlElementFlags elementFlags,
00362 const TQStyleOption &opt = TQStyleOption::SO_Default,
00363 TQStyleHintReturn* shr = 0,
00364 const TQWidget* w = 0 ) const;
00365
00366 protected:
00367 virtual bool objectEventHandler( const TQStyleControlElementData &ceData, ControlElementFlags elementFlags, void* source, TQEvent *e );
00368
00369 private:
00370
00371 TDEStyle( const TDEStyle & );
00372 TDEStyle& operator=( const TDEStyle & );
00373
00374 protected:
00375 virtual void virtual_hook( int id, void* data );
00376 private:
00377 TDEStylePrivate *d;
00378 };
00379
00380
00381
00382 #endif
00383