X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/cfe43ee16030fd37f6bce9ba99e367c15ecbf44f..e93336d428081eb1646146c546f2fee527cb888c:/lib/gui/ewidget.h diff --git a/lib/gui/ewidget.h b/lib/gui/ewidget.h index fbe5a92a..89b3b38f 100644 --- a/lib/gui/ewidget.h +++ b/lib/gui/ewidget.h @@ -33,6 +33,9 @@ public: int getStyle(ePtr &style) { if (!m_style) return 1; style = m_style; return 0; } 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()); } /* ... */ @@ -50,14 +53,22 @@ 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; void doPaint(gPainter &painter, const gRegion ®ion); void recalcClipRegionsWhenVisible(); + + 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! @@ -77,9 +88,13 @@ public: evtAction, + evtFocusGot, + evtFocusLost, + evtUserWidget, }; virtual int event(int event, void *data = 0, void *data2 = 0); + void setFocus(eWidget *focus); }; extern eWidgetDesktop *getDesktop();