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 __KSTYLE_H
00028 #define __KSTYLE_H
00029
00030
00031
00032
00033
00034
00035 #include <qcommonstyle.h>
00036
00037 class TransparencyHandler;
00038 class KPixmap;
00039
00040 class KStylePrivate;
00056 class KStyle: public QCommonStyle
00057 {
00058 Q_OBJECT
00059
00060 public:
00061
00078 typedef uint KStyleFlags;
00079 enum KStyleOption {
00080 Default = 0x00000000,
00081 AllowMenuTransparency = 0x00000001,
00082 FilledFrameWorkaround = 0x00000002
00083 };
00084
00106 enum KStyleScrollBarType {
00107 WindowsStyleScrollBar = 0x00000000,
00108 PlatinumStyleScrollBar = 0x00000001,
00109 ThreeButtonScrollBar = 0x00000002,
00110 NextStyleScrollBar = 0x00000004
00111 };
00112
00130 KStyle( KStyleFlags flags = KStyle::Default,
00131 KStyleScrollBarType sbtype = KStyle::WindowsStyleScrollBar );
00132
00136 ~KStyle();
00137
00141 static QString defaultStyle();
00142
00152 void setScrollBarType(KStyleScrollBarType sbtype);
00153
00159 KStyleFlags styleFlags() const;
00160
00161
00162
00174 virtual void renderMenuBlendPixmap( KPixmap& pix, const QColorGroup& cg,
00175 const QPopupMenu* popup ) const;
00176
00220 enum KStylePrimitive {
00221 KPE_DockWindowHandle,
00222 KPE_ToolBarHandle,
00223 KPE_GeneralHandle,
00224
00225 KPE_SliderGroove,
00226 KPE_SliderHandle,
00227
00228 KPE_ListViewExpander,
00229 KPE_ListViewBranch
00230 };
00231
00241 virtual void drawKStylePrimitive( KStylePrimitive kpe,
00242 QPainter* p,
00243 const QWidget* widget,
00244 const QRect &r,
00245 const QColorGroup &cg,
00246 SFlags flags = Style_Default,
00247 const QStyleOption& = QStyleOption::Default ) const;
00248
00249
00250 enum KStylePixelMetric {
00251 KPM_MenuItemSeparatorHeight = 0x00000001,
00252 KPM_MenuItemHMargin = 0x00000002,
00253 KPM_MenuItemVMargin = 0x00000004,
00254 KPM_MenuItemHFrame = 0x00000008,
00255 KPM_MenuItemVFrame = 0x00000010,
00256 KPM_MenuItemCheckMarkHMargin = 0x00000020,
00257 KPM_MenuItemArrowHMargin = 0x00000040,
00258 KPM_MenuItemTabSpacing = 0x00000080,
00259
00260 KPM_ListViewBranchThickness = 0x00000100
00261 };
00262
00263 int kPixelMetric( KStylePixelMetric kpm, const QWidget* widget = 0 ) const;
00264
00265
00266
00267 void polish( QWidget* widget );
00268 void unPolish( QWidget* widget );
00269 void polishPopupMenu( QPopupMenu* );
00270
00271 void drawPrimitive( PrimitiveElement pe,
00272 QPainter* p,
00273 const QRect &r,
00274 const QColorGroup &cg,
00275 SFlags flags = Style_Default,
00276 const QStyleOption& = QStyleOption::Default ) const;
00277
00278 void drawControl( ControlElement element,
00279 QPainter* p,
00280 const QWidget* widget,
00281 const QRect &r,
00282 const QColorGroup &cg,
00283 SFlags flags = Style_Default,
00284 const QStyleOption& = QStyleOption::Default ) const;
00285
00286 void drawComplexControl( ComplexControl control,
00287 QPainter *p,
00288 const QWidget* widget,
00289 const QRect &r,
00290 const QColorGroup &cg,
00291 SFlags flags = Style_Default,
00292 SCFlags controls = SC_All,
00293 SCFlags active = SC_None,
00294 const QStyleOption& = QStyleOption::Default ) const;
00295
00296 SubControl querySubControl( ComplexControl control,
00297 const QWidget* widget,
00298 const QPoint &pos,
00299 const QStyleOption& = QStyleOption::Default ) const;
00300
00301 QRect querySubControlMetrics( ComplexControl control,
00302 const QWidget* widget,
00303 SubControl sc,
00304 const QStyleOption& = QStyleOption::Default ) const;
00305
00306 int pixelMetric( PixelMetric m,
00307 const QWidget* widget = 0 ) const;
00308
00309 QRect subRect( SubRect r,
00310 const QWidget* widget ) const;
00311
00312 QPixmap stylePixmap( StylePixmap stylepixmap,
00313 const QWidget* widget = 0,
00314 const QStyleOption& = QStyleOption::Default ) const;
00315
00316 int styleHint( StyleHint sh,
00317 const QWidget* w = 0,
00318 const QStyleOption &opt = QStyleOption::Default,
00319 QStyleHintReturn* shr = 0 ) const;
00320
00321 protected:
00322 bool eventFilter( QObject* object, QEvent* event );
00323
00324 private:
00325
00326 KStyle( const KStyle & );
00327 KStyle& operator=( const KStyle & );
00328
00329 protected:
00330 virtual void virtual_hook( int id, void* data );
00331 private:
00332 KStylePrivate *d;
00333 };
00334
00335
00336
00337 #endif
00338