X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d85ab0bcd4dd553144faa3454c319ae3c54f2f9d..db6ca522bdfbde29c214b41435a10876ff72a0a4:/lib/gui/ewidgetdesktop.h diff --git a/lib/gui/ewidgetdesktop.h b/lib/gui/ewidgetdesktop.h index 58bff50a..f88efa88 100644 --- a/lib/gui/ewidgetdesktop.h +++ b/lib/gui/ewidgetdesktop.h @@ -33,9 +33,16 @@ class eWidgetDesktop: public Object public: eWidgetDesktop(eSize screen); ~eWidgetDesktop(); - void addRootWidget(eWidget *root, int top); + void addRootWidget(eWidget *root); void removeRootWidget(eWidget *root); - void recalcClipRegions(); + + /* try to move widget content. */ + /* returns -1 if there's no move support. */ + /* call this after recalcClipRegions for that widget. */ + /* you probably want to invalidate if -1 was returned. */ + int movedWidget(eWidget *root); + + void recalcClipRegions(eWidget *root); void invalidate(const gRegion ®ion); void paint(); @@ -58,7 +65,7 @@ public: void setCompositionMode(int mode); private: ePtrList m_root; - void calcWidgetClipRegion(eWidgetDesktopCompBuffer *comp, eWidget *widget, gRegion &parent_visible); + void calcWidgetClipRegion(eWidget *widget, gRegion &parent_visible); void paintBackground(eWidgetDesktopCompBuffer *comp); eMainloop *m_mainloop; @@ -72,7 +79,10 @@ private: void createBufferForWidget(eWidget *widget); void removeBufferForWidget(eWidget *widget); - void redrawComposition(); + void redrawComposition(int notifed); + void notify(); + + void clearVisibility(eWidget *widget); }; #endif