TreeExpander
Object Hierarchy:
Description:
public class TreeExpander : Widget, Accessible, Buildable, ConstraintTarget
GtkTreeExpander is a widget that provides an expander for a list.
It is typically placed as a bottommost child into a ListView to allow users to expand and collapse children in a list with a TreeListModel. It will provide the common UI elements, gestures and keybindings for this purpose.
On top of this, the "listitem.expand", "listitem.collapse" and "listitem.toggle-expand" actions are provided to allow adding custom UI for managing expanded state.
The TreeListModel must be set to not be passthrough. Then it will provide TreeListRow items which can be set via set_list_row on the expander. The expander will then watch that row item automatically. set_child sets the widget that displays the actual row contents.
CSS nodes
treeexpander
├── [indent]*
├── [expander]
╰── <child>
has zero
or one CSS nodes with the name "expander" that should display the expander icon. The node will be `GtkTreeExpander:checked
` when it
is expanded. If the node is not expandable, an "indent" node will be displayed instead.
For every level of depth, another "indent" node is prepended.
Accessibility
GtkTreeExpander uses the gtk_accessible_role_group role. The expander icon is represented as a gtk_accessible_role_button, labelled by the expander's child, and toggling it will change the gtk_accessible_state_expanded state.