X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ddc3964ed95d01e72229dc9af968a327cd84e56c..cd621fe499141885e5a0d8b4e42a0f8a7f41a9ac:/lib/gui/ewindowstyle.h diff --git a/lib/gui/ewindowstyle.h b/lib/gui/ewindowstyle.h index 02f155af..74ff88d5 100644 --- a/lib/gui/ewindowstyle.h +++ b/lib/gui/ewindowstyle.h @@ -3,6 +3,7 @@ class eWindow; class eSize; +class gFont; #include @@ -10,15 +11,40 @@ class eWindowStyle: public iObject { public: virtual void handleNewSize(eWindow *wnd, const eSize &size) = 0; + virtual void paintWindowDecoration(eWindow *wnd, gPainter &painter, const std::string &title) = 0; + virtual void paintBackground(gPainter &painter, const ePoint &offset, const eSize &size) = 0; + virtual void setStyle(gPainter &painter, int what) = 0; + enum { + styleLabel, + styleListboxSelected, + styleListboxNormal + }; + + virtual void drawFrame(gPainter &painter, const eRect &frame, int type) = 0; + + enum { + frameButton, + frameListboxEntry + }; + virtual ~eWindowStyle() = 0; + }; class eWindowStyleSimple: public eWindowStyle { DECLARE_REF; +private: + ePtr m_fnt; + gColor m_border_color_tl, m_border_color_br, m_title_color_back, m_title_color, m_background_color; + + int m_border_top, m_border_left, m_border_right, m_border_bottom; public: eWindowStyleSimple(); void handleNewSize(eWindow *wnd, const eSize &size); - int m_border_top, m_border_left, m_border_right, m_border_bottom; + void paintWindowDecoration(eWindow *wnd, gPainter &painter, const std::string &title); + void paintBackground(gPainter &painter, const ePoint &offset, const eSize &size); + void setStyle(gPainter &painter, int what); + void drawFrame(gPainter &painter, const eRect &frame, int what); }; #endif