#include <sigc++/signal.h>
#include "list.h"
+#include "text.h"
#include "widget.h"
namespace Msp {
class Dropdown: virtual public Widget, private Container
{
public:
- class Loader: public Widget::Loader
+ class Loader: public DataFile::DerivedObjectLoader<Dropdown, Widget::Loader>
{
public:
Loader(Dropdown &);
private:
List list;
bool dropped;
+ Text text;
public:
Dropdown();
public:
virtual const char *get_class() const { return "dropdown"; }
- virtual void autosize();
+private:
+ virtual void autosize_special(const Part &, Geometry &);
+public:
void set_data(ListData &d) { list.set_data(d); }
ListData &get_data() { return list.get_data(); }
const ListData &get_data() const { return list.get_data(); }
- void set_selected_index(int i) { list.set_selected_index(i); }
+ template<typename T>
+ void set_item_type() { list.set_item_type<T>(); }
+
+ void set_selected_index(int);
int get_selected_index() const { return list.get_selected_index(); }
private:
- virtual void rebuild_special(const Part &, CachedPart &);
+ virtual void rebuild_special(const Part &);
virtual void render_special(const Part &, GL::Renderer &) const;
public: