[Contents] [Back] [Prev] [Up] [Next] [Forward]

# Package Gtk.Tree`_`View

See extended documentation in Gtk.Tree_View_Column and Gtk.Tree_Store.

- Gtk.Tree_View Widget Hierarchy
- Gtk.Tree_View Signals
- Gtk.Tree_View Types
- Gtk.Tree_View Subprograms

## Widget Hierarchy

    GObject                       (see section Package Glib.Object)
    Gtk_Object                    (see section Package Gtk.Object)
       \___ Gtk_Widget            (see section Package Gtk.Widget)
          \___ Gtk_Container      (see section Package Gtk.Container)
             \___ Gtk_Tree_View   (see section Package Gtk.Tree_View)

## Signals

- "columns_changed" procedure Handler (Widget : access Gtk_Tree_View_Record'Class);
- "expand_collapse_cursor_row" procedure Handler (Widget : access Gtk_Tree_View_Record'Class;
  Logical : Boolean;
  Expand : Boolean;
  Open_All : Boolean);
- "move_cursor" procedure Handler (Widget : access Gtk_Tree_View_Record'Class;
  Step : Gtk_Movement_Step;
  Count : Gint);
- "row_activated" procedure Handler (Widget : access Gtk_Tree_View_Record'Class;
  Path : Gtk.Tree_Model.Gtk_Tree_Path;
  Column : Gtk.Tree_View_Column.Gtk_Tree_View_Column);
- "row_collapsed" procedure Handler (Widget : access Gtk_Tree_View_Record'Class;
  Iter : access Gtk.Tree_Iter.Gtk_Tree_Iter_Record'Class;
  Path : Gtk.Tree_Model.Gtk_Tree_Path);
- "row_expanded" procedure Handler (Widget : access Gtk_Tree_View_Record'Class;
  Iter : access Gtk.Tree_Iter.Gtk_Tree_Iter_Record'Class;
  Path : Gtk.Tree_Model.Gtk_Tree_Path);
- "select_all" procedure Handler (Widget : access Gtk_Tree_View_Record'Class);
- "select_cursor_parent" procedure Handler (Widget : access Gtk_Tree_View_Record'Class);
- "select_cursor_row" procedure Handler (Widget : access Gtk_Tree_View_Record'Class;
  Start_Editing : Boolean);
- "set_scroll_adjustments" procedure Handler (Widget : access Gtk_Tree_View_Record'Class;
  Hadjustment : access Gtk.Adjustment.Gtk_Adjustment_Record'Class;
  Vadjustment : access Gtk.Adjustment.Gtk_Adjustment_Record'Class);
- "start_interactive_search" procedure Handler (Widget : access Gtk_Tree_View_Record'Class);
- "test_collapse_row" function Handler (Widget : access Gtk_Tree_View_Record'Class;
  Iter : access Gtk.Tree_Iter.Gtk_Tree_Iter_Record'Class;
  Path : Gtk.Tree_Model.Gtk_Tree_Path)
  return Gboolean;
- "test_expand_row" function Handler (Widget : access Gtk_Tree_View_Record'Class;
  Iter : access Gtk.Tree_Iter.Gtk_Tree_Iter_Record'Class;
  Path : Gtk.Tree_Model.Gtk_Tree_Path)
  return Gboolean;
- "toggle_cursor_row" procedure Handler (Widget : access Gtk_Tree_View_Record'Class);

## Types

    type Gtk_Tree_View_Drop_Position is
        (Tree_View_Drop_Before,
         Tree_View_Drop_After,
         Tree_View_Drop_Into_Or_Before,
         Tree_View_Drop_Into_Or_After);

## Subprograms

    procedure Gtk_New
      (Widget             : out    Gtk_Tree_View);

    function Get_Type              return Gtk.Gtk_Type;

| Return the internal value associated with this widget.

    procedure Gtk_New
      (Widget             : out    Gtk_Tree_View;
       Model              : access Gtk.Tree_Model.Gtk_Tree_Model_Record'Class);

    function Get_Model
      (Tree_View          : access Gtk_Tree_View_Record)
       return Gtk.Tree_Model.Gtk_Tree_Model;

| Returns the model the the Gtk_Tree_View is based on. Returns Null if the model is unset.

    procedure Set_Model
      (Tree_View          : access Gtk_Tree_View_Record;
       Model              :        Gtk.Tree_Model.Gtk_Tree_Model);

| Sets the model for a Gtk_Tree_View. 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.

    function Get_Selection
      (Tree_View          : access Gtk_Tree_View_Record)
       return Gtk.Tree_Selection.Gtk_Tree_Selection;

| Gets the Gtk_Tree_Selection associated with Tree_View.

    function Get_Hadjustment
      (Tree_View          : access Gtk_Tree_View_Record)
       return Gtk.Adjustment.Gtk_Adjustment;

| Sets the Gtk_Adjustment for the current horizontal aspect.

    procedure Set_Hadjustment
      (Tree_View          : access Gtk_Tree_View_Record;
       Adjustment         : access Gtk.Adjustment.Gtk_Adjustment_Record'Class);

| Sets the Gtk_Adjustment for the current horizontal aspect.

    function Get_Vadjustment
      (Tree_View          : access Gtk_Tree_View_Record)
       return Gtk.Adjustment.Gtk_Adjustment;

| Gets the Gtk_Adjustment currently being used for the vertical aspect.

    procedure Set_Vadjustment
      (Tree_View          : access Gtk_Tree_View_Record;
       Adjustment         : access Gtk.Adjustment.Gtk_Adjustment_Record'Class);

| Sets the Gtk_Adjustment for the current vertical aspect.

### Column and header operations

    function Get_Headers_Visible
      (Tree_View          : access Gtk_Tree_View_Record)
       return Boolean;

| Returns True if the headers on the Tree_View are visible.

    procedure Set_Headers_Visible
      (Tree_View          : access Gtk_Tree_View_Record;
       Headers_Visible    :        Boolean);

| Sets the the visibility state of the headers.

    procedure Columns_Autosize
      (Tree_View          : access Gtk_Tree_View_Record);

| Resizes all columns to their optimal width.

    procedure Set_Headers_Clickable
      (Tree_View          : access Gtk_Tree_View_Record;
       Setting            :        Boolean);

| Allow the column title buttons to be clicked.

    procedure Set_Rules_Hint
      (Tree_View          : access Gtk_Tree_View_Record;
       Setting            :        Boolean);

This function tells GtkAda that the user interface for your
application requires users to read across tree rows and associate cells with one another. By default, GtkAda will then render the tree with alternating row colors. Do *not* use it just because you prefer the appearance of the ruled tree; that's a question for the theme. Some themes will draw tree rows in alternating colors even when rules are turned off, and users who prefer that appearance all the time can choose those themes. You should call this function only as a *semantic* hint to the theme engine that your tree makes alternating colors useful from a functional standpoint (since it has lots of columns, generally).

    function Get_Rules_Hint
      (Tree_View          : access Gtk_Tree_View_Record)
       return Boolean;

| Get the setting set by Set_Rules_Hint.

### Public Column functions

    function Append_Column
      (Tree_View          : access Gtk_Tree_View_Record;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column)
       return Gint;

| Append Column to the list of columns.

    function Remove_Column
      (Tree_View          : access Gtk_Tree_View_Record;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column)
       return Gint;

| Remove Column from Tree_View. Return value: The number of columns in Tree_View after removing.

    function Insert_Column
      (Tree_View          : access Gtk_Tree_View_Record;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column;
       Position           :        Gint := -1)
       return Gint;

| Insert the Column into the Tree_View at Position. If Position is -1, then the column is inserted at the end. Return the number of columns in Tree_View after insertion.

    function Get_Column
      (Tree_View          : access Gtk_Tree_View_Record;
       N                  :        Gint)
       return Gtk.Tree_View_Column.Gtk_Tree_View_Column;

| Gets the Gtk_Tree_ViewColumn at the given position in the Tree_View.

    function Get_Columns
      (Tree_View          : access Gtk_Tree_View_Record)
       return Gtk.Tree_View_Column.Column_List.Glist;

| Return a list of all the Gtk_Tree_View_Column s currently in Tree_View. The returned list must be freed with g_list_free ().

    procedure Move_Column_After
      (Tree_View          : access Gtk_Tree_View_Record;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column;
       Base_Column        :        Gtk.Tree_View_Column.Gtk_Tree_View_Column);

| Move Column to be after to Base_Column. If Base_Column is Null, then Column is placed in the first position.

    procedure Set_Expander_Column
      (Tree_View          : access Gtk_Tree_View_Record;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column);

| Set the column to draw the expander arrow at. It must be in Tree_View. If Column is Null, then the expander arrow is fixed at the first column.

    function Get_Expander_Column
      (Tree_View          : access Gtk_Tree_View_Record)
       return Gtk.Tree_View_Column.Gtk_Tree_View_Column;

| Return the column that is the current expander column. This column has the expander arrow drawn next to it.

    procedure Scroll_To_Point
      (Tree_View          : access Gtk_Tree_View_Record;
       Tree_X             :        Gint;
       Tree_Y             :        Gint);

| Scroll 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 window coordinates. The Tree_View must be realized before this function is called. If it isn't, you probably want to be using Scroll_To_Cell.

    procedure Scroll_To_Cell
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column;
       Use_Align          :        Boolean;
       Row_Align          :        Gfloat;
       Col_Align          :        Gfloat);

Move 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. Row_Align determines where the row is placed, and Col_align determines where Column is placed. Both are expected to be between 0.0 and 1.0. 0.0 means left/top alignment, 1.0 means right/bottom alignment, 0.5 means center. If Use_Align is False, then the alignment arguments are ignored, and the tree does the minimum amount of work to scroll the cell onto the screen.

    procedure Row_Activated
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column);

| Activate the cell determined by Path and Column.

    procedure Expand_All
      (Tree_View          : access Gtk_Tree_View_Record);

| Recursively expand all nodes in the Tree_View.

    procedure Collapse_All
      (Tree_View          : access Gtk_Tree_View_Record);

| Recursively collapse all visible, expanded nodes in Tree_View.

    function Expand_Row
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path;
       Open_All           :        Boolean)
       return Boolean;

| Open the row so its children are visible Return True if the row existed and had children

    function Collapse_Row
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path)
       return Boolean;

| Collapse a row (hides its child rows, if they exist.)

    function Row_Expanded
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path)
       return Boolean;

| Return True if the node pointed to by Path is expanded in Tree_View.

    procedure Set_Reorderable
      (Tree_View          : access Gtk_Tree_View_Record;
       Reorderable        :        Boolean);

This function is a convenience function to allow you to reorder models
that support the Gtk_Drag_Source_Iface and the Gtk_Drag_Dest_Iface. Both Gtk_Tree_Store and Gtk_List_Store support these. If Reorderable is True, then the user can reorder the model by dragging and dropping columns. The developer can listen to these changes by connecting to the model's signals. This function does not give you any degree of control over the order

- any reorderering is allowed. If more control is needed, you should probably handle drag and drop manually.

    function Get_Reorderable
      (Tree_View          : access Gtk_Tree_View_Record)
       return Boolean;

| Retrieve whether the user can reorder the tree via drag-and-drop. See Set_Reorderable.

    procedure Set_Cursor
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path;
       Focus_Column       :        Gtk.Tree_View_Column.Gtk_Tree_View_Column;
       Start_Editing      :        Boolean);

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 Column is not Null, then focus is given to that column. Additionally, if Column is specified, and Start_Editing is True, then editing should be started in the specified cell. Keyboard focus is given to the widget after this is called. Please note that editing can only happen when the widget is realized.

    procedure Get_Cursor
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               : out    Gtk.Tree_Model.Gtk_Tree_Path;
       Focus_Column       : out    Gtk.Tree_View_Column.Gtk_Tree_View_Column);

| Fills 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 Null.

    function Get_Bin_Window
      (Tree_View          : access Gtk_Tree_View_Record)
       return Gdk.Window.Gdk_Window;

| Return the window that Tree_View renders to. This is used primarily to compare to Get_Window (Event) to confirm that the event on Tree_View is on the right window.

    procedure Get_Path_At_Pos
      (Tree_View          : access Gtk_Tree_View_Record;
       X                  :        Gint;
       Y                  :        Gint;
       Path               : out    Gtk.Tree_Model.Gtk_Tree_Path;
       Column             : out    Gtk.Tree_View_Column.Gtk_Tree_View_Column;
       Cell_X             : out    Gint;
       Cell_Y             : out    Gint;
       Row_Found          : out    Boolean);

Find the path at the point (X, Y) relative to Window.
If Window is null, then the point is found relative to the widget coordinates. This function is expected to be called after an event. It is primarily for things like popup menus. Path will be filled with the Gtk_Tree_Path at that point. It should be freed with Tree_Path_Free. Column will be filled with the column at that point. Cell_X and Cell_Y return the coordinates relative to the cell background (i.e. the background_area passed to gtk_cell_renderer_render()). This function only works if Tree_View is realized. Row_Found is set to True if a row exists at that coordinate.

    procedure Get_Cell_Area
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column;
       Rect               : out    Gdk.Rectangle.Gdk_Rectangle);

Fills the bounding rectangle in tree 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, the Y and Height fields of the rectangle will be filled with 0. If Column is Null, the X and Width fields will be filled with 0. The sum of all cell rects does not cover the entire tree; there are extra pixels in between rows, for example. The returned rectangle is equivalent to the Cell_Area passed to gtk_cell_renderer_render(). This function is only valid if Tree_View is realized.

    procedure Get_Background_Area
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path;
       Column             :        Gtk.Tree_View_Column.Gtk_Tree_View_Column;
       Rect               :        Gdk.Rectangle.Gdk_Rectangle);

Fills the bounding rectangle in tree 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 Y and Height fields of the rectangle will be filled with 0. If Column is Null, the X and Width fields will be filled with 0. The returned rectangle is equivalent to the Background_Area passed to Gtk.Cell_Renderer.Render. These background areas tile to cover the entire tree window (except for the area used for header buttons). Contrast with the cell_area, returned by gtk_tree_view_get_cell_area(), which returns only the cell itself, excluding surrounding borders and the tree expander area.

    procedure Get_Visible_Rect
      (Tree_View          : access Gtk_Tree_View_Record;
       Visible_Rect       : out    Gdk.Rectangle.Gdk_Rectangle);

| Fills Visible_Rect with the currently-visible region of the buffer, in tree coordinates. Convert to widget coordinates with gtk_tree_view_tree_to_widget_coords(). Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire scrollable area of the tree.

    procedure Widget_To_Tree_Coords
      (Tree_View          : access Gtk_Tree_View_Record;
       Wx                 :        Gint;
       Wy                 :        Gint;
       Tx                 : out    Gint;
       Ty                 : out    Gint);

| Converts widget coordinates to coordinates for the tree window (the full scrollable area of the tree).

    procedure Tree_To_Widget_Coords
      (Tree_View          : access Gtk_Tree_View_Record;
       Tx                 :        Gint;
       Ty                 :        Gint;
       Wx                 : out    Gint;
       Wy                 : out    Gint);

| Converts tree coordinates (coordinates in full scrollable area of the tree) to widget coordinates.

    procedure Unset_Rows_Drag_Source
      (Tree_View          : access Gtk_Tree_View_Record);

    procedure Unset_Rows_Drag_Dest
      (Tree_View          : access Gtk_Tree_View_Record);

    function Create_Row_Drag_Icon
      (Tree_View          : access Gtk_Tree_View_Record;
       Path               :        Gtk.Tree_Model.Gtk_Tree_Path)
       return Gdk.Pixmap.Gdk_Pixmap;

    procedure Set_Enable_Search
      (Tree_View          : access Gtk_Tree_View_Record;
       Enable_Search      :        Boolean);

    function Get_Enable_Search
      (Tree_View          : access Gtk_Tree_View_Record)
       return Boolean;

    function Get_Search_Column
      (Tree_View          : access Gtk_Tree_View_Record)
       return Gint;

    procedure Set_Search_Column
      (Tree_View          : access Gtk_Tree_View_Record;
       Column             :        Gint);

[Contents] [Back] [Prev] [Up] [Next] [Forward]