Class
GtkTreeStore
Description [src]
class Gtk.TreeStore : GObject.Object
implements Gtk.Buildable, Gtk.TreeDragDest, Gtk.TreeDragSource, Gtk.TreeModel, Gtk.TreeSortable {
GtkTreeStorePrivate* priv
}
The GtkTreeStore
object is a list model for use with a GtkTreeView
widget. It implements the GtkTreeModel
interface, and consequentially,
can use all of the methods available there. It also implements the
GtkTreeSortable
interface so it can be sorted by the view. Finally,
it also implements the tree
[drag and drop][gtk3-GtkTreeView-drag-and-drop] interfaces.
GtkTreeStore as GtkBuildable
The GtkTreeStore implementation of the GtkBuildable
interface allows
to specify the model columns with a <columns>
element that may contain
multiple <column>
elements, each specifying one model column. The “type”
attribute specifies the data type for the column.
An example of a UI Definition fragment for a tree store:
<object class="GtkTreeStore">
<columns>
<column type="gchararray"/>
<column type="gchararray"/>
<column type="gint"/>
</columns>
</object>
Constructors
gtk_tree_store_new
Creates a new tree store as with n_columns
columns each of the types passed
in. Note that only types derived from standard GObject fundamental types
are supported.
Instance methods
gtk_tree_store_append
Appends a new row to tree_store
. If parent
is non-NULL
, then it will append the
new row after the last child of parent
, otherwise it will append a row to
the top level. iter
will be changed to point to this new row. The row will
be empty after this function is called. To fill in values, you need to call
gtk_tree_store_set()
or gtk_tree_store_set_value().
gtk_tree_store_insert
Creates a new row at position
. If parent is non-NULL
, then the row will be
made a child of parent
. Otherwise, the row will be created at the toplevel.
If position
is -1 or is larger than the number of rows at that level, then
the new row will be inserted to the end of the list. iter
will be changed
to point to this new row. The row will be empty after this function is
called. To fill in values, you need to call gtk_tree_store_set()
or gtk_tree_store_set_value().
gtk_tree_store_insert_after
Inserts a new row after sibling
. If sibling
is NULL
, then the row will be
prepended to parent
’s children. If parent
and sibling
are NULL
, then
the row will be prepended to the toplevel. If both sibling
and parent
are
set, then parent
must be the parent of sibling
. When sibling
is set,
parent
is optional.
gtk_tree_store_insert_before
Inserts a new row before sibling
. If sibling
is NULL
, then the row will
be appended to parent
’s children. If parent
and sibling
are NULL
, then
the row will be appended to the toplevel. If both sibling
and parent
are
set, then parent
must be the parent of sibling
. When sibling
is set,
parent
is optional.
gtk_tree_store_insert_with_values
Creates a new row at position
. iter
will be changed to point to this
new row. If position
is -1, or larger than the number of rows on the list, then
the new row will be appended to the list. The row will be filled with
the values given to this function.
since: 2.10
gtk_tree_store_insert_with_valuesv
A variant of gtk_tree_store_insert_with_values()
which takes
the columns and values as two arrays, instead of varargs. This
function is mainly intended for language bindings.
since: 2.10
gtk_tree_store_is_ancestor
Returns TRUE
if iter
is an ancestor of descendant
. That is, iter
is the
parent (or grandparent or great-grandparent) of descendant
.
gtk_tree_store_iter_depth
Returns the depth of iter
. This will be 0 for anything on the root level, 1
for anything down a level, etc.
gtk_tree_store_move_after
Moves iter
in tree_store
to the position after position
. iter
and
position
should be in the same level. Note that this function only
works with unsorted stores. If position
is NULL
, iter
will be moved
to the start of the level.
since: 2.2
gtk_tree_store_move_before
Moves iter
in tree_store
to the position before position
. iter
and
position
should be in the same level. Note that this function only
works with unsorted stores. If position
is NULL
, iter
will be
moved to the end of the level.
since: 2.2
gtk_tree_store_prepend
Prepends a new row to tree_store
. If parent
is non-NULL
, then it will prepend
the new row before the first child of parent
, otherwise it will prepend a row
to the top level. iter
will be changed to point to this new row. The row
will be empty after this function is called. To fill in values, you need to
call gtk_tree_store_set()
or gtk_tree_store_set_value().
gtk_tree_store_remove
Removes iter
from tree_store
. After being removed, iter
is set to the
next valid row at that level, or invalidated if it previously pointed to the
last one.
gtk_tree_store_reorder
Reorders the children of parent
in tree_store
to follow the order
indicated by new_order
. Note that this function only works with
unsorted stores.
since: 2.2
gtk_tree_store_set
Sets the value of one or more cells in the row referenced by iter
.
The variable argument list should contain integer column numbers,
each column number followed by the value to be set.
The list is terminated by a -1. For example, to set column 0 with type
G_TYPE_STRING
to “Foo”, you would write
gtk_tree_store_set (store, iter, 0, "Foo", -1)
.
gtk_tree_store_set_column_types
This function is meant primarily for GObjects
that inherit from
GtkTreeStore
, and should only be used when constructing a new
GtkTreeStore
. It will not function after a row has been added,
or a method on the GtkTreeModel
interface is called.
gtk_tree_store_set_valist
See gtk_tree_store_set(); this version takes a va_list for use by language bindings.
gtk_tree_store_set_value
Sets the data in the cell specified by iter
and column
.
The type of value
must be convertible to the type of the column.
gtk_tree_store_set_valuesv
A variant of gtk_tree_store_set_valist()
which takes
the columns and values as two arrays, instead of varargs. This
function is mainly intended for language bindings or in case
the number of columns to change is not known until run-time.
since: 2.12
gtk_tree_store_swap
Swaps a
and b
in the same level of tree_store
. Note that this function
only works with unsorted stores.
since: 2.2
Methods inherited from GtkBuildable (10)
gtk_buildable_add_child
Adds a child to buildable
. type
is an optional string
describing how the child should be added.
since: 2.12
gtk_buildable_construct_child
Constructs a child of buildable
with the name name
.
since: 2.12
gtk_buildable_custom_finished
This is similar to gtk_buildable_parser_finished()
but is
called once for each custom tag handled by the buildable
.
since: 2.12
gtk_buildable_custom_tag_end
This is called at the end of each custom element handled by the buildable.
since: 2.12
gtk_buildable_custom_tag_start
This is called for each unknown element under <child>
.
since: 2.12
gtk_buildable_get_internal_child
Get the internal child called childname
of the buildable
object.
since: 2.12
gtk_buildable_get_name
Gets the name of the buildable
object.
since: 2.12
gtk_buildable_parser_finished
Called when the builder finishes the parsing of a
[GtkBuilder UI definition][BUILDER-UI].
Note that this will be called once for each time
gtk_builder_add_from_file()
or gtk_builder_add_from_string()
is called on a builder.
since: 2.12
gtk_buildable_set_buildable_property
Sets the property name name
to value
on the buildable
object.
since: 2.12
gtk_buildable_set_name
Sets the name of the buildable
object.
since: 2.12
Methods inherited from GtkTreeDragDest (2)
gtk_tree_drag_dest_drag_data_received
Asks the GtkTreeDragDest
to insert a row before the path dest
,
deriving the contents of the row from selection_data
. If dest
is
outside the tree so that inserting before it is impossible, FALSE
will be returned. Also, FALSE
may be returned if the new row is
not created for some model-specific reason. Should robustly handle
a dest
no longer found in the model!
gtk_tree_drag_dest_row_drop_possible
Determines whether a drop is possible before the given dest_path
,
at the same depth as dest_path
. i.e., can we drop the data in
selection_data
at that location. dest_path
does not have to
exist; the return value will almost certainly be FALSE
if the
parent of dest_path
doesn’t exist, though.
Methods inherited from GtkTreeDragSource (3)
gtk_tree_drag_source_drag_data_delete
Asks the GtkTreeDragSource
to delete the row at path
, because
it was moved somewhere else via drag-and-drop. Returns FALSE
if the deletion fails because path
no longer exists, or for
some model-specific reason. Should robustly handle a path
no
longer found in the model!
gtk_tree_drag_source_drag_data_get
Asks the GtkTreeDragSource
to fill in selection_data
with a
representation of the row at path
. selection_data
->target gives
the required type of the data. Should robustly handle a path
no
longer found in the model!
gtk_tree_drag_source_row_draggable
Asks the GtkTreeDragSource
whether a particular row can be used as
the source of a DND operation. If the source doesn’t implement
this interface, the row is assumed draggable.
Methods inherited from GtkTreeModel (28)
Please see GtkTreeModel for a full list of methods.
Methods inherited from GtkTreeSortable (6)
gtk_tree_sortable_get_sort_column_id
Fills in sort_column_id
and order
with the current sort column and the
order. It returns TRUE
unless the sort_column_id
is
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID
or
GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID
.
gtk_tree_sortable_has_default_sort_func
Returns TRUE
if the model has a default sort function. This is used
primarily by GtkTreeViewColumns in order to determine if a model can
go back to the default state, or not.
gtk_tree_sortable_set_default_sort_func
Sets the default comparison function used when sorting to be sort_func
.
If the current sort column id of sortable
is
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID
, then the model will sort using
this function.
gtk_tree_sortable_set_sort_column_id
Sets the current sort column to be sort_column_id
. The sortable
will
resort itself to reflect this change, after emitting a
GtkTreeSortable::sort-column-changed
signal. sort_column_id
may either be
a regular column id, or one of the following special values:.
gtk_tree_sortable_set_sort_func
Sets the comparison function used when sorting to be sort_func
. If the
current sort column id of sortable
is the same as sort_column_id
, then
the model will sort using this function.
gtk_tree_sortable_sort_column_changed
Emits a GtkTreeSortable::sort-column-changed
signal on sortable
.
Signals
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.
Signals inherited from GtkTreeModel (5)
GtkTreeModel::row-changed
This signal is emitted when a row in the model has changed.
GtkTreeModel::row-deleted
This signal is emitted when a row has been deleted.
GtkTreeModel::row-has-child-toggled
This signal is emitted when a row has gotten the first child row or lost its last child row.
GtkTreeModel::row-inserted
This signal is emitted when a new row has been inserted in the model.
GtkTreeModel::rows-reordered
This signal is emitted when the children of a node in the
GtkTreeModel
have been reordered.
Signals inherited from GtkTreeSortable (1)
GtkTreeSortable::sort-column-changed
The ::sort-column-changed signal is emitted when the sort column
or sort order of sortable
is changed. The signal is emitted before
the contents of sortable
are resorted.
Class structure
struct GtkTreeStoreClass {
GObjectClass parent_class;
void (* _gtk_reserved1) (
void
);
void (* _gtk_reserved2) (
void
);
void (* _gtk_reserved3) (
void
);
void (* _gtk_reserved4) (
void
);
}
No description available.
Class members
parent_class: GObjectClass
No description available.
_gtk_reserved1: void (* _gtk_reserved1) ( void )
No description available.
_gtk_reserved2: void (* _gtk_reserved2) ( void )
No description available.
_gtk_reserved3: void (* _gtk_reserved3) ( void )
No description available.
_gtk_reserved4: void (* _gtk_reserved4) ( void )
No description available.