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 | |
13 | static GtkWidget *window = NULL; |
14 | |
15 | GtkWidget * |
16 | do_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 |