aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2005-11-30 14:15:56 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2005-11-30 14:15:56 +0000
commit494169d25068e3d3dd2dcc8b37b42d32df6935e7 (patch)
tree7252c705e1887ded09184f318335650886e93c64 /lib/service
parentb81011256e7383001bd35d09a25325e98d3bfa81 (diff)
downloadenigma2-494169d25068e3d3dd2dcc8b37b42d32df6935e7.tar.gz
enigma2-494169d25068e3d3dd2dcc8b37b42d32df6935e7.zip
jumping to an entry beginning with a character nearly works now
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/listboxservice.cpp17
-rw-r--r--lib/service/listboxservice.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp
index 9eafc853..e336dc17 100644
--- a/lib/service/listboxservice.cpp
+++ b/lib/service/listboxservice.cpp
@@ -44,6 +44,23 @@ void eListboxServiceContent::getCurrent(eServiceReference &ref)
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();
diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h
index 1d5dc2a2..ae0ec5a6 100644
--- a/lib/service/listboxservice.h
+++ b/lib/service/listboxservice.h
@@ -15,6 +15,8 @@ public:
eListboxServiceContent();
void setRoot(const eServiceReference &ref);
void getCurrent(eServiceReference &ref);
+
+ int getNextBeginningWithChar(char c);
/* support for marked services */
void initMarked();