]> SALOME platform Git repositories - modules/gui.git/blob - src/Style/SalomeStyle.h
Salome HOME
Title for Dock windows
[modules/gui.git] / src / Style / SalomeStyle.h
1 #ifndef SALOMESTYLE_H\r
2 #define SALOMESTYLE_H\r
3 \r
4 #define parent_style qwindowsstyle\r
5 #define PARENT_STYLE QWindowsStyle\r
6 \r
7 #define QUOTE(x) #x\r
8 #define PARENT_INC(x) QUOTE(x.h)\r
9 \r
10 //#include PARENT_INC(parent_style)\r
11 #include <qwindowsstyle.h>\r
12 \r
13 #include <qpixmap.h>\r
14 #include <qdockwindow.h>\r
15 #include <qstyleplugin.h>\r
16 \r
17 #if defined SALOMESTYLE_EXPORTS\r
18 #if defined WIN32\r
19 #define SALOMESTYLE_EXPORT _declspec( dllexport )\r
20 #else\r
21 #define SALOMESTYLE_EXPORT  \r
22 #endif\r
23 #else\r
24 #if defined WIN32\r
25 #define SALOMESTYLE_EXPORT _declspec( dllimport )\r
26 #else\r
27 #define SALOMESTYLE_EXPORT  \r
28 #endif\r
29 #endif\r
30 \r
31 class QFontMetrics;\r
32 \r
33 class SALOMESTYLE_EXPORT SalomeStyle : public PARENT_STYLE\r
34 {\r
35 public:\r
36   SalomeStyle();\r
37   virtual ~SalomeStyle();\r
38 \r
39   virtual void       polish( QWidget* );\r
40 \r
41   virtual bool       eventFilter( QObject*, QEvent* );\r
42 \r
43   static void        mix( const double, QRgb&, const QRgb& );\r
44   static void        mix( const double, QPixmap&, const QColor& );\r
45   static void        mix( const double, const QColor&, const QColor&, QColor& );\r
46 \r
47   static void        toGrayscale( QPixmap&, double = 1.0 );\r
48 \r
49   virtual void       drawPrimitive( PrimitiveElement, QPainter*, const QRect&,\r
50                                     const QColorGroup&, SFlags = Style_Default,\r
51                                     const QStyleOption& = QStyleOption::Default ) const;\r
52 \r
53   virtual void       drawControl( ControlElement, QPainter*, const QWidget*,\r
54                                   const QRect&, const QColorGroup&, SFlags = Style_Default,\r
55                                   const QStyleOption& = QStyleOption::Default ) const; \r
56 \r
57   virtual QRect      subRect( SubRect, const QWidget* ) const;\r
58 \r
59   virtual void       drawComplexControl( ComplexControl, QPainter*, const QWidget*,\r
60                                          const QRect&, const QColorGroup&, SFlags = Style_Default,\r
61                                          SCFlags = SC_All, SCFlags = SC_None,\r
62                                          const QStyleOption& = QStyleOption::Default ) const;\r
63 \r
64   virtual QPixmap    stylePixmap( StylePixmap, const QWidget* = 0,\r
65                                   const QStyleOption& = QStyleOption::Default ) const;\r
66 \r
67   virtual int        pixelMetric( PixelMetric, const QWidget* widget = 0 ) const;\r
68 \r
69 protected:\r
70   typedef enum { LeftToRight, RightToLeft, UpToDown, DownToUp } Direction;\r
71 \r
72   typedef double (*gradient_func)( double );\r
73 \r
74   void               drawGradient( QPainter*, const QRect&, const QColor&,\r
75                                    const QColor&, const Direction, gradient_func ) const;\r
76 \r
77   QString            titleText( const QString&, const int, const QFontMetrics& ) const;\r
78 \r
79 private:\r
80   QWidget*           myTitleParent;\r
81 };\r
82 \r
83 class SalomeStylePlugin : public QStylePlugin\r
84 {\r
85 public:\r
86   SalomeStylePlugin();\r
87   virtual ~SalomeStylePlugin();\r
88 \r
89   virtual QStringList keys() const;\r
90   virtual QStyle* create( const QString& );\r
91 };\r
92 \r
93 #endif\r