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.
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_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_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