Mélange des API C et C++

Vous pouvez utiliser des API C, si elles n'ont pas encore d'interfaces C++ commodes. Il n'y a généralement aucun problème avec l'utilisation des API C dans le C++ ; gtkmm vous aide en donnant un accès à l'objet C sous-jacent et en facilitant la création d'un objet C++ enveloppe de l'objet C, à condition que l'API C soit également fondée sur le système GObject.

Pour utiliser un élément gtkmm avec une fonction C demandant un type d'objet GObject C, servez-vous de la fonction gobj() pour obtenir un pointeur sur l'instance du GObject sous-jacent. Par exemple

Gtk::Button* button = new Gtk::Button("exemple");
gtk_button_do_something_new(button->gobj());

Pour obtenir un objet gtkmm à partir d'un élément GObject C, utilisez la fonction Glib::wrap(). Par exemple

GtkButton* cbutton = get_a_button();
Gtk::Button* button = Glib::wrap(cbutton);