summaryrefslogtreecommitdiff
path: root/noncore/styles/liquid/liquid.h
authorsandman <sandman>2002-06-24 17:07:45 (UTC)
committer sandman <sandman>2002-06-24 17:07:45 (UTC)
commitf284f40fe5912736666a56143705f260d14feb34 (patch) (side-by-side diff)
tree2aa6dee5e26aaeffc3505ca0c536651bce09cfe6 /noncore/styles/liquid/liquid.h
parentdb5385bc16f56b4c5b84ad4a92ac6bdd46eea321 (diff)
downloadopie-f284f40fe5912736666a56143705f260d14feb34.zip
opie-f284f40fe5912736666a56143705f260d14feb34.tar.gz
opie-f284f40fe5912736666a56143705f260d14feb34.tar.bz2
Inital checkin of liquid style for OPIE
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 @@
+#ifndef LIQUID_STYLE_H
+#define LIQUID_STYLE_H
+
+
+#include <qwindowsstyle.h>
+#include <qpainter.h>
+#include <qdrawutil.h>
+#include <qpalette.h>
+#include <qwidget.h>
+#include <qpushbutton.h>
+#include <qscrollbar.h>
+#include <qbitmap.h>
+#include <qintdict.h>
+#include <qstrlist.h>
+#include <qobject.h>
+#include <limits.h>
+
+
+/*-
+ * Copyright (C)QPL 2001 Daniel M. Duley. All rights reserved.
+ */
+
+class QPixmap;
+
+#define BITMAP_ITEMS 41
+#define LIQUID_MENU_CHANGE 667
+#define MOSFET_BUTTON_CHANGE 661
+
+enum BitmapData{RadioOn=0, RadioOff, RadioOnHover, RadioOffHover, VSBSliderTop,
+VSBSliderMid, VSBSliderBtm, VSBSliderTopHover, VSBSliderMidHover,
+VSBSliderBtmHover, VSBSliderTopBg, VSBSliderMidBg, VSBSliderBtmBg,
+HSBSliderTop, HSBSliderMid, HSBSliderBtm, HSBSliderTopHover, HSBSliderMidHover,
+HSBSliderBtmHover, HSBSliderTopBg, HSBSliderMidBg,
+HSBSliderBtmBg, Tab, TabDown, TabFocus, CB, CBDown, CBHover, CBDownHover,
+HSlider, VSlider, HTMLBtnBorder, HTMLBtnBorderDown, HTMLCB, HTMLCBDown,
+HTMLCBHover, HTMLCBDownHover, HTMLRadio, HTMLRadioDown, HTMLRadioHover,
+HTMLRadioDownHover};
+
+
+class QHeader;
+
+enum TransType{None=0, StippledBg, StippledBtn, TransStippleBg,
+ TransStippleBtn, Custom};
+
+class TransMenuHandler : public QObject
+{
+ Q_OBJECT
+public:
+ TransMenuHandler(QObject *parent);
+ ~TransMenuHandler(){;}
+ void reloadSettings();
+ int transType(){return(type);}
+ QPixmap *pixmap(WId id){return(pixDict.find(id));}
+ const QColor& textColor(){return(fgColor);}
+ const QColor& bgColor(){return(color);}
+ bool useShadowText(){return(shadowText);}
+protected:
+ bool eventFilter(QObject *obj, QEvent *ev);
+ void stripePixmap(QPixmap &pix, const QColor &color);
+
+ QColor color, fgColor;
+ int opacity;
+ int type;
+ bool shadowText;
+ QIntDict<QPixmap>pixDict;
+};
+
+class LiquidStyle : public QWindowsStyle
+{
+ friend class TransMenuHandler;
+public:
+ LiquidStyle();
+ ~LiquidStyle();
+ virtual void polish(QWidget *w);
+ virtual void unPolish(QWidget *w);
+ virtual void polish(QApplication *a);
+ virtual void unPolish(QApplication *a);
+ virtual void polish(QPalette &p);
+ void drawButton(QPainter *p, int x, int y, int w, int h,
+ const QColorGroup &g, bool sunken = FALSE,
+ const QBrush *fill = 0 );
+ void drawButtonMask(QPainter *p, int x, int y, int w, int h);
+ void drawComboButtonMask(QPainter *p, int x, int y, int w, int h);
+ QRect buttonRect(int x, int y, int w, int h);
+ void drawBevelButton(QPainter *p, int x, int y, int w, int h,
+ const QColorGroup &g, bool sunken = FALSE,
+ const QBrush *fill = 0 );
+ void drawPushButton(QPushButton *btn, QPainter *p);
+ virtual void drawPushButtonLabel (QPushButton *btn, QPainter *p);
+ void drawScrollBarControls(QPainter*, const QScrollBar*, int sliderStart,
+ uint controls, uint activeControl );
+ QStyle::ScrollControl scrollBarPointOver(const QScrollBar *sb,
+ int sliderStart, const QPoint &p);
+ void scrollBarMetrics(const QScrollBar *sb, int &sliderMin, int &sliderMax,
+ int &sliderLength, int &buttonDim);
+ QSize indicatorSize() const;
+ void drawIndicator(QPainter* p, int x, int y, int w, int h,
+ const QColorGroup &g, int state, bool down = FALSE,
+ bool enabled = TRUE );
+ void drawIndicatorMask(QPainter *p, int x, int y, int w, int h, int);
+ QSize exclusiveIndicatorSize() const;
+ void drawExclusiveIndicator(QPainter* p, int x, int y, int w, int h,
+ const QColorGroup &g, bool on,
+ bool down = FALSE, bool enabled = TRUE );
+ void drawExclusiveIndicatorMask(QPainter *p, int x, int y, int w,
+ int h, bool);
+ void drawComboButton(QPainter *p, int x, int y, int w, int h,
+ const QColorGroup &g, bool sunken = FALSE,
+ bool editable = FALSE, bool enabled = TRUE,
+ const QBrush *fill = 0 );
+ QRect comboButtonRect(int x, int y, int w, int h);
+ QRect comboButtonFocusRect(int x, int y, int w, int h);
+ int sliderLength() const;
+ void drawArrow(QPainter *p, Qt::ArrowType type, bool down,
+ int x, int y, int w, int h, const QColorGroup &g,
+ bool enabled=true, const QBrush *fill = 0);
+ void drawSlider(QPainter *p, int x, int y, int w, int h,
+ const QColorGroup &g, Orientation orient,
+ bool tickAbove, bool tickBelow);
+ void drawSliderMask(QPainter *p, int x, int y, int w, int h,
+ Orientation orient, bool, bool);
+ void drawMenuBarItem(QPainter *p, int x, int y, int w, int h,
+ QMenuItem *mi, QColorGroup &g, bool enabled, bool active );
+
+ void drawPopupMenuItem(QPainter *p, bool checkable, int maxpmw,
+ int tab, QMenuItem *mi, const QPalette &pal,
+ bool act, bool enabled, int x, int y, int w,
+ int h);
+ int popupMenuItemHeight(bool c, QMenuItem *mi, const QFontMetrics &fm);
+ void drawFocusRect(QPainter *p, const QRect &r, const QColorGroup &g,
+ const QColor *pen, bool atBorder);
+ int defaultFrameWidth() const {return(2);}
+ void polishPopupMenu(QPopupMenu *mnu);
+ void drawTab(QPainter *p, const QTabBar *tabBar, QTab *tab,
+ bool selected);
+ void drawTabMask( QPainter*, const QTabBar*, QTab*, bool selected );
+ void tabbarMetrics(const QTabBar *t, int &hFrame, int &vFrame,
+ int &overlap);
+
+ void drawSplitter(QPainter *p, int x, int y, int w, int h,
+ const QColorGroup &g, Orientation orient);
+ int splitterWidth() const {return(6);}
+ void drawPanel(QPainter *p, int x, int y, int w, int h,
+ const QColorGroup &g, bool sunken, int lineWidth,
+ const QBrush *fill);
+ void drawToolButton(QPainter *p, int x, int y, int w,
+ int h, const QColorGroup &g,
+ bool sunken, const QBrush *fill);
+ // for repainting toolbuttons when the toolbar is resized
+ bool eventFilter(QObject *obj, QEvent *ev);
+ void drawSliderGroove(QPainter * p, int x, int y, int w, int h,
+ const QColorGroup &g, QCOORD c, Orientation);
+ void drawSliderGrooveMask(QPainter * p, int x, int y, int w, int h,
+ QCOORD c, Orientation);
+ int buttonDefaultIndicatorWidth() const {return(2);}
+ void drawPopupPanel(QPainter *p, int x, int y, int w, int h,
+ const QColorGroup &g, int lineWidth,
+ const QBrush * fill);
+protected:
+ void adjustHSV(QPixmap &pix, int h, int s, int v);
+ void intensity(QPixmap &pix, float percent);
+
+ void drawRoundButton(QPainter *p, const QColor &c, const QColor &bg, int x,
+ int y, int w, int h, bool supportPushDown = false,
+ bool pushedDown = false, bool autoDefault = false,
+ bool isMasked = false);
+ void drawClearBevel(QPainter *p, int x, int y, int w, int h,
+ const QColor &c, const QColor &bg);
+ void drawSBDeco(QPainter *p, const QRect &r, const QColorGroup &g,
+ bool horiz);
+ void drawSBButton(QPainter *p, const QRect &r, const QColorGroup &g,
+ bool down=false, bool fast = true);
+ void drawRoundRect(QPainter *p, int x, int y, int w, int h);
+ void loadCustomButtons();
+ void applyCustomAttributes(QPushButton *btn);
+ void unapplyCustomAttributes(QPushButton *btn);
+ QPixmap* getPixmap(BitmapData item);
+ QPixmap* processEmbedded(const char *label, int h, int s, int v, bool blend=false);
+private:
+ bool highcolor;
+ QColorGroup radioOnGrp;
+ QWidget *highlightWidget;
+ QBrush wallpaper;
+ QBitmap lightBmp;
+ QBitmap grayBmp;
+ QBitmap dgrayBmp;
+ QBitmap maskBmp;
+ QBitmap xBmp;
+ QBitmap btnMaskBmp, htmlBtnMaskBmp;
+ QPixmap *btnBorderPix, *btnBlendPix, *bevelFillPix, *smallBevelFillPix, *menuPix;
+ QBitmap paper1, paper2, paper3;
+ QBrush baseBrush, menuBrush, pagerBrush, pagerHoverBrush, bgBrush;
+ bool menuAni, menuFade;
+
+ QIntDict<QPixmap>btnDict;
+ QIntDict<QPixmap>btnBorderDict;
+ QIntDict<QPixmap>bevelFillDict;
+ QIntDict<QPixmap>smallBevelFillDict;
+
+ QList<QColor>customBtnColorList;
+ QList<QPixmap>customBtnIconList;
+ QStrList customBtnLabelList;
+ QPixmap *vsbSliderFillPix;
+ TransMenuHandler *menuHandler;
+ QPixmap *pixmaps[BITMAP_ITEMS];
+ QPixmap sbBuffer;
+ int oldSliderThickness;
+ int lowLightVal;
+ QHeader *currentHeader;
+ int headerHoverID;
+ QWMatrix rMatrix;
+ int bH, bS, bV;
+ int bHoverH, bHoverS, bHoverV;
+ int btnH, btnS, btnV;
+ int btnHoverH, btnHoverS, btnHoverV;
+};
+
+#endif