only one call to updateScrollbar
[enigma2.git] / lib / gui / elistbox.h
index a7ed637d55ff70836c734b25e5f175afa3847c0f..08f8003527f3ce5e515165549d13cfed84960fd4 100644 (file)
@@ -4,6 +4,8 @@
 #include <lib/gui/ewidget.h>
 #include <connection.h>
 
+class eSlider;
+
 class iListboxContent: public iObject
 {
 public:
@@ -49,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 {
@@ -63,6 +74,7 @@ public:
        }; */
        
        void moveSelection(int how);
+       void moveSelectionTo(int index);
 
        enum ListboxActions {
                moveUp,
@@ -92,13 +104,16 @@ protected:
        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<iListboxContent> m_content;
+       eSlider *m_scrollbar;
 #endif
-
 };
 
 #endif