~ubuntu-branches/ubuntu/raring/gtk+2.0/raring-proposed

« back to all changes in this revision

Viewing changes to docs/reference/gtk/tmpl/gtktreemodel.sgml

  • Committer: Package Import Robot
  • Author(s): Sebastien Bacher
  • Date: 2012-02-06 22:03:26 UTC
  • mfrom: (1.14.12)
  • Revision ID: package-import@ubuntu.com-20120206220326-10d7cnkpdpbi9iox
Tags: 2.24.10-0ubuntu1
* New upstream version, dropped patches included in the new version
* debian/patches/090_logging_file_saves.patch:
  - improve the logging of saved filed, thanks Siegfried Gevatter 
    (lp: #920961)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!-- ##### SECTION Title ##### -->
 
2
GtkTreeModel
 
3
 
 
4
<!-- ##### SECTION Short_Description ##### -->
 
5
The tree interface used by GtkTreeView
 
6
 
 
7
<!-- ##### SECTION Long_Description ##### -->
 
8
<para>
 
9
The #GtkTreeModel interface defines a generic tree interface for use by
 
10
the #GtkTreeView widget.  It is an abstract interface, and is designed
 
11
to be usable with any appropriate data structure.  The programmer just
 
12
has to implement this interface on their own data type for it to be
 
13
viewable by a #GtkTreeView widget.
 
14
</para>
 
15
 
 
16
<para>
 
17
The model is represented as a hierarchical tree of strongly-typed,
 
18
columned data.  In other words, the model can be seen as a tree where
 
19
every node has different values depending on which column is being
 
20
queried.  The type of data found in a column is determined by using the
 
21
GType system (ie. #G_TYPE_INT, #GTK_TYPE_BUTTON, #G_TYPE_POINTER, etc.).
 
22
The types are homogeneous per column across all nodes.  It is important
 
23
to note that this interface only provides a way of examining a model and
 
24
observing changes.  The implementation of each individual model decides
 
25
how and if changes are made.
 
26
</para>
 
27
 
 
28
<para>
 
29
In order to make life simpler for programmers who do not need to write
 
30
their own specialized model, two generic models are provided &mdash; the
 
31
#GtkTreeStore and the #GtkListStore.  To use these, the developer simply
 
32
pushes data into these models as necessary.  These models provide the
 
33
data structure as well as all appropriate tree interfaces.  As a result,
 
34
implementing drag and drop, sorting, and storing data is trivial.  For
 
35
the vast majority of trees and lists, these two models are sufficient.
 
36
</para>
 
37
 
 
38
<para>
 
39
Models are accessed on a node/column level of granularity.  One can
 
40
query for the value of a model at a certain node and a certain column
 
41
on that node.  There are two structures used to reference a particular
 
42
node in a model.  They are the #GtkTreePath and the #GtkTreeIter
 
43
<footnote>
 
44
<para>
 
45
Here, <abbrev>iter</abbrev> is short for <quote>iterator</quote>
 
46
</para>
 
47
</footnote>
 
48
Most of the interface consists of operations on a #GtkTreeIter.
 
49
</para>
 
50
 
 
51
<para>
 
52
A path is essentially a potential node.  It is a location on a model
 
53
that may or may not actually correspond to a node on a specific model.
 
54
The #GtkTreePath struct can be converted into either an array of
 
55
unsigned integers or a string.  The string form is a list of numbers
 
56
separated by a colon.  Each number refers to the offset at that level.
 
57
Thus, the path <quote>0</quote> refers to the root node and the path
 
58
<quote>2:4</quote> refers to the fifth child of the third node.
 
59
</para>
 
60
 
 
61
<para>
 
62
By contrast, a #GtkTreeIter is a reference to a specific node on a
 
63
specific model.  It is a generic struct with an integer and three
 
64
generic pointers.  These are filled in by the model in a model-specific
 
65
way.  One can convert a path to an iterator by calling
 
66
gtk_tree_model_get_iter().  These iterators are the primary way of
 
67
accessing a model and are similar to the iterators used by
 
68
#GtkTextBuffer.  They are generally statically allocated on the stack and
 
69
only used for a short time.  The model interface defines a set of
 
70
operations using them for navigating the model.
 
71
</para>
 
72
 
 
73
<para>
 
74
It is expected that models fill in the iterator with private data.  For
 
75
example, the #GtkListStore model, which is internally a simple linked
 
76
list, stores a list node in one of the pointers.  The #GtkTreeModelSort
 
77
stores an array and an offset in two of the pointers.  Additionally,
 
78
there is an integer field.  This field is generally filled with a unique
 
79
stamp per model.  This stamp is for catching errors resulting from using
 
80
invalid iterators with a model.
 
81
</para>
 
82
 
 
83
<para>
 
84
The lifecycle of an iterator can be a little confusing at first.
 
85
Iterators are expected to always be valid for as long as the model is
 
86
unchanged (and doesn't emit a signal).  The model is considered to own
 
87
all outstanding iterators and nothing needs to be done to free them from
 
88
the user's point of view.  Additionally, some models guarantee that an
 
89
iterator is valid for as long as the node it refers to is valid (most
 
90
notably the #GtkTreeStore and #GtkListStore).  Although generally
 
91
uninteresting, as one always has to allow for the case where iterators
 
92
do not persist beyond a signal, some very important performance
 
93
enhancements were made in the sort model.  As a result, the
 
94
#GTK_TREE_MODEL_ITERS_PERSIST flag was added to indicate this behavior.
 
95
</para>
 
96
 
 
97
<para>
 
98
To help show some common operation of a model, some examples are
 
99
provided.  The first example shows three ways of getting the iter at the
 
100
location <quote>3:2:5</quote>.  While the first method shown is easier,
 
101
the second is much more common, as you often get paths from callbacks.
 
102
</para>
 
103
<para>
 
104
<example>
 
105
<title>Acquiring a <structname>GtkTreeIter</structname></title>
 
106
<programlisting>
 
107
/* Three ways of getting the iter pointing to the location
 
108
 */
 
109
{
 
110
  GtkTreePath *path;
 
111
  GtkTreeIter iter;
 
112
  GtkTreeIter parent_iter;
 
113
 
 
114
  /* get the iterator from a string */
 
115
  gtk_tree_model_get_iter_from_string (model, &amp;iter, "3:2:5");
 
116
 
 
117
  /* get the iterator from a path */
 
118
  path = gtk_tree_path_new_from_string ("3:2:5");
 
119
  gtk_tree_model_get_iter (model, &amp;iter, path);
 
120
  gtk_tree_path_free (path);
 
121
 
 
122
 
 
123
  /* walk the tree to find the iterator */
 
124
  gtk_tree_model_iter_nth_child (model, &amp;iter, NULL, 3);
 
125
  parent_iter = iter;
 
126
  gtk_tree_model_iter_nth_child (model, &amp;iter, &amp;parent_iter, 2);
 
127
  parent_iter = iter;
 
128
  gtk_tree_model_iter_nth_child (model, &amp;iter, &amp;parent_iter, 5);
 
129
}
 
130
</programlisting>
 
131
</example>
 
132
</para>
 
133
 
 
134
<para>
 
135
This second example shows a quick way of iterating through a list and
 
136
getting a string and an integer from each row.  The
 
137
<function>populate_model</function> function used below is not shown, as
 
138
it is specific to the #GtkListStore.  For information on how to write
 
139
such a function, see the #GtkListStore documentation.
 
140
<example>
 
141
<title>Reading data from a <structname>GtkTreeModel</structname></title>
 
142
<programlisting>
 
143
enum
 
144
{
 
145
  STRING_COLUMN,
 
146
  INT_COLUMN,
 
147
  N_COLUMNS
 
148
};
 
149
 
 
150
{
 
151
  GtkTreeModel *list_store;
 
152
  GtkTreeIter iter;
 
153
  gboolean valid;
 
154
  gint row_count = 0;
 
155
 
 
156
  /* make a new list_store */
 
157
  list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_INT);
 
158
 
 
159
  /* Fill the list store with data */
 
160
  populate_model (list_store);
 
161
 
 
162
  /* Get the first iter in the list */
 
163
  valid = gtk_tree_model_get_iter_first (list_store, &amp;iter);
 
164
 
 
165
  while (valid)
 
166
    {
 
167
      /* Walk through the list, reading each row */
 
168
      gchar *str_data;
 
169
      gint   int_data;
 
170
 
 
171
      /* Make sure you terminate calls to gtk_tree_model_get(<!-- -->)
 
172
       * with a '-1' value
 
173
       */
 
174
      gtk_tree_model_get (list_store, &amp;iter, 
 
175
                          STRING_COLUMN, &amp;str_data,
 
176
                          INT_COLUMN, &amp;int_data,
 
177
                          -1);
 
178
 
 
179
      /* Do something with the data */
 
180
      g_print ("Row &percnt;d: (&percnt;s,&percnt;d)\n", row_count, str_data, int_data);
 
181
      g_free (str_data);
 
182
 
 
183
      row_count ++;
 
184
      valid = gtk_tree_model_iter_next (list_store, &amp;iter);
 
185
    }
 
186
}
 
187
</programlisting>
 
188
</example>
 
189
</para>
 
190
 
 
191
<!-- ##### SECTION See_Also ##### -->
 
192
<para>
 
193
#GtkTreeView, #GtkTreeStore, #GtkListStore, <link linkend="gtk-GtkTreeView-drag-and-drop">GtkTreeDnd</link>, #GtkTreeSortable
 
194
</para>
 
195
 
 
196
<!-- ##### SECTION Stability_Level ##### -->
 
197
 
 
198
 
 
199
<!-- ##### SECTION Image ##### -->
 
200
 
 
201
 
 
202
<!-- ##### STRUCT GtkTreeModel ##### -->
 
203
<para>
 
204
 
 
205
</para>
 
206
 
 
207
 
 
208
<!-- ##### SIGNAL GtkTreeModel::row-changed ##### -->
 
209
<para>
 
210
 
 
211
</para>
 
212
 
 
213
@treemodel: the object which received the signal.
 
214
@arg1: 
 
215
@arg2: 
 
216
 
 
217
<!-- ##### SIGNAL GtkTreeModel::row-deleted ##### -->
 
218
<para>
 
219
 
 
220
</para>
 
221
 
 
222
@treemodel: the object which received the signal.
 
223
@arg1: 
 
224
 
 
225
<!-- ##### SIGNAL GtkTreeModel::row-has-child-toggled ##### -->
 
226
<para>
 
227
 
 
228
</para>
 
229
 
 
230
@treemodel: the object which received the signal.
 
231
@arg1: 
 
232
@arg2: 
 
233
 
 
234
<!-- ##### SIGNAL GtkTreeModel::row-inserted ##### -->
 
235
<para>
 
236
 
 
237
</para>
 
238
 
 
239
@treemodel: the object which received the signal.
 
240
@arg1: 
 
241
@arg2: 
 
242
 
 
243
<!-- ##### SIGNAL GtkTreeModel::rows-reordered ##### -->
 
244
<para>
 
245
 
 
246
</para>
 
247
 
 
248
@treemodel: the object which received the signal.
 
249
@arg1: 
 
250
@arg2: 
 
251
@arg3: 
 
252
 
 
253
<!-- ##### STRUCT GtkTreeIter ##### -->
 
254
<para>
 
255
The <structname>GtkTreeIter</structname> is the primary structure for
 
256
accessing a structure.  Models are expected to put a unique integer in
 
257
the <structfield>stamp</structfield> member, and put model-specific
 
258
data in the three <structfield>user_data</structfield> members.
 
259
</para>
 
260
 
 
261
 
 
262
<!-- ##### STRUCT GtkTreePath ##### -->
 
263
<para>
 
264
 
 
265
</para>
 
266
 
 
267
 
 
268
<!-- ##### STRUCT GtkTreeRowReference ##### -->
 
269
<para>
 
270
 
 
271
</para>
 
272
 
 
273
 
 
274
<!-- ##### STRUCT GtkTreeModelIface ##### -->
 
275
<para>
 
276
 
 
277
</para>
 
278
 
 
279
@g_iface: 
 
280
@row_changed: 
 
281
@row_inserted: 
 
282
@row_has_child_toggled: 
 
283
@row_deleted: 
 
284
@rows_reordered: 
 
285
@get_flags: 
 
286
@get_n_columns: 
 
287
@get_column_type: 
 
288
@get_iter: 
 
289
@get_path: 
 
290
@get_value: 
 
291
@iter_next: 
 
292
@iter_children: 
 
293
@iter_has_child: 
 
294
@iter_n_children: 
 
295
@iter_nth_child: 
 
296
@iter_parent: 
 
297
@ref_node: 
 
298
@unref_node: 
 
299
 
 
300
<!-- ##### USER_FUNCTION GtkTreeModelForeachFunc ##### -->
 
301
<para>
 
302
 
 
303
</para>
 
304
 
 
305
@model: The #GtkTreeModel currently being iterated
 
306
@path: The current #GtkTreePath
 
307
@iter: The current #GtkTreeIter
 
308
@data: The user data passed to gtk_tree_model_foreach()
 
309
@Returns: %TRUE to stop iterating, %FALSE to continue.
 
310
 
 
311
 
 
312
<!-- ##### ENUM GtkTreeModelFlags ##### -->
 
313
<para>
 
314
These flags indicate various properties of a #GtkTreeModel.  They are
 
315
returned by gtk_tree_model_get_flags(), and must be static for the
 
316
lifetime of the object.  A more complete description of
 
317
#GTK_TREE_MODEL_ITERS_PERSIST can be found in the overview of this
 
318
section.
 
319
</para>
 
320
 
 
321
@GTK_TREE_MODEL_ITERS_PERSIST: Iterators survive all signals emitted by the tree.
 
322
@GTK_TREE_MODEL_LIST_ONLY: The model is a list only, and never has children
 
323
 
 
324
<!-- ##### FUNCTION gtk_tree_path_new ##### -->
 
325
<para>
 
326
 
 
327
</para>
 
328
 
 
329
@void: 
 
330
@Returns: 
 
331
 
 
332
 
 
333
<!-- ##### FUNCTION gtk_tree_path_new_from_string ##### -->
 
334
<para>
 
335
 
 
336
</para>
 
337
 
 
338
@path: 
 
339
@Returns: 
 
340
 
 
341
 
 
342
<!-- ##### FUNCTION gtk_tree_path_new_from_indices ##### -->
 
343
<para>
 
344
 
 
345
</para>
 
346
 
 
347
@first_index: 
 
348
@...: 
 
349
@Returns: 
 
350
 
 
351
 
 
352
<!-- ##### FUNCTION gtk_tree_path_to_string ##### -->
 
353
<para>
 
354
 
 
355
</para>
 
356
 
 
357
@path: 
 
358
@Returns: 
 
359
 
 
360
 
 
361
<!-- ##### FUNCTION gtk_tree_path_new_first ##### -->
 
362
<para>
 
363
 
 
364
</para>
 
365
 
 
366
@void: 
 
367
@Returns: 
 
368
 
 
369
 
 
370
<!-- ##### MACRO gtk_tree_path_new_root ##### -->
 
371
<para>
 
372
An alternate name for gtk_tree_path_new_first() provided for
 
373
compatibility reasons.
 
374
</para>
 
375
 
 
376
@Returns: A new #GtkTreePath.
 
377
@Deprecated: Use gtk_tree_path_new_first() instead.
 
378
 
 
379
 
 
380
<!-- ##### FUNCTION gtk_tree_path_append_index ##### -->
 
381
<para>
 
382
 
 
383
</para>
 
384
 
 
385
@path: 
 
386
@index_: 
 
387
 
 
388
 
 
389
<!-- ##### FUNCTION gtk_tree_path_prepend_index ##### -->
 
390
<para>
 
391
 
 
392
</para>
 
393
 
 
394
@path: 
 
395
@index_: 
 
396
 
 
397
 
 
398
<!-- ##### FUNCTION gtk_tree_path_get_depth ##### -->
 
399
<para>
 
400
 
 
401
</para>
 
402
 
 
403
@path: 
 
404
@Returns: 
 
405
 
 
406
 
 
407
<!-- ##### FUNCTION gtk_tree_path_get_indices ##### -->
 
408
<para>
 
409
 
 
410
</para>
 
411
 
 
412
@path: 
 
413
@Returns: 
 
414
 
 
415
 
 
416
<!-- ##### FUNCTION gtk_tree_path_get_indices_with_depth ##### -->
 
417
<para>
 
418
 
 
419
</para>
 
420
 
 
421
@path: 
 
422
@depth: 
 
423
@Returns: 
 
424
 
 
425
 
 
426
<!-- ##### FUNCTION gtk_tree_path_free ##### -->
 
427
<para>
 
428
 
 
429
</para>
 
430
 
 
431
@path: 
 
432
 
 
433
 
 
434
<!-- ##### FUNCTION gtk_tree_path_copy ##### -->
 
435
<para>
 
436
 
 
437
</para>
 
438
 
 
439
@path: 
 
440
@Returns: 
 
441
 
 
442
 
 
443
<!-- ##### FUNCTION gtk_tree_path_compare ##### -->
 
444
<para>
 
445
 
 
446
</para>
 
447
 
 
448
@a: 
 
449
@b: 
 
450
@Returns: 
 
451
 
 
452
 
 
453
<!-- ##### FUNCTION gtk_tree_path_next ##### -->
 
454
<para>
 
455
 
 
456
</para>
 
457
 
 
458
@path: 
 
459
 
 
460
 
 
461
<!-- ##### FUNCTION gtk_tree_path_prev ##### -->
 
462
<para>
 
463
 
 
464
</para>
 
465
 
 
466
@path: 
 
467
@Returns: 
 
468
 
 
469
 
 
470
<!-- ##### FUNCTION gtk_tree_path_up ##### -->
 
471
<para>
 
472
 
 
473
</para>
 
474
 
 
475
@path: 
 
476
@Returns: 
 
477
 
 
478
 
 
479
<!-- ##### FUNCTION gtk_tree_path_down ##### -->
 
480
<para>
 
481
 
 
482
</para>
 
483
 
 
484
@path: 
 
485
 
 
486
 
 
487
<!-- ##### FUNCTION gtk_tree_path_is_ancestor ##### -->
 
488
<para>
 
489
 
 
490
</para>
 
491
 
 
492
@path: 
 
493
@descendant: 
 
494
@Returns: 
 
495
 
 
496
 
 
497
<!-- ##### FUNCTION gtk_tree_path_is_descendant ##### -->
 
498
<para>
 
499
 
 
500
</para>
 
501
 
 
502
@path: 
 
503
@ancestor: 
 
504
@Returns: 
 
505
 
 
506
 
 
507
<!-- ##### FUNCTION gtk_tree_row_reference_new ##### -->
 
508
<para>
 
509
 
 
510
</para>
 
511
 
 
512
@model: 
 
513
@path: 
 
514
@Returns: 
 
515
 
 
516
 
 
517
<!-- ##### FUNCTION gtk_tree_row_reference_new_proxy ##### -->
 
518
<para>
 
519
 
 
520
</para>
 
521
 
 
522
@proxy: 
 
523
@model: 
 
524
@path: 
 
525
@Returns: 
 
526
 
 
527
 
 
528
<!-- ##### FUNCTION gtk_tree_row_reference_get_model ##### -->
 
529
<para>
 
530
 
 
531
</para>
 
532
 
 
533
@reference: 
 
534
@Returns: 
 
535
 
 
536
 
 
537
<!-- ##### FUNCTION gtk_tree_row_reference_get_path ##### -->
 
538
<para>
 
539
 
 
540
</para>
 
541
 
 
542
@reference: 
 
543
@Returns: 
 
544
 
 
545
 
 
546
<!-- ##### FUNCTION gtk_tree_row_reference_valid ##### -->
 
547
<para>
 
548
 
 
549
</para>
 
550
 
 
551
@reference: 
 
552
@Returns: 
 
553
 
 
554
 
 
555
<!-- ##### FUNCTION gtk_tree_row_reference_free ##### -->
 
556
<para>
 
557
 
 
558
</para>
 
559
 
 
560
@reference: 
 
561
 
 
562
 
 
563
<!-- ##### FUNCTION gtk_tree_row_reference_copy ##### -->
 
564
<para>
 
565
 
 
566
</para>
 
567
 
 
568
@reference: 
 
569
@Returns: 
 
570
 
 
571
 
 
572
<!-- ##### FUNCTION gtk_tree_row_reference_inserted ##### -->
 
573
<para>
 
574
 
 
575
</para>
 
576
 
 
577
@proxy: 
 
578
@path: 
 
579
 
 
580
 
 
581
<!-- ##### FUNCTION gtk_tree_row_reference_deleted ##### -->
 
582
<para>
 
583
 
 
584
</para>
 
585
 
 
586
@proxy: 
 
587
@path: 
 
588
 
 
589
 
 
590
<!-- ##### FUNCTION gtk_tree_row_reference_reordered ##### -->
 
591
<para>
 
592
 
 
593
</para>
 
594
 
 
595
@proxy: 
 
596
@path: 
 
597
@iter: 
 
598
@new_order: 
 
599
 
 
600
 
 
601
<!-- ##### FUNCTION gtk_tree_iter_copy ##### -->
 
602
<para>
 
603
 
 
604
</para>
 
605
 
 
606
@iter: 
 
607
@Returns: 
 
608
 
 
609
 
 
610
<!-- ##### FUNCTION gtk_tree_iter_free ##### -->
 
611
<para>
 
612
 
 
613
</para>
 
614
 
 
615
@iter: 
 
616
 
 
617
 
 
618
<!-- ##### FUNCTION gtk_tree_model_get_flags ##### -->
 
619
<para>
 
620
 
 
621
</para>
 
622
 
 
623
@tree_model: 
 
624
@Returns: 
 
625
 
 
626
 
 
627
<!-- ##### FUNCTION gtk_tree_model_get_n_columns ##### -->
 
628
<para>
 
629
 
 
630
</para>
 
631
 
 
632
@tree_model: 
 
633
@Returns: 
 
634
 
 
635
 
 
636
<!-- ##### FUNCTION gtk_tree_model_get_column_type ##### -->
 
637
<para>
 
638
 
 
639
</para>
 
640
 
 
641
@tree_model: 
 
642
@index_: 
 
643
@Returns: 
 
644
 
 
645
 
 
646
<!-- ##### FUNCTION gtk_tree_model_get_iter ##### -->
 
647
<para>
 
648
 
 
649
</para>
 
650
 
 
651
@tree_model: 
 
652
@iter: 
 
653
@path: 
 
654
@Returns: 
 
655
 
 
656
 
 
657
<!-- ##### FUNCTION gtk_tree_model_get_iter_from_string ##### -->
 
658
<para>
 
659
 
 
660
</para>
 
661
 
 
662
@tree_model: 
 
663
@iter: 
 
664
@path_string: 
 
665
@Returns: 
 
666
 
 
667
 
 
668
<!-- ##### FUNCTION gtk_tree_model_get_iter_first ##### -->
 
669
<para>
 
670
 
 
671
</para>
 
672
 
 
673
@tree_model: 
 
674
@iter: 
 
675
@Returns: 
 
676
 
 
677
 
 
678
<!-- ##### MACRO gtk_tree_model_get_iter_root ##### -->
 
679
<para>
 
680
A alternate name for gtk_tree_model_get_iter_first() provided for
 
681
compatibility reasons; this macro will be deprecated in future
 
682
versions of GTK+.
 
683
</para>
 
684
 
 
685
@tree_model:  A #GtkTreeModel.
 
686
@iter: uninitialized #GtkTreeIter.
 
687
@Returns:  %TRUE, if @iter was set.
 
688
 
 
689
 
 
690
<!-- ##### FUNCTION gtk_tree_model_get_path ##### -->
 
691
<para>
 
692
 
 
693
</para>
 
694
 
 
695
@tree_model: 
 
696
@iter: 
 
697
@Returns: 
 
698
 
 
699
 
 
700
<!-- ##### FUNCTION gtk_tree_model_get_value ##### -->
 
701
<para>
 
702
 
 
703
</para>
 
704
 
 
705
@tree_model: 
 
706
@iter: 
 
707
@column: 
 
708
@value: 
 
709
 
 
710
 
 
711
<!-- ##### FUNCTION gtk_tree_model_iter_next ##### -->
 
712
<para>
 
713
 
 
714
</para>
 
715
 
 
716
@tree_model: 
 
717
@iter: 
 
718
@Returns: 
 
719
 
 
720
 
 
721
<!-- ##### FUNCTION gtk_tree_model_iter_children ##### -->
 
722
<para>
 
723
 
 
724
</para>
 
725
 
 
726
@tree_model: 
 
727
@iter: 
 
728
@parent: 
 
729
@Returns: 
 
730
 
 
731
 
 
732
<!-- ##### FUNCTION gtk_tree_model_iter_has_child ##### -->
 
733
<para>
 
734
 
 
735
</para>
 
736
 
 
737
@tree_model: 
 
738
@iter: 
 
739
@Returns: 
 
740
 
 
741
 
 
742
<!-- ##### FUNCTION gtk_tree_model_iter_n_children ##### -->
 
743
<para>
 
744
 
 
745
</para>
 
746
 
 
747
@tree_model: 
 
748
@iter: 
 
749
@Returns: 
 
750
 
 
751
 
 
752
<!-- ##### FUNCTION gtk_tree_model_iter_nth_child ##### -->
 
753
<para>
 
754
 
 
755
</para>
 
756
 
 
757
@tree_model: 
 
758
@iter: 
 
759
@parent: 
 
760
@n: 
 
761
@Returns: 
 
762
 
 
763
 
 
764
<!-- ##### FUNCTION gtk_tree_model_iter_parent ##### -->
 
765
<para>
 
766
 
 
767
</para>
 
768
 
 
769
@tree_model: 
 
770
@iter: 
 
771
@child: 
 
772
@Returns: 
 
773
 
 
774
 
 
775
<!-- ##### FUNCTION gtk_tree_model_get_string_from_iter ##### -->
 
776
<para>
 
777
 
 
778
</para>
 
779
 
 
780
@tree_model: 
 
781
@iter: 
 
782
@Returns: 
 
783
 
 
784
 
 
785
<!-- ##### FUNCTION gtk_tree_model_ref_node ##### -->
 
786
<para>
 
787
 
 
788
</para>
 
789
 
 
790
@tree_model: 
 
791
@iter: 
 
792
 
 
793
 
 
794
<!-- ##### FUNCTION gtk_tree_model_unref_node ##### -->
 
795
<para>
 
796
 
 
797
</para>
 
798
 
 
799
@tree_model: 
 
800
@iter: 
 
801
 
 
802
 
 
803
<!-- ##### FUNCTION gtk_tree_model_get ##### -->
 
804
<para>
 
805
 
 
806
</para>
 
807
 
 
808
@tree_model: 
 
809
@iter: 
 
810
@...: 
 
811
 
 
812
 
 
813
<!-- ##### FUNCTION gtk_tree_model_get_valist ##### -->
 
814
<para>
 
815
 
 
816
</para>
 
817
 
 
818
@tree_model: 
 
819
@iter: 
 
820
@var_args: 
 
821
 
 
822
 
 
823
<!-- ##### FUNCTION gtk_tree_model_foreach ##### -->
 
824
<para>
 
825
 
 
826
</para>
 
827
 
 
828
@model: 
 
829
@func: 
 
830
@user_data: 
 
831
 
 
832
 
 
833
<!-- ##### FUNCTION gtk_tree_model_row_changed ##### -->
 
834
<para>
 
835
 
 
836
</para>
 
837
 
 
838
@tree_model: 
 
839
@path: 
 
840
@iter: 
 
841
 
 
842
 
 
843
<!-- ##### FUNCTION gtk_tree_model_row_inserted ##### -->
 
844
<para>
 
845
 
 
846
</para>
 
847
 
 
848
@tree_model: 
 
849
@path: 
 
850
@iter: 
 
851
 
 
852
 
 
853
<!-- ##### FUNCTION gtk_tree_model_row_has_child_toggled ##### -->
 
854
<para>
 
855
 
 
856
</para>
 
857
 
 
858
@tree_model: 
 
859
@path: 
 
860
@iter: 
 
861
 
 
862
 
 
863
<!-- ##### FUNCTION gtk_tree_model_row_deleted ##### -->
 
864
<para>
 
865
 
 
866
</para>
 
867
 
 
868
@tree_model: 
 
869
@path: 
 
870
 
 
871
 
 
872
<!-- ##### FUNCTION gtk_tree_model_rows_reordered ##### -->
 
873
<para>
 
874
 
 
875
</para>
 
876
 
 
877
@tree_model: 
 
878
@path: 
 
879
@iter: 
 
880
@new_order: 
 
881
 
 
882