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.