Struct

GtkWidgetPath

Description [src]

struct GtkWidgetPath {
  /* No available fields */
}

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 GtkStyleContext 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_get_path(), and the style context returned by gtk_widget_get_style_context() will be automatically updated on widget hierarchy changes.

The widget path generation is generally simple:

Defining a button within a window

{
  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);
}

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:

Defining the first tab widget in a notebook

{
  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");
}

All this information will be used to match the style information that applies to the described widget.

Constructors

gtk_widget_path_new

Returns an empty widget path.

since: 3.0

Instance methods

gtk_widget_path_append_for_widget

Appends the data from widget to the widget hierarchy represented by path. This function is a shortcut for adding information from widget to the given path. This includes setting the name or adding the style classes from widget.

since: 3.2

gtk_widget_path_append_type

Appends a widget type to the widget hierarchy represented by path.

since: 3.0

gtk_widget_path_append_with_siblings

Appends a widget type with all its siblings to the widget hierarchy represented by path. Using this function instead of gtk_widget_path_append_type() will allow the CSS theming to use sibling matches in selectors and apply :nth-child() pseudo classes. In turn, it requires a lot more care in widget implementations as widgets need to make sure to call gtk_widget_reset_style() on all involved widgets when the siblings path changes.

since: 3.2

gtk_widget_path_copy

Returns a copy of path.

since: 3.0

gtk_widget_path_free

Decrements the reference count on path, freeing the structure if the reference count reaches 0.

since: 3.0

gtk_widget_path_get_object_type

Returns the topmost object type, that is, the object type this path is representing.

since: 3.0

gtk_widget_path_has_parent

Returns TRUE if any of the parents of the widget represented in path is of type type, or any subtype of it.

since: 3.0

gtk_widget_path_is_type

Returns TRUE if the widget type represented by this path is type, or a subtype of it.

since: 3.0

gtk_widget_path_iter_add_class

Adds the class name to the widget at position pos in the hierarchy defined in path. See gtk_style_context_add_class().

since: 3.0

gtk_widget_path_iter_add_region

Adds the region name to the widget at position pos in the hierarchy defined in path. See gtk_style_context_add_region().

deprecated: 3.14 since: 3.0

gtk_widget_path_iter_clear_classes

Removes all classes from the widget at position pos in the hierarchy defined in path.

since: 3.0

gtk_widget_path_iter_clear_regions

Removes all regions from the widget at position pos in the hierarchy defined in path.

deprecated: 3.14 since: 3.0

gtk_widget_path_iter_get_name

Returns the name corresponding to the widget found at the position pos in the widget hierarchy defined by path.

gtk_widget_path_iter_get_object_name

Returns the object name that is at position pos in the widget hierarchy defined in path.

since: 3.20

gtk_widget_path_iter_get_object_type

Returns the object GType that is at position pos in the widget hierarchy defined in path.

since: 3.0

gtk_widget_path_iter_get_sibling_index

Returns the index into the list of siblings for the element at pos as returned by gtk_widget_path_iter_get_siblings(). If that function would return NULL because the element at pos has no siblings, this function will return 0.

gtk_widget_path_iter_get_siblings

Returns the list of siblings for the element at pos. If the element was not added with siblings, NULL is returned.

gtk_widget_path_iter_get_state

Returns the state flags corresponding to the widget found at the position pos in the widget hierarchy defined by path.

since: 3.14

gtk_widget_path_iter_has_class

Returns TRUE if the widget at position pos has the class name defined, FALSE otherwise.

since: 3.0

gtk_widget_path_iter_has_name

Returns TRUE if the widget at position pos has the name name, FALSE otherwise.

since: 3.0

gtk_widget_path_iter_has_qclass

See gtk_widget_path_iter_has_class(). This is a version that operates with GQuarks.

since: 3.0

gtk_widget_path_iter_has_qname

See gtk_widget_path_iter_has_name(). This is a version that operates on GQuarks.

since: 3.0

gtk_widget_path_iter_has_qregion

See gtk_widget_path_iter_has_region(). This is a version that operates with GQuarks.

deprecated: 3.14 since: 3.0

gtk_widget_path_iter_has_region

Returns TRUE if the widget at position pos has the class name defined, FALSE otherwise.

deprecated: 3.14 since: 3.0

gtk_widget_path_iter_list_classes

Returns a list with all the class names defined for the widget at position pos in the hierarchy defined in path.

since: 3.0

gtk_widget_path_iter_list_regions

Returns a list with all the region names defined for the widget at position pos in the hierarchy defined in path.

deprecated: 3.14 since: 3.0

gtk_widget_path_iter_remove_class

Removes the class name from the widget at position pos in the hierarchy defined in path.

since: 3.0

gtk_widget_path_iter_remove_region

Removes the region name from the widget at position pos in the hierarchy defined in path.

deprecated: 3.14 since: 3.0

gtk_widget_path_iter_set_name

Sets the widget name for the widget found at position pos in the widget hierarchy defined by path.

since: 3.0

gtk_widget_path_iter_set_object_name

Sets the object name for a given position in the widget hierarchy defined by path.

since: 3.20

gtk_widget_path_iter_set_object_type

Sets the object type for a given position in the widget hierarchy defined by path.

since: 3.0

gtk_widget_path_iter_set_state

Sets the widget name for the widget found at position pos in the widget hierarchy defined by path.

since: 3.14

gtk_widget_path_length

Returns the number of GtkWidget GTypes between the represented widget and its topmost container.

since: 3.0

gtk_widget_path_prepend_type

Prepends a widget type to the widget hierachy represented by path.

since: 3.0

gtk_widget_path_ref

Increments the reference count on path.

since: 3.2

gtk_widget_path_to_string

Dumps the widget path into a string representation. It tries to match the CSS style as closely as possible (Note that there might be paths that cannot be represented in CSS).

since: 3.2

gtk_widget_path_unref

Decrements the reference count on path, freeing the structure if the reference count reaches 0.

since: 3.2