diff options
Diffstat (limited to 'src/ui/listview.cc')
-rw-r--r-- | src/ui/listview.cc | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/ui/listview.cc b/src/ui/listview.cc index ac2a4e8..0c01596 100644 --- a/src/ui/listview.cc +++ b/src/ui/listview.cc @@ -132,6 +132,11 @@ void ListView::clear() listview_scrollbar->set_value(listview_scroll); } +ListItem *ListView::add_item(const std::string & text) +{ + return new ui::ListItem(this, text.c_str()); +} + bool ListView::on_emit(Widget *sender, const Event event, void *data) { if (sender == listview_scrollbar) { @@ -173,7 +178,7 @@ bool ListView::on_keypress(const int key, const unsigned int modifier) return false; } -bool compare_listitems(const Widget *first, const Widget *second) +bool compare_listitems_ascending(const Widget *first, const Widget *second) { const ListItem *firstitem = dynamic_cast<const ListItem *>(first); const ListItem *seconditem = dynamic_cast<const ListItem *>(second); @@ -192,12 +197,8 @@ bool compare_listitems(const Widget *first, const Widget *second) } } -void ListView::sort() -{ - children().sort(compare_listitems); -} -bool compare_listitems_reverse(const Widget *first, const Widget *second) +bool compare_listitems_descending(const Widget *first, const Widget *second) { const ListItem *firstitem = dynamic_cast<const ListItem *>(first); const ListItem *seconditem = dynamic_cast<const ListItem *>(second); @@ -216,9 +217,13 @@ bool compare_listitems_reverse(const Widget *first, const Widget *second) } } -void ListView::sort_reverse() +void ListView::sort(bool ascending) { - children().sort(compare_listitems_reverse); + if (ascending) { + children().sort(compare_listitems_ascending); + } else { + children().sort(compare_listitems_descending); + } } } |