Le modèle
Le modèle d'une boîte combinée se définit et se remplit exactement comme un objet TreeView. Par exemple, vous pouvez dériver à partir de ComboBox une classe comportant une colonne d'entiers et une colonne texte comme suit :
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;
Après avoir ajouté des lignes à ce modèle, intégrez le modèle dans l'objet ComboBox avec la fonction membre set_model(). Puis, servez-vous des fonctions membres pack_start() ou pack_end() pour définir les colonnes à afficher dans la boîte combinée. Comme avec une vue arborescente vous pouvez, soit utiliser le moteur de rendu par défaut en passant le TreeModelColumn aux fonctions membres d'empaquetage, soit créer un exemplaire particulier de CellRenderer en définissant une correspondance personnalisée avec add_attribute() ou set_cell_data_func(). Notez que ces fonctions membres font partie de la classe de base CellLayout.