#include <lib/gui/elistbox.h>
#include <lib/service/iservice.h>
-
#include <set>
class eListboxServiceContent: public virtual iListboxContent
DECLARE_REF(eListboxServiceContent);
public:
eListboxServiceContent();
- void setRoot(const eServiceReference &ref);
- void getCurrent(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);
int markedQueryNext(eServiceReference &ref);
int lookupService(const eServiceReference &ref);
-
+ void setCurrent(const eServiceReference &ref);
+
enum {
visModeSimple,
visModeComplex
/* only in complex mode: */
enum {
- celServiceName,
celServiceNumber,
- celIcon,
+ 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);
+
protected:
void cursorHome();
void cursorEnd();
/* for complex mode */
eRect m_element_position[celElements];
ePtr<gFont> m_element_font[celElements];
+ ePtr<gPixmap> m_pixmaps[picElements];
private:
typedef std::list<eServiceReference> list;
eSize m_itemsize;
ePtr<iServiceHandler> m_service_center;
+ ePtr<iListableService> m_lst;
eServiceReference m_root;
/* support for movemode */
bool m_current_marked;
- list::iterator m_swap;
+
+ int m_numberoffset;
+
+ eServiceReference m_is_playable_ignore;
+
+ int m_itemheight;
};
#endif