m_listbox->entryReset();
}
+void eListboxServiceContent::setCurrent(const eServiceReference &ref)
+{
+ int index=0;
+ for (list::iterator i(m_list.begin()); i != m_list.end(); ++i, ++index)
+ if ( *i == ref )
+ {
+ m_cursor = i;
+ m_cursor_number = index;
+ break;
+ }
+}
+
void eListboxServiceContent::getCurrent(eServiceReference &ref)
{
if (cursorValid())
if (m_visual_mode == visModeSimple)
{
m_element_position[celServiceName] = eRect(ePoint(0, 0), m_itemsize);
- m_element_font[celServiceName] = new gFont("Arial", 14);
+ m_element_font[celServiceName] = new gFont("Arial", 23);
m_element_position[celServiceNumber] = eRect();
m_element_font[celServiceNumber] = 0;
m_element_position[celIcon] = eRect();
DEFINE_REF(eListboxServiceContent);
eListboxServiceContent::eListboxServiceContent()
- :m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_swap(m_list.end())
+ :m_visual_mode(visModeSimple), m_size(0), m_current_marked(false), m_swap(m_list.end()), m_numberoffset(0)
{
cursorHome();
eServiceCenter::getInstance(m_service_center);
m_current_marked = state;
if (state != prev && m_listbox)
+ {
m_listbox->entryChanged(m_cursor_number);
+ if (!state)
+ {
+ ePtr<iListableService> lst;
+ if (m_service_center->list(m_root, lst))
+ eDebug("no list available!");
+ else
+ {
+ ePtr<iMutableServiceList> list;
+ if (lst->startEdit(list))
+ eDebug("no editable list");
+ else
+ {
+ eServiceReference ref;
+ getCurrent(ref);
+ if(!ref)
+ eDebug("no valid service selected");
+ else
+ {
+ int pos = cursorGet();
+ eDebugNoNewLine("move %s to %d ", ref.toString().c_str(), pos);
+ if (list->moveService(ref, cursorGet()))
+ eDebug("failed");
+ else
+ eDebug("ok");
+ }
+ }
+ }
+ }
+ }
return 0;
}
case celServiceNumber:
{
char bla[10];
- sprintf(bla, "%d", m_cursor_number + 1);
+ sprintf(bla, "%d", m_numberoffset + m_cursor_number + 1);
text = bla;
break;
}