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() static nothrowGet builder for [gtk.tree_view.TreeView] Returns: New builder objectbool activateOnSingleClick() @property nothrowGet `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) @property nothrowSet `activateOnSingleClick` property. Params: propval = The activate-on-single-click property specifies whether the "row-activated" signal will be emitted after a single click.bool fixedHeightMode() @property nothrowGet `fixedHeightMode` property. Returns: Setting the ::fixed-height-mode property to true speeds up [gtk.tree_view.TreeView] by assuming that all rows have the same height. Only enable this option ...void fixedHeightMode(bool propval) @property nothrowSet `fixedHeightMode` property. Params: propval = Setting the ::fixed-height-mode property to true speeds up [gtk.tree_view.TreeView] by assuming that all rows have the same height. Only enable thi...bool hoverExpand() @property nothrowGet `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) @property nothrowSet `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() @property nothrowGet `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) @property nothrowSet `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() @property nothrowGet `levelIndentation` property. Returns: Extra indentation for each level.void levelIndentation(int propval) @property nothrowSet `levelIndentation` property. Params: propval = Extra indentation for each level.bool showExpanders() @property nothrowGet `showExpanders` property. Returns: true if the view has expanders.void showExpanders(bool propval) @property nothrowSet `showExpanders` property. Params: propval = true if the view has expanders.gtk.tree_view.TreeView newWithModel(gtk.tree_model.TreeModel model) static nothrowCreates a new [gtk.tree_view.TreeView] widget with the model initialized to model.int appendColumn(gtk.tree_view_column.TreeViewColumn column) nothrowAppends column to the list of columns. If tree_view has “fixed_height” mode enabled, then column must have its “sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.bool collapseRow(gtk.tree_path.TreePath path) nothrowCollapses a row (hides its child rows, if they exist).void columnsAutosize() nothrowResizes 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) nothrowConverts 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) nothrowConverts bin_window coordinates to widget relative coordinates.void convertTreeToBinWindowCoords(int tx, int ty, out int bx, out int by) nothrowConverts 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) nothrowConverts 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) nothrowConverts widget coordinates to coordinates for the bin_window.void convertWidgetToTreeCoords(int wx, int wy, out int tx, out int ty) nothrowConverts widget coordinates to coordinates for the tree (the full scrollable area of the tree).gdk.paintable.Paintable createRowDragIcon(gtk.tree_path.TreePath path) nothrowCreates 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) nothrowTurns tree_view into a drop destination for automatic DND. Calling this method sets [gtk.tree_view.TreeView]:reorderable to false.void enableModelDragSource(gdk.types.ModifierType startButtonMask, gdk.content_formats.ContentFormats formats, gdk.types.DragAction actions) nothrowTurns tree_view into a drag source for automatic DND. Calling this method sets [gtk.tree_view.TreeView]:reorderable to false.bool expandRow(gtk.tree_path.TreePath path, bool openAll) nothrowOpens the row so its children are visible.void expandToPath(gtk.tree_path.TreePath path) nothrowExpands the row at path. This will also expand all parent rows of path as necessary.bool getActivateOnSingleClick() nothrowGets 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) nothrowFills the bounding rectangle in bin_window 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) nothrowFills the bounding rectangle in bin_window 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, t...gtk.tree_view_column.TreeViewColumn getColumn(int n) nothrowGets the [gtk.tree_view_column.TreeViewColumn] at the given position in the #tree_view.gtk.tree_view_column.TreeViewColumn[] getColumns() nothrowReturns a [glib.list.List] of all the [gtk.tree_view_column.TreeViewColumn]s currently in tree_view. The returned list must be freed with g_list_free (). Returns: A list of [gtk.tree_view_column.Tr...void getCursor(out gtk.tree_path.TreePath path, out gtk.tree_view_column.TreeViewColumn focusColumn) nothrowFills in path and focus_column 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 *focus_column will be n...bool getDestRowAtPos(int dragX, int dragY, out gtk.tree_path.TreePath path, out gtk.types.TreeViewDropPosition pos) nothrowDetermines the destination row for a given position. drag_x and drag_y are expected to be in widget coordinates. This function is only meaningful if tree_view is realized. Therefore this functio...void getDragDestRow(out gtk.tree_path.TreePath path, out gtk.types.TreeViewDropPosition pos) nothrowGets information about the row that is highlighted for feedback.bool getEnableSearch() nothrowReturns 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() nothrowReturns whether or not tree lines are drawn in tree_view. Returns: true if tree lines are drawn in tree_view, false otherwise.gtk.tree_view_column.TreeViewColumn getExpanderColumn() nothrowReturns 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() nothrowReturns whether fixed height mode is turned on for tree_view. Returns: true if tree_view is in fixed height modegtk.types.TreeViewGridLines getGridLines() nothrowReturns which grid lines are enabled in tree_view. Returns: a [gtk.tree_view.TreeView]GridLines value indicating which grid lines are enabled.bool getHeadersClickable() nothrowReturns whether all header columns are clickable. Returns: true if all header columns are clickable, otherwise falsebool getHeadersVisible() nothrowReturns true if the headers on the tree_view are visible. Returns: Whether the headers are visible or not.bool getHoverExpand() nothrowReturns whether hover expansion mode is turned on for tree_view. Returns: true if tree_view is in hover expansion modebool getHoverSelection() nothrowReturns whether hover selection mode is turned on for tree_view. Returns: true if tree_view is in hover selection modeint getLevelIndentation() nothrowReturns the amount, in pixels, of extra indentation for child levels in tree_view. Returns: the amount of extra indentation for child levels in tree_view. A return value of 0 means that this featu...gtk.tree_model.TreeModel getModel() nothrowReturns the model the [gtk.tree_view.TreeView] is based on. Returns null if the model is unset. Returns: A [gtk.tree_model.TreeModel]uint getNColumns() nothrowQueries the number of columns in the given tree_view. Returns: The number of columns in the tree_viewbool getPathAtPos(int x, int y, out gtk.tree_path.TreePath path, out gtk.tree_view_column.TreeViewColumn column, out int cellX, out int cellY) nothrowFinds the path at the point (`x`, `y`), relative to bin_window coordinates. That is, `x` and `y` are relative to an events coordinates. Widget-relative coordinates must be converted using [gtk.tree...bool getReorderable() nothrowRetrieves 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() nothrowReturns whether rubber banding is turned on for tree_view. If the selection mode is [gtk.types.SelectionMode.Multiple], rubber banding will allow the user to select multiple rows by dragging the m...int getSearchColumn() nothrowGets the column searched on by the interactive search code. Returns: the column the interactive search code searches in.gtk.editable.Editable getSearchEntry() nothrowReturns 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() nothrowGets the [gtk.tree_selection.TreeSelection] associated with tree_view. Returns: A [gtk.tree_selection.TreeSelection] object.bool getShowExpanders() nothrowReturns whether or not expanders are drawn in tree_view. Returns: true if expanders are drawn in tree_view, false otherwise.int getTooltipColumn() nothrowReturns the column of tree_view’s model which is being used for displaying tooltips on tree_view’s rows. Returns: the index of the tooltip column that is currently being used, or -1 if this is ...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) nothrowThis function is supposed to be used in a ::query-tooltip signal handler for [gtk.tree_view.TreeView]. The `x`, `y` and keyboard_tip values which are received in the signal handler, should be passe...bool getVisibleRange(out gtk.tree_path.TreePath startPath, out gtk.tree_path.TreePath endPath) nothrowSets start_path and end_path to be the first and last visible path. Note that there may be invisible paths in between.void getVisibleRect(out gdk.rectangle.Rectangle visibleRect) nothrowFills visible_rect with the currently-visible region of the buffer, in tree coordinates. Convert to bin_window coordinates with [gtk.tree_view.TreeView.convertTreeToBinWindowCoords]. Tree coordinat...int insertColumn(gtk.tree_view_column.TreeViewColumn column, int position) nothrowThis inserts the column into the tree_view at position. If position is -1, then the column is inserted at the end. If tree_view has “fixed_height” mode enabled, then column must have its “si...int insertColumnWithDataFunc(int position, string title, gtk.cell_renderer.CellRenderer cell, gtk.types.TreeCellDataFunc func) nothrowConvenience function that inserts a new column into the [gtk.tree_view.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) nothrowDetermine 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() nothrowReturns whether a rubber banding operation is currently being done in tree_view. Returns: true if a rubber banding operation is currently being done in tree_view.void moveColumnAfter(gtk.tree_view_column.TreeViewColumn column, gtk.tree_view_column.TreeViewColumn baseColumn = null) nothrowMoves column to be after to base_column. If base_column is null, then column is placed in the first position.void rowActivated(gtk.tree_path.TreePath path, gtk.tree_view_column.TreeViewColumn column = null) nothrowActivates the cell determined by path and column.bool rowExpanded(gtk.tree_path.TreePath path) nothrowReturns 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) nothrowMoves the alignments of tree_view 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) nothrowScrolls the tree view such that the top-left corner of the visible area is tree_x, tree_y, where tree_x and tree_y are specified in tree coordinates. The tree_view must be realized before this fun...void setActivateOnSingleClick(bool single) nothrowCause 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) nothrowSets 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) nothrowSets 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 focus_column is not null, then focus is given t...void setCursorOnCell(gtk.tree_path.TreePath path, gtk.tree_view_column.TreeViewColumn focusColumn, gtk.cell_renderer.CellRenderer focusCell, bool startEditing) nothrowSets 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 focus_column is not null, then focus is given t...void setDragDestRow(gtk.tree_path.TreePath path, gtk.types.TreeViewDropPosition pos) nothrowSets the row that is highlighted for feedback. If path is null, an existing highlight is removed.void setEnableSearch(bool enableSearch) nothrowIf 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) nothrowSets 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) nothrowSets 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) nothrowEnables or disables the fixed height mode of tree_view. Fixed height mode speeds up [gtk.tree_view.TreeView] by assuming that all rows have the same height. Only enable this option if all rows are ...void setGridLines(gtk.types.TreeViewGridLines gridLines) nothrowSets which grid lines to draw in tree_view.void setHoverExpand(bool expand) nothrowEnables 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) nothrowEnables 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) nothrowSets 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) nothrowSets the model for a [gtk.tree_view.TreeView]. If the tree_view 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) nothrowThis function is a convenience function to allow you to reorder models that support the [gtk.tree_drag_source_iface.TreeDragSourceIface] and the [gtk.tree_drag_dest_iface.TreeDragDestIface]. Both ...void setRowSeparatorFunc(gtk.types.TreeViewRowSeparatorFunc func = null) nothrowSets 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) nothrowEnables 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) nothrowSets column as the column where the interactive search code should search in for the current model.void setSearchEntry(gtk.editable.Editable entry = null) nothrowSets 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) nothrowSets 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) nothrowSets whether to draw and enable expanders and indent child rows in tree_view. When disabled there will be no expanders visible in trees and there will be no way to expand and collapse rows by defa...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) nothrowSets 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) nothrowIf you only plan to have simple (text-only) tooltips on full rows, you can use this function to have [gtk.tree_view.TreeView] handle these automatically for you. column should be set to the column ...void setTooltipRow(gtk.tooltip.Tooltip tooltip, gtk.tree_path.TreePath path) nothrowSets 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() nothrowUndoes the effect of [gtk.tree_view.TreeView.enableModelDragDest]. Calling this method sets [gtk.tree_view.TreeView]:reorderable to false.void unsetRowsDragSource() nothrowUndoes the effect of [gtk.tree_view.TreeView.enableModelDragSource]. Calling this method sets [gtk.tree_view.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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect 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) nothrowConnect to `UnselectAll` signal.Fluent builder implementation template for gtk.tree_view.TreeView
T activateOnSingleClick(bool propval) nothrowSet `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) nothrowT enableSearch(bool propval) nothrowT enableTreeLines(bool propval) nothrowT expanderColumn(gtk.tree_view_column.TreeViewColumn propval) nothrowT fixedHeightMode(bool propval) nothrowSet `fixedHeightMode` property. Params: propval = Setting the ::fixed-height-mode property to true speeds up [gtk.tree_view.TreeView] by assuming that all rows have the same height. Only enable thi...T headersClickable(bool propval) nothrowT headersVisible(bool propval) nothrowT hoverExpand(bool propval) nothrowSet `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) nothrowSet `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) nothrowSet `levelIndentation` property. Params: propval = Extra indentation for each level. Returns: Builder instance for fluent chainingT model(gtk.tree_model.TreeModel propval) nothrowT reorderable(bool propval) nothrowT rubberBanding(bool propval) nothrowT searchColumn(int propval) nothrowT showExpanders(bool propval) nothrowSet `showExpanders` property. Params: propval = true if the view has expanders. Returns: Builder instance for fluent chainingT tooltipColumn(int propval) nothrowFluent builder for gtk.tree_view.TreeView