DataObserver *observer;
ItemFactory *item_factory;
int sel_index;
+ int focus_index;
unsigned first;
unsigned max_scroll;
unsigned view_size;
bool ignore_slider_change;
+ bool dragging;
+ int drag_start_x;
+ int drag_start_y;
VSlider slider;
std::vector<Item *> items;
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 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:
+ void set_focus_index(int);
+
void item_autosize_changed(Item *);
unsigned last_to_first(unsigned) const;
void check_view_range();
+ void scroll_to_focus();
void slider_value_changed(double);
+ static void adjust_index(int &, int, int);
};
} // namespace GLtk