#ifndef __lib_gui_elistboxcontent_h #define __lib_gui_elistboxcontent_h #include #include class eListboxPythonStringContent: public virtual iListboxContent { DECLARE_REF(eListboxPythonStringContent); public: eListboxPythonStringContent(); ~eListboxPythonStringContent(); void setList(PyObject *list); PyObject *getCurrentSelection(); int getCurrentSelectionIndex() { return m_cursor; } void invalidateEntry(int index); void invalidate(); eSize getItemSize() { return m_itemsize; } #ifndef SWIG protected: void cursorHome(); void cursorEnd(); int cursorMove(int count=1); int cursorValid(); int cursorSet(int n); int cursorGet(); virtual int currentCursorSelectable(); void cursorSave(); void cursorRestore(); int size(); RESULT connectItemChanged(const Slot0 &itemChanged, ePtr &connection); // void setOutputDevice ? (for allocating colors, ...) .. requires some work, though void setSize(const eSize &size); /* the following functions always refer to the selected item */ virtual void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected); protected: PyObject *m_list; int m_cursor, m_saved_cursor; eSize m_itemsize; #endif }; class eListboxPythonConfigContent: public eListboxPythonStringContent { public: void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected); void setSeperation(int sep) { m_seperation = sep; } int currentCursorSelectable(); private: int m_seperation; }; class eListboxPythonMultiContent: public eListboxPythonStringContent { PyObject *m_buildFunc; public: eListboxPythonMultiContent(); ~eListboxPythonMultiContent(); enum { TYPE_TEXT, TYPE_PROGRESS, TYPE_PIXMAP, TYPE_PIXMAP_ALPHATEST }; void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected); int currentCursorSelectable(); void setFont(int fnt, gFont *fnt); void setBuildFunc(PyObject *func); private: std::map > m_font; }; #endif