sel_index = -1;
first = 0;
max_scroll = 0;
+ view_size = 5;
observer = new DataObserver(*this);
}
void List::autosize()
-{
- autosize_rows(5);
-}
-
-void List::autosize_rows(unsigned n)
{
if(!style)
return;
items[i]->autosize();
const Geometry &igeom = items[i]->get_geometry();
max_w = max(max_w, igeom.w);
- if(i<n)
+ if(view_size==0 || i<view_size)
total_h += igeom.h;
}
- if(!items.empty() && items.size()<n)
- total_h = total_h*n/items.size();
+ if(!items.empty() && items.size()<view_size)
+ total_h = total_h*view_size/items.size();
geom.w = max(geom.w, max_w+margin.left+margin.right);
geom.h = max(geom.h, total_h+margin.top+margin.bottom);
rebuild();
}
-void List::autosize_all()
-{
- autosize_rows(data->size());
-}
-
void List::set_data(ListData &d)
{
delete observer;
return new BasicItem(data->get_string(index));
}
+void List::set_view_size(unsigned s)
+{
+ view_size = s;
+ signal_autosize_changed.emit();
+}
+
+void List::set_view_all()
+{
+ set_view_size(0);
+}
+
void List::set_selected_index(int i)
{
if(i>static_cast<int>(data->size()))