On 2017-05-08 at 13:57, Richard Shann wrote: > On Mon, 2017-05-08 at 12:28 +0100, Emmanuele Bassi wrote:
> > > But I will have to wait for > > > Debian to catch up with Gtk 3.20 before I can seriously look at this. > > > > And this is why I suggest you use a CSS class, instead; > > Is that something different from the GtkWidgetClass that the widget has? CSS classes are not related to widget classes. https://developer.mozilla.org/en-US/docs/Web/CSS/Class_selectors > Are there a gtk_css_class_new() and a gtk_widget_assign_css_class() > functions to use them? You want `GtkStyleContext` and `gtk_style_context_add_class()`: https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-get-style-context https://developer.gnome.org/gtk3/stable/GtkStyleContext.html#gtk-style-context-add-class > I'm completely at sea. You probably want to read the API reference, then: https://developer.gnome.org/gtk3/stable/theming.html Additionally, you may want to read online resources about CSS. > Meanwhile for anyone with an application that has > to compile with versions of Gtk+ before and after version 3.20 here is > the code that is currently working for me to set the background color of > a widget: > > 8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8><8>< > static gchar *get_css_selector (GtkWidget *w) > { > static gchar *ret = NULL; > > #if ((GTK_MAJOR_VERSION==3) && (GTK_MINOR_VERSION>=20)) > g_free (ret); > ret = g_ascii_strdown (g_strdup (g_type_name (G_TYPE_FROM_INSTANCE (w))), > -1); > return ret+3; > #else > ret = (gchar *)g_type_name (G_TYPE_FROM_INSTANCE (w)); > return ret; > #endif > } Please, don't do this. This won't work for various widgets, and there's no guarantee it'll ever work at all. There is *no* programmatic relationship between the CSS element name and the type name. For instance, `GtkRadioMenuItem` has a CSS element name called `menuitem` and a sub-element called `radio`, with a `left` or `right` class depending on the text direction. Thus, the selector is going to be: menuitem radio { ... } The GtkSeparatorMenuItem, on the other hand, has a single CSS element name called `separator`. Ciao, Emmanuele. -- https://www.bassi.io [@] ebassi [@gmail.com] _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list