Am Dienstag, den 28.09.2010, 13:00 +0200 schrieb Olivier Guilyardi: > On 09/28/2010 07:28 AM, hermann wrote: > > Am Montag, den 27.09.2010, 16:57 +0200 schrieb Olivier Guilyardi: > >> My point was that widgets drawn directly with Cairo bypass the > >> gtk_paint_*() > >> drawing abstraction layer, which would forbid engine to provide their > >> own knob > >> drawing implementation, as it's done for buttons, etc... > >> > >> Therefore, such Cairo-based knobs wouldn't support the full GTK > >> theming > >> capabilities. > > > > In Gtk+3 many GDK functions are replaced by cairo. > > gtk_widget_draw() will take any cairo surface then. > > > > http://live.gnome.org/GnomeGoals/GTKRenderingCleanup > > Okay, it says "All GtkStyle drawing functions (gtk_paint_box(), etc) have been > changed to take a #cairo_t instead of a window and a clip area. ::draw > implementations will usually just use the cairo context that has been passed > in > for this." > > I'm not a gtk engine wizard, but the problem is still here IIUC. > > If you draw directly with Cairo within your widget, your bypass the drawing > "driver" layer, for example used by ClearLooks which overloads the old > gtk_draw_*() functions in clearlooks_style_class_init(): > http://clearlooks.cvs.sourceforge.net/viewvc/clearlooks/clearlooks/src/clearlooks_style.c?revision=1.100&view=markup > > Whether gtk or a specific engine draw internally with Cairo or not doesn't > change the situation. > > I suppose that the only solution would be to add some knob drawing primitives > to > the GtkStyle class itself. That would allow gtk engines developers to provide > their own knob drawing implementation, and also separate the rendering code > from > the knob logic. > > But that might be a lot of trouble. > > -- > Olivier >
Okay, . . > The GdkGC and GdkImage objects, as well as all the functions using > them are gone. This includes the gdk_draw_ family of functions like > gdk_draw_rectangle() and gdk_draw_drawable(). As GdkGC is roughly > equivalent to cairo_t and GdkImage was used for drawing images to > GdkDrawables, which cairo supports automatically, a transition is > usually straightforward. url: http://live.gnome.org/GnomeGoals/GDKtoCairo I guess that the engines need to be rewrite for GTK+3 anyway, and when your goal is to include a knob in GTK mainstream, it could be a good point to do it in the upcoming GTK+3, then it could be done with cairo and produce a well nice looking and full featured module witch could supported by engines from beginning on. :-) greats hermann _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
