Parsing of custom resources

As a consequence of the RC format going away, calling gtk_rc_parse() or gtk_rc_parse_string() won't have any effect on a widgets appearance. The way to replace these calls is using a custom GtkStyleProvider, either for an individual widget through gtk_style_context_add_provider() or for all widgets on a screen through gtk_style_context_add_provider_for_screen(). Typically, the provider will be a GtkCssProvider, which parse CSS information from a file or from a string.

Example 49. Using a custom GtkStyleProvider

1
2
3
4
5
6
7
8
9
10
11
12
13
GtkStyleContext *context;
GtkCssProvider *provider;

context = gtk_widget_get_style_context (widget);
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider),
                                 ".frame1 {\n"
                                 "   border-image: url('gradient1.png') 10 10 10 10 stretch;\n"
                                 "}\n", -1, NULL);
gtk_style_context_add_provider (context,
                                GTK_STYLE_PROVIDER (provider),
                                GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);

Notice that you can also get style information from custom resources by implementing the GtkStyleProvider interface yourself. This is an advanced feature that should be rarely used.