00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CONEXUSGTKFACTORYCOMBOBOX_H
00020 #define CONEXUSGTKFACTORYCOMBOBOX_H
00021
00022 #include <gtkmm/combobox.h>
00023 #include <gtkmm/liststore.h>
00024
00025 #include <conexus/factory.h>
00026 #include <conexus/utility.h>
00027
00028 namespace Conexus
00029 {
00030 namespace Gtk
00031 {
00032
00037 class FactoryComboBox : public ::Gtk::ComboBox
00038 {
00039 public:
00040 FactoryComboBox ( Conexus::Factory::pointer factory = Conexus::__default_factory );
00041
00042 ~FactoryComboBox();
00043
00044 protected:
00045 Conexus::Factory::pointer m_factory;
00046
00047 class ModelColumns: public ::Gtk::TreeModelColumnRecord
00048 {
00049 public:
00050 ModelColumns()
00051 {
00052 add ( picture );
00053 add ( name );
00054 }
00055
00056 ::Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf> > picture;
00057 ::Gtk::TreeModelColumn<Glib::ustring> name;
00058 };
00059
00060 Glib::RefPtr< ::Gtk::ListStore > m_store;
00061 ModelColumns m_columns;
00062 static std::vector<Glib::RefPtr<Gdk::Pixbuf> > m_pixbuf;
00063
00064 void create_pixbufs();
00065 };
00066
00067 }
00068
00069 }
00070
00071 #endif