Support focus animation for listbox
[vuplus_dvbapp] / lib / service / listboxservice.cpp
index cc8c32b..074b8cd 100644 (file)
@@ -99,6 +99,48 @@ void eListboxServiceContent::getCurrent(eServiceReference &ref)
                ref = eServiceReference();
 }
 
+void eListboxServiceContent::getPrev(eServiceReference &ref)
+{
+       if (cursorValid())
+       {
+               list::iterator cursor(m_cursor);
+               if (cursor == m_list.begin())
+               {
+                       cursor = m_list.end();
+               }
+               ref = *(--cursor);
+       }
+       else
+               ref = eServiceReference();
+}
+
+void eListboxServiceContent::getNext(eServiceReference &ref)
+{
+       if (cursorValid())
+       {
+               list::iterator cursor(m_cursor);
+               cursor++;
+               if (cursor == m_list.end())
+               {
+                       cursor = m_list.begin();
+               }
+               ref = *(cursor);
+       }
+       else
+               ref = eServiceReference();
+}
+
+PyObject *eListboxServiceContent::getList()
+{
+       ePyObject result = PyList_New(m_list.size());
+       int pos=0;
+       for (list::iterator it(m_list.begin()); it != m_list.end(); ++it)
+       {
+               PyList_SET_ITEM(result, pos++, NEW_eServiceReference(*it));
+       }
+       return result;
+}
+
 int eListboxServiceContent::getNextBeginningWithChar(char c)
 {
 //     printf("Char: %c\n", c);
@@ -585,6 +627,9 @@ void eListboxServiceContent::paint(gPainter &painter, eWindowStyle &style, const
                                {
                                        if (service_info)
                                                service_info->getName(*m_cursor, text);
+#ifdef USE_LIBVUGLES2
+                                       painter.setFlush(text == "<n/a>");
+#endif
                                        break;
                                }
                                case celServiceInfo: