gtk.tree_view
Module for [TreeView] class
Types 3
Widget that displays any object that implements the #GtkTreeModel 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.
Several different coordinate systems are exposed in the GtkTreeView API. These are:

Coordinate systems in GtkTreeView API:
- 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).
GtkTreeView as GtkBuildable
The GtkTreeView implementation of the GtkBuildable interface accepts #GtkTreeViewColumn objects as <child> elements and exposes the internal #GtkTreeSelection in UI definitions.
An example of a UI definition fragment with GtkTreeView:
<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
│ ├── <column header>
┊ ┊
│ ╰── <column header>
│
╰── [rubberband]GtkTreeView 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. For rubberband selection, a subnode with name rubberband is used.
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 #GtkTreeView by assuming that all rows have the same height. Only enable this option if all rows ...void fixedHeightMode(bool propval) @property nothrowSet `fixedHeightMode` property. Params: propval = Setting the ::fixed-height-mode property to true speeds up #GtkTreeView by assuming that all rows have the same height. Only enable this option if ...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 rulesHint() @property nothrowGet `rulesHint` property. Returns: Sets a hint to the theme to draw rows in alternating colors.void rulesHint(bool propval) @property nothrowSet `rulesHint` property. Params: propval = Sets a hint to the theme to draw rows in alternating colors.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 #GtkTreeView 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 (see [gtk.tree_view.TreeView.getBinWindow]) 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 (see [gtk.tree_view.TreeView.getBinWindow]).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).cairo.surface.Surface createRowDragIcon(gtk.tree_path.TreePath path) nothrowCreates a #cairo_surface_t representation of the row at path. This image is used for a drag icon.void enableModelDragDest(gtk.target_entry.TargetEntry[] targets, gdk.types.DragAction actions) nothrowTurns tree_view into a drop destination for automatic DND. Calling this method sets #GtkTreeView:reorderable to false.void enableModelDragSource(gdk.types.ModifierType startButtonMask, gtk.target_entry.TargetEntry[] targets, gdk.types.DragAction actions) nothrowTurns tree_view into a drag source for automatic DND. Calling this method sets #GtkTreeView: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...gdk.window.Window getBinWindow() nothrowReturns the window that tree_view renders to. This is used primarily to compare to `event->window` to confirm that the event on tree_view is on the right window. Returns: A #GdkWindow, or null when...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 #GtkTreeViewColumn at the given position in the #tree_view.gtk.tree_view_column.TreeViewColumn[] getColumns() nothrowReturns a #GList of all the #GtkTreeViewColumn s currently in tree_view. The returned list must be freed with g_list_free (). Returns: A list of #GtkTreeViewColumn svoid 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. 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 #GtkTreeViewGridLines value indicating which grid lines are enabled.gtk.adjustment.Adjustment getHadjustment() nothrowGets the #GtkAdjustment currently being used for the horizontal aspect. Returns: A #GtkAdjustment object, or null if none is currently being used.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 #GtkTreeView is based on. Returns null if the model is unset. Returns: A #GtkTreeModel, or null if none is currently being used.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 (please see [gtk.tree_view.TreeView.getBinWindow]). That is, `x` and `y` are relative to an events coordinates. `x` and `y...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_SELECTION_MULTIPLE, rubber banding will allow the user to select multiple rows by dragging the mouse. Retur...bool getRulesHint() nothrowGets the setting set by [gtk.tree_view.TreeView.setRulesHint]. Returns: true if the hint is setint getSearchColumn() nothrowGets the column searched on by the interactive search code. Returns: the column the interactive search code searches in.gtk.entry.Entry getSearchEntry() nothrowReturns the #GtkEntry 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 use as s...gtk.tree_selection.TreeSelection getSelection() nothrowGets the #GtkTreeSelection associated with tree_view. Returns: A #GtkTreeSelection 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(ref int x, ref 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 #GtkWidget::query-tooltip signal handler for #GtkTreeView. The `x`, `y` and keyboard_tip values which are received in the signal handler, should be passed...gtk.adjustment.Adjustment getVadjustment() nothrowGets the #GtkAdjustment currently being used for the vertical aspect. Returns: A #GtkAdjustment object, or null if none is currently being used.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 #GtkTreeView with the given cell renderer and a #GtkTreeCellDataFunc to set cell renderer attributes (normally using data from the model). Se...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) 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 #GtkTreeView::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 setDestroyCountFunc(gtk.types.TreeDestroyCountFunc func = null) nothrowThis function should almost never be used. It is meant for private use by ATK for determining the number of visible children that are removed when the user collapses a row, or a row is deleted.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 #GtkTreeView by assuming that all rows have the same height. Only enable this option if all rows are the same hei...void setGridLines(gtk.types.TreeViewGridLines gridLines) nothrowSets which grid lines to draw in tree_view.void setHadjustment(gtk.adjustment.Adjustment adjustment = null) nothrowSets the #GtkAdjustment for the current horizontal aspect.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 #GtkTreeView. 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 #GtkTreeDragSourceIface and the #GtkTreeDragDestIface. Both #GtkTreeStore and #GtkListStore support these. ...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_SELECTION_MULTIPLE, rubber banding will allow the user to select multiple rows by dragging the mouse.void setRulesHint(bool setting) nothrowSets a hint for the theme to draw even/odd rows in the tree_view with different colors, also known as "zebra striping".void setSearchColumn(int column) nothrowSets column as the column where the interactive search code should search in for the current model.void setSearchEntry(gtk.entry.Entry 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 #GtkTreeViewSearchEqualFunc returns false on matches.void setSearchPositionFunc(gtk.types.TreeViewSearchPositionFunc func = null) nothrowSets the function to use when positioning the search dialog.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 #GtkTreeView handle these automatically for you. column should be set to the column in tree_view...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 setVadjustment(gtk.adjustment.Adjustment adjustment = null) nothrowSets the #GtkAdjustment for the current vertical aspect.void unsetRowsDragDest() nothrowUndoes the effect of [gtk.tree_view.TreeView.enableModelDragDest]. Calling this method sets #GtkTreeView:reorderable to false.void unsetRowsDragSource() nothrowUndoes the effect of [gtk.tree_view.TreeView.enableModelDragSource]. Calling this method sets #GtkTreeView: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] : gtk.tree_view.TreeView)))
&& Parameters!T.length < 4) 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 #GtkTreeView by assuming that all rows have the same height. Only enable this option if ...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 rulesHint(bool propval) nothrowSet `rulesHint` property. Params: propval = Sets a hint to the theme to draw rows in alternating colors. Returns: Builder instance for fluent chainingT 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) nothrowT ubuntuAlmostFixedHeightMode(bool propval) nothrowFluent builder for gtk.tree_view.TreeView