+private:
+ virtual void autosize_special(const Part &, Geometry &) const;
+
+public:
+ void set_data(ListData &);
+ ListData &get_data() { return *data; }
+ const ListData &get_data() const { return *data; }
+private:
+ void items_changed();
+
+public:
+ template<typename I>
+ void set_item_type()
+ {
+ ItemFactory *f = new TypedItemFactory<I>(*data);
+ delete item_factory;
+ item_factory = f;
+ }
+private:
+ Item *create_item(unsigned);
+
+public:
+ void set_view_mode(ViewMode);
+ void set_view_size(unsigned);
+ void set_view_size(unsigned, unsigned);
+ void set_view_all();
+
+ void set_selected_index(int);
+ int get_selected_index() const { return sel_index; }
+private:
+ void set_selected_item(Widget *);
+
+ virtual void rebuild_special(const Part &);
+ virtual void render_special(const Part &, GL::Renderer &) const;
+
+public:
+ virtual bool key_press(unsigned, unsigned);
+ virtual void button_press(int, int, unsigned);
+ virtual void touch_press(int, int, unsigned);
+ virtual void touch_release(int, int, unsigned);
+ virtual void touch_motion(int, int, unsigned);
+ virtual void focus_in();
+ virtual bool navigate(Navigation);
+private: