use local listbox styles for servicelist
[enigma2.git] / lib / gui / elistbox.h
index ace418984dcd7415f9246fb86d437bd9188f4cad..e32343228fc7cd350a133459ee49a02bf4d77c5f 100644 (file)
@@ -26,6 +26,7 @@ public:
 protected:
        iListboxContent();
        friend class eListbox;
+       virtual void updateClip(gRegion &){ };
        virtual void cursorHome()=0;
        virtual void cursorEnd()=0;
        virtual int cursorMove(int count=1)=0;
@@ -58,8 +59,8 @@ struct eListboxStyle
 {
        ePtr<gPixmap> m_background, m_selection;
        int m_transparent_background;
-       gRGB m_background_color, m_foreground_color;
-       int m_background_color_set, m_foreground_color_set;
+       gRGB m_background_color, m_background_color_selected, m_foreground_color, m_foreground_color_selected;
+       int m_background_color_set, m_foreground_color_set, m_background_color_selected_set, m_foreground_color_selected_set;
 
                /*
                        {m_transparent_background m_background_color_set m_background}
@@ -119,9 +120,11 @@ public:
        void setSelectionEnable(int en);
 
        void setBackgroundColor(gRGB &col);
+       void setBackgroundColorSelected(gRGB &col);
        void setForegroundColor(gRGB &col);
-       void setBackgroundPicture(gPixmap *pm);
-       void setSelectionPicture(gPixmap *pm);
+       void setForegroundColorSelected(gRGB &col);
+       void setBackgroundPicture(ePtr<gPixmap> &pixmap);
+       void setSelectionPicture(ePtr<gPixmap> &pixmap);
 
        struct eListboxStyle *getLocalStyle(void);
 #ifndef SWIG
@@ -134,6 +137,8 @@ public:
                /* the complete list changed. you should not attemp to keep the current index. */
        void entryReset(bool cursorHome=true);
 
+       int getEntryTop();
+       void invalidate(const gRegion &region = gRegion::invalidRegion());
 protected:
        int event(int event, void *data=0, void *data2=0);
        void recalcSize();