[Geany-devel] Use GtkBuilder

Matthew Brush mbrush at xxxxx
Mon Sep 26 22:41:13 UTC 2011


On 09/26/2011 09:15 AM, Jiří Techet wrote:

>
> In general it would be best just to try to substitute GTK version in
> configure, see what happens and start fixing the errors. I'm really
> tempted to try it myself but I'm not sure if I'll have enough time for
> that in the following few months. Also for changes like that it would
> be better to have git in place for easier merges once the work is
> done.
>
> My personal feeling is that the sooner some support for GTK 3 is
> added, the better. Of course first, until it is stable and working as
> expected, it could be an experimental configure option which ordinary
> mortals would be discouraged to use. Meanwhile thanks to the ifdefs
> the old GTK 2 code should work as before. And maybe the conversion
> will be quite easy - it's just you never know unless you try it, so
> it's better to try it to know :-).
>

I did start a little bit with this in my geany repository.

Some observations:

1) Need to get rid of direct access of struct members[1].

2) Geany should support at minimum GTK+ 2.18 so that we can use 
gtk_widget_get_allocation() if we want to (cleanly) pass GSEAL_ENABLE 
builds.  This actually wouldn't be needed strictly for GTK+ 3 since I 
think the old size allocation stuff is entirely gone.

3) The GeanyWrapLabel, I'm fairly sure can be #if'd out entirely for GTK+ 3.

4) The gdkkeysyms.h thing is easily solved by adding a #if to include 
gdkkeysyms-compat.h when using GTK+ 3.0.

5) Need to upgrade to Scintilla 2.29[2] since it supports GTK+ 3.0 (IIRC 
it still supports down to GTK+ 2.8 as well).

6) As you said, the configure.ac would need and option to enable this, 
to switch the package checks for gtk+-3.0 as well as another place where 
it collects the version of gtk+-2.0 using pkg-config.

7) Probably lots of other stuff I haven't discovered yet, since I 
haven't actually got Geany to build with GTK+ 3 yet.

In my opinion, I don't think it would *too* difficult to support GTK+ 
2.1x all the way through 3.x at the same time.

[1] 
https://github.com/codebrainz/geany/commit/d2ba07b5ae9153f937adcb00337a66a309b66d67
[2] 
https://github.com/codebrainz/geany/commit/35e21eb65d4559685461007e1f39a75ef2c32178

Cheers,
Matthew Brush



More information about the Devel mailing list