X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c9622ed49e250b776934dbd29a61bbb7a3ea2772..b5d81255af4c93441b5b86386dde544e2fa15e05:/lib/service/listboxservice.h diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h index b2fc311b..8623336f 100644 --- a/lib/service/listboxservice.h +++ b/lib/service/listboxservice.h @@ -3,7 +3,6 @@ #include #include - #include class eListboxServiceContent: public virtual iListboxContent @@ -11,21 +10,32 @@ class eListboxServiceContent: public virtual iListboxContent DECLARE_REF(eListboxServiceContent); public: eListboxServiceContent(); - void setRoot(const eServiceReference &ref); + + void addService(const eServiceReference &ref, bool beforeCurrent=false); + void removeCurrent(); + void FillFinished(); + + void setIgnoreService( const eServiceReference &service ); + void setRoot(const eServiceReference &ref, bool justSet=false); void getCurrent(eServiceReference &ref); + int getNextBeginningWithChar(char c); + int getPrevMarkerPos(); + int getNextMarkerPos(); + /* 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 @@ -35,20 +45,33 @@ public: /* only in complex mode: */ enum { - celServiceName, celServiceNumber, - celIcon, + celMarkerPixmap, + celFolderPixmap, + celServiceName, + celServiceTypePixmap, celServiceInfo, // "now" event celElements }; - + + enum { + picDVB_S, + picDVB_T, + picDVB_C, + picFolder, + picMarker, + picElements + }; + void setElementPosition(int element, eRect where); void setElementFont(int element, gFont *font); + void setPixmap(int type, ePtr &pic); void sort(); - + int setCurrentMarked(bool); - + + void setNumberOffset(int offset) { m_numberoffset = offset; } protected: void cursorHome(); void cursorEnd(); @@ -56,7 +79,7 @@ protected: int cursorValid(); int cursorSet(int n); int cursorGet(); - + void cursorSave(); void cursorRestore(); int size(); @@ -71,6 +94,7 @@ protected: /* for complex mode */ eRect m_element_position[celElements]; ePtr m_element_font[celElements]; + ePtr m_pixmaps[picElements]; private: typedef std::list list; @@ -82,17 +106,20 @@ private: eSize m_itemsize; ePtr m_service_center; + ePtr m_lst; 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; + + int m_numberoffset; + + eServiceReference m_is_playable_ignore; }; #endif