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 KPixmap;
00038
00039
class KStylePrivate;
00055 class KStyle:
public QCommonStyle
00056 {
00057 Q_OBJECT
00058
00059
public:
00060
00077 typedef uint
KStyleFlags;
00078 enum KStyleOption {
00079
Default = 0x00000000,
00080
AllowMenuTransparency = 0x00000001,
00081
FilledFrameWorkaround = 0x00000002
00082 };
00083
00107 enum KStyleScrollBarType {
00108
WindowsStyleScrollBar = 0x00000000,
00109
PlatinumStyleScrollBar = 0x00000001,
00110
ThreeButtonScrollBar = 0x00000002,
00111
NextStyleScrollBar = 0x00000004
00112 };
00113
00133
KStyle( KStyleFlags flags = KStyle::Default,
00134 KStyleScrollBarType sbtype = KStyle::WindowsStyleScrollBar );
00135
00139
~KStyle();
00140
00144
static QString defaultStyle();
00145
00157
void setScrollBarType(KStyleScrollBarType sbtype);
00158
00164 KStyleFlags
styleFlags() const;
00165
00166
00167
00179 virtual
void renderMenuBlendPixmap(
KPixmap& pix, const
QColorGroup& cg,
00180 const
QPopupMenu* popup ) const;
00181
00225 enum KStylePrimitive {
00226 KPE_DockWindowHandle,
00227 KPE_ToolBarHandle,
00228 KPE_GeneralHandle,
00229
00230 KPE_SliderGroove,
00231 KPE_SliderHandle,
00232
00233 KPE_ListViewExpander,
00234 KPE_ListViewBranch
00235 };
00236
00246
virtual void drawKStylePrimitive( KStylePrimitive kpe,
00247
QPainter* p,
00248
const QWidget* widget,
00249
const QRect &r,
00250
const QColorGroup &cg,
00251 SFlags flags = Style_Default,
00252
const QStyleOption& = QStyleOption::Default )
const;
00253
00254
00255
enum KStylePixelMetric {
00256 KPM_MenuItemSeparatorHeight = 0x00000001,
00257 KPM_MenuItemHMargin = 0x00000002,
00258 KPM_MenuItemVMargin = 0x00000004,
00259 KPM_MenuItemHFrame = 0x00000008,
00260 KPM_MenuItemVFrame = 0x00000010,
00261 KPM_MenuItemCheckMarkHMargin = 0x00000020,
00262 KPM_MenuItemArrowHMargin = 0x00000040,
00263 KPM_MenuItemTabSpacing = 0x00000080,
00264 KPM_ListViewBranchThickness = 0x00000100
00265 };
00266
00267
int kPixelMetric( KStylePixelMetric kpm,
const QWidget* widget = 0 )
const;
00268
00269
00270
00271
void polish(
QWidget* widget );
00272
void unPolish(
QWidget* widget );
00273
void polishPopupMenu(
QPopupMenu* );
00274
00275
void drawPrimitive( PrimitiveElement pe,
00276
QPainter* p,
00277
const QRect &r,
00278
const QColorGroup &cg,
00279 SFlags flags = Style_Default,
00280
const QStyleOption& = QStyleOption::Default )
const;
00281
00282
void drawControl( ControlElement element,
00283
QPainter* p,
00284
const QWidget* widget,
00285
const QRect &r,
00286
const QColorGroup &cg,
00287 SFlags flags = Style_Default,
00288
const QStyleOption& = QStyleOption::Default )
const;
00289
00290
void drawComplexControl( ComplexControl control,
00291
QPainter *p,
00292
const QWidget* widget,
00293
const QRect &r,
00294
const QColorGroup &cg,
00295 SFlags flags = Style_Default,
00296 SCFlags controls = SC_All,
00297 SCFlags active = SC_None,
00298
const QStyleOption& = QStyleOption::Default )
const;
00299
00300 SubControl querySubControl( ComplexControl control,
00301
const QWidget* widget,
00302
const QPoint &pos,
00303
const QStyleOption& = QStyleOption::Default )
const;
00304
00305
QRect querySubControlMetrics( ComplexControl control,
00306
const QWidget* widget,
00307 SubControl sc,
00308
const QStyleOption& = QStyleOption::Default )
const;
00309
00310
int pixelMetric( PixelMetric m,
00311
const QWidget* widget = 0 )
const;
00312
00313
QRect subRect( SubRect r,
00314
const QWidget* widget )
const;
00315
00316
QPixmap stylePixmap( StylePixmap stylepixmap,
00317
const QWidget* widget = 0,
00318
const QStyleOption& = QStyleOption::Default )
const;
00319
00320
int styleHint( StyleHint sh,
00321
const QWidget* w = 0,
00322
const QStyleOption &opt = QStyleOption::Default,
00323 QStyleHintReturn* shr = 0 )
const;
00324
00325
protected:
00326
bool eventFilter(
QObject* object,
QEvent* event );
00327
00328
private:
00329
00330
KStyle(
const KStyle & );
00331
KStyle& operator=(
const KStyle & );
00332
00333
protected:
00334
virtual void virtual_hook(
int id,
void* data );
00335
private:
00336 KStylePrivate *d;
00337 };
00338
00339
00340
00341
#endif
00342