gtkmm: API-freeze break request: public Interface constructors.
- From: Murray Cumming <murrayc murrayc com>
- To: release-team gnome org
- Cc: gtkmm-list <gtkmm-list gnome org>
- Subject: gtkmm: API-freeze break request: public Interface constructors.
- Date: Tue, 25 Sep 2007 13:09:33 +0200
I would like to make a small change to the code generated for our C++
classes that wrap GInterfaces, such as Gtk::TreeModel, to make one of
their constructors public instead of protected. This is a minor API
addition which will break no applications. The API itself is very stable
and already in use.
This is an example of such a constructor:
explicit TreeModel(GtkTreeModel* castitem);
It's usually only used by the class itself, or by derived classes. But I
need to make it public to allow us to create C++ wrapper instances for
classes that we do not wrap in C++. For instance, to allow us to get a
Gtk::TreeModel* that wraps an instance of FunkySomeUnexpectedTreeModel.
At the moment, our Glib::wrap(cobject) function returns NULL if it has
no specific wrapper for a CObject that implements an interface. This
would make the behaviour similar to that of widgets, for which we
already return an instance of the most derived known type.
I'd rather not wait for GNOME 2.22 because I need to use this to fix a
bug in libgdamm, so I can use one its features in Glom. It's likely to
fix some odd errors for some other applications too.
murrayc murrayc com
] [Thread Prev