Gtk2::TreeView(3)

πŸ“¦
version 1.24993 Β· 2 versions
, in fedora 43

✨ NAME ✨

okay bestie, this is Gtk2::TreeView(3) from the User Contributed Perl Documentation. It's a wrapper for GtkTreeView, and it's giving tree widget main character energy. πŸ’…πŸŒ³


🌸 HIERARCHY 🌸

         Glib::Object
         +----Glib::InitiallyUnowned
              +----Gtk2::Object
                   +----Gtk2::Widget
                        +----Gtk2::Container
                             +----Gtk2::TreeView

πŸ¦‹ INTERFACES πŸ¦‹

  • Glib::Object::_Unregistered::AtkImplementorIface
  • Gtk2::Buildable

πŸ’… METHODS πŸ’…

okay bestie, here's the whole method menu. Every signature and every arg type is kept exactly as the original says, no cap. 🫢

widget = Gtk2::TreeView->new ($model=undef)

  • $model (Gtk2::TreeModel)

widget = Gtk2::TreeView->new_with_model ($model)

  • $model (Gtk2::TreeModel)

integer = $tree_view->append_column ($column)

  • $column (Gtk2::TreeViewColumn)

rectangle = $tree_view->get_background_area ($path, $column)

  • $path (Gtk2::TreePath or undef)
  • $column (Gtk2::TreeViewColumn or undef)

window = $tree_view->get_bin_window

rectangle = $tree_view->get_cell_area ($path, $column)

  • $path (Gtk2::TreePath or undef)
  • $column (Gtk2::TreeViewColumn or undef)

$tree_view->collapse_all

boolean = $tree_view->collapse_row ($path)

  • $path (Gtk2::TreePath)

$tree_view->set_column_drag_function ($func, $data=undef)

  • $func (scalar)
  • $data (scalar)

treeviewcolumn = $tree_view->get_column ($n)

  • $n (integer)

$tree_view->columns_autosize

list = $tree_view->get_columns

Returns an array of columns.

(tx, ty) = $tree_view->convert_bin_window_to_tree_coords ($bx, $by)

  • $bx (integer)
  • $by (integer)

Since: gtk+ 2.12

(wx, wy) = $tree_view->convert_bin_window_to_widget_coords ($bx, $by)

  • $bx (integer)
  • $by (integer)

Since: gtk+ 2.12

(bx, by) = $tree_view->convert_tree_to_bin_window_coords ($tx, $ty)

  • $tx (integer)
  • $ty (integer)

Since: gtk+ 2.12

(wx, wy) = $tree_view->convert_tree_to_widget_coords ($tx, $ty)

  • $tx (integer)
  • $ty (integer)

Since: gtk+ 2.12

(bx, by) = $tree_view->convert_widget_to_bin_window_coords ($wx, $wy)

  • $wx (integer)
  • $wy (integer)

Since: gtk+ 2.12

(tx, ty) = $tree_view->convert_widget_to_tree_coords ($wx, $wy)

  • $wx (integer)
  • $wy (integer)

Since: gtk+ 2.12

pixmap = $tree_view->create_row_drag_icon ($path)

  • $path (Gtk2::TreePath)

(path, focus_column) = $tree_view->get_cursor

Returns the Gtk2::TreePath and Gtk2::TreeViewColumn of the cell with the keyboard focus cursor. Either may be undef.

$tree_view->set_cursor_on_cell ($path, $focus_column, $focus_cell, $start_editing)

  • $path (Gtk2::TreePath)
  • $focus_column (Gtk2::TreeViewColumn or undef)
  • $focus_cell (Gtk2::CellRenderer or undef)
  • $start_editing (boolean)

Since: gtk+ 2.2

$tree_view->set_cursor ($path, $focus_column=undef, $start_editing=FALSE)

  • $path (Gtk2::TreePath)
  • $focus_column (Gtk2::TreeViewColumn or undef)
  • $start_editing (boolean)

(path, dropposition) = $tree_view->get_dest_row_at_pos ($drag_x, $drag_y)

  • $drag_x (integer)
  • $drag_y (integer)

(path, dropposition) = $tree_view->get_drag_dest_row

$tree_view->set_drag_dest_row ($path, $pos)

  • $path (Gtk2::TreePath or undef)
  • $pos (Gtk2::TreeViewDropPosition)

$tree_view->enable_model_drag_dest ($actions, ...)

  • $actions (Gtk2::Gdk::DragAction)
  • ... (list) of Gtk2::TargetEntry's

$tree_view->enable_model_drag_source ($start_button_mask, $actions, ...)

  • $start_button_mask (Gtk2::Gdk::ModifierType)
  • $actions (Gtk2::Gdk::DragAction)
  • ... (list) of Gtk2::TargetEntry's
  • $enable_search (boolean)

boolean = $tree_view->get_enable_tree_lines

Since: gtk+ 2.10

$tree_view->set_enable_tree_lines ($enabled)

  • $enabled (boolean)

Since: gtk+ 2.10

$tree_view->expand_all

boolean = $tree_view->expand_row ($path, $open_all)

  • $path (Gtk2::TreePath)
  • $open_all (boolean)

$tree_view->expand_to_path ($path)

  • $path (Gtk2::TreePath)

Since: gtk+ 2.2

treeviewcolumn or undef = $tree_view->get_expander_column

$tree_view->set_expander_column ($column)

  • $column (Gtk2::TreeViewColumn or undef)

boolean = $treeview->get_fixed_height_mode

Since: gtk+ 2.6

$treeview->set_fixed_height_mode ($enable)

  • $enable (boolean)

Since: gtk+ 2.6

treeviewgridlines = $tree_view->get_grid_lines

Since: gtk+ 2.10

$tree_view->set_grid_lines ($grid_lines)

  • $grid_lines (Gtk2::TreeViewGridLines)

Since: gtk+ 2.10

adjustment or undef = $tree_view->get_hadjustment

$tree_view->set_hadjustment ($adjustment)

  • $adjustment (Gtk2::Adjustment or undef)

boolean = $tree_view->get_headers_clickable

Since: gtk+ 2.10

$tree_view->set_headers_clickable ($setting)

  • $setting (boolean)

boolean = $tree_view->get_headers_visible

$tree_view->set_headers_visible ($headers_visible)

  • $headers_visible (boolean)

boolean = $treeview->get_hover_expand

Since: gtk+ 2.6

$treeview->set_hover_expand ($expand)

  • $expand (boolean)

Since: gtk+ 2.6

boolean = $treeview->get_hover_selection

Since: gtk+ 2.6

$treeview->set_hover_selection ($hover)

  • $hover (boolean)

Since: gtk+ 2.6

integer = $tree_view->insert_column ($column, $position)

  • $column (Gtk2::TreeViewColumn)
  • $position (integer)

$tree_view->insert_column_with_attributes ($position, $title, $cellrenderer, $attr1, $col1, $attr2, $col2, ...)

  • $position (integer)
  • $title (string)
  • $cell (Gtk2::CellRenderer)
  • ... (list)

integer = $tree_view->insert_column_with_data_func ($position, $title, $cell, $func, $data=undef)

  • $position (integer)
  • $title (string)
  • $cell (Gtk2::CellRenderer)
  • $func (subroutine)
  • $data (scalar)

Insert a column that calls $func every time it needs to fetch the data for a cell. $func will get a cell renderer, the tree model, and the iter of the row in question, and should set the proper value into the cell renderer.

boolean = $tree_view->is_rubber_banding_active

Since: gtk+ 2.12

integer = $tree_view->get_level_indentation

Since: gtk+ 2.12

$tree_view->set_level_indentation ($indentation)

  • $indentation (integer)

Since: gtk+ 2.12

$tree_view->map_expanded_rows ($func, $data=undef)

  • $func (scalar)
  • $data (scalar)

treemodel or undef = $tree_view->get_model

$tree_view->set_model ($model)

  • $model (Gtk2::TreeModel or undef)

$tree_view->move_column_after ($column, $base_column)

  • $column (Gtk2::TreeViewColumn)
  • $base_column (Gtk2::TreeViewColumn or undef)

path = $tree_view->get_path_at_pos ($x, $y)

(path, column, cell_x, cell_y) = $tree_view->get_path_at_pos ($x, $y)

  • $x (integer)
  • $y (integer)

Finds the path at the point ($x, $y), relative to widget coordinates. That is, $x and $y are relative to an event's coordinates. $x and $y must come from an event on the $tree_view only where "$event->window == $tree_view->get_bin_window". It is primarily for things like popup menus. In scalar context, returns the Gtk2::TreePath, in array context, adds the Gtk2::TreeViewColumn, and $x and $y translated to be relative to the cell. This function is only meaningful if $tree_view is realized.

integer = $tree_view->remove_column ($column)

  • $column (Gtk2::TreeViewColumn)

boolean = $tree_view->get_reorderable

$tree_view->set_reorderable ($reorderable)

  • $reorderable (boolean)

$tree_view->row_activated ($path, $column)

  • $path (Gtk2::TreePath)
  • $column (Gtk2::TreeViewColumn)

boolean = $tree_view->row_expanded ($path)

  • $path (Gtk2::TreePath)

$tree_view->set_row_separator_func ($func, $data=undef)

  • $func (scalar)
  • $data (scalar)

Since: gtk+ 2.6

boolean = $tree_view->get_rubber_banding

Since: gtk+ 2.10

$tree_view->set_rubber_banding ($enable)

  • $enable (boolean)

Since: gtk+ 2.10

boolean = $tree_view->get_rules_hint

$tree_view->set_rules_hint ($setting)

  • $setting (boolean)

$tree_view->scroll_to_cell ($path, $column=undef, $use_align=FALSE, $row_align=0.0, $col_align=0.0)

  • $path (Gtk2::TreePath or undef)
  • $column (Gtk2::TreeViewColumn or undef)
  • $use_align (boolean)
  • $row_align (double)
  • $col_align (double)

$tree_view->scroll_to_point ($tree_x, $tree_y)

  • $tree_x (scalar)
  • $tree_y (scalar)

integer = $tree_view->get_search_column

$tree_view->set_search_column ($column)

  • $column (integer)

entry or undef = $tree_view->get_search_entry

Since: gtk+ 2.10

$tree_view->set_search_entry ($entry)

  • $entry (Gtk2::Entry or undef)

Since: gtk+ 2.10

$tree_view->set_search_equal_func ($func, $data=undef)

  • $func (subroutine)
  • $data (scalar)

$tree_view->set_search_position_func ($func, $user_data=undef)

  • $func (scalar)
  • $user_data (scalar)

Pass undef for the func to restore the default search position function.

Since: gtk+ 2.10

treeselection = $tree_view->get_selection

boolean = $tree_view->get_show_expanders

Since: gtk+ 2.12

$tree_view->set_show_expanders ($enabled)

  • $enabled (boolean)

Since: gtk+ 2.12

$tree_view->set_tooltip_cell ($tooltip, $path, $column, $cell)

  • $tooltip (Gtk2::Tooltip)
  • $path (Gtk2::TreePath)
  • $column (Gtk2::TreeViewColumn)
  • $cell (Gtk2::CellRenderer)

Since: gtk+ 2.12

integer = $tree_view->get_tooltip_column

Since: gtk+ 2.12

$tree_view->set_tooltip_column ($column)

  • $column (integer)

Since: gtk+ 2.12

(x, y, model, path, iter) = $treeview->get_tooltip_context ($x, $y, $keyboard_tip)

  • $x (integer)
  • $y (integer)
  • $keyboard_tip (boolean)

Since: gtk+ 2.12

$tree_view->set_tooltip_row ($tooltip, $path)

  • $tooltip (Gtk2::Tooltip)
  • $path (Gtk2::TreePath)

Since: gtk+ 2.12

(wx, wy) = $tree_view->tree_to_widget_coords ($tx, $ty)

  • $tx (integer)
  • $ty (integer)

$tree_view->unset_rows_drag_dest

$tree_view->unset_rows_drag_source

adjustment or undef = $tree_view->get_vadjustment

$tree_view->set_vadjustment ($adjustment)

  • $adjustment (Gtk2::Adjustment or undef)

(start_path, end_path) = $tree_view->get_visible_range

Since: gtk+ 2.8

rectangle = $tree_view->get_visible_rect

(tx, ty) = $tree_view->widget_to_tree_coords ($wx, $wy)

  • $wx (integer)
  • $wy (integer)

πŸŽ€ PROPERTIES πŸŽ€

okay bestie these are the object properties, the little knobs you can turn. every single one of these is readable / writable / private / static-nick / static-blurb unless I say otherwise, and im saying it every time bc I refuse to skip anything, periodt πŸ’…

  • enable-grid-lines (Gtk2::TreeViewGridLines, default "none", readable / writable / private / static-nick / static-blurb) β€” whether grid lines should be drawn in the tree view πŸ¦‹
  • enable-search (boolean, default true, readable / writable / private / static-nick / static-blurb) β€” view lets the user search through columns interactively ✨
  • enable-tree-lines (boolean, default false, readable / writable / private / static-nick / static-blurb) β€” whether tree lines should be drawn in the tree view 🌸
  • expander-column (Gtk2::TreeViewColumn, default undef, readable / writable / private / static-nick / static-blurb) β€” set the column for the expander column
  • fixed-height-mode (boolean, default false, readable / writable / private / static-nick / static-blurb) β€” speeds up GtkTreeView by assuming that all rows have the same height πŸ”₯
  • hadjustment (Gtk2::Adjustment, default undef, readable / writable / private / static-nick / static-blurb) β€” horizontal Adjustment for the widget
  • headers-clickable (boolean, default true, readable / writable / private / static-nick / static-blurb) β€” column headers respond to click events πŸ‘‘
  • headers-visible (boolean, default true, readable / writable / private / static-nick / static-blurb) β€” show the column header buttons
  • hover-expand (boolean, default false, readable / writable / private / static-nick / static-blurb) β€” whether rows should be expanded/collapsed when the pointer moves over them 🧚
  • hover-selection (boolean, default false, readable / writable / private / static-nick / static-blurb) β€” whether the selection should follow the pointer
  • level-indentation (integer, default 0, readable / writable / private / static-nick / static-blurb) β€” extra indentation for each level
  • model (Gtk2::TreeModel, default undef, readable / writable / private / static-nick / static-blurb) β€” the model for the tree view, the actual main character here fr fr πŸ’–
  • reorderable (boolean, default false, readable / writable / private / static-nick / static-blurb) β€” view is reorderable
  • rubber-banding (boolean, default false, readable / writable / private / static-nick / static-blurb) β€” whether to enable selection of multiple items by dragging the mouse pointer 🫢
  • rules-hint (boolean, default false, readable / writable / private / static-nick / static-blurb) β€” set a hint to the theme engine to draw rows in alternating colors
  • search-column (integer, default -1, readable / writable / private / static-nick / static-blurb) β€” model column to search through during interactive search
  • show-expanders (boolean, default true, readable / writable / private / static-nick / static-blurb) β€” view has expanders
  • tooltip-column (integer, default -1, readable / writable / private / static-nick / static-blurb) β€” the column in the model containing the tooltip texts for the rows
  • vadjustment (Gtk2::Adjustment, default undef, readable / writable / private / static-nick / static-blurb) β€” vertical Adjustment for the widget

πŸ’… STYLE PROPERTIES πŸ’…

these ones are a little different bestie β€” notice they're readable / private / static-nick / static-blurb, no writable in the mix, okay? they're the theme's vibe, not yours to just yank around πŸŽ€

  • allow-rules (boolean, default true, readable / private / static-nick / static-blurb) β€” allow drawing of alternating color rows 🌈
  • even-row-color (Gtk2::Gdk::Color, default undef, readable / private / static-nick / static-blurb) β€” color to use for even rows
  • expander-size (integer, default 12, readable / private / static-nick / static-blurb) β€” size of the expander arrow
  • grid-line-pattern (string, default "\1\1", readable / private / static-nick / static-blurb) β€” dash pattern used to draw the tree view grid lines
  • grid-line-width (integer, default 1, readable / private / static-nick / static-blurb) β€” width, in pixels, of the tree view grid lines
  • horizontal-separator (integer, default 2, readable / private / static-nick / static-blurb) β€” horizontal space between cells. must be an even number ⚠️
  • indent-expanders (boolean, default true, readable / private / static-nick / static-blurb) β€” make the expanders indented
  • odd-row-color (Gtk2::Gdk::Color, default undef, readable / private / static-nick / static-blurb) β€” color to use for odd rows
  • row-ending-details (boolean, default false, readable / private / static-nick / static-blurb) β€” enable extended row background theming ✨
  • tree-line-pattern (string, default "\1\1", readable / private / static-nick / static-blurb) β€” dash pattern used to draw the tree view lines
  • tree-line-width (integer, default 1, readable / private / static-nick / static-blurb) β€” width, in pixels, of the tree view lines
  • vertical-separator (integer, default 2, readable / private / static-nick / static-blurb) β€” vertical space between cells. must be an even number ⚠️

πŸ”₯ SIGNALS πŸ”₯

the tree view is chatty and honestly? we love that for it. here's every signal it emits, signatures and all, no cuts πŸ‘‘

  • columns-changed (Gtk2::TreeView)
  • cursor-changed (Gtk2::TreeView)
  • boolean = expand-collapse-cursor-row (Gtk2::TreeView, boolean, boolean, boolean)
  • boolean = move-cursor (Gtk2::TreeView, Gtk2::MovementStep, integer)
  • row-activated (Gtk2::TreeView, Gtk2::TreePath, Gtk2::TreeViewColumn)
  • row-collapsed (Gtk2::TreeView, Gtk2::TreeIter, Gtk2::TreePath)
  • row-expanded (Gtk2::TreeView, Gtk2::TreeIter, Gtk2::TreePath)
  • boolean = select-all (Gtk2::TreeView)
  • boolean = select-cursor-parent (Gtk2::TreeView)
  • boolean = select-cursor-row (Gtk2::TreeView, boolean)
  • set-scroll-adjustments (Gtk2::TreeView, Gtk2::Adjustment, Gtk2::Adjustment)
  • boolean = start-interactive-search (Gtk2::TreeView)
  • boolean = test-collapse-row (Gtk2::TreeView, Gtk2::TreeIter, Gtk2::TreePath)
  • boolean = test-expand-row (Gtk2::TreeView, Gtk2::TreeIter, Gtk2::TreePath)
  • boolean = toggle-cursor-row (Gtk2::TreeView)
  • boolean = unselect-all (Gtk2::TreeView)

🌈 ENUMS AND FLAGS 🌈

flags Gtk2::Gdk::DragAction

  • 'default' / GDK_ACTION_DEFAULT
  • 'copy' / GDK_ACTION_COPY
  • 'move' / GDK_ACTION_MOVE
  • 'link' / GDK_ACTION_LINK
  • 'private' / GDK_ACTION_PRIVATE
  • 'ask' / GDK_ACTION_ASK

flags Gtk2::Gdk::ModifierType

  • 'shift-mask' / GDK_SHIFT_MASK
  • 'lock-mask' / GDK_LOCK_MASK
  • 'control-mask' / GDK_CONTROL_MASK
  • 'mod1-mask' / GDK_MOD1_MASK
  • 'mod2-mask' / GDK_MOD2_MASK
  • 'mod3-mask' / GDK_MOD3_MASK
  • 'mod4-mask' / GDK_MOD4_MASK
  • 'mod5-mask' / GDK_MOD5_MASK
  • 'button1-mask' / GDK_BUTTON1_MASK
  • 'button2-mask' / GDK_BUTTON2_MASK
  • 'button3-mask' / GDK_BUTTON3_MASK
  • 'button4-mask' / GDK_BUTTON4_MASK
  • 'button5-mask' / GDK_BUTTON5_MASK
  • 'super-mask' / GDK_SUPER_MASK
  • 'hyper-mask' / GDK_HYPER_MASK
  • 'meta-mask' / GDK_META_MASK
  • 'release-mask' / GDK_RELEASE_MASK
  • 'modifier-mask' / GDK_MODIFIER_MASK

enum Gtk2::MovementStep

  • 'logical-positions' / GTK_MOVEMENT_LOGICAL_POSITIONS
  • 'visual-positions' / GTK_MOVEMENT_VISUAL_POSITIONS
  • 'words' / GTK_MOVEMENT_WORDS
  • 'display-lines' / GTK_MOVEMENT_DISPLAY_LINES
  • 'display-line-ends' / GTK_MOVEMENT_DISPLAY_LINE_ENDS
  • 'paragraphs' / GTK_MOVEMENT_PARAGRAPHS
  • 'paragraph-ends' / GTK_MOVEMENT_PARAGRAPH_ENDS
  • 'pages' / GTK_MOVEMENT_PAGES
  • 'buffer-ends' / GTK_MOVEMENT_BUFFER_ENDS
  • 'horizontal-pages' / GTK_MOVEMENT_HORIZONTAL_PAGES

enum Gtk2::TreeViewDropPosition

  • 'before' / GTK_TREE_VIEW_DROP_BEFORE
  • 'after' / GTK_TREE_VIEW_DROP_AFTER
  • 'into-or-before' / GTK_TREE_VIEW_DROP_INTO_OR_BEFORE
  • 'into-or-after' / GTK_TREE_VIEW_DROP_INTO_OR_AFTER

enum Gtk2::TreeViewGridLines

  • 'none' / GTK_TREE_VIEW_GRID_LINES_NONE
  • 'horizontal' / GTK_TREE_VIEW_GRID_LINES_HORIZONTAL
  • 'vertical' / GTK_TREE_VIEW_GRID_LINES_VERTICAL
  • 'both' / GTK_TREE_VIEW_GRID_LINES_BOTH

πŸ¦‹ SEE ALSO πŸ¦‹

like, go read these next bestie, they're the friend group:

  • Gtk2
  • Glib::Object
  • Glib::InitiallyUnowned
  • Gtk2::Object
  • Gtk2::Widget
  • Gtk2::Container

Copyright (C) 2003-2011 by the gtk2-perl team.

This software is licensed under the LGPL. See Gtk2 for a full notice.


and that's the whole page, you ate that πŸ’… this was perl v5.42.0, dated 2025-07-25, and it's Gtk2::TreeView(3) β€” go forth and build something iconic, ily, bye 🫢✨

πŸ“¦ where this page comes from