]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/dropdown.h
More flexible storage for Lsit and Dropdown items
[libs/gltk.git] / source / dropdown.h
index 166eebf53da3943040c2565b9f4d471cca7d9919..fd98f11ddfa2d4e1b8940dfb37f1a639f6790d00 100644 (file)
@@ -21,7 +21,7 @@ public:
                void item(const std::string &);
        };
 
-       sigc::signal<void, int, const std::string &> signal_item_selected;
+       sigc::signal<void, unsigned> signal_item_selected;
 
 private:
        List list;
@@ -29,20 +29,21 @@ private:
 
 public:
        Dropdown();
+       Dropdown(ListData &);
+private:
+       void init();
 
+public:
        virtual const char *get_class() const { return "dropdown"; }
 
        virtual void autosize();
 
-       void append(const std::string &);
-       void insert(unsigned, const std::string &);
-       void remove(unsigned);
-       void clear();
-       unsigned get_n_items() const;
+       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);
-       const std::string &get_selected() const;
-       int get_selected_index() const;
+       void set_selected_index(int i) { list.set_selected_index(i); }
+       int get_selected_index() const { return list.get_selected_index(); }
 
 private:
        virtual void rebuild_special(const Part &, CachedPart &);
@@ -56,7 +57,7 @@ private:
 
        void list_autosize_changed();
        void resize_list();
-       void list_item_selected(unsigned, const std::string &);
+       void list_item_selected(unsigned);
 };
 
 } // namespace GLtk