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); +} +  }  | 
