X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/44433f650cd3e5f9f66253b74d194fcb01578595..759a94e910f4f45d11aac2635fc0b6df1149cd3c:/lib/gui/ewidget.h diff --git a/lib/gui/ewidget.h b/lib/gui/ewidget.h index cb39a000..5cb139c5 100644 --- a/lib/gui/ewidget.h +++ b/lib/gui/ewidget.h @@ -4,6 +4,9 @@ #include /* for gRegion */ #include /* for eSmartPtrList */ #include /* for eWindowStyle */ +#include + +class eWidgetDesktop;class eWidgetDesktop; class eWidget { @@ -34,11 +37,13 @@ public: void setStyle(eWindowStyle *style) { m_style = style; } void setBackgroundColor(const gRGB &col); + void clearBackgroundColor(); /* untested code */ int isVisible() { return (m_vis & wVisShow) && ((!m_parent) || m_parent->isVisible()); } /* ... */ + eWidgetAnimation m_animation; private: eWidgetDesktop *m_desktop; @@ -52,6 +57,8 @@ private: ePtrList m_childs; ePoint m_position; eSize m_size; + /* will be accounted when there's a client offset */ + eSize m_client_offset; eWidget *m_parent; ePtr m_style; @@ -61,12 +68,16 @@ private: gRGB m_background_color; int m_have_background_color; + + eWidget *m_current_focus, *m_focus_owner; protected: virtual ~eWidget(); + void mayKillFocus(); public: // all in local space! gRegion m_clip_region, m_visible_region, m_visible_with_childs; + struct eWidgetDesktopCompBuffer *m_comp_buffer; enum eWidgetEvent { @@ -82,9 +93,13 @@ public: evtAction, + evtFocusGot, + evtFocusLost, + evtUserWidget, }; virtual int event(int event, void *data = 0, void *data2 = 0); + void setFocus(eWidget *focus); }; extern eWidgetDesktop *getDesktop();