X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b59c62ccf0f4deb5c603b4b3a9c39812bce3523c..32f4b90e3513e3cb4365e0ad1160de6e093f45d9:/lib/components/listboxepg.cpp diff --git a/lib/components/listboxepg.cpp b/lib/components/listboxepg.cpp index b72a6a82..e69de29b 100644 --- a/lib/components/listboxepg.cpp +++ b/lib/components/listboxepg.cpp @@ -1,208 +0,0 @@ -#include -#include -#include - -void eListboxEPGContent::setRoot(const eServiceReference &root) -{ - eEPGCache *epg=NULL; - if ( !eEPGCache::getInstance(epg) ) - { - m_list.clear(); - m_root = root; - - epg->Lock(); - if (!epg->startTimeQuery(root)) - { - ePtr ptr; - while( !epg->getNextTimeEntry(ptr) ) - m_list.push_back(ptr); - } - else - eDebug("startTimeQuery failed %s", root.toString().c_str()); - epg->Unlock(); - - m_size = m_list.size(); - cursorHome(); - - if (m_listbox) - m_listbox->entryReset(); - } -} - -void eListboxEPGContent::getCurrent(ePtr& evt) -{ - if (cursorValid()) - evt = *m_cursor; - else - evt = 0; -} - -void eListboxEPGContent::setElementPosition(int element, eRect where) -{ - if ((element >= 0) && (element < celElements)) - m_element_position[element] = where; -} - -void eListboxEPGContent::setElementFont(int element, gFont *font) -{ - if ((element >= 0) && (element < celElements)) - m_element_font[element] = font; -} - -void eListboxEPGContent::sort() -{ -#if 0 - ePtr lst; - if (!m_service_center->list(m_root, lst)) - { - m_list.sort(iListableServiceCompare(lst)); - /* FIXME: is this really required or can we somehow keep the current entry? */ - cursorHome(); - if (m_listbox) - m_listbox->entryReset(); - } -#endif -} - -DEFINE_REF(eListboxEPGContent); - -eListboxEPGContent::eListboxEPGContent() - :m_size(0) -{ - cursorHome(); -} - -void eListboxEPGContent::cursorHome() -{ - m_cursor = m_list.begin(); - m_cursor_number = 0; -} - -void eListboxEPGContent::cursorEnd() -{ - m_cursor = m_list.end(); - m_cursor_number = m_size; -} - -int eListboxEPGContent::cursorMove(int count) -{ - list::iterator old = m_cursor; - - if (count > 0) - { - while(count && (m_cursor != m_list.end())) - { - ++m_cursor; - ++m_cursor_number; - --count; - } - } else if (count < 0) - { - while (count && (m_cursor != m_list.begin())) - { - --m_cursor; - --m_cursor_number; - ++count; - } - } - - return 0; -} - -int eListboxEPGContent::cursorValid() -{ - return m_cursor != m_list.end(); -} - -int eListboxEPGContent::cursorSet(int n) -{ - cursorHome(); - cursorMove(n); - - return 0; -} - -int eListboxEPGContent::cursorGet() -{ - return m_cursor_number; -} - -void eListboxEPGContent::cursorSave() -{ - m_saved_cursor = m_cursor; - m_saved_cursor_number = m_cursor_number; -} - -void eListboxEPGContent::cursorRestore() -{ - m_cursor = m_saved_cursor; - m_cursor_number = m_saved_cursor_number; - m_saved_cursor = m_list.end(); -} - -int eListboxEPGContent::size() -{ - return m_size; -} - -void eListboxEPGContent::setSize(const eSize &size) -{ - m_itemsize = size; - eSize s = m_itemsize; - s.setWidth(size.width()/20*5); - m_element_position[celBeginTime] = eRect(ePoint(0, 0), s); - m_element_font[celBeginTime] = new gFont("Arial", 20); - s.setWidth(size.width()/20*15); - m_element_position[celTitle] = eRect(ePoint(size.width()/20*5, 0), s); - m_element_font[celTitle] = new gFont("Arial", 20); -} - -void eListboxEPGContent::paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected) -{ - painter.clip(eRect(offset, m_itemsize)); - style.setStyle(painter, selected ? eWindowStyle::styleListboxSelected : eWindowStyle::styleListboxNormal); - painter.clear(); - - if (cursorValid()) - { - for (int e = 0; e < celElements; ++e) - { - if (!m_element_font[e]) - continue; - - painter.setFont(m_element_font[e]); - - std::string text = ""; - - switch (e) - { - case celBeginTime: - { - tm t; - localtime_r(&(*m_cursor)->m_begin, &t); - char tmp[13]; - snprintf(tmp, 13, "%02d.%02d, %02d:%02d", - t.tm_mday, t.tm_mon+1, - t.tm_hour, t.tm_min); - text=tmp; - break; - } - case celTitle: - { - text = (*m_cursor)->m_event_name; - break; - } - } - - eRect area = m_element_position[e]; - area.moveBy(offset.x(), offset.y()); - - painter.renderText(area, text); - } - - if (selected) - style.drawFrame(painter, eRect(offset, m_itemsize), eWindowStyle::frameListboxEntry); - } - painter.clippop(); -} -