- work on timers
[vuplus_dvbapp] / lib / gui / elistboxcontent.h
index 6219cec..6a4cdaa 100644 (file)
@@ -2,11 +2,15 @@
 #define __lib_gui_elistboxcontent_h
 
 #include <lib/python/python.h>
+#include <lib/gui/elistbox.h>
 
 class eListboxTestContent: public virtual iListboxContent
 {
-       DECLARE_REF;
+       DECLARE_REF(eListboxTestContent);
 public:
+
+#ifndef SWIG
+protected:
        void cursorHome();
        void cursorEnd();
        int cursorMove(int count=1);
@@ -28,13 +32,17 @@ public:
 private:
        int m_cursor, m_saved_cursor;
        eSize m_size;
+#endif
 };
 
 class eListboxStringContent: public virtual iListboxContent
 {
-       DECLARE_REF;
+       DECLARE_REF(eListboxStringContent);
 public:
        eListboxStringContent();
+       void setList(std::list<std::string> &list);
+#ifndef SWI
+protected:
        
        void cursorHome();
        void cursorEnd();
@@ -47,15 +55,11 @@ public:
        void cursorRestore();
        int size();
        
-       RESULT connectItemChanged(const Slot0<void> &itemChanged, ePtr<eConnection> &connection);
-       
        // 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 setList(std::list<std::string> &list);
 private:
        typedef std::list<std::string> list;
        
@@ -66,14 +70,21 @@ private:
        int m_size;
        
        eSize m_itemsize;
+#endif
 };
 
 class eListboxPythonStringContent: public virtual iListboxContent
 {
-       DECLARE_REF;
+       DECLARE_REF(eListboxPythonStringContent);
 public:
        eListboxPythonStringContent();
        ~eListboxPythonStringContent();
+
+       void setList(PyObject *list);
+       PyObject *getCurrentSelection();
+       int getCurrentSelectionIndex() { return m_cursor; }
+#ifndef SWIG
+protected:
        void cursorHome();
        void cursorEnd();
        int cursorMove(int count=1);
@@ -91,16 +102,33 @@ public:
        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 setList(PyObject *list);
-       
-       PyObject *getCurrentSelection();
-       
-private:
+       virtual void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected);
+       void invalidateEntry(int index);
+
+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; }
+private:
+       int m_seperation;
+};
+
+class eListboxPythonMultiContent: public eListboxPythonStringContent
+{
+public:
+       void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected);
+       
+       void setFont(int fnt, gFont *fnt);
+private:
+       std::map<int, ePtr<gFont> > m_font;
 };
 
 #endif