add API to get combobox option count.
authorRobin Gareus <robin@gareus.org>
Tue, 11 Aug 2015 12:04:58 +0000 (14:04 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 11 Aug 2015 13:38:26 +0000 (15:38 +0200)
The data model needs to be checked to count available options.
Directly using ComboBoxText::children()::size() counts widgets.

libs/gtkmm2ext/gtkmm2ext/utils.h
libs/gtkmm2ext/utils.cc

index ab70464ea0c0f92cb2dec024304d3829ed578bb4..6ed5d774283e138accb16199c8971937fa1e89b3 100644 (file)
@@ -101,6 +101,8 @@ namespace Gtkmm2ext {
        LIBGTKMM2EXT_API void get_popdown_strings (Gtk::ComboBoxText&,
                                  std::vector<std::string>&);
 
+       LIBGTKMM2EXT_API size_t get_popdown_string_count (Gtk::ComboBoxText&);
+
        LIBGTKMM2EXT_API bool contains_value (Gtk::ComboBoxText&,
                                  const std::string);
 
index 6efa95ac1a36e83ae57ea703a386d4ddf2f5a439..f1616f16a13aa02d3d08ba9492e3bcc119a6a797 100644 (file)
@@ -322,6 +322,16 @@ Gtkmm2ext::get_popdown_strings (Gtk::ComboBoxText& cr, std::vector<std::string>&
        }
 }
 
+size_t
+Gtkmm2ext::get_popdown_string_count (Gtk::ComboBoxText& cr)
+{
+       Glib::RefPtr<const Gtk::TreeModel> m = cr.get_model();
+       if (!m) {
+               return 0;
+       }
+       return m->children().size();
+}
+
 bool
 Gtkmm2ext::contains_value (Gtk::ComboBoxText& cr, const std::string text)
 {