+ 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
+ };
+
+ void setVisualMode(int mode);
+
+ /* only in complex mode: */
+ enum {
+ celServiceNumber,
+ celMarkerPixmap,
+ celFolderPixmap,
+ celServiceName,
+ celServiceTypePixmap,
+ celServiceInfo, // "now" event
+ celElements
+ };
+
+ enum {
+ picDVB_S,
+ picDVB_T,
+ picDVB_C,
+ picServiceGroup,
+ picFolder,
+ picMarker,
+ picElements
+ };
+
+ void setElementPosition(int element, eRect where);
+ void setElementFont(int element, gFont *font);
+ void setPixmap(int type, ePtr<gPixmap> &pic);
+
+ void sort();
+
+ int setCurrentMarked(bool);
+
+ void setNumberOffset(int offset) { m_numberoffset = offset; }
+
+ int getItemHeight() { return m_itemheight; }
+ int setItemHeight(int height);
+
+ enum {
+ markedForeground,
+ markedForegroundSelected,
+ markedBackground,
+ markedBackgroundSelected,
+ serviceNotAvail,
+ colorElements
+ };
+
+ void setColor(int color, gRGB &col);