1 #include <lib/service/listboxservice.h>
2 #include <lib/service/service.h>
4 void eListboxServiceContent::setRoot(const eServiceReference &root)
8 assert(m_service_center);
10 ePtr<iListableService> lst;
11 if (m_service_center->list(m_root, lst))
12 eDebug("no list available!");
14 if (lst->getContent(m_list))
15 eDebug("getContent failed");
17 m_size = m_list.size();
21 DEFINE_REF(eListboxServiceContent);
23 eListboxServiceContent::eListboxServiceContent()
27 eServiceCenter::getInstance(m_service_center);
30 void eListboxServiceContent::cursorHome()
32 m_cursor = m_list.begin();
36 void eListboxServiceContent::cursorEnd()
38 m_cursor = m_list.end();
39 m_cursor_number = m_size;
42 int eListboxServiceContent::cursorMove(int count)
46 while (count && (m_cursor != m_list.end()))
54 while (count && (m_cursor != m_list.begin()))
65 int eListboxServiceContent::cursorValid()
67 return m_cursor != m_list.end();
70 int eListboxServiceContent::cursorSet(int n)
78 int eListboxServiceContent::cursorGet()
80 return m_cursor_number;
83 void eListboxServiceContent::cursorSave()
85 m_saved_cursor = m_cursor;
86 m_saved_cursor_number = m_cursor_number;
89 void eListboxServiceContent::cursorRestore()
91 m_cursor = m_saved_cursor;
92 m_cursor_number = m_saved_cursor_number;
95 int eListboxServiceContent::size()
100 void eListboxServiceContent::setSize(const eSize &size)
105 void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected)
107 ePtr<gFont> fnt = new gFont("Arial", 14);
108 painter.clip(eRect(offset, m_itemsize));
109 style.setStyle(painter, selected ? eWindowStyle::styleListboxSelected : eWindowStyle::styleListboxNormal);
114 painter.setFont(fnt);
116 ePoint text_offset = offset + (selected ? ePoint(2, 2) : ePoint(1, 1));
118 /* get name of service */
119 ePtr<iStaticServiceInformation> service_info;
120 m_service_center->info(*m_cursor, service_info);
121 std::string name = "<n/a>";
124 service_info->getName(*m_cursor, name);
126 painter.renderText(eRect(text_offset, m_itemsize), name);
129 style.drawFrame(painter, eRect(offset, m_itemsize), eWindowStyle::frameListboxEntry);