Re: Exposing cairo based implementation of CSS as an API in GTK+/gtkmm

Subject: Re: Exposing cairo based implementation of CSS as an API in GTK+/gtkmm

Hello Emmanuele,

sorry for the wrong mailing list and thanks for the reply. I've
went ahead and searched further for any news on this scene-graph API and
found your blog entry on
it(https://www.bassi.io/articles/2014/07/29/guadec-2014-gsk/). Looks
like this process has been going on for 2 years now, which is good
because I guess we'll be able to use it soon :) I was looking at Qt API
too and looks like they have a scene graph implementation in place now.
But I'm sticking to gtkmm and cairo for now and keeping things ready to
be ported to GSK soon.

if you're trying to reach the GTK+ developers you're using the wrong
mailing list; you want to use gtk-devel-list. I've added the list to
the Cc:

Gtk+ implements various CSS3 functionality so that widgets can be styled
with CSS. As far as I understand these effects are implemented with cairo
drawing API. Is there any chance to expose some of the effects such as
blurred shadow, transitions etc. as generic functions in Gtk+ API so that
they can be used without CSS?

No, there are no plans.
The CSS-based drawing is heavily tied to the state defined by the CSS
machinery, and that section of the API is private (for good reasons,
given the speed with which it's been changing and it's supposed to
change in the future).

For example, if someone is doing some custom drawing with cairo on Gtk+ such
as non rectangular widgets, curves with shadow etc. then they can take
advantages of such API instead having to implement those effects with cairo
themselves. For rectangular widgets StyleProvider's draw_background,
draw_frame methods can be used to specify such effects in CSS, but for
others I'm guessing they're probably not suitable.

The overall plan is to make widgets more lightweight and easier to
compose — similar to "<div>" elements in HTML. The idea is that if you
want something that draws with CSS semantics, you will be able to use
widgets.
Additionally, the plan is to add a Clutter-like scene graph that sits
below GTK, for UIs that do not rely on complex widget semantics (like
media player UIs or games).
Ciao,
Emmanuele.