Re: libgnomeui using deprecated GTK+ APIs in its own API



Havoc Pennington wrote:

Federico Mena Quintero <federico ximian com> writes:

Libgnomeui has a few interesting spots where it exposes deprecated GTK+
APIs in its own API.  For example,

void
gnome_client_request_interaction_interp (GnomeClient *client,
					 GnomeDialogType dialog_type,
					 GtkCallbackMarshal function,
					 gpointer data,
					 GtkDestroyNotify destroy);

The _interp set of functions is likely to be highly obsolete because
GTK+ 2.0 completely changed the type system and thus the way it is
supposed to integrate with language bindings.

So, what should we do here?  Surround these prototypes with #ifndef
LIBGNOMEUI_DISABLE_DEPRECATED or something like that, or convert them to
GClosure and friends and thus breaking code that uses them?


No there's no way we should remove them at this point. They aren't
hurting anything.

This function was broken in stable gnome-libs and continues to be broken. It doesn't follow the conventions of the 1.2 GtkCallbackMarshal, so couldn't even be used with a generic callback marshal in stable.

The GtkArg array contains pointers to the args, rather than the args themselves. Even though this is the only way a language biniding is going to be able to request interaction without leaking, it would probably be a good thing to mark it BROKEN rather than DEPRECATED.

A non broken version would be nice though ...

James.

--
Email: james daa com au
WWW:   http://www.daa.com.au/~james/






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]