X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1681d7dadff09e071c4f79954a90969fb7815210..4cf93697fb70abeaca0eecf61873902b7f00c1da:/lib/gui/elistbox.h diff --git a/lib/gui/elistbox.h b/lib/gui/elistbox.h index 87013bc1..1cadf74b 100644 --- a/lib/gui/elistbox.h +++ b/lib/gui/elistbox.h @@ -38,6 +38,8 @@ protected: virtual int size()=0; + virtual int currentCursorSelectable(); + void setListbox(eListbox *lb); // void setOutputDevice ? (for allocating colors, ...) .. requires some work, though @@ -46,10 +48,29 @@ protected: /* the following functions always refer to the selected item */ virtual void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected)=0; + virtual int getItemHeight()=0; + eListbox *m_listbox; #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(); @@ -65,9 +86,10 @@ public: showNever }; void setScrollbarMode(int mode); + void setWrapAround(bool); void setContent(iListboxContent *content); - + /* enum Movement { moveUp, moveDown, @@ -79,6 +101,9 @@ public: int getCurrentIndex(); void moveSelection(int how); void moveSelectionTo(int index); + void moveToEnd(); + bool atBegin(); + bool atEnd(); enum ListboxActions { moveUp, @@ -89,9 +114,16 @@ public: pageDown, justCheck }; - + 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); @@ -109,6 +141,7 @@ protected: private: int m_scrollbar_mode, m_prev_scrollbar_page; bool m_content_changed; + bool m_enabled_wrap_around; int m_top, m_selected; int m_itemheight; @@ -116,6 +149,7 @@ private: int m_selection_enabled; ePtr m_content; eSlider *m_scrollbar; + eListboxStyle m_style; #endif };