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 `GtkListView` to allow users to expand and collapse children in a list with a [ class@Gtk.TreeListModel]. `GtkTreeExpander` provides 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 `GtkTreeListModel` must be set to not be passthrough. Then it will provide [class@Gtk.TreeListRow] items which can be set via [ method@Gtk.TreeExpander.set_list_row] on the expander. The expander will then watch that row item automatically. [ method@Gtk.TreeExpander.set_child] sets the widget that displays the actual row contents.
``` treeexpander ├── [indent]* ├── [expander] ╰── <child> ```
`GtkTreeExpander` 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.
`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.