Mixing C and C++ APIs
You can use C APIs which do not yet have convenient C++ interfaces. It is generally not a problem to use C APIs from C++, and gtkmm helps by providing access to the underlying C object, and providing an easy way to create a C++ wrapper object from a C object, provided that the C API is also based on the GObject system.
To use a gtkmm instance with a C function that requires a C GObject instance, use the gobj() function to obtain a pointer to the underlying GObject instance. For instance
Gtk::Button* button = new Gtk::Button("example"); gtk_button_do_something_new(button->gobj());
To obtain a gtkmm instance from a C GObject instance, use the Glib::wrap() function. For instance
GtkButton* cbutton = get_a_button(); Gtk::Button* button = Glib::wrap(cbutton);