X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flist.cpp;h=a7185acab422eee81b86a2021bbf018d78c85073;hb=5f73de83d46138faa2b4c1b0a725d0a705988388;hp=de7f857935d57050b3f859e6b70186b57361d0de;hpb=f5dcf03feada4db3a0c527f1e5efeb2ed3b784d3;p=libs%2Fgltk.git diff --git a/source/list.cpp b/source/list.cpp index de7f857..a7185ac 100644 --- a/source/list.cpp +++ b/source/list.cpp @@ -9,7 +9,6 @@ #include "part.h" #include "style.h" #include "text.h" -#include "vslider.h" using namespace std; @@ -136,7 +135,7 @@ void List::set_data(ListData &d) void List::items_changed() { signal_autosize_changed.emit(); - rebuild(); + mark_rebuild(); } List::Item *List::create_item(unsigned index) @@ -404,7 +403,7 @@ void List::item_autosize_changed(Item *item) { item->autosize(); signal_autosize_changed.emit(); - rebuild(); + mark_rebuild(); } void List::reposition_items(bool record_rows) @@ -507,6 +506,7 @@ void List::check_view_range() first_row = max_scroll; slider.set_range(0, max_scroll); + slider.set_page_size(rows.size()-max_scroll); slider.set_value(max_scroll-first_row); } @@ -527,7 +527,7 @@ void List::slider_value_changed(double value) if(max_scroll>0 && !ignore_slider_change) { first_row = max_scroll-static_cast(value); - rebuild(); + mark_rebuild(); } } @@ -595,6 +595,11 @@ void List::DataObserver::refresh_item(unsigned i) } +List::Item::Item() +{ + input_type = INPUT_NAVIGATION; +} + void List::Item::autosize_special(const Part &part, Geometry &ageom) const { if(part.get_name()=="children")