type Gtk_Tree_Selection_Record is new Glib.Object.GObject_Record with private;
type Gtk_Tree_Selection is access all Gtk_Tree_Selection_Record'Class;
Signal_Changed : constant Glib.Signal_Name := "changed";
function Get_Type return Glib.GType;
procedure Set_Mode
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
The_Type | : Gtk_Selection_Mode); |
function Get_Mode
( | Selection | : access Gtk_Tree_Selection_Record'Class) return Gtk_Selection_Mode; |
function Get_Tree_View
( | Selection | : access Gtk_Tree_Selection_Record'Class) return Gtk.Widget.Gtk_Widget; |
function Count_Selected_Rows
( | Selection | : access Gtk_Tree_Selection_Record) return Gint; |
procedure Get_Selected
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
Model | : out Gtk.Tree_Model.Gtk_Tree_Model; | |
Iter | : out Gtk.Tree_Model.Gtk_Tree_Iter); |
procedure Get_Selected_Rows
( | Selection | : access Gtk_Tree_Selection_Record; |
Model | : out Gtk.Tree_Model.Gtk_Tree_Model; | |
Path_List | : out Gtk.Tree_Model.Gtk_Tree_Path_List.Glist); |
procedure Select_Path
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
Path | : Gtk.Tree_Model.Gtk_Tree_Path); |
procedure Unselect_Path
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
Path | : Gtk.Tree_Model.Gtk_Tree_Path); |
function Path_Is_Selected
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
Path | : Gtk.Tree_Model.Gtk_Tree_Path) return Boolean; |
procedure Select_Iter
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
Iter | : Gtk.Tree_Model.Gtk_Tree_Iter); |
procedure Unselect_Iter
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
Iter | : Gtk.Tree_Model.Gtk_Tree_Iter); |
function Iter_Is_Selected
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
Iter | : Gtk.Tree_Model.Gtk_Tree_Iter) return Boolean; |
procedure Select_All
( | Selection | : access Gtk_Tree_Selection_Record'Class); |
procedure Unselect_All
( | Selection | : access Gtk_Tree_Selection_Record'Class); |
procedure Select_Range
( | Selection | : access Gtk_Tree_Selection_Record'Class; |
Start_Path | : Gtk.Tree_Model.Gtk_Tree_Path; | |
End_Path | : Gtk.Tree_Model.Gtk_Tree_Path); |
procedure Unselect_Range
( | Selection | : access Gtk_Tree_Selection_Record; |
Start_Path | : Gtk.Tree_Model.Gtk_Tree_Path; | |
End_Path | : Gtk.Tree_Model.Gtk_Tree_Path); |
The Gtk_Tree_Selection object is a helper object to manage the selection for a Gtk_Tree_View widget. The Gtk_Tree_Selection object is automatically created when a new Gtk_Tree_View widget is created, and cannot exist independentally of this widget. The primary reason the Gtk_Tree_Selection objects exists is for cleanliness of code and API. That is, there is no conceptual reason all these functions could not be methods on the Gtk_Tree_View widget instead of separate function.
The Gtk_Tree_Selection object is gotten from a Gtk_Tree_View by calling Gtk.Tree_View.Get_Selection. It can be manipulated to check the selection status of the tree, as well as select and deselect individual rows.
Selection is done completely view side. As a result, multiple views of the same model can have completely different selections. Additionally, you cannot change the selection of a row on the model that is not currently displayed by the view without expanding its parents first.
One of the important things to remember when monitoring the selection of a view is that the "changed" signal is mostly a hint. That is, it may only emit one signal when a range of rows is selected. Additionally, it may on occasion emit a "changed" signal when nothing has happened (mostly as a result of programmers calling select_row on an already selected row).
Binding from C File version 2.8.17