#include <lib/gui/elistbox.h>
#include <lib/service/iservice.h>
+#include <set>
class eServiceCenter;
class eListboxServiceContent: public virtual iListboxContent
{
- DECLARE_REF;
+ DECLARE_REF(eListboxServiceContent);
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);
+
protected:
void cursorHome();
void cursorEnd();
ePtr<eServiceCenter> m_service_center;
eServiceReference m_root;
+
+ /* support for marked services */
+ std::set<eServiceReference> m_marked;
+
+ std::set<eServiceReference>::const_iterator m_marked_iterator;
};
#endif