Misturando APIs C e C++

Você pode usar APIs C que ainda não tenham interfaces C++ convenientes. Geralmente não há problema usar APIs C no C++, e o gtkmm ajuda a prover acesso ao objeto C que está por trás, e a prover uma maneira fácil de criar um objeto C++ de wrap para um objeto C, desde que a API C também seja baseada no sistema GObject.

Para passar um objeto gtkmm para uma função C que exija um objeto GObject C, use a função gobj() para obter um ponteiro para o objeto GObject escondido. Por exemplo,

Gtk::Button* botao = new Gtk::Button("exemplo");
gtk_button_faca_algo_novo(botao->gobj());

Para obter um objeto gtkmm a partir de um GObject C, use a função Glib::wrap(). Por exemplo,

GtkButton* botao_c = pegar_um_botao();
Gtk::Button* botao = Glib::wrap(botao_c);