for tabular lists
gtk.tree_view
Module for [TreeView] class
Types 3
A widget for displaying both trees and lists
Widget that displays any object that implements the [gtk.tree_model.TreeModel] interface.
Please refer to the tree widget conceptual overview for an overview of all the objects and data types related to the tree widget and how they work together.
Coordinate systems in GtkTreeView API
Several different coordinate systems are exposed in the [gtk.tree_view.TreeView] API. These are:

- Widget coordinates: Coordinates relative to the widget (usually
widget->window).
- Bin window coordinates: Coordinates relative to the window that GtkTreeView renders to.
- Tree coordinates: Coordinates relative to the entire scrollable area of GtkTreeView. These
coordinates start at (0, 0) for row 0 of the tree.
Several functions are available for converting between the different coordinate systems. The most common translations are between widget and bin window coordinates and between bin window and tree coordinates. For the former you can use [gtk.tree_view.TreeView.convertWidgetToBinWindowCoords] (and vice versa), for the latter [gtk.tree_view.TreeView.convertBinWindowToTreeCoords] (and vice versa).
[gtk.tree_view.TreeView] as [gtk.buildable.Buildable]
The [gtk.tree_view.TreeView] implementation of the [gtk.buildable.Buildable] interface accepts [gtk.tree_view_column.TreeViewColumn] objects as <child> elements and exposes the internal [gtk.tree_selection.TreeSelection] in UI definitions.
An example of a UI definition fragment with [gtk.tree_view.TreeView]:
<object class="GtkTreeView" id="treeview">
<property name="model">liststore1</property>
<child>
<object class="GtkTreeViewColumn" id="test-column">
<property name="title">Test</property>
<child>
<object class="GtkCellRendererText" id="test-renderer"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child internal-child="selection">
<object class="GtkTreeSelection" id="selection">
<signal name="changed" handler="on_treeview_selection_changed"/>
</object>
</child>
</object>CSS nodes
treeview.view
├── header
│ ├── button
│ │ ╰── [sort-indicator]
┊ ┊
│ ╰── button
│ ╰── [sort-indicator]
│
├── [rubberband]
╰── [dndtarget][gtk.tree_view.TreeView] has a main CSS node with name treeview and style class .view. It has a subnode with name header, which is the parent for all the column header widgets' CSS nodes.
Each column header consists of a button, which among other content, has a child with name sort-indicator, which carries the .ascending or .descending style classes when the column header should show a sort indicator. The CSS is expected to provide a suitable image using the -gtk-icon-source property.
For rubberband selection, a subnode with name rubberband is used.
For the drop target location during DND, a subnode with name dndtarget is used.
Deprecated
TreeViewGidBuilder builder()Get builder for [gtk.tree_view.TreeView] Returns: New builder objectbool activateOnSingleClick() @propertyGet `activateOnSingleClick` property. Returns: The activate-on-single-click property specifies whether the "row-activated" signal will be emitted after a single click.void activateOnSingleClick(bool propval) @propertySet `activateOnSingleClick` property. Params: propval = The activate-on-single-click property specifies whether the "row-activated" signal will be emitted after a single click.gtk.types.TreeViewGridLines enableGridLines() @propertyvoid enableGridLines(gtk.types.TreeViewGridLines propval) @propertybool enableSearch() @propertyvoid enableSearch(bool propval) @propertybool enableTreeLines() @propertyvoid enableTreeLines(bool propval) @propertygtk.tree_view_column.TreeViewColumn expanderColumn() @propertyvoid expanderColumn(gtk.tree_view_column.TreeViewColumn propval) @propertybool fixedHeightMode() @propertyGet `fixedHeightMode` property. Returns: Setting the ::fixed-height-mode property to true speeds up [gtk.treeview.TreeView] by assuming that all rows have the same height. Only enable this option i...void fixedHeightMode(bool propval) @propertySet `fixedHeightMode` property. Params: propval = Setting the ::fixed-height-mode property to true speeds up [gtk.treeview.TreeView] by assuming that all rows have the same height. Only enable this...bool headersClickable() @propertyvoid headersClickable(bool propval) @propertybool headersVisible() @propertyvoid headersVisible(bool propval) @propertybool hoverExpand() @propertyGet `hoverExpand` property. Returns: Enables or disables the hover expansion mode of @tree_view. Hover expansion makes rows expand or collapse if the pointer moves over them.void hoverExpand(bool propval) @propertySet `hoverExpand` property. Params: propval = Enables or disables the hover expansion mode of @tree_view. Hover expansion makes rows expand or collapse if the pointer moves over them.bool hoverSelection() @propertyGet `hoverSelection` property. Returns: Enables or disables the hover selection mode of @tree_view. Hover selection makes the selected row follow the pointer. Currently, this works only for the sel...void hoverSelection(bool propval) @propertySet `hoverSelection` property. Params: propval = Enables or disables the hover selection mode of @tree_view. Hover selection makes the selected row follow the pointer. Currently, this works only fo...int levelIndentation() @propertyGet `levelIndentation` property. Returns: Extra indentation for each level.void levelIndentation(int propval) @propertySet `levelIndentation` property. Params: propval = Extra indentation for each level.gtk.tree_model.TreeModel model() @propertyvoid model(gtk.tree_model.TreeModel propval) @propertybool reorderable() @propertyvoid reorderable(bool propval) @propertybool rubberBanding() @propertyvoid rubberBanding(bool propval) @propertyint searchColumn() @propertyvoid searchColumn(int propval) @propertybool showExpanders() @propertyGet `showExpanders` property. Returns: true if the view has expanders.void showExpanders(bool propval) @propertySet `showExpanders` property. Params: propval = true if the view has expanders.int tooltipColumn() @propertyvoid tooltipColumn(int propval) @propertygtk.tree_view.TreeView newWithModel(gtk.tree_model.TreeModel model)Creates a new [gtk.tree_view.TreeView] widget with the model initialized to model.int appendColumn(gtk.tree_view_column.TreeViewColumn column)Appends column to the list of columns. If treeview has “fixedheight” mode enabled, then column must have its “sizing” property set to be GTKTREEVIEWCOLUMNFIXED.void collapseAll()Recursively collapses all visible, expanded nodes in tree_view.bool collapseRow(gtk.tree_path.TreePath path)Collapses a row (hides its child rows, if they exist).void columnsAutosize()Resizes all columns to their optimal width. Only works after the treeview has been realized.void convertBinWindowToTreeCoords(int bx, int by, out int tx, out int ty)Converts bin_window coordinates to coordinates for the tree (the full scrollable area of the tree).void convertBinWindowToWidgetCoords(int bx, int by, out int wx, out int wy)Converts bin_window coordinates to widget relative coordinates.void convertTreeToBinWindowCoords(int tx, int ty, out int bx, out int by)Converts tree coordinates (coordinates in full scrollable area of the tree) to bin_window coordinates.void convertTreeToWidgetCoords(int tx, int ty, out int wx, out int wy)Converts tree coordinates (coordinates in full scrollable area of the tree) to widget coordinates.void convertWidgetToBinWindowCoords(int wx, int wy, out int bx, out int by)Converts widget coordinates to coordinates for the bin_window.void convertWidgetToTreeCoords(int wx, int wy, out int tx, out int ty)Converts widget coordinates to coordinates for the tree (the full scrollable area of the tree).gdk.paintable.Paintable createRowDragIcon(gtk.tree_path.TreePath path)Creates a [cairo.surface.Surface] representation of the row at path. This image is used for a drag icon.void enableModelDragDest(gdk.content_formats.ContentFormats formats, gdk.types.DragAction actions)Turns treeview into a drop destination for automatic DND. Calling this method sets [gtk.treeview.TreeView]:reorderable to false.void enableModelDragSource(gdk.types.ModifierType startButtonMask, gdk.content_formats.ContentFormats formats, gdk.types.DragAction actions)Turns treeview into a drag source for automatic DND. Calling this method sets [gtk.treeview.TreeView]:reorderable to false.void expandAll()Recursively expands all nodes in the tree_view.bool expandRow(gtk.tree_path.TreePath path, bool openAll)Opens the row so its children are visible.void expandToPath(gtk.tree_path.TreePath path)Expands the row at path. This will also expand all parent rows of path as necessary.bool getActivateOnSingleClick()Gets the setting set by [gtk.tree_view.TreeView.setActivateOnSingleClick]. Returns: true if row-activated will be emitted on a single clickvoid getBackgroundArea(gtk.tree_path.TreePath path, gtk.tree_view_column.TreeViewColumn column, out gdk.rectangle.Rectangle rect)Fills the bounding rectangle in binwindow coordinates for the cell at the row specified by path and the column specified by column. If path is null, or points to a node not found in the tree, the ...void getCellArea(gtk.tree_path.TreePath path, gtk.tree_view_column.TreeViewColumn column, out gdk.rectangle.Rectangle rect)Fills the bounding rectangle in binwindow coordinates for the cell at the row specified by path and the column specified by column. If path is null, or points to a path not currently displayed, th...gtk.tree_view_column.TreeViewColumn getColumn(int n)Gets the [gtk.treeviewcolumn.TreeViewColumn] at the given position in the #tree_view.gtk.tree_view_column.TreeViewColumn[] getColumns()Returns a [glib.list.List] of all the [gtk.treeviewcolumn.TreeViewColumn]s currently in treeview. The returned list must be freed with glistfree (). Returns: A list of [gtk.treeview_column.TreeView...void getCursor(out gtk.tree_path.TreePath path, out gtk.tree_view_column.TreeViewColumn focusColumn)Fills in path and focuscolumn with the current path and focus column. If the cursor isn’t currently set, then path will be null. If no column currently has focus, then focuscolumn will be null.bool getDestRowAtPos(int dragX, int dragY, out gtk.tree_path.TreePath path, out gtk.types.TreeViewDropPosition pos)Determines the destination row for a given position. dragx and dragy are expected to be in widget coordinates. This function is only meaningful if treeview is realized. Therefore this function w...void getDragDestRow(out gtk.tree_path.TreePath path, out gtk.types.TreeViewDropPosition pos)Gets information about the row that is highlighted for feedback.bool getEnableSearch()Returns whether or not the tree allows to start interactive searching by typing in text. Returns: whether or not to let the user search interactivelybool getEnableTreeLines()Returns whether or not tree lines are drawn in treeview. Returns: true if tree lines are drawn in treeview, false otherwise.gtk.tree_view_column.TreeViewColumn getExpanderColumn()Returns the column that is the current expander column, or null if none has been set. This column has the expander arrow drawn next to it. Returns: The expander column.bool getFixedHeightMode()Returns whether fixed height mode is turned on for treeview. Returns: true if treeview is in fixed height modegtk.types.TreeViewGridLines getGridLines()Returns which grid lines are enabled in treeview. Returns: a [gtk.treeview.TreeView]GridLines value indicating which grid lines are enabled.bool getHeadersClickable()Returns whether all header columns are clickable. Returns: true if all header columns are clickable, otherwise falsebool getHeadersVisible()Returns true if the headers on the tree_view are visible. Returns: Whether the headers are visible or not.bool getHoverExpand()Returns whether hover expansion mode is turned on for treeview. Returns: true if treeview is in hover expansion modebool getHoverSelection()Returns whether hover selection mode is turned on for treeview. Returns: true if treeview is in hover selection modeint getLevelIndentation()Returns the amount, in pixels, of extra indentation for child levels in treeview. Returns: the amount of extra indentation for child levels in treeview. A return value of 0 means that this feature...gtk.tree_model.TreeModel getModel()Returns the model the [gtk.treeview.TreeView] is based on. Returns null if the model is unset. Returns: A [gtk.treemodel.TreeModel]uint getNColumns()Queries the number of columns in the given treeview. Returns: The number of columns in the treeviewbool getPathAtPos(int x, int y, out gtk.tree_path.TreePath path, out gtk.tree_view_column.TreeViewColumn column, out int cellX, out int cellY)Finds the path at the point (`x`, `y`), relative to binwindow coordinates. That is, `x` and `y` are relative to an events coordinates. Widget-relative coordinates must be converted using [gtk.treev...bool getReorderable()Retrieves whether the user can reorder the tree via drag-and-drop. See [gtk.tree_view.TreeView.setReorderable]. Returns: true if the tree can be reordered.bool getRubberBanding()Returns whether rubber banding is turned on for treeview. If the selection mode is [gtk.types.SelectionMode.Multiple], rubber banding will allow the user to select multiple rows by dragging the mo...int getSearchColumn()Gets the column searched on by the interactive search code. Returns: the column the interactive search code searches in.gtk.editable.Editable getSearchEntry()Returns the [gtk.entry.Entry] which is currently in use as interactive search entry for tree_view. In case the built-in entry is being used, null will be returned. Returns: the entry currently in ...gtk.tree_selection.TreeSelection getSelection()Gets the [gtk.treeselection.TreeSelection] associated with treeview. Returns: A [gtk.tree_selection.TreeSelection] object.bool getShowExpanders()Returns whether or not expanders are drawn in treeview. Returns: true if expanders are drawn in treeview, false otherwise.int getTooltipColumn()Returns the column of treeview’s model which is being used for displaying tooltips on treeview’s rows. Returns: the index of the tooltip column that is currently being used, or -1 if this is di...bool getTooltipContext(int x, int y, bool keyboardTip, out gtk.tree_model.TreeModel model, out gtk.tree_path.TreePath path, out gtk.tree_iter.TreeIter iter)This function is supposed to be used in a ::query-tooltip signal handler for [gtk.treeview.TreeView]. The `x`, `y` and keyboardtip values which are received in the signal handler, should be passed ...bool getVisibleRange(out gtk.tree_path.TreePath startPath, out gtk.tree_path.TreePath endPath)Sets startpath and endpath to be the first and last visible path. Note that there may be invisible paths in between.void getVisibleRect(out gdk.rectangle.Rectangle visibleRect)Fills visiblerect with the currently-visible region of the buffer, in tree coordinates. Convert to binwindow coordinates with [gtk.tree_view.TreeView.convertTreeToBinWindowCoords]. Tree coordinates...int insertColumn(gtk.tree_view_column.TreeViewColumn column, int position)This inserts the column into the treeview at position. If position is -1, then the column is inserted at the end. If treeview has “fixedheight” mode enabled, then column must have its “sizin...int insertColumnWithDataFunc(int position, string title, gtk.cell_renderer.CellRenderer cell, gtk.types.TreeCellDataFunc func)Convenience function that inserts a new column into the [gtk.treeview.TreeView] with the given cell renderer and a [gtk.types.TreeCellDataFunc] to set cell renderer attributes (normally using data ...bool isBlankAtPos(int x, int y, out gtk.tree_path.TreePath path, out gtk.tree_view_column.TreeViewColumn column, out int cellX, out int cellY)Determine whether the point (`x`, `y`) in tree_view is blank, that is no cell content nor an expander arrow is drawn at the location. If so, the location can be considered as the background. You mi...bool isRubberBandingActive()Returns whether a rubber banding operation is currently being done in treeview. Returns: true if a rubber banding operation is currently being done in treeview.void mapExpandedRows(gtk.types.TreeViewMappingFunc func)Calls func on all expanded rows.void moveColumnAfter(gtk.tree_view_column.TreeViewColumn column, gtk.tree_view_column.TreeViewColumn baseColumn = null)Moves column to be after to basecolumn. If basecolumn is null, then column is placed in the first position.int removeColumn(gtk.tree_view_column.TreeViewColumn column)Removes column from tree_view.void rowActivated(gtk.tree_path.TreePath path, gtk.tree_view_column.TreeViewColumn column = null)Activates the cell determined by path and column.bool rowExpanded(gtk.tree_path.TreePath path)Returns true if the node pointed to by path is expanded in tree_view.void scrollToCell(gtk.tree_path.TreePath path, gtk.tree_view_column.TreeViewColumn column, bool useAlign, float rowAlign, float colAlign)Moves the alignments of treeview to the position specified by column and path. If column is null, then no horizontal scrolling occurs. Likewise, if path is null no vertical scrolling occurs. At ...void scrollToPoint(int treeX, int treeY)Scrolls the tree view such that the top-left corner of the visible area is treex, treey, where treex and treey are specified in tree coordinates. The treeview must be realized before this function...void setActivateOnSingleClick(bool single)Cause the [gtk.tree_view.TreeView]::row-activated signal to be emitted on a single click instead of a double click.void setColumnDragFunction(gtk.types.TreeViewColumnDropFunc func = null)Sets a user function for determining where a column may be dropped when dragged. This function is called on every column pair in turn at the beginning of a column drag to determine where a drop ca...void setCursor(gtk.tree_path.TreePath path, gtk.tree_view_column.TreeViewColumn focusColumn, bool startEditing)Sets the current keyboard focus to be at path, and selects it. This is useful when you want to focus the user’s attention on a particular row. If focuscolumn is not null, then focus is given to...void setCursorOnCell(gtk.tree_path.TreePath path, gtk.tree_view_column.TreeViewColumn focusColumn, gtk.cell_renderer.CellRenderer focusCell, bool startEditing)Sets the current keyboard focus to be at path, and selects it. This is useful when you want to focus the user’s attention on a particular row. If focuscolumn is not null, then focus is given to...void setDragDestRow(gtk.tree_path.TreePath path, gtk.types.TreeViewDropPosition pos)Sets the row that is highlighted for feedback. If path is null, an existing highlight is removed.void setEnableSearch(bool enableSearch)If enable_search is set, then the user can type in text to search through the tree interactively (this is sometimes called "typeahead find").void setEnableTreeLines(bool enabled)Sets whether to draw lines interconnecting the expanders in tree_view. This does not have any visible effects for lists.void setExpanderColumn(gtk.tree_view_column.TreeViewColumn column = null)Sets the column to draw the expander arrow at. It must be in tree_view. If column is null, then the expander arrow is always at the first visible column.void setFixedHeightMode(bool enable)Enables or disables the fixed height mode of treeview. Fixed height mode speeds up [gtk.treeview.TreeView] by assuming that all rows have the same height. Only enable this option if all rows are th...void setGridLines(gtk.types.TreeViewGridLines gridLines)Sets which grid lines to draw in tree_view.void setHeadersClickable(bool setting)Allow the column title buttons to be clicked.void setHeadersVisible(bool headersVisible)Sets the visibility state of the headers.void setHoverExpand(bool expand)Enables or disables the hover expansion mode of tree_view. Hover expansion makes rows expand or collapse if the pointer moves over them.void setHoverSelection(bool hover)Enables or disables the hover selection mode of tree_view. Hover selection makes the selected row follow the pointer. Currently, this works only for the selection modes [gtk.types.SelectionMode.Sin...void setLevelIndentation(int indentation)Sets the amount of extra indentation for child levels to use in tree_view in addition to the default indentation. The value should be specified in pixels, a value of 0 disables this feature and in...void setModel(gtk.tree_model.TreeModel model = null)Sets the model for a [gtk.treeview.TreeView]. If the treeview already has a model set, it will remove it before setting the new model. If model is null, then it will unset the old model.void setReorderable(bool reorderable)This function is a convenience function to allow you to reorder models that support the [gtk.treedragsourceiface.TreeDragSourceIface] and the [gtk.treedragdestiface.TreeDragDestIface]. Both [gtk.t...void setRowSeparatorFunc(gtk.types.TreeViewRowSeparatorFunc func = null)Sets the row separator function, which is used to determine whether a row should be drawn as a separator. If the row separator function is null, no separators are drawn. This is the default value.void setRubberBanding(bool enable)Enables or disables rubber banding in tree_view. If the selection mode is [gtk.types.SelectionMode.Multiple], rubber banding will allow the user to select multiple rows by dragging the mouse.void setSearchColumn(int column)Sets column as the column where the interactive search code should search in for the current model.void setSearchEntry(gtk.editable.Editable entry = null)Sets the entry which the interactive search code will use for this tree_view. This is useful when you want to provide a search entry in our interface at all time at a fixed position. Passing null...void setSearchEqualFunc(gtk.types.TreeViewSearchEqualFunc searchEqualFunc)Sets the compare function for the interactive search capabilities; note that somewhat like strcmp() returning 0 for equality [gtk.tree_view.TreeView]SearchEqualFunc returns false on matches.void setShowExpanders(bool enabled)Sets whether to draw and enable expanders and indent child rows in treeview. When disabled there will be no expanders visible in trees and there will be no way to expand and collapse rows by defau...void setTooltipCell(gtk.tooltip.Tooltip tooltip, gtk.tree_path.TreePath path = null, gtk.tree_view_column.TreeViewColumn column = null, gtk.cell_renderer.CellRenderer cell = null)Sets the tip area of tooltip to the area path, column and cell have in common. For example if path is null and column is set, the tip area will be set to the full area covered by column. See also...void setTooltipColumn(int column)If you only plan to have simple (text-only) tooltips on full rows, you can use this function to have [gtk.treeview.TreeView] handle these automatically for you. column should be set to the column i...void setTooltipRow(gtk.tooltip.Tooltip tooltip, gtk.tree_path.TreePath path)Sets the tip area of tooltip to be the area covered by the row at path. See also [gtk.tree_view.TreeView.setTooltipColumn] for a simpler alternative. See also [gtk.tooltip.Tooltip.setTipArea].void unsetRowsDragDest()Undoes the effect of [gtk.treeview.TreeView.enableModelDragDest]. Calling this method sets [gtk.treeview.TreeView]:reorderable to false.void unsetRowsDragSource()Undoes the effect of [gtk.treeview.TreeView.enableModelDragSource]. Calling this method sets [gtk.treeview.TreeView]:reorderable to false.gulong connectColumnsChanged(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 2)Connect to `ColumnsChanged` signal.gulong connectCursorChanged(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 2)Connect to `CursorChanged` signal.gulong connectExpandCollapseCursorRow(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == bool)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == bool)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] == bool)))
&& (Parameters!T.length < 4 || (ParameterStorageClassTuple!T[3] == ParameterStorageClass.none && is(Parameters!T[3] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 5)Connect to `ExpandCollapseCursorRow` signal.gulong connectMoveCursor(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == gtk.types.MovementStep)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == int)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] == bool)))
&& (Parameters!T.length < 4 || (ParameterStorageClassTuple!T[3] == ParameterStorageClass.none && is(Parameters!T[3] == bool)))
&& (Parameters!T.length < 5 || (ParameterStorageClassTuple!T[4] == ParameterStorageClass.none && is(Parameters!T[4] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 6)Connect to `MoveCursor` signal.gulong connectRowActivated(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == gtk.tree_path.TreePath)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] : gtk.tree_view_column.TreeViewColumn)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 4)Connect to `RowActivated` signal.gulong connectRowCollapsed(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == gtk.tree_iter.TreeIter)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == gtk.tree_path.TreePath)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 4)Connect to `RowCollapsed` signal.gulong connectRowExpanded(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == gtk.tree_iter.TreeIter)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == gtk.tree_path.TreePath)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 4)Connect to `RowExpanded` signal.gulong connectSelectAll(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 2)Connect to `SelectAll` signal.gulong connectSelectCursorParent(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 2)Connect to `SelectCursorParent` signal.gulong connectSelectCursorRow(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == bool)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 3)Connect to `SelectCursorRow` signal.gulong connectStartInteractiveSearch(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 2)Connect to `StartInteractiveSearch` signal.gulong connectTestCollapseRow(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == gtk.tree_iter.TreeIter)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == gtk.tree_path.TreePath)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 4)Connect to `TestCollapseRow` signal.gulong connectTestExpandRow(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == gtk.tree_iter.TreeIter)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == gtk.tree_path.TreePath)))
&& (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 4)Connect to `TestExpandRow` signal.gulong connectToggleCursorRow(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 2)Connect to `ToggleCursorRow` signal.gulong connectUnselectAll(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 2)Connect to `UnselectAll` signal.T activateOnSingleClick(bool propval)Set `activateOnSingleClick` property. Params: propval = The activate-on-single-click property specifies whether the "row-activated" signal will be emitted after a single click. Returns: Builder ins...T enableGridLines(gtk.types.TreeViewGridLines propval)T enableSearch(bool propval)T enableTreeLines(bool propval)T fixedHeightMode(bool propval)Set `fixedHeightMode` property. Params: propval = Setting the ::fixed-height-mode property to true speeds up [gtk.treeview.TreeView] by assuming that all rows have the same height. Only enable this...T headersClickable(bool propval)T headersVisible(bool propval)T hoverExpand(bool propval)Set `hoverExpand` property. Params: propval = Enables or disables the hover expansion mode of @tree_view. Hover expansion makes rows expand or collapse if the pointer moves over them.T hoverSelection(bool propval)Set `hoverSelection` property. Params: propval = Enables or disables the hover selection mode of @tree_view. Hover selection makes the selected row follow the pointer. Currently, this works only fo...T levelIndentation(int propval)Set `levelIndentation` property. Params: propval = Extra indentation for each level. Returns: Builder instance for fluent chainingT model(gtk.tree_model.TreeModel propval)T reorderable(bool propval)T rubberBanding(bool propval)T searchColumn(int propval)T showExpanders(bool propval)Set `showExpanders` property. Params: propval = true if the view has expanders. Returns: Builder instance for fluent chainingT tooltipColumn(int propval)