}
}
+void eListbox::moveSelectionTo(int index)
+{
+ printf("Moving to listbox-entry with index %d\n", index);
+ // TODO: implement it
+}
+
int eListbox::event(int event, void *data, void *data2)
{
switch (event)
}; */
void moveSelection(int how);
+ void moveSelectionTo(int index);
enum ListboxActions {
moveUp,
from enigma import *
+from string import upper
+
class ServiceList(HTMLComponent, GUIComponent):
MODE_NORMAL = 0
def moveDown(self):
self.instance.moveSelection(self.instance.moveDown)
+
+ def moveToChar(self, char):
+ # TODO fill with life
+ print "Next char: "
+ index = self.l.getNextBeginningWithChar(char)
+ indexup = self.l.getNextBeginningWithChar(upper(char))
+ if (index > indexup):
+ index = indexup
+ self.instance.moveSelectionTo(index)
+ print "Moving to character " + str(char)
def GUIcreate(self, parent):
self.instance = eListbox(parent)
self.setRoot(self.bouquet_root)
def keyNumberGlobal(self, number):
+ char = self.numericalTextInput.getKey(number)
print "You pressed number " + str(number)
- print "You would go to character " + str(self.numericalTextInput.getKey(number))
- # TODO let the servicelist jump to the next entry strating with the chosen character
+ print "You would go to character " + str(char)
+ self.servicelist.moveToChar(char)
def enterBouquet(self, action):
if action[:7] == "bouquet":
ref = eServiceReference();
}
+int eListboxServiceContent::getNextBeginningWithChar(char c)
+{
+// printf("Char: %c\n", c);
+ int index=0;
+ for (list::iterator i(m_list.begin()); i != m_list.end(); ++i, ++index)
+ {
+ std::string text;
+ ePtr<iStaticServiceInformation> service_info;
+ m_service_center->info(*i, service_info);
+ service_info->getName(*i, text);
+// printf("%c\n", text.c_str()[0]);
+ if (text.c_str()[0] == c)
+ return index;
+ }
+ return 0;
+}
+
void eListboxServiceContent::initMarked()
{
m_marked.clear();
eListboxServiceContent();
void setRoot(const eServiceReference &ref);
void getCurrent(eServiceReference &ref);
+
+ int getNextBeginningWithChar(char c);
/* support for marked services */
void initMarked();