Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/listview.cc')
-rw-r--r--src/ui/listview.cc21
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);
+ }
}
}