Re: [Gimp-developer] glib/gtk+ 2.0 port

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

 



"Adam D. Moss" <adam@xxxxxxxx> writes:

> We had an adequately generic GUI and most users couldn't
> give a whit about the internal object model, but I can
> see an attraction to hackers.

Well I find GIMP 1.2's UI not at all generic. The whole GIMP is a huge
pile of global variables and dialogs which are not generic views but
are hardcoded each-for-each, requiring making the same error-prone
changes to many files at the same time if something has to change.

> > > >* For those of us with pieces of the tree's core which diverge
> > > >somewhat from the trunk, how much of a no-brainer is converting our
> > > >code to GTK 1.3-isms?
> > 
> > The changes made for 2.0 migration are much less of a structural change
> > than what happens in two weeks of usual HEAD-reorganizing. Not a single
> > file was moved and almost only the object stuff was touched.
> 
> It was an honest and straightforward question, not a
> rhetorical one; what is involved?  Are the changes largely
> syntactic, or deeper?

Ok, I simply got it wrong. Porting to GLib2 is totally straightforward.
If there are no selfmade objects or widgets involved, it's almost 100%
source compatible, so code will compile smoothly (except for a few warnings
because glib/gtk+ return much more const string now).

Porting code which only uses the object model can be done step-by-step as
there are compatibility wrappers around the new GLib object ans signal stuff.

It's mostly:

gtk_signal_connect()                    -> g_signal_connect()
gtk_signal_connect_object()             -> g_signal_connect_swapped()
gtk_signal_connect_while_alive()        -> g_signal_connect_object(..., 0)
gtk_signal_connect_object_while_alive() -> g_signal_connect_object (..., G_CONNECT_SWAPPED)

This is the olny change in Gtk user code that actually needs thinking
because g_signal_connect_object() does NOT correspond to
gtk_signal_connect_object()

Everything else is mostly like s/gtk_object_ref/g_object_ref/,
s/GTK_SIGNAL_FUNC/G_CALLBACK/

Objects and Widgets however need manual hacking, not just sed/perl voodoo.
After porting some of them, it takes about 10 minutes each.

> > What's a "no-brainer" BTW ?
> 
> Something that does not require brain.  =)

Hehe, true. Most of this stuff is slave work :-)

> > After all, isn't is just natural for GIMP HEAD to use the GIMP Toolkit's
> > bleeding edge version? This is unstable development.
> 
> No, I *really* don't see the logic there at all.  That's
> bleeding for bleeding's sake.  GTK took a life of its own
> millenia ago and their destinies are no longer entwined.

You're right, this is not an argument. I said this _after_ explaining things.

Porting GIMP to Gtk2 will need a substantial amount of time and hacking
and if we'd start it _after_ GTK 2.0 is final, we will need another 12-24
months until it's stable.

IMHO porting it now was 100% right at this point of time, otherwise
the goal of releasing GIMP 1.4 by the end of this year cannon be reached.

> But the deed is done.  :)

Yes.

ciao,
--Mitch


[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux