add 'layers' (in buffered mode, which is not working at the moment).
[enigma2.git] / lib / gui / ewidgetdesktop.h
index fb4b3b82b2c3a7ab7e1f207b0e52bc19f80d007f..7a0a36a78a2ecab54d7c2d77ee5669afaae5b1a1 100644 (file)
@@ -44,7 +44,10 @@ public:
        
        void recalcClipRegions(eWidget *root);
        
-       void invalidate(const gRegion &region);
+       void invalidateWidgetLayer(const gRegion &region, const eWidget *widget, int layer);
+       void invalidateWidget(const gRegion &region, const eWidget *widget, int layer = -1);
+       void invalidate(const gRegion &region, const eWidget *widget = 0, int layer = -1);
+       void paintLayer(eWidget *widget, int layer);
        void paint();
        void setDC(gDC *dc);
        
@@ -54,7 +57,8 @@ public:
        void setPalette(gPixmap &pm);
        
        void setRedrawTask(eMainloop &ml);
-       
+
+       void makeCompatiblePixmap(ePtr<gPixmap> &pm);
        void makeCompatiblePixmap(gPixmap &pm);
        
        enum {
@@ -79,8 +83,8 @@ private:
        
        eWidgetDesktopCompBuffer m_screen;
        
-       void createBufferForWidget(eWidget *widget);
-       void removeBufferForWidget(eWidget *widget);
+       void createBufferForWidget(eWidget *widget, int layer);
+       void removeBufferForWidget(eWidget *widget, int layer);
        
        void redrawComposition(int notifed);
        void notify();