-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello there,

I've been working on the GTK+ theming issue and there are some thoughts I'd 
like to publish so we're able to discuss them.

Engine API:
- -----------

At the moment the API provides access to the low level drawing primitives. To 
get more options into the hand of the designer the API should provide functions 
which allow the registration of entire widgets. The idea here is to "outsource" 
the drawing functions. A short and very simplified example:

static void
gtk_register_widget (gchar *widget_identifier);

Now, the theme engine is responsible to find the "drawing function" in the 
current theme according to the identifier. Besides, every widget becomes 
"themeable" which uses this API.

When the widget wants to be drawn it calls its drawing function with another 
API call (also simplified):

static void
gtk_draw_widget (gchar *widget_identifier, GtkImportantWidgetDataToKnow 
*structure);

So, at the end all responsibility is in the hand of a drawing function which 
can be loaded dynamically. Now it's up to the developer/designer how she 
realizes the design, she has full control and the widget data which is might be 
important. At least Gtk+ could provide standard drawing functions based on 
Pixmap or even SVG so designers can start to modify images.

See also [1]

Engine API:
- -----------

At the moment the designer can only modify as much details of a theme as the 
engine provides. That is why I propose a more data driven approach based on 
SVG. It is standardized and there are a lot of sophisticated tools to create 
and modify SVG files. It also offers the possibility for the modification via 
CSS [2]. Even animation would be possible [3].

With librsvg a powerful library exists but it has to become more powerful if it 
should be usable for theming. I've spoken with the developer, he said he lacks 
time so it would be on others to provide patches.

- 
-------------------------------------------------------------------------------------
That is only a starting point! Intensive discussion, opinions and suggestions 
are appreciated and definitely needed. ;-)


Kind regards,
   Hagen


[1] http://homepages.pathfinder.gr/kazanaki/contrib/ch04s05.html
[2] http://www.w3.org/TR/SVG/styling.html
[3] http://www.w3.org/TR/SVG/animate.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkjqMo4ACgkQ1UAqryBcuEWgQQCdHwEoef+RHAV4LShs5NEKT1Kr
phcAnjOwOxAnTmFk73lDpqqNp4afjuHo
=yp0/
-----END PGP SIGNATURE-----
_______________________________________________
gnome-themes-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-themes-list

Reply via email to