c917e36a6f55cf294fad7598e257d64d55c775e8
[enigma2.git] / lib / gui / ewidgetdesktop.h
1 #ifndef __lib_gui_ewidgetdesktop_h
2 #define __lib_gui_ewidgetdesktop_h
3
4 #include <lib/gdi/grc.h>
5 #include <lib/base/eptrlist.h>
6
7 class eWidget;
8 class eMainloop;
9 class eTimer;
10
11 class eWidgetDesktop: public Object
12 {
13 public: // weil debug
14         eSize m_screen_size;
15         gRegion m_dirty_region;
16         gRegion m_background_region;
17         ePtr<gDC> m_dc;
18         gRGB m_background_color;
19 public:
20         eWidgetDesktop(eSize screen);
21         ~eWidgetDesktop();
22         void addRootWidget(eWidget *root, int top);
23         void removeRootWidget(eWidget *root);
24         void recalcClipRegions();
25         
26         void invalidate(const gRegion &region);
27         void paint();
28         void setDC(gDC *dc);
29         
30         void setBackgroundColor(gRGB col);
31         
32         void setPalette(gPixmap &pm);
33         
34         void setRedrawTask(eMainloop &ml);
35         
36         void makeCompatiblePixmap(gPixmap &pm);
37 private:
38         ePtrList<eWidget> m_root;
39         void calcWidgetClipRegion(eWidget *widget, gRegion &parent_visible);
40         
41         eMainloop *m_mainloop;
42         eTimer *m_timer;
43 };
44
45 #endif