X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/01e417060650f4e2cddb9bc838d8f9ab6c47a437..223c807af74a9a402fa5a649c3e7acafb8caa8e3:/lib/service/listboxservice.h diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h index 36bb5bb4..b2fc311b 100644 --- a/lib/service/listboxservice.h +++ b/lib/service/listboxservice.h @@ -5,7 +5,6 @@ #include #include -class eServiceCenter; class eListboxServiceContent: public virtual iListboxContent { @@ -27,6 +26,29 @@ public: 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); + + void sort(); + + int setCurrentMarked(bool); + protected: void cursorHome(); void cursorEnd(); @@ -44,6 +66,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 m_element_font[celElements]; private: typedef std::list list; @@ -54,14 +81,18 @@ private: int m_size; eSize m_itemsize; - ePtr m_service_center; + ePtr m_service_center; eServiceReference m_root; - + /* support for marked services */ std::set m_marked; std::set::const_iterator m_marked_iterator; + + /* support for movemode */ + bool m_current_marked; + list::iterator m_swap; }; #endif