Discussion:
[GSoC] Project Idea: GBinding support for GtkBuilder / Glade
Denis Washington
2011-03-20 08:26:10 UTC
Permalink
Hello,

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!

Best regards,
Denis Washington
_______________________________________________
Glade-devel maillist - Glade-***@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/glade-devel
Sam Thursfield
2011-03-21 21:56:03 UTC
Permalink
Hi Denis
Post by Denis Washington
Hello,
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
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
* 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.

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.

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!
sam
_______________________________________________
Glade-devel maillist - Glade-***@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/glade-devel
Denis Washington
2011-03-22 08:31:04 UTC
Permalink
Post by Sam Thursfield
Hi Denis
Post by Denis Washington
Hello,
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
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
* 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!
Post by Sam Thursfield
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
task).
Post by Sam Thursfield
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.
OK.
Post by Sam Thursfield
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!
sam
Thanks! And thank you for your comments and pointers, that already
helped me quite a bit. :)

Denis
_______________________________________________
Glade-devel maillist - Glade-***@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/glade-devel

Loading...