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);