Ανάμειξη APIs C και C++

Μπορείτε να χρησιμοποιήσετε APIs C που δεν έχουν ακόμα βολικές διεπαφές C++. Δεν είναι γενικά πρόβλημα να χρησιμοποιήσετε APIs C από C++ και τη gtkmm βοηθά δίνοντας πρόσβαση στο υποκείμενο αντικείμενο C και παρέχοντας έναν εύκολο τρόπο δημιουργίας αντικειμένου συσκευαστή C++ από ένα αντικείμενο C, με την προϋπόθεση ότι η API C βασίζεται επίσης στο σύστημα GObject.

Για να χρησιμοποιήσετε ένα στιγμιότυπο της gtkmm με μια συνάρτηση C που απαιτεί ένα στιγμιότυπο GObject της C, χρησιμοποιήστε τη συνάρτηση gobj() για να πάρετε έναν δείκτη στο υποκείμενο στιγμιότυπο GObject. Για παράδειγμα

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

Για να πάρετε ένα στιγμιότυπο της gtkmm από ένα στιγμιότυπο GObject της C, χρησιμοποιήστε τη συνάρτηση Glib::wrap(). Για παράδειγμα

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