This fixed the PicturePlayer to check if a file is local rather than accepting files...
[enigma2.git] / lib / gui / elistbox.h
index 7538170cf2c20c38651e89e813244ad32c2c99ad..20f23b5b9a5a66d0b68f5236890a26fd8e6a4f3e 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;
@@ -54,6 +55,23 @@ protected:
 #endif
 };
 
+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;
+
+               /*
+                       {m_transparent_background m_background_color_set m_background}
+                       {0 0 0} use global background color
+                       {0 1 x} use background color
+                       {0 0 p} use background picture
+                       {1 x 0} use transparent background
+                       {1 x p} use transparent background picture
+               */
+};
+
 class eListbox: public eWidget
 {
        void updateScrollBar();
@@ -72,7 +90,7 @@ public:
        void setWrapAround(bool);
 
        void setContent(iListboxContent *content);
-       
+
 /*     enum Movement {
                moveUp,
                moveDown,
@@ -100,6 +118,13 @@ public:
 
        void setItemHeight(int h);
        void setSelectionEnable(int en);
+
+       void setBackgroundColor(gRGB &col);
+       void setForegroundColor(gRGB &col);
+       void setBackgroundPicture(ePtr<gPixmap> &pixmap);
+       void setSelectionPicture(ePtr<gPixmap> &pixmap);
+
+       struct eListboxStyle *getLocalStyle(void);
 #ifndef SWIG
                /* entryAdded: an entry was added *before* the given index. it's index is the given number. */
        void entryAdded(int index);
@@ -110,6 +135,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();
@@ -125,6 +152,7 @@ private:
        int m_selection_enabled;
        ePtr<iListboxContent> m_content;
        eSlider *m_scrollbar;
+       eListboxStyle m_style;
 #endif
 };