1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
|
<!-- ##### SECTION Title ##### -->
GtkTree
<!-- ##### SECTION Short_Description ##### -->
A tree widget
<!-- ##### SECTION Long_Description ##### -->
<para>
<warning>
<para>
#GtkTree is deprecated and unsupported. It is known to be
buggy. To use it, you must define the symbol %GTK_ENABLE_BROKEN
prior to including the GTK+ header files. Use #GtkTreeView instead.
</para>
</warning>
The #GtkTree widget is a container that shows users a list of items, in a tree format complete with branches and leafnodes. Branches can be expanded to show their child items, or collapsed to hide them.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
#GtkTreeList for the items to put into a #GtkTree.
</para>
<para>
#GtkScrolledWindow for details on how to scroll around a #GtkTree.
</para>
<!-- ##### STRUCT GtkTree ##### -->
<para>
<programlisting>
struct _GtkTree
{
GtkContainer container;
GList *children;
GtkTree* root_tree; /* owner of selection list */
GtkWidget* tree_owner;
GList *selection;
guint level;
guint indent_value;
guint current_indent;
guint selection_mode : 2;
guint view_mode : 1;
guint view_line : 1;
};
</programlisting>
</para>
<!-- ##### SIGNAL GtkTree::select-child ##### -->
<para>
This signal is emitted by @tree whenever @widget is about to be selected.
</para>
@tree: the object which received the signal.
@widget: The child that is about to be selected.
<!-- ##### SIGNAL GtkTree::selection-changed ##### -->
<para>
This signal is emitted by the root tree whenever the selection changes.
</para>
@tree: the object which received the signal.
<!-- ##### SIGNAL GtkTree::unselect-child ##### -->
<para>
This signal is emitted by @tree whenever @widget is about to be unselected.
</para>
@tree: the object which received the signal.
@widget: The child that is about to be unselected.
<!-- ##### MACRO GTK_IS_ROOT_TREE ##### -->
<para>
A macro that returns a boolean value which indicates if @obj is a root tree or not.
</para>
@obj: A pointer to the #GtkTree. @obj will accept any pointer, but if the pointer does not point to a #GtkTree, the results are undefined.
<!-- ##### MACRO GTK_TREE_ROOT_TREE ##### -->
<para>
A macro that returns the root tree of @obj.
</para>
<para>
If @obj is already a root tree, @obj is cast to #GtkTree and returned.
</para>
@obj: A pointer to the #GtkTree. @obj will accept any pointer, but if the pointer does not point to a #GtkTree, the results are undefined.
<!-- ##### MACRO GTK_TREE_SELECTION_OLD ##### -->
<para>
</para>
@obj:
<!-- ##### ENUM GtkTreeViewMode ##### -->
<para>
</para>
@GTK_TREE_VIEW_LINE:
@GTK_TREE_VIEW_ITEM:
<!-- ##### FUNCTION gtk_tree_new ##### -->
<para>
Creates a new #GtkTree.
</para>
@Returns: A pointer to the newly allocated widget.
<!-- ##### FUNCTION gtk_tree_append ##### -->
<para>
Adds the #GtkTreeItem in @tree_item to the end of the items in @tree.
</para>
@tree: A pointer to a #GtkTree.
@tree_item: A pointer to the #GtkWidget that is to be appended to the tree.
<!-- ##### FUNCTION gtk_tree_prepend ##### -->
<para>
Adds the #GtkTreeItem in @tree_item to the start of the items in @tree.
</para>
@tree: A pointer to a #GtkTree.
@tree_item: A pointer to the #GtkWidget that is to be prepended to the tree.
<!-- ##### FUNCTION gtk_tree_insert ##### -->
<para>
Adds the #GtkTreeItem in @tree_item to the list of items in @tree at the position indicated by @position.
</para>
@tree: A pointer to a #GtkTree.
@tree_item: A pointer to the #GtkWidget that is to be added to the tree.
@position: A #gint that indicates the position in the tree, that the @tree_item is to be added at.
<!-- ##### FUNCTION gtk_tree_remove_items ##### -->
<para>
Removes a list of items from the #GtkTree in @tree.
</para>
<para>
If only one item is to be removed from the #GtkTree, gtk_container_remove() can be used instead.
</para>
<para>
Removing an item from a #GtkTree dereferences the item, and thus usually destroys the item and any subtrees it may contain. If the item is not to be destroyed, use g_object_ref() before removing it.
</para>
@tree: A pointer to a #GtkTree.
@items: A pointer to a #GList that contains the items to be removed.
<!-- ##### FUNCTION gtk_tree_clear_items ##### -->
<para>
Removes the items at positions between @start and @end from the #GtkTree @tree.
</para>
<para>
Removing an item from a #GtkTree dereferences the item, and thus usually destroys the item and any subtrees it may contain. If the item is not to be destroyed, use g_object_ref() before removing it.
</para>
@tree: A pointer to a #GtkTree.
@start: A #gint.
@end: A #gint.
<!-- ##### FUNCTION gtk_tree_select_item ##### -->
<para>
Emits the #select_item signal for the child at position @item, and thus selects it (unless it is unselected in a signal handler).
</para>
@tree: A pointer to a #GtkTree.
@item: A #gint.
<!-- ##### FUNCTION gtk_tree_unselect_item ##### -->
<para>
Emits the #unselect_item for the child at position @item, and thus unselects it.
</para>
@tree: A pointer to a #GtkTree.
@item: A #gint.
<!-- ##### FUNCTION gtk_tree_select_child ##### -->
<para>
Emits the #select_item signal for the child @tree_item, and thus selects it (unless it is unselected in a signal handler).
</para>
@tree: A pointer to a #GtkTree.
@tree_item: A pointer to the #GtkWidget that is to be selected.
<!-- ##### FUNCTION gtk_tree_unselect_child ##### -->
<para>
Emits the #unselect_item signal for the child @tree_item, and thus unselects it.
</para>
@tree: A pointer to a #GtkTree.
@tree_item: A pointer to the #GtkWidget that is to be selected.
<!-- ##### FUNCTION gtk_tree_child_position ##### -->
<para>
Returns the position of @child in the #GtkTree @tree.
</para>
<para>
If @child is not a child of @tree, then -1 is returned.
</para>
@tree: A pointer to a #GtkTree.
@child: A pointer to a #GtkWidget.
@Returns: A #gint.
<!-- ##### FUNCTION gtk_tree_set_selection_mode ##### -->
<para>
Sets the selection mode for the #GtkTree @tree.
</para>
<para>
@mode can be one of
</para>
<itemizedlist>
<listitem>
<para>
%GTK_SELECTION_SINGLE for when only one item can be selected at a time.
</para>
</listitem>
<listitem>
<para>
%GTK_SELECTION_BROWSE for when one item must be selected.
</para>
</listitem>
<listitem>
<para>
%GTK_SELECTION_MULTIPLE for when many items can be selected at once.
</para>
</listitem>
<listitem>
<para>
%GTK_SELECTION_EXTENDED Reserved for later use.
</para>
</listitem>
</itemizedlist>
<para>
The selection mode is only defined for a root tree, as the root tree "owns" the selection.
</para>
<para>
The default mode is %GTK_SELECTION_SINGLE.
</para>
@tree: A pointer to a #GtkTree.
@mode: A #GtkSelectionMode.
<!-- ##### FUNCTION gtk_tree_set_view_mode ##### -->
<para>
Sets the 'viewmode' for the #GtkTree in @tree. The 'viewmode' defines how the tree looks when an item is selected.
</para>
<para>
@mode can be one of:
</para>
<itemizedlist>
<listitem>
<para>
%GTK_TREE_VIEW_LINE : When an item is selected the entire #GtkTreeItem is highlighted.
</para>
</listitem>
<listitem>
<para>
%GTK_TREE_VIEW_ITEM : When an item is selected only the selected item's child widget is highlighted.
</para>
</listitem>
</itemizedlist>
<para>
The default mode is %GTK_TREE_VIEW_LINE.
</para>
@tree: A pointer to a #GtkTree.
@mode: A #GtkTreeViewMode.
<!-- ##### FUNCTION gtk_tree_set_view_lines ##### -->
<para>
Sets whether or not the connecting lines between branches and children are drawn.
</para>
@tree: A pointer to a #GtkTree.
@flag: A #guint, indicating %TRUE, or %FALSE.
<!-- ##### FUNCTION gtk_tree_remove_item ##### -->
<para>
Removes the item @child from the #GtkTree @tree.
</para>
@tree: A pointer to a #GtkTree.
@child: A pointer to the #GtkWidget that is to be removed from the tree.
|