X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1cdf6cb021fcaa6548b90ba7b6765cf1e8b8b37b..2601ee77efe1f10be7cbeb8af94e2fb229cc1ec1:/lib/gui/elistbox.h diff --git a/lib/gui/elistbox.h b/lib/gui/elistbox.h index 78e0fbe9..0e185b44 100644 --- a/lib/gui/elistbox.h +++ b/lib/gui/elistbox.h @@ -4,6 +4,8 @@ #include #include +class eSlider; + class iListboxContent: public iObject { public: @@ -21,6 +23,7 @@ public: anyway. */ #ifndef SWIG protected: + iListboxContent(); friend class eListbox; virtual void cursorHome()=0; virtual void cursorEnd()=0; @@ -48,9 +51,18 @@ protected: class eListbox: public eWidget { + void updateScrollBar(); public: eListbox(eWidget *parent); ~eListbox(); + + enum { + showOnDemand, + showAlways, + showNever + }; + void setScrollbarMode(int mode); + void setContent(iListboxContent *content); /* enum Movement { @@ -62,6 +74,7 @@ public: }; */ void moveSelection(int how); + void moveSelectionTo(int index); enum ListboxActions { moveUp, @@ -72,12 +85,11 @@ public: pageDown, justCheck }; -protected: - int event(int event, void *data=0, void *data2=0); - void recalcSize(); -private: - friend class iListboxContent; + void setItemHeight(int h); + void setSelectionEnable(int en); + +#ifndef SWIG /* entryAdded: an entry was added *before* the given index. it's index is the given number. */ void entryAdded(int index); /* entryRemoved: an entry with the given index was removed. */ @@ -85,12 +97,23 @@ private: /* entryChanged: the entry with the given index was changed and should be redrawn. */ void entryChanged(int index); /* the complete list changed. you should not attemp to keep the current index. */ - void entryReset(); - + void entryReset(bool cursorHome=true); + +protected: + int event(int event, void *data=0, void *data2=0); + void recalcSize(); + +private: + int m_scrollbar_mode, m_prev_scrollbar_page; + bool m_content_changed; + int m_top, m_selected; int m_itemheight; int m_items_per_page; + int m_selection_enabled; ePtr m_content; + eSlider *m_scrollbar; +#endif }; #endif