#include <lib/gui/ewidget.h>
#include <connection.h>
+class eSlider;
+
class iListboxContent: public iObject
{
public:
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 {
}; */
void moveSelection(int how);
+ void moveSelectionTo(int index);
enum ListboxActions {
moveUp,
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. */
/* 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<iListboxContent> m_content;
+ eSlider *m_scrollbar;
#endif
-
};
#endif