1 #ifndef __lib_gui_elistboxcontent_h
2 #define __lib_gui_elistboxcontent_h
4 #include <lib/python/python.h>
5 #include <lib/gui/elistbox.h>
7 class eListboxPythonStringContent: public virtual iListboxContent
9 DECLARE_REF(eListboxPythonStringContent);
11 eListboxPythonStringContent();
12 ~eListboxPythonStringContent();
14 void setList(SWIG_PYOBJECT(ePyObject) list);
15 PyObject *getCurrentSelection();
16 int getCurrentSelectionIndex() { return m_cursor; }
17 void invalidateEntry(int index);
19 eSize getItemSize() { return m_itemsize; }
24 int cursorMove(int count=1);
28 virtual int currentCursorSelectable();
34 RESULT connectItemChanged(const Slot0<void> &itemChanged, ePtr<eConnection> &connection);
36 // void setOutputDevice ? (for allocating colors, ...) .. requires some work, though
37 void setSize(const eSize &size);
39 /* the following functions always refer to the selected item */
40 virtual void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected);
42 int getItemHeight() { return m_itemheight; }
46 int m_cursor, m_saved_cursor;
52 class eListboxPythonConfigContent: public eListboxPythonStringContent
55 void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected);
56 void setSeperation(int sep) { m_seperation = sep; }
57 int currentCursorSelectable();
62 class eListboxPythonMultiContent: public eListboxPythonStringContent
64 ePyObject m_buildFunc;
65 ePyObject m_selectableFunc;
67 eRect m_selection_clip;
68 gRegion m_clip, m_old_clip;
70 eListboxPythonMultiContent();
71 ~eListboxPythonMultiContent();
72 enum { TYPE_TEXT, TYPE_PROGRESS, TYPE_PIXMAP, TYPE_PIXMAP_ALPHATEST, TYPE_PIXMAP_ALPHABLEND, TYPE_PROGRESS_PIXMAP };
73 void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected);
74 int currentCursorSelectable();
75 void setList(SWIG_PYOBJECT(ePyObject) list);
76 void setFont(int fnt, gFont *font);
77 void setBuildFunc(SWIG_PYOBJECT(ePyObject) func);
78 void setSelectableFunc(SWIG_PYOBJECT(ePyObject) func);
79 void setItemHeight(int height);
80 void setSelectionClip(eRect &rect, bool update=false);
81 void updateClip(gRegion &);
82 void entryRemoved(int idx);
83 void setTemplate(SWIG_PYOBJECT(ePyObject) tmplate);
85 std::map<int, ePtr<gFont> > m_font;
89 #define RT_HALIGN_LEFT 0
90 #define RT_HALIGN_RIGHT 1
91 #define RT_HALIGN_CENTER 2
92 #define RT_HALIGN_BLOCK 4
93 #define RT_VALIGN_TOP 0
94 #define RT_VALIGN_CENTER 8
95 #define RT_VALIGN_BOTTOM 16