summaryrefslogtreecommitdiff
path: root/noncore/styles/liquid/liquid.h
Unidiff
Diffstat (limited to 'noncore/styles/liquid/liquid.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/styles/liquid/liquid.h218
1 files changed, 218 insertions, 0 deletions
diff --git a/noncore/styles/liquid/liquid.h b/noncore/styles/liquid/liquid.h
new file mode 100644
index 0000000..fb691ea
--- a/dev/null
+++ b/noncore/styles/liquid/liquid.h
@@ -0,0 +1,218 @@
1#ifndef LIQUID_STYLE_H
2#define LIQUID_STYLE_H
3
4
5#include <qwindowsstyle.h>
6#include <qpainter.h>
7#include <qdrawutil.h>
8#include <qpalette.h>
9#include <qwidget.h>
10#include <qpushbutton.h>
11#include <qscrollbar.h>
12#include <qbitmap.h>
13#include <qintdict.h>
14#include <qstrlist.h>
15#include <qobject.h>
16#include <limits.h>
17
18
19/*-
20 * Copyright (C)QPL 2001 Daniel M. Duley. All rights reserved.
21 */
22
23class QPixmap;
24
25#define BITMAP_ITEMS 41
26#define LIQUID_MENU_CHANGE 667
27#define MOSFET_BUTTON_CHANGE 661
28
29enum BitmapData{RadioOn=0, RadioOff, RadioOnHover, RadioOffHover, VSBSliderTop,
30VSBSliderMid, VSBSliderBtm, VSBSliderTopHover, VSBSliderMidHover,
31VSBSliderBtmHover, VSBSliderTopBg, VSBSliderMidBg, VSBSliderBtmBg,
32HSBSliderTop, HSBSliderMid, HSBSliderBtm, HSBSliderTopHover, HSBSliderMidHover,
33HSBSliderBtmHover, HSBSliderTopBg, HSBSliderMidBg,
34HSBSliderBtmBg, Tab, TabDown, TabFocus, CB, CBDown, CBHover, CBDownHover,
35HSlider, VSlider, HTMLBtnBorder, HTMLBtnBorderDown, HTMLCB, HTMLCBDown,
36HTMLCBHover, HTMLCBDownHover, HTMLRadio, HTMLRadioDown, HTMLRadioHover,
37HTMLRadioDownHover};
38
39
40class QHeader;
41
42enum TransType{None=0, StippledBg, StippledBtn, TransStippleBg,
43 TransStippleBtn, Custom};
44
45class TransMenuHandler : public QObject
46{
47 Q_OBJECT
48public:
49 TransMenuHandler(QObject *parent);
50 ~TransMenuHandler(){;}
51 void reloadSettings();
52 int transType(){return(type);}
53 QPixmap *pixmap(WId id){return(pixDict.find(id));}
54 const QColor& textColor(){return(fgColor);}
55 const QColor& bgColor(){return(color);}
56 bool useShadowText(){return(shadowText);}
57protected:
58 bool eventFilter(QObject *obj, QEvent *ev);
59 void stripePixmap(QPixmap &pix, const QColor &color);
60
61 QColor color, fgColor;
62 int opacity;
63 int type;
64 bool shadowText;
65 QIntDict<QPixmap>pixDict;
66};
67
68class LiquidStyle : public QWindowsStyle
69{
70 friend class TransMenuHandler;
71public:
72 LiquidStyle();
73 ~LiquidStyle();
74 virtual void polish(QWidget *w);
75 virtual void unPolish(QWidget *w);
76 virtual void polish(QApplication *a);
77 virtual void unPolish(QApplication *a);
78 virtual void polish(QPalette &p);
79 void drawButton(QPainter *p, int x, int y, int w, int h,
80 const QColorGroup &g, bool sunken = FALSE,
81 const QBrush *fill = 0 );
82 void drawButtonMask(QPainter *p, int x, int y, int w, int h);
83 void drawComboButtonMask(QPainter *p, int x, int y, int w, int h);
84 QRect buttonRect(int x, int y, int w, int h);
85 void drawBevelButton(QPainter *p, int x, int y, int w, int h,
86 const QColorGroup &g, bool sunken = FALSE,
87 const QBrush *fill = 0 );
88 void drawPushButton(QPushButton *btn, QPainter *p);
89 virtual void drawPushButtonLabel (QPushButton *btn, QPainter *p);
90 void drawScrollBarControls(QPainter*, const QScrollBar*, int sliderStart,
91 uint controls, uint activeControl );
92 QStyle::ScrollControl scrollBarPointOver(const QScrollBar *sb,
93 int sliderStart, const QPoint &p);
94 void scrollBarMetrics(const QScrollBar *sb, int &sliderMin, int &sliderMax,
95 int &sliderLength, int &buttonDim);
96 QSize indicatorSize() const;
97 void drawIndicator(QPainter* p, int x, int y, int w, int h,
98 const QColorGroup &g, int state, bool down = FALSE,
99 bool enabled = TRUE );
100 void drawIndicatorMask(QPainter *p, int x, int y, int w, int h, int);
101 QSize exclusiveIndicatorSize() const;
102 void drawExclusiveIndicator(QPainter* p, int x, int y, int w, int h,
103 const QColorGroup &g, bool on,
104 bool down = FALSE, bool enabled = TRUE );
105 void drawExclusiveIndicatorMask(QPainter *p, int x, int y, int w,
106 int h, bool);
107 void drawComboButton(QPainter *p, int x, int y, int w, int h,
108 const QColorGroup &g, bool sunken = FALSE,
109 bool editable = FALSE, bool enabled = TRUE,
110 const QBrush *fill = 0 );
111 QRect comboButtonRect(int x, int y, int w, int h);
112 QRect comboButtonFocusRect(int x, int y, int w, int h);
113 int sliderLength() const;
114 void drawArrow(QPainter *p, Qt::ArrowType type, bool down,
115 int x, int y, int w, int h, const QColorGroup &g,
116 bool enabled=true, const QBrush *fill = 0);
117 void drawSlider(QPainter *p, int x, int y, int w, int h,
118 const QColorGroup &g, Orientation orient,
119 bool tickAbove, bool tickBelow);
120 void drawSliderMask(QPainter *p, int x, int y, int w, int h,
121 Orientation orient, bool, bool);
122 void drawMenuBarItem(QPainter *p, int x, int y, int w, int h,
123 QMenuItem *mi, QColorGroup &g, bool enabled, bool active );
124
125 void drawPopupMenuItem(QPainter *p, bool checkable, int maxpmw,
126 int tab, QMenuItem *mi, const QPalette &pal,
127 bool act, bool enabled, int x, int y, int w,
128 int h);
129 int popupMenuItemHeight(bool c, QMenuItem *mi, const QFontMetrics &fm);
130 void drawFocusRect(QPainter *p, const QRect &r, const QColorGroup &g,
131 const QColor *pen, bool atBorder);
132 int defaultFrameWidth() const {return(2);}
133 void polishPopupMenu(QPopupMenu *mnu);
134 void drawTab(QPainter *p, const QTabBar *tabBar, QTab *tab,
135 bool selected);
136 void drawTabMask( QPainter*, const QTabBar*, QTab*, bool selected );
137 void tabbarMetrics(const QTabBar *t, int &hFrame, int &vFrame,
138 int &overlap);
139
140 void drawSplitter(QPainter *p, int x, int y, int w, int h,
141 const QColorGroup &g, Orientation orient);
142 int splitterWidth() const {return(6);}
143 void drawPanel(QPainter *p, int x, int y, int w, int h,
144 const QColorGroup &g, bool sunken, int lineWidth,
145 const QBrush *fill);
146 void drawToolButton(QPainter *p, int x, int y, int w,
147 int h, const QColorGroup &g,
148 bool sunken, const QBrush *fill);
149 // for repainting toolbuttons when the toolbar is resized
150 bool eventFilter(QObject *obj, QEvent *ev);
151 void drawSliderGroove(QPainter * p, int x, int y, int w, int h,
152 const QColorGroup &g, QCOORD c, Orientation);
153 void drawSliderGrooveMask(QPainter * p, int x, int y, int w, int h,
154 QCOORD c, Orientation);
155 int buttonDefaultIndicatorWidth() const {return(2);}
156 void drawPopupPanel(QPainter *p, int x, int y, int w, int h,
157 const QColorGroup &g, int lineWidth,
158 const QBrush * fill);
159protected:
160 void adjustHSV(QPixmap &pix, int h, int s, int v);
161 void intensity(QPixmap &pix, float percent);
162
163 void drawRoundButton(QPainter *p, const QColor &c, const QColor &bg, int x,
164 int y, int w, int h, bool supportPushDown = false,
165 bool pushedDown = false, bool autoDefault = false,
166 bool isMasked = false);
167 void drawClearBevel(QPainter *p, int x, int y, int w, int h,
168 const QColor &c, const QColor &bg);
169 void drawSBDeco(QPainter *p, const QRect &r, const QColorGroup &g,
170 bool horiz);
171 void drawSBButton(QPainter *p, const QRect &r, const QColorGroup &g,
172 bool down=false, bool fast = true);
173 void drawRoundRect(QPainter *p, int x, int y, int w, int h);
174 void loadCustomButtons();
175 void applyCustomAttributes(QPushButton *btn);
176 void unapplyCustomAttributes(QPushButton *btn);
177 QPixmap* getPixmap(BitmapData item);
178 QPixmap* processEmbedded(const char *label, int h, int s, int v, bool blend=false);
179private:
180 bool highcolor;
181 QColorGroup radioOnGrp;
182 QWidget *highlightWidget;
183 QBrush wallpaper;
184 QBitmap lightBmp;
185 QBitmap grayBmp;
186 QBitmap dgrayBmp;
187 QBitmap maskBmp;
188 QBitmap xBmp;
189 QBitmap btnMaskBmp, htmlBtnMaskBmp;
190 QPixmap *btnBorderPix, *btnBlendPix, *bevelFillPix, *smallBevelFillPix, *menuPix;
191 QBitmap paper1, paper2, paper3;
192 QBrush baseBrush, menuBrush, pagerBrush, pagerHoverBrush, bgBrush;
193 bool menuAni, menuFade;
194
195 QIntDict<QPixmap>btnDict;
196 QIntDict<QPixmap>btnBorderDict;
197 QIntDict<QPixmap>bevelFillDict;
198 QIntDict<QPixmap>smallBevelFillDict;
199
200 QList<QColor>customBtnColorList;
201 QList<QPixmap>customBtnIconList;
202 QStrList customBtnLabelList;
203 QPixmap *vsbSliderFillPix;
204 TransMenuHandler *menuHandler;
205 QPixmap *pixmaps[BITMAP_ITEMS];
206 QPixmap sbBuffer;
207 int oldSliderThickness;
208 int lowLightVal;
209 QHeader *currentHeader;
210 int headerHoverID;
211 QWMatrix rMatrix;
212 int bH, bS, bV;
213 int bHoverH, bHoverS, bHoverV;
214 int btnH, btnS, btnV;
215 int btnHoverH, btnHoverS, btnHoverV;
216};
217
218#endif