X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ed40f6f85c9c07c3c1224ae20601082c0309a631..665611070aead66a845b42e4b8912bcc45bc5602:/lib/gui/ewidget.h diff --git a/lib/gui/ewidget.h b/lib/gui/ewidget.h index 98b30087..8af66b05 100644 --- a/lib/gui/ewidget.h +++ b/lib/gui/ewidget.h @@ -6,6 +6,8 @@ #include /* for eWindowStyle */ #include +#define MAX_LAYER 16 + class eWidgetDesktop;class eWidgetDesktop; class eWidget @@ -20,6 +22,7 @@ public: ePoint position() const { return m_position; } eSize size() const { return m_size; } + eSize csize() const { return m_client_size; } void invalidate(const gRegion ®ion = gRegion::invalidRegion()); @@ -62,9 +65,11 @@ private: int m_vis; + int m_layer; + ePtrList m_childs; ePoint m_position; - eSize m_size; + eSize m_size, m_client_size; /* will be accounted when there's a client offset */ eSize m_client_offset; eWidget *m_parent; @@ -72,7 +77,7 @@ private: ePtr m_style; void insertIntoParent(); - void doPaint(gPainter &painter, const gRegion ®ion); + void doPaint(gPainter &painter, const gRegion ®ion, int layer); void recalcClipRegionsWhenVisible(); void parentRemoved(); @@ -90,7 +95,7 @@ public: // all in local space! gRegion m_clip_region, m_visible_region, m_visible_with_childs; - struct eWidgetDesktopCompBuffer *m_comp_buffer; + struct eWidgetDesktopCompBuffer *m_comp_buffer[MAX_LAYER]; enum eWidgetEvent { @@ -101,8 +106,7 @@ public: evtParentChangedPosition, - evtWillShow, - evtWillHide, + evtParentVisibilityChanged, evtWillChangePosition, /* new size is eRect *data */ evtWillChangeSize, @@ -118,6 +122,8 @@ public: /* enable this if you need the absolute position of the widget */ void setPositionNotifyChild(int n) { m_notify_child_on_position_change = 1; } + + void notifyShowHide(); }; extern eWidgetDesktop *getDesktop(int which);