Model
Model pro ComboBox se dá definovat a vyplnit úplně stejně, jako pro TreeView. Například můžete odvodit třídu ComboBox s jedním celočíselným a jedním textovým sloupce, nějak takto:
class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { add(m_col_id); add(m_col_name); } Gtk::TreeModelColumn<int> m_col_id; Gtk::TreeModelColumn<Glib::ustring> m_col_name; }; ModelColumns m_columns;
Po přidání řádků do tohoto modelu byste jej měli pomocí metody set_model() předat do objektu ComboBox. Pak použijte metodu pack_start() nebo pack_end() k určení, které sloupce se budou v rozbalovacím seznamu zobrazovat. Stejně jako u TreeView, můžete buď nastavit výchozí vykreslování buněk předáním TreeModelColumn do balicí metody, nebo můžete vytvořit instanci konkrétní třídy CellRenderer a určit konkrétní mapování buď pomocí add_attribute() nebo set_cell_data_func(). Tyto metody pochází ze základní třídy CellLayout.