Re: gtkmm affected by recent changes to gtk (GdkNativeWindow, gtk_toolbar_[gs]et_tooltips)
- From: Armin Burgmeier <armin arbur net>
- To: Damon Register <damon w register lmco com>
- Cc: gtkmm-list gnome org
- Subject: Re: gtkmm affected by recent changes to gtk (GdkNativeWindow, gtk_toolbar_[gs]et_tooltips)
- Date: Fri, 19 Sep 2008 01:41:30 +0200
On Thu, 2008-09-18 at 17:20 -0400, Damon Register wrote:
> Armin Burgmeier wrote:
> > gtkmm is ABI stable, which means that it must be possible to compile a
> > program against gtkmm 2.12 and run it with gtkmm 2.14. So if we change
> > the signature of a function to have different parameters, then the
> > function will not be found anymore by a program linked against the older
> > version, and it will refuse to run.
> Now I understand more clearly. Thanks for explaining that. Perhaps
> overloading is a better solution? What is the best way to handle the
> gtk problem? I could put ifdefs into the gtkmm Toolbar::get_tooltips_object()
> to handle this gtktoolbar.h problem
>
> struct _GtkToolbar
> {
>
> #ifndef GTK_DISABLE_DEPRECATED
> GtkTooltips *GSEAL (tooltips);
> #else
> gpointer GSEAL (_tooltips);
> #endif
>
> };
>
> but wouldn't that be bad to have gtk defs mixed in with the gtkmm or is
> that normal? I can understand why someone might want to change a data
> type but why the member name? Is that for program readability, so it
> is easier to tell which type is being used? Wouldn't it make more
> sense to have a typedef in gtk for tooltips so then it just uses the
> typedef? Perhaps like this?
>
> #ifndef GTK_DISABLE_DEPRECATED
> typedef GtkTooltips* GtkTooltips_type;
> #else
> typedef gpointer GtkTooltips_type;
> #endif
>
>
> struct _GtkToolbar
> {
> GtkTooltips_type GSEAL (tooltips);
> };
>
>
> Looking at my own idea, I am not sure if this would have that binary
> backward compatibility problem you mentioned :-(
> What do you think?
Again, this problem has been fixed already in recent gtkmm versions. The
Toolbar::get_tooltips_object returns simply 0 now. See
http://svn.gnome.org/viewvc/gtkmm/trunk/gtk/src/toolbar.ccg?view=markup.
The simplest thing for you to do would probably be to use a recent
enough gtkmm tarball, from
http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.13/.
> Damon Register
Armin
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]