[Glade-devel] [GSoC] Project Idea: GBinding support for GtkBuilder / Glade

Am 21.03.2011 22:56, schrieb Sam Thursfield:
Hi Denis

On Sun, Mar 20, 2011 at 8:26 AM, Denis Washington<denisw at online.de>  wrote:

My name is Denis Washington and I am a first-semester Computer Science
student at the Humboldt University Berlin, Germany. Being a student now,
I would love to finally participate in this year's Google Summer of
Code. Therefore, I'd like to present you my project idea and am asking
you whether you find it to be viable for GSoC (and if someone would like
to mentor me):

With the GBinding facility introduced in GLib 2.26, it is possible to
declare bindings between two specified GObject instance properties; that
is, whenever the "source" property's value is changed, the "target"
property is updated accordingly. Unfortunately, while this is very handy
for declaratively define several kinds of basic UI interactions (e.g.,
toggling the sensitivity of a group of settings widgets according to the
state of a master on/off switch), there is no support for embedding
GBindings in GtkBuiler files. My idea is to change that. Specifically, I
want to do the following:

* GTK+: Define a GtkBuilder syntax for property bindings and add support
for reading it to GtkBuilder.
* Glade: Add support for graphically defining property bindings,

What do you think of this idea? Do you think it is big enough in scope
to be a Summer of Code project? I very much appreciate any feedback!
I'm glad to see this idea; I actually did a GSoc project a couple of
years ago with a similar aim of binding specifically GSettings keys in
GtkBuilder files as a replacement for the GConf-peditor code found in
the old control centre.

Ah, cool! I tripped over your Summer of Code project when I searched for 
prior art. Hi!

Binding any property would be even more useful, of course, although it
would probably only reach its full potential with GLADE embedded in
Anjuta (or with some GObject-introspection hack) to give access to the
list of non-UI objects in the program and their properties. GSettings
bindings could work separately to this, where you specify a key to
link the property to rather than an object property.

I was also thinking that one could at least use the same UI for setting 
bindings, but implementing that would probably be out of scope for my 
SoC project due to time (maybe as an optional "if-time-permits" type of 

There's a parallel with GLADE's signal connection UI, I don't know a
huge amount about GLADE development but I do know that the signal
editor is due an overhaul and perhaps your project could take this on
... but then again, my project was simply to introduce settings
bindings and I ran out of time for that particular aspect (kind of got
sidetracked :) so maybe this would be too big for a gsoc. I certainly
wouldn't worry that introducing property bindings is not enough work
for a gsoc project anyway.


The code I wrote is still here: http://gitorious.org/gsettings-gtk ,
it dates from before gsettings and gvariant were even merged so it
will be probably quite broken. I was planning on finishing it when I
get the time, but if it can become part of your project then even
better :) Hopefully someone who knows more about GLADE can give you
some ideas for the UI side of things, but the Gtk+ builder side would
certainly not be too difficult and is something people want, see for
example: https://bugzilla.gnome.org/show_bug.cgi?id=494329

Good luck!

Thanks! And thank you for your comments and pointers, that already 
helped me quite a bit. :)


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