virtual const char *get_class() const { return "listitem"; }
protected:
- virtual void autosize_special(const Part &, Geometry &);
+ virtual void autosize_special(const Part &, Geometry &) const;
public:
void set_active(bool);
virtual void render_special(const Part &, GL::Renderer &) const;
};
+ class MultiColumnItem: public Item
+ {
+ protected:
+ virtual void check_widths(std::vector<unsigned> &) const;
+ virtual void set_widths(const std::vector<unsigned> &);
+
+ private:
+ virtual void on_style_change();
+ };
+
private:
class BasicItem: public Item
{
unsigned first;
unsigned max_scroll;
unsigned view_size;
+ bool ignore_slider_change;
VSlider slider;
std::vector<Item *> items;
virtual const char *get_class() const { return "list"; }
private:
- virtual void autosize_special(const Part &, Geometry &);
+ virtual void autosize_special(const Part &, Geometry &) const;
public:
void set_data(ListData &);
int get_selected_index() const { return sel_index; }
private:
+ virtual void rebuild_special(const Part &);
virtual void render_special(const Part &, GL::Renderer &) const;
public:
virtual void button_press(int, int, unsigned);
-private:
- virtual void on_geometry_change();
- virtual void on_style_change();
- void reposition_slider();
- void reposition_items();
+private:
+ void item_autosize_changed(Item *);
void check_view_range();
void slider_value_changed(double);
};