Ανάμειξη 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);