Start implementing native-styling. The approach is to have one native control for each type (Button,RadioButton,CheckBox,TextArea,TextEdit,...). And to get spacing, margings and other options from the widget and to use the attached GtkStyle for the actual drawing. The current patch starts with the mapping from Type (Button, CheckBox...) to native control. It does not yet honor the State of the Widget and the spacing informations do not honor the GtkStyle. But I think that this is the right approach to theming.
Created attachment 15336 [details] Use GtkStyle and Gtk* for implementing RenderThemeGdk Start using native controls for rendering.
*** Bug 14119 has been marked as a duplicate of this bug. ***
For reference, this is how Mozilla seems to do it: http://www.koders.com/c/fid26B2A9B188A1947EB8710750C3D48FFAF7CCC4A4.aspx When Gtk+ bug http://bugzilla.gnome.org/show_bug.cgi?id=318807 (Offscreen windows and window redirection) is fixed, native styling might become less tedious. Locally I've updated the patch so determineState() returns a GtkStateType which I then pass to the gtk_paint_box() calls. This works well. Right now we end up copying the background colour whereas we actually want to keep transparency.
Comment on attachment 15336 [details] Use GtkStyle and Gtk* for implementing RenderThemeGdk Seems like a fine start. r=me
Landed in r24051.