removed thedoc's colors because of broken network setup
[enigma2.git] / lib / service / listboxservice.h
index d52419330d5dd7b17702878ad5180b3fad22dfeb..f32e08658ea3c5604bbe7cfcc3d6acc2aac80a05 100644 (file)
@@ -20,9 +20,32 @@ public:
        void addMarked(const eServiceReference &ref);
        void removeMarked(const eServiceReference &ref);
        int isMarked(const eServiceReference &ref);
-       int lookupService(const eServiceReference &ref);
-
+       
+               /* this is NOT thread safe! */
+       void markedQueryStart();
+       int markedQueryNext(eServiceReference &ref);
 
+       int lookupService(const eServiceReference &ref);
+       
+       enum {
+               visModeSimple,
+               visModeComplex
+       };
+       
+       void setVisualMode(int mode);
+       
+               /* only in complex mode: */
+       enum {
+               celServiceName,
+               celServiceNumber,
+               celIcon,
+               celServiceInfo, // "now" event
+               celElements
+       };
+       
+       void setElementPosition(int element, eRect where);
+       void setElementFont(int element, gFont *font);
+       
 protected:
        void cursorHome();
        void cursorEnd();
@@ -40,6 +63,11 @@ protected:
        
                /* the following functions always refer to the selected item */
        void paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected);
+       
+       int m_visual_mode;
+               /* for complex mode */
+       eRect m_element_position[celElements];
+       ePtr<gFont> m_element_font[celElements];
 private:
        typedef std::list<eServiceReference> list;
        
@@ -56,6 +84,8 @@ private:
        
                /* support for marked services */
        std::set<eServiceReference> m_marked;
+       
+       std::set<eServiceReference>::const_iterator m_marked_iterator;
 };
 
 #endif