diff options
Diffstat (limited to 'src/ui/listview.cc')
-rw-r--r-- | src/ui/listview.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/ui/listview.cc b/src/ui/listview.cc index da320c5..646b168 100644 --- a/src/ui/listview.cc +++ b/src/ui/listview.cc @@ -15,6 +15,7 @@ ListView::ListView(Widget *parent) : Widget(parent) set_border(true); listview_scroll = 0.0f; + listview_selecteditem = 0; } ListView::~ListView() @@ -66,5 +67,26 @@ void ListView::resize() content_top += (*it)->height(); } } + +void ListView::deselect() +{ + listview_selecteditem = 0; +} + +void ListView::clear() +{ + listview_selecteditem = 0; + remove_children(); +} + +bool ListView::on_emit(Widget *sender, const Event event, void *data) +{ + if ((sender->parent() == this) && (event == Widget::EventListItemClicked)) { + listview_selecteditem = static_cast<ListItem *>(sender); + return false; // return false because parent widgets might want to handle this event + } + return ui::Widget::on_emit(sender, event, data); +} + } |