}
};
+ struct Row
+ {
+ unsigned first;
+ unsigned height;
+
+ Row(unsigned f): first(f), height(0) { }
+ };
+
public:
sigc::signal<void, unsigned> signal_item_selected;
sigc::signal<void> signal_selection_cleared;
ItemFactory *item_factory;
int sel_index;
int focus_index;
- unsigned first;
+ unsigned first_row;
unsigned max_scroll;
- unsigned view_size;
+ unsigned view_rows;
const Part *items_part;
bool ignore_slider_change;
bool dragging;
VSlider slider;
std::vector<Item *> items;
+ std::vector<Row> rows;
public:
List();
void set_focus_index(int);
void item_autosize_changed(Item *);
- unsigned last_to_first(unsigned) const;
+ void reposition_items(bool);
+ unsigned last_to_first_row(unsigned) const;
+ unsigned item_index_to_row(unsigned) const;
void check_view_range();
void scroll_to_focus();
void slider_value_changed(double);