void eListbox::moveToEnd()
{
+ if (!m_content)
+ return;
/* move to last existing one ("end" is already invalid) */
m_content->cursorEnd(); m_content->cursorMove(-1);
/* current selection invisible? */
entryrect.moveBy(ePoint(0, m_itemheight));
}
+ // clear/repaint empty/unused space between scrollbar and listboxentrys
if (m_scrollbar && m_scrollbar->isVisible())
{
+ style->setStyle(painter, eWindowStyle::styleListboxNormal);
painter.clip(eRect(m_scrollbar->position() - ePoint(5,0), eSize(5,m_scrollbar->size().height())));
painter.clear();
painter.clippop();
return 0;
}
+
case evtChangedSize:
recalcSize();
return eWidget::event(event, data, data2);
{
m_content_changed=true;
m_prev_scrollbar_page=-1;
- m_content->setSize(eSize(size().width(), m_itemheight));
+ if (m_content)
+ m_content->setSize(eSize(size().width(), m_itemheight));
m_items_per_page = size().height() / m_itemheight;
if (m_items_per_page < 0) /* TODO: whyever - our size could be invalid, or itemheigh could be wrongly specified. */
void eListbox::entryRemoved(int index)
{
- if (index == m_selected)
+ if (index == m_selected && m_content)
m_selected = m_content->cursorGet();
moveSelection(justCheck);