/* $Id$
This file is part of libmspgltk
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Copyright © 2007-2011 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
class List;
-class Dropdown: public Widget
+class Dropdown: virtual public Widget, private Container
{
public:
class Loader: public Widget::Loader
void item(const std::string &);
};
+ sigc::signal<void, int, const std::string &> signal_item_selected;
+
private:
List list;
bool dropped;
- bool list_active;
public:
- sigc::signal<void, int, const std::string &> signal_item_selected;
+ Dropdown();
- Dropdown(const Resources &);
- ~Dropdown();
+ virtual const char *get_class() const { return "dropdown"; }
+
+ virtual void autosize();
void append(const std::string &);
void insert(unsigned, const std::string &);
const std::string &get_selected() const;
int get_selected_index() const;
- virtual void button_press(int, int, unsigned);
- virtual void button_release(int, int, unsigned);
- virtual void pointer_motion(int, int);
-
private:
- virtual const char *get_class() const { return "dropdown"; }
virtual void render_special(const Part &) const;
+public:
+ virtual void button_press(int, int, unsigned);
+private:
virtual void on_geometry_change();
- void resize_list();
+ virtual void on_style_change();
+ void list_autosize_changed();
+ void resize_list();
void list_item_selected(unsigned, const std::string &);
};