Gtk.WidgetPath
GtkWidgetPath is a boxed type that represents a widget hierarchy from the topmost widget, typically a toplevel, to any child. This widget path abstraction is used in Gtk.StyleContext on behalf of the real widget in order to query style information.
If you are using GTK+ widgets, you probably will not need to use this API directly, as there is Gtk.Widget.prototype.get_path, and the style context returned by Gtk.Widget.prototype.get_style_context will be automatically updated on widget hierarchy changes.
The widget path generation is generally simple: <example> <title>Defining a button within a window</title> <programlisting> { GtkWidgetPath *path;
path = gtk_widget_path_new (); gtk_widget_path_append_type (path, GTK_TYPE_WINDOW); gtk_widget_path_append_type (path, GTK_TYPE_BUTTON); } </programlisting> </example>
Although more complex information, such as widget names, or different classes (property that may be used by other widget types) and intermediate regions may be included:
<example> <title>Defining the first tab widget in a notebook</title> <programlisting> { GtkWidgetPath *path; guint pos;
path = gtk_widget_path_new ();
pos = gtk_widget_path_append_type (path, GTK_TYPE_NOTEBOOK); gtk_widget_path_iter_add_region (path, pos, "tab", GTK_REGION_EVEN | GTK_REGION_FIRST);
pos = gtk_widget_path_append_type (path, GTK_TYPE_LABEL); gtk_widget_path_iter_set_name (path, pos, "first tab label"); } </programlisting> </example>
All this information will be used to match the style information that applies to the described widget.