#include <lib/gui/elistbox.h>
#include <lib/service/iservice.h>
-
#include <set>
+class eEPGCache;
+
class eListboxServiceContent: public virtual iListboxContent
{
DECLARE_REF(eListboxServiceContent);
+ eEPGCache *epgcache;
public:
eListboxServiceContent();
void setRoot(const eServiceReference &ref);
void getCurrent(eServiceReference &ref);
-
+
/* 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
/* only in complex mode: */
enum {
- celServiceName,
- celServiceNumber,
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();
int cursorValid();
int cursorSet(int n);
int cursorGet();
-
+
void cursorSave();
void cursorRestore();
int size();
ePtr<iServiceHandler> m_service_center;
eServiceReference m_root;
-
+
/* support for marked services */
std::set<eServiceReference> m_marked;
-
std::set<eServiceReference>::const_iterator m_marked_iterator;
+
+ /* support for movemode */
+ bool m_current_marked;
+
+ int m_numberoffset;
};
#endif