-DEFINE_REF(eListboxTestContent);
-
-void eListboxTestContent::cursorHome()
-{
- m_cursor = 0;
-}
-
-void eListboxTestContent::cursorEnd()
-{
- m_cursor = size();
-}
-
-int eListboxTestContent::cursorMove(int count)
-{
- m_cursor += count;
-
- if (m_cursor < 0)
- cursorHome();
- else if (m_cursor > size())
- cursorEnd();
- return 0;
-}
-
-int eListboxTestContent::cursorValid()
-{
- return m_cursor < size();
-}
-
-int eListboxTestContent::cursorSet(int n)
-{
- m_cursor = n;
-
- if (m_cursor < 0)
- cursorHome();
- else if (m_cursor > size())
- cursorEnd();
- return 0;
-}
-
-int eListboxTestContent::cursorGet()
-{
- return m_cursor;
-}
-
-void eListboxTestContent::cursorSave()
-{
- m_saved_cursor = m_cursor;
-}
-
-void eListboxTestContent::cursorRestore()
-{
- m_cursor = m_saved_cursor;
-}
-
-int eListboxTestContent::size()
-{
- return 10;
-}
-
-RESULT eListboxTestContent::connectItemChanged(const Slot0<void> &itemChanged, ePtr<eConnection> &connection)
-{
- return 0;
-}
-
-void eListboxTestContent::setSize(const eSize &size)
-{
- m_size = size;
-}
-
-void eListboxTestContent::paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected)
-{
- ePtr<gFont> fnt = new gFont("Arial", 20);
- painter.clip(eRect(offset, m_size));
- style.setStyle(painter, selected ? eWindowStyle::styleListboxSelected : eWindowStyle::styleListboxNormal);
- painter.clear();
-
- if (cursorValid())
- {
- painter.setFont(fnt);
- char string[10];
- sprintf(string, "%d.)", m_cursor);
-
- ePoint text_offset = offset + (selected ? ePoint(2, 2) : ePoint(1, 1));
-
- painter.renderText(eRect(text_offset, m_size), string);
-
- if (selected)
- style.drawFrame(painter, eRect(offset, m_size), eWindowStyle::frameListboxEntry);
- }
-
- painter.clippop();
-}
-
-//////////////////////////////////////
-
-DEFINE_REF(eListboxStringContent);
-
-eListboxStringContent::eListboxStringContent()
-{
- m_size = 0;
- cursorHome();
-}
-
-void eListboxStringContent::cursorHome()
-{
- m_cursor = m_list.begin();
- m_cursor_number = 0;
-}
-
-void eListboxStringContent::cursorEnd()
-{
- m_cursor = m_list.end();
- m_cursor_number = m_size;
-}
-
-int eListboxStringContent::cursorMove(int count)
-{
- 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 eListboxStringContent::cursorValid()
-{
- return m_cursor != m_list.end();
-}
-
-int eListboxStringContent::cursorSet(int n)
-{
- cursorHome();
- cursorMove(n);
-
- return 0;
-}
-
-int eListboxStringContent::cursorGet()
-{
- return m_cursor_number;
-}
-
-void eListboxStringContent::cursorSave()
-{
- m_saved_cursor = m_cursor;
- m_saved_cursor_number = m_cursor_number;
-}
-
-void eListboxStringContent::cursorRestore()
-{
- m_cursor = m_saved_cursor;
- m_cursor_number = m_saved_cursor_number;
-}
-
-int eListboxStringContent::size()
-{
- return m_size;
-}
-
-void eListboxStringContent::setSize(const eSize &size)
-{
- m_itemsize = size;
-}
-
-void eListboxStringContent::paint(gPainter &painter, eWindowStyle &style, const ePoint &offset, int selected)
-{
- ePtr<gFont> fnt = new gFont("Arial", 20);
- painter.clip(eRect(offset, m_itemsize));
- style.setStyle(painter, selected ? eWindowStyle::styleListboxSelected : eWindowStyle::styleListboxNormal);
- painter.clear();
-
- eDebug("item %d", m_cursor_number);
- if (cursorValid())
- {
- eDebug("is valid..");
- painter.setFont(fnt);
-
- ePoint text_offset = offset + (selected ? ePoint(2, 2) : ePoint(1, 1));
-
- painter.renderText(eRect(text_offset, m_itemsize), *m_cursor);
-
- if (selected)
- style.drawFrame(painter, eRect(offset, m_itemsize), eWindowStyle::frameListboxEntry);
- }
-
- painter.clippop();
-}
-
-void eListboxStringContent::setList(std::list<std::string> &list)