X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/bf82503dcba2b12fc921040397a0387d6dea9dbb..fca263d581290c94fdfe4d7baae85d9532e27524:/lib/gui/ewidget.h diff --git a/lib/gui/ewidget.h b/lib/gui/ewidget.h index db86fd10..f7c611f6 100644 --- a/lib/gui/ewidget.h +++ b/lib/gui/ewidget.h @@ -13,7 +13,8 @@ class eWidget friend class eWidgetDesktop; public: eWidget(eWidget *parent); - + virtual ~eWidget(); + void move(ePoint pos); void resize(eSize size); @@ -48,6 +49,8 @@ public: int isTransparent() { return m_vis & wVisTransparent; } + ePoint getAbsolutePosition(); + eWidgetAnimation m_animation; private: eWidgetDesktop *m_desktop; @@ -72,15 +75,16 @@ private: void doPaint(gPainter &painter, const gRegion ®ion); void recalcClipRegionsWhenVisible(); + void parentRemoved(); + gRGB m_background_color; int m_have_background_color; eWidget *m_current_focus, *m_focus_owner; int m_z_position; - + int m_notify_child_on_position_change; protected: - virtual ~eWidget(); void mayKillFocus(); public: @@ -95,6 +99,8 @@ public: evtChangedPosition, evtChangedSize, + evtParentChangedPosition, + evtWillShow, evtWillHide, evtWillChangePosition, /* new size is eRect *data */ @@ -109,8 +115,11 @@ public: }; virtual int event(int event, void *data = 0, void *data2 = 0); void setFocus(eWidget *focus); + + /* enable this if you need the absolute position of the widget */ + void setPositionNotifyChild(int n) { m_notify_child_on_position_change = 1; } }; -extern eWidgetDesktop *getDesktop(); +extern eWidgetDesktop *getDesktop(int which); #endif