fix title
[enigma2.git] / lib / gui / elistbox.h
index 0e185b44b8e28f08ab3608c658c75799e94b44b5..7538170cf2c20c38651e89e813244ad32c2c99ad 100644 (file)
@@ -4,6 +4,7 @@
 #include <lib/gui/ewidget.h>
 #include <connection.h>
 
+class eListbox;
 class eSlider;
 
 class iListboxContent: public iObject
@@ -37,6 +38,8 @@ protected:
        
        virtual int size()=0;
        
+       virtual int currentCursorSelectable();
+       
        void setListbox(eListbox *lb);
        
        // void setOutputDevice ? (for allocating colors, ...) .. requires some work, though
@@ -45,6 +48,8 @@ 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
 };
@@ -56,12 +61,15 @@ public:
        eListbox(eWidget *parent);
        ~eListbox();
 
+       PSignal0<void> selectionChanged;
+
        enum {
                showOnDemand,
                showAlways,
                showNever
        };
        void setScrollbarMode(int mode);
+       void setWrapAround(bool);
 
        void setContent(iListboxContent *content);
        
@@ -72,9 +80,13 @@ public:
                moveEnd,
                justCheck
        }; */
-       
+
+       int getCurrentIndex();
        void moveSelection(int how);
        void moveSelectionTo(int index);
+       void moveToEnd();
+       bool atBegin();
+       bool atEnd();
 
        enum ListboxActions {
                moveUp,
@@ -85,10 +97,9 @@ public:
                pageDown,
                justCheck
        };
-       
+
        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);
@@ -106,6 +117,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;