X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/d9ee52e4f0fbe9a1ae00d0e66f9e6f0a07fa319f..7373f39fe2ebe1b5007ed56ddd86d9ce0ad3efb7:/lib/gui/elistboxcontent.h diff --git a/lib/gui/elistboxcontent.h b/lib/gui/elistboxcontent.h index deea3000..d3d2a089 100644 --- a/lib/gui/elistboxcontent.h +++ b/lib/gui/elistboxcontent.h @@ -4,11 +4,19 @@ #include #include -class eListboxTestContent: public virtual iListboxContent +class eListboxPythonStringContent: public virtual iListboxContent { - DECLARE_REF; + DECLARE_REF(eListboxPythonStringContent); public: + eListboxPythonStringContent(); + ~eListboxPythonStringContent(); + void setList(SWIG_PYOBJECT(ePyObject) list); + PyObject *getCurrentSelection(); + int getCurrentSelectionIndex() { return m_cursor; } + void invalidateEntry(int index); + void invalidate(); + eSize getItemSize() { return m_itemsize; } #ifndef SWIG protected: void cursorHome(); @@ -17,7 +25,8 @@ protected: int cursorValid(); int cursorSet(int n); int cursorGet(); - + virtual int currentCursorSelectable(); + void cursorSave(); void cursorRestore(); int size(); @@ -28,86 +37,63 @@ protected: void setSize(const eSize &size); /* the following functions always refer to the selected item */ - void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected); -private: + virtual void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected); + + int getItemHeight() { return m_itemheight; } + +protected: + ePyObject m_list; int m_cursor, m_saved_cursor; - eSize m_size; + eSize m_itemsize; + int m_itemheight; #endif }; -class eListboxStringContent: public virtual iListboxContent +class eListboxPythonConfigContent: public eListboxPythonStringContent { - DECLARE_REF; public: - eListboxStringContent(); - void setList(std::list &list); -#ifndef SWI -protected: - - void cursorHome(); - void cursorEnd(); - int cursorMove(int count=1); - int cursorValid(); - int cursorSet(int n); - int cursorGet(); - - void cursorSave(); - void cursorRestore(); - int size(); - - // void setOutputDevice ? (for allocating colors, ...) .. requires some work, though - void setSize(const eSize &size); - - /* the following functions always refer to the selected item */ void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected); + void setSeperation(int sep) { m_seperation = sep; } + int currentCursorSelectable(); private: - typedef std::list list; - - list m_list; - list::iterator m_cursor, m_saved_cursor; - - int m_cursor_number, m_saved_cursor_number; - int m_size; - - eSize m_itemsize; -#endif + int m_seperation; }; -class eListboxPythonStringContent: public virtual iListboxContent +class eListboxPythonMultiContent: public eListboxPythonStringContent { - DECLARE_REF; + ePyObject m_buildFunc; + ePyObject m_selectableFunc; + ePyObject m_template; + eRect m_selection_clip; + gRegion m_clip, m_old_clip; public: - eListboxPythonStringContent(); - ~eListboxPythonStringContent(); - - void setList(PyObject *list); - PyObject *getCurrentSelection(); -#ifndef SWIG -protected: - void cursorHome(); - void cursorEnd(); - int cursorMove(int count=1); - int cursorValid(); - int cursorSet(int n); - int cursorGet(); - - 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 */ + eListboxPythonMultiContent(); + ~eListboxPythonMultiContent(); + enum { TYPE_TEXT, TYPE_PROGRESS, TYPE_PIXMAP, TYPE_PIXMAP_ALPHATEST, TYPE_PIXMAP_ALPHABLEND }; void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected); - + int currentCursorSelectable(); + void setList(SWIG_PYOBJECT(ePyObject) list); + void setFont(int fnt, gFont *font); + void setBuildFunc(SWIG_PYOBJECT(ePyObject) func); + void setSelectableFunc(SWIG_PYOBJECT(ePyObject) func); + void setItemHeight(int height); + void setSelectionClip(eRect &rect, bool update=false); + void updateClip(gRegion &); + void entryRemoved(int idx); + void setTemplate(SWIG_PYOBJECT(ePyObject) tmplate); private: - PyObject *m_list; - int m_cursor, m_saved_cursor; - eSize m_itemsize; -#endif + std::map > m_font; }; +#ifdef SWIG +#define RT_HALIGN_LEFT 0 +#define RT_HALIGN_RIGHT 1 +#define RT_HALIGN_CENTER 2 +#define RT_HALIGN_BLOCK 4 +#define RT_VALIGN_TOP 0 +#define RT_VALIGN_CENTER 8 +#define RT_VALIGN_BOTTOM 16 +#define RT_WRAP 32 +#endif // SWIG + #endif