X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3af66122574386a2856e83ba9c5d73d27a6f3710..2d01fd232419dbb9edaf7eb42f587dc635d21d42:/lib/service/listboxservice.h diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h index d5241933..a742b061 100644 --- a/lib/service/listboxservice.h +++ b/lib/service/listboxservice.h @@ -3,26 +3,57 @@ #include #include - #include -class eServiceCenter; class eListboxServiceContent: public virtual iListboxContent { DECLARE_REF(eListboxServiceContent); public: eListboxServiceContent(); + + void setIgnoreService( const eServiceReference &service ); void setRoot(const eServiceReference &ref); void getCurrent(eServiceReference &ref); + int getNextBeginningWithChar(char c); + /* support for marked services */ void initMarked(); void addMarked(const eServiceReference &ref); void removeMarked(const eServiceReference &ref); int isMarked(const eServiceReference &ref); + + /* this is NOT thread safe! */ + void markedQueryStart(); + int markedQueryNext(eServiceReference &ref); + int lookupService(const eServiceReference &ref); + void setCurrent(const eServiceReference &ref); + + enum { + visModeSimple, + visModeComplex + }; + + void setVisualMode(int mode); + + /* only in complex mode: */ + enum { + celIcon, + celServiceNumber, + celServiceName, + celServiceInfo, // "now" event + celElements + }; + + void setElementPosition(int element, eRect where); + void setElementFont(int element, gFont *font); + + void sort(); + int setCurrentMarked(bool); + void setNumberOffset(int offset) { m_numberoffset = offset; } protected: void cursorHome(); void cursorEnd(); @@ -30,7 +61,7 @@ protected: int cursorValid(); int cursorSet(int n); int cursorGet(); - + void cursorSave(); void cursorRestore(); int size(); @@ -40,6 +71,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; @@ -50,12 +86,20 @@ 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; + + int m_numberoffset; + + eServiceReference m_is_playable_ignore; }; #endif