1/* Theming/Style Classes
2 *
3 * GTK uses CSS for theming. Style classes can be associated
4 * with widgets to inform the theme about intended rendering.
5 *
6 * This demo shows some common examples where theming features
7 * of GTK are used for certain effects: primary toolbars
8 * and linked buttons.
9 */
10
11#include <gtk/gtk.h>
12
13static GtkWidget *window = NULL;
14
15GtkWidget *
16do_theming_style_classes (GtkWidget *do_widget)
17{
18 GtkWidget *grid;
19 GtkBuilder *builder;
20
21 if (!window)
22 {
23 window = gtk_window_new ();
24 gtk_window_set_display (GTK_WINDOW (window),
25 display: gtk_widget_get_display (widget: do_widget));
26 gtk_window_set_title (GTK_WINDOW (window), title: "Style Classes");
27 gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
28 g_object_add_weak_pointer (G_OBJECT (window), weak_pointer_location: (gpointer *)&window);
29
30 builder = gtk_builder_new_from_resource (resource_path: "/theming_style_classes/theming.ui");
31
32 grid = (GtkWidget *)gtk_builder_get_object (builder, name: "grid");
33 gtk_window_set_child (GTK_WINDOW (window), child: grid);
34 g_object_unref (object: builder);
35 }
36
37 if (!gtk_widget_get_visible (widget: window))
38 gtk_widget_show (widget: window);
39 else
40 gtk_window_destroy (GTK_WINDOW (window));
41
42 return window;
43}
44

source code of gtk/demos/gtk-demo/theming_style_classes.c