to stay on the same data, however when the current
item is removed, this won't work. you'll be notified
anyway. */
-
+#ifndef SWIG
+protected:
+ iListboxContent();
+ friend class eListbox;
virtual void cursorHome()=0;
virtual void cursorEnd()=0;
virtual int cursorMove(int count=1)=0;
virtual int size()=0;
- virtual RESULT connectItemChanged(const Slot0<void> &itemChanged, ePtr<eConnection> &connection)=0;
+ void setListbox(eListbox *lb);
// void setOutputDevice ? (for allocating colors, ...) .. requires some work, though
virtual void setSize(const eSize &size)=0;
/* the following functions always refer to the selected item */
virtual void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected)=0;
+
+ eListbox *m_listbox;
+#endif
};
class eListbox: public eWidget
{
public:
eListbox(eWidget *parent);
+ ~eListbox();
void setContent(iListboxContent *content);
+/* enum Movement {
+ moveUp,
+ moveDown,
+ moveTop,
+ moveEnd,
+ justCheck
+ }; */
+
void moveSelection(int how);
- enum {
+
+ enum ListboxActions {
moveUp,
moveDown,
moveTop,
- moveEnd
+ moveEnd,
+ pageUp,
+ pageDown,
+ justCheck
};
+
+#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. */
+ void entryRemoved(int index);
+ /* 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();
+
protected:
int event(int event, void *data=0, void *data2=0);
void recalcSize();
+
private:
int m_top, m_selected;
int m_itemheight;
int m_items_per_page;
ePtr<iListboxContent> m_content;
+#endif
+
};
#endif