1 #ifndef __lib_gui_ewindowstyle_h
2 #define __lib_gui_ewindowstyle_h
8 #include <lib/base/object.h>
10 class eWindowStyle: public iObject
13 virtual void handleNewSize(eWindow *wnd, const eSize &size) = 0;
14 virtual void paintWindowDecoration(eWindow *wnd, gPainter &painter, const std::string &title) = 0;
15 virtual void paintBackground(gPainter &painter, const ePoint &offset, const eSize &size) = 0;
16 virtual void setStyle(gPainter &painter, int what) = 0;
24 virtual void drawFrame(gPainter &painter, const eRect &frame, int type) = 0;
37 virtual RESULT getFont(int what, ePtr<gFont> &font) = 0;
38 virtual ~eWindowStyle() = 0;
41 class eWindowStyleSimple: public eWindowStyle
43 DECLARE_REF(eWindowStyleSimple);
46 gColor m_border_color_tl, m_border_color_br, m_title_color_back, m_title_color, m_background_color;
48 int m_border_top, m_border_left, m_border_right, m_border_bottom;
51 void handleNewSize(eWindow *wnd, const eSize &size);
52 void paintWindowDecoration(eWindow *wnd, gPainter &painter, const std::string &title);
53 void paintBackground(gPainter &painter, const ePoint &offset, const eSize &size);
54 void setStyle(gPainter &painter, int what);
55 void drawFrame(gPainter &painter, const eRect &frame, int what);
56 RESULT getFont(int what, ePtr<gFont> &font);
60 class eWindowStyleSkinned: public eWindowStyle
62 DECLARE_REF(eWindowStyleSkinned);
64 eWindowStyleSkinned();
65 void handleNewSize(eWindow *wnd, const eSize &size);
66 void paintWindowDecoration(eWindow *wnd, gPainter &painter, const std::string &title);
67 void paintBackground(gPainter &painter, const ePoint &offset, const eSize &size);
68 void setStyle(gPainter &painter, int what);
69 void drawFrame(gPainter &painter, const eRect &frame, int what);
93 ePtr<gPixmap> m_pixmap[9];
96 void drawBorder(gPainter &painter, const eSize &size, const struct borderSet &border, int where);