We will be bringing up these ideas for discussion on gtk-devel-list.
This week I am in Dublin for the GTK+ theming hackfest. On Monday we spent a long time throwing ideas around and discussing various approaches. Thankfully since then, we got on with some proper hacking. I’ve been working on two things:
cairo based engine api
Ben and I have been working on completely converting the default GTK+ theme to cairo so that it will be easier to move to a completely cairo based api for theme engines in the future. This would allow third parties to draw widgets without the need for a GdkDrawable, or even X11 itself.
Css styling in GTK+
Rob and I also discussed CSS themeing and how we might implement this within GTK+. We decided it would be good to implement a way of styling generic GObject types as not all objects on screen and GtkWidgets (e.g. GtkCellRenderer). We decided to make a GStylesheet object which acts as a data store (implemented as a GObject wrapper around libcroco, which we’ve also been enhancing) and a GStylable interface (which would replace the style properties in GTK+). Apart from allowing us to style any GObject with CSS, this also allows third parties to retrieve style properties without creating their own fake GTK+ widget.
I’ve just created myself an account on github, and am pushing my work from this week there: http://github.com/thos