X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/23375d83d2c191d85e65580d6307c0949b5007e5..cbfffe567b8f10fcadea7619f80d954ad879cff9:/lib/gui/elistbox.h diff --git a/lib/gui/elistbox.h b/lib/gui/elistbox.h index 7538170c..20f23b5b 100644 --- a/lib/gui/elistbox.h +++ b/lib/gui/elistbox.h @@ -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 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 &pixmap); + void setSelectionPicture(ePtr &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 ®ion = 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 m_content; eSlider *m_scrollbar; + eListboxStyle m_style; #endif };