gtkmm  3.5.13
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions
Gtk::TreeStore Class Reference
Inheritance diagram for Gtk::TreeStore:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~TreeStore ()
GtkTreeStore* gobj ()
 Provides access to the underlying C GObject.
const GtkTreeStore* gobj () const
 Provides access to the underlying C GObject.
GtkTreeStore* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
void set_column_types (const TreeModelColumnRecord& columns)
iterator erase (const iterator& iter)
 Removes the given row from the list store.
iterator insert (const iterator& iter)
 Creates a new row before the position.
iterator insert_after (const iterator& iter)
 Creates a new row after the position.
iterator prepend ()
 Creates a new row at the start of the top-level.
iterator prepend (const TreeNodeChildren& node)
 Creates a new row at the start of the row's children.
iterator append ()
 Creates a new row at the end of the top-level.
iterator append (const TreeNodeChildren& node)
 Creates a new row at the end of the row's children.
void iter_swap (const iterator& a, const iterator& b)
 Swaps a and b in the same level of tree_store.
void move (const iterator& source, const iterator& destination)
 Moves source to the position at destination.
void reorder (const TreeNodeChildren& node, const std::vector< int >& new_order)
 Reorders the children of node to follow the order indicated by new_order.
void clear ()
 Removes all rows from tree_store.
bool is_ancestor (const iterator& iter, const iterator& descendant) const
 Returns true if iter is an ancestor of descendant.
int iter_depth (const iterator& iter) const
 Returns the depth of iter.
bool iter_is_valid (const iterator& iter) const
 WARNING: This function is slow.
- Public Member Functions inherited from Glib::Object
void * get_data (const QueryQuark &key)
void set_data (const Quark &key, void *data)
void set_data (const Quark &key, void *data, DestroyNotify notify)
void remove_data (const QueryQuark &quark)
void * steal_data (const QueryQuark &quark)
void set_property_value (const Glib::ustring &property_name, const Glib::ValueBase &value)
void get_property_value (const Glib::ustring &property_name, Glib::ValueBase &value) const
void set_property (const Glib::ustring &property_name, const PropertyType &value)
void get_property (const Glib::ustring &property_name, PropertyType &value) const
void connect_property_changed (const Glib::ustring &property_name, const sigc::slot< void > &slot)
sigc::connection connect_property_changed_with_return (const Glib::ustring &property_name, const sigc::slot< void > &slot)
void freeze_notify ()
void thaw_notify ()
virtual void reference () const
virtual void unreference () const
GObject * gobj_copy () const
Glib::RefPtr< Glib::Objectwrap (GObject *object, bool take_copy=false)
- Public Member Functions inherited from Gtk::TreeModel
virtual ~TreeModel ()
iterator get_iter (const Path& path)
 Returns a valid iterator pointing to path.
iterator get_iter (const Glib::ustring& path_string)
 Returns a valid iterator pointing to path_string.
Children children ()
 This returns an STL-like container API, for iterating over the rows.
Children children () const
 This returns an STL-like container API, for iterating over the rows.
void foreach_iter (const SlotForeachIter& slot)
 Calls a callback slot on each node in the model in a depth-first fashion.
void foreach_path (const SlotForeachPath& slot)
 Calls a callback slot on each node in the model in a depth-first fashion.
void foreach (const SlotForeachPathAndIter& slot)
 Calls a callback slot on each node in the model in a depth-first fashion.
TreeModelFlags get_flags () const
 Returns a set of flags supported by this interface.
int get_n_columns () const
 Returns the number of columns supported by tree_model.
GType get_column_type (int index) const
 Returns the type of the column.
TreeModel::Path get_path (const iterator& iter) const
 Returns a Gtk::TreePath referenced by iter.
void row_changed (const Path& path, const iterator& iter)
 Emits the Gtk::TreeModel::signal_row_changed() signal on tree_model.
void row_inserted (const Path& path, const iterator& iter)
 Emits the Gtk::TreeModel::signal_row_inserted() signal on tree_model.
void row_has_child_toggled (const Path& path, const iterator& iter)
 Emits the Gtk::TreeModel::signal_row_has_child_toggled() signal on tree_model.
void row_deleted (const Path& path)
 Emits the Gtk::TreeModel::signal_row_deleted() signal on tree_model.
void rows_reordered (const Path& path, const iterator& iter, const std::vector< int >& new_order)
 Emits the "rows_reordered" signal on the tree model.
void rows_reordered (const Path& path, const std::vector< int >& new_order)
 Emits the "rows_reordered" signal on the tree model.
void rows_reordered (const Path& path, const iterator& iter, int* new_order)
 Emits the Gtk::TreeModel::signal_rows_reordered() signal on tree_model.
Glib::ustring get_string (const iterator& iter) const
 Generates a string representation of the iter.
Glib::SignalProxy2< void,
const TreeModel::Path&, const
TreeModel::iterator& > 
signal_row_changed ()
Glib::SignalProxy2< void,
const TreeModel::Path&, const
TreeModel::iterator& > 
signal_row_inserted ()
Glib::SignalProxy2< void,
const TreeModel::Path&, const
TreeModel::iterator& > 
signal_row_has_child_toggled ()
Glib::SignalProxy1< void,
const TreeModel::Path& > 
signal_row_deleted ()
Glib::SignalProxy3< void,
const TreeModel::Path&, const
TreeModel::iterator&, int* > 
signal_rows_reordered ()
- Public Member Functions inherited from Glib::Interface
 Interface (const Glib::Interface_Class &interface_class)
 Interface (GObject *castitem)
virtual ~Interface ()
void set_property_value (const Glib::ustring &property_name, const Glib::ValueBase &value)
void get_property_value (const Glib::ustring &property_name, Glib::ValueBase &value) const
void set_property (const Glib::ustring &property_name, const PropertyType &value)
void get_property (const Glib::ustring &property_name, PropertyType &value) const
void connect_property_changed (const Glib::ustring &property_name, const sigc::slot< void > &slot)
sigc::connection connect_property_changed_with_return (const Glib::ustring &property_name, const sigc::slot< void > &slot)
void freeze_notify ()
void thaw_notify ()
virtual void reference () const
virtual void unreference () const
GObject * gobj_copy () const
- Public Member Functions inherited from Gtk::TreeSortable
virtual ~TreeSortable ()
bool get_sort_column_id (int& sort_column_id, SortType& order) const
 Fills in sort_column_id and order with the current sort column and the order.
void set_sort_column (const TreeModelColumnBase& sort_column_id, SortType order)
 Sets the current sort column to be sort_column_id.
void set_sort_column (int sort_column_id, SortType order)
 Sets the current sort column to be sort_column_id.
void set_sort_func (const TreeModelColumnBase& sort_column, const SlotCompare& slot)
 Sets the comparison function used when sorting a certain column.
void set_sort_func (int sort_column_id, const SlotCompare& slot)
 Sets the comparison function used when sorting a certain column.
void set_default_sort_func (const SlotCompare& slot)
 Sets the default comparison function used when sorting.
void unset_default_sort_func ()
 Sets the default comparison function used when sorting.
bool has_default_sort_func () const
 Returns true if the model has a default sort function.
void sort_column_changed ()
 Emits a Gtk::TreeSortable::signal_sort_column_changed() signal on sortable.
Glib::SignalProxy0< void > signal_sort_column_changed ()
- Public Member Functions inherited from Gtk::TreeDragSource
virtual ~TreeDragSource ()
bool row_draggable (const TreeModel::Path& path) const
 Asks the Gtk::TreeDragSource whether a particular row can be used as the source of a DND operation.
bool drag_data_get (const TreeModel::Path& path, SelectionData& selection_data)
 Asks the Gtk::TreeDragSource to fill in selection_data with a representation of the row at path.
bool drag_data_delete (const TreeModel::Path& path)
 Asks the Gtk::TreeDragSource to delete the row at path, because it was moved somewhere else via drag-and-drop.
- Public Member Functions inherited from Gtk::TreeDragDest
virtual ~TreeDragDest ()
bool drag_data_received (const TreeModel::Path& dest, const SelectionData& selection_data)
 Asks the Gtk::TreeDragDest to insert a row before the path dest, deriving the contents of the row from selection_data.
bool row_drop_possible (const TreeModel::Path& dest_path, const SelectionData& selection_data) const
 Determines whether a drop is possible before the given dest_path, at the same depth as dest_path.
- Public Member Functions inherited from Gtk::Buildable
virtual ~Buildable ()
void set_name (const Glib::ustring& name)
 Sets the name of the buildable object.
Glib::ustring get_name () const
 Gets the name of the buildable object.

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system.
static Glib::RefPtr< TreeStorecreate (const TreeModelColumnRecord& columns)
 Instantiate a new TreeStore.
- Static Public Member Functions inherited from Gtk::TreeModel
static void add_interface (GType gtype_implementer)
- Static Public Member Functions inherited from Gtk::TreeSortable
static void add_interface (GType gtype_implementer)
- Static Public Member Functions inherited from Gtk::TreeDragSource
static void add_interface (GType gtype_implementer)
- Static Public Member Functions inherited from Gtk::TreeDragDest
static void add_interface (GType gtype_implementer)
- Static Public Member Functions inherited from Gtk::Buildable
static void add_interface (GType gtype_implementer)

Protected Member Functions

 TreeStore ()
 When using this constructor, you must use set_column_types() immediately afterwards.
 TreeStore (const TreeModelColumnRecord& columns)
virtual void set_value_impl (const iterator& row, int column, const Glib::ValueBase& value)
 Override and implement this in a derived TreeModel class, so that Row::operator() and Row::set_value() work.
- Protected Member Functions inherited from Glib::Object
 Object ()
 Object (const Glib::ConstructParams &construct_params)
 Object (GObject *castitem)
virtual ~Object ()
 ObjectBase ()
 ObjectBase (const char *custom_type_name)
 ObjectBase (const std::type_info &custom_type_info)
virtual ~ObjectBase ()=0
void initialize (GObject *castitem)
- Protected Member Functions inherited from Gtk::TreeModel
 TreeModel ()
 You should derive from this class to use it.
virtual TreeModelFlags get_flags_vfunc () const
virtual int get_n_columns_vfunc () const
virtual GType get_column_type_vfunc (int index) const
virtual bool iter_next_vfunc (const iterator& iter, iterator& iter_next) const
 Override and implement this in a derived TreeModel class.
virtual bool get_iter_vfunc (const Path& path, iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual bool iter_children_vfunc (const iterator& parent, iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual bool iter_parent_vfunc (const iterator& child, iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual bool iter_nth_child_vfunc (const iterator& parent, int n, iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual bool iter_nth_root_child_vfunc (int n, iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual bool iter_has_child_vfunc (const iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual int iter_n_children_vfunc (const iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual int iter_n_root_children_vfunc () const
 Override and implement this in a derived TreeModel class.
virtual void ref_node_vfunc (const iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual void unref_node_vfunc (const iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual TreeModel::Path get_path_vfunc (const iterator& iter) const
 Override and implement this in a derived TreeModel class.
virtual void get_value_vfunc (const iterator& iter, int column, Glib::ValueBase& value) const
 Override and implement this in a derived TreeModel class.
virtual void get_value_impl (const iterator& row, int column, Glib::ValueBase& value) const
virtual void on_row_changed (const TreeModel::Path& path, const TreeModel::iterator& iter)
 This is a default handler for the signal signal_row_changed().
virtual void on_row_inserted (const TreeModel::Path& path, const TreeModel::iterator& iter)
 This is a default handler for the signal signal_row_inserted().
virtual void on_row_has_child_toggled (const TreeModel::Path& path, const TreeModel::iterator& iter)
 This is a default handler for the signal signal_row_has_child_toggled().
virtual void on_row_deleted (const TreeModel::Path& path)
 This is a default handler for the signal signal_row_deleted().
virtual void on_rows_reordered (const TreeModel::Path& path, const TreeModel::iterator& iter, int* new_order)
 This is a default handler for the signal signal_rows_reordered().
- Protected Member Functions inherited from Glib::Interface
 ObjectBase ()
 ObjectBase (const char *custom_type_name)
 ObjectBase (const std::type_info &custom_type_info)
virtual ~ObjectBase ()=0
void initialize (GObject *castitem)
- Protected Member Functions inherited from Gtk::TreeSortable
 TreeSortable ()
 You should derive from this class to use it.
virtual bool get_sort_column_id_vfunc (int* sort_column_id, SortType* order) const
virtual void set_sort_column_id_vfunc (int sort_column_id, SortType order)
virtual void set_sort_func_vfunc (int sort_column_id, GtkTreeIterCompareFunc func, void* data, GDestroyNotify destroy)
virtual void set_default_sort_func_vfunc (GtkTreeIterCompareFunc func, void* data, GDestroyNotify destroy)
virtual bool has_default_sort_func_vfunc () const
virtual void sort_column_changed_vfunc () const
virtual void on_sort_column_changed ()
 This is a default handler for the signal signal_sort_column_changed().
- Protected Member Functions inherited from Gtk::TreeDragSource
 TreeDragSource ()
 You should derive from this class to use it.
virtual bool row_draggable_vfunc (const TreeModel::Path& path) const
virtual bool drag_data_get_vfunc (const TreeModel::Path& path, SelectionData& selection_data) const
virtual bool drag_data_delete_vfunc (const TreeModel::Path& path)
- Protected Member Functions inherited from Gtk::TreeDragDest
 TreeDragDest ()
 You should derive from this class to use it.
virtual bool drag_data_received_vfunc (const TreeModel::Path& dest, const SelectionData& selection_data)
virtual bool row_drop_possible_vfunc (const TreeModel::Path& dest, const SelectionData& selection_data) const
- Protected Member Functions inherited from Gtk::Buildable
 Buildable ()
 You should derive from this class to use it.

Related Functions

(Note that these are not member functions.)

Glib::RefPtr< Gtk::TreeStorewrap (GtkTreeStore* object, bool take_copy=false)
 A Glib::wrap() method for this object.

Additional Inherited Members

- Public Types inherited from Glib::Object
typedef void(* DestroyNotify )(gpointer data)
- Public Types inherited from Gtk::TreeModel
typedef TreeModelColumnRecord ColumnRecord
typedef TreeNodeChildren Children
typedef Children::iterator iterator
typedef Children::reverse_iterator reverse_iterator
typedef Children::const_iterator const_iterator
typedef
Children::const_reverse_iterator 
const_reverse_iterator
typedef TreeRow Row
typedef TreePath Path
typedef TreeRowReference RowReference
typedef sigc::slot< bool,
const TreeModel::iterator& > 
SlotForeachIter
 For example, void on_foreach(const Gtk::TreeModel::iterator& iter);.
typedef sigc::slot< bool,
const TreeModel::Path& > 
SlotForeachPath
 For example, void on_foreach(const Gtk::TreeModel::Path& path);.
typedef sigc::slot< bool,
const TreeModel::Path&, const
TreeModel::iterator& > 
SlotForeachPathAndIter
 For example, void on_foreach(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter);.
- Public Types inherited from Gtk::TreeSortable
enum  {
  DEFAULT_SORT_COLUMN_ID = -1,
  DEFAULT_UNSORTED_COLUMN_ID = -2
}
typedef sigc::slot< int, const
Gtk::TreeModel::iterator
&, const
Gtk::TreeModel::iterator& > 
SlotCompare
 This callback should return -1 if a compares before b, 0 if they compare equal, 1 if a compares after b.

Constructor & Destructor Documentation

virtual Gtk::TreeStore::~TreeStore ( )
virtual
Gtk::TreeStore::TreeStore ( )
protected

When using this constructor, you must use set_column_types() immediately afterwards.

This can be useful when deriving from this class, with a fixed TreeModelColumnRecord that is a member of the class. There is no create() method that corresponds to this constructor, because this constructor should only be used by derived classes.

Gtk::TreeStore::TreeStore ( const TreeModelColumnRecord columns)
explicitprotected

Member Function Documentation

iterator Gtk::TreeStore::append ( )

Creates a new row at the end of the top-level.

The row will be empty - to fill in values, you need to dereference the returned iterator and use Row::operator[] or Row::set_value(). See also insert() and prepend().

Returns:
An iterator to the new row.
iterator Gtk::TreeStore::append ( const TreeNodeChildren node)

Creates a new row at the end of the row's children.

The row will be empty - to fill in values, you need to dereference the returned iterator and use Row::operator[] or Row::set_value(). See also insert() and prepend().

Parameters:
nodeThe list of the parent row's children, as returned by Gtk::TreeModel::iterator::children().
Returns:
An iterator to the new row.
void Gtk::TreeStore::clear ( )

Removes all rows from tree_store.

static Glib::RefPtr<TreeStore> Gtk::TreeStore::create ( const TreeModelColumnRecord columns)
static

Instantiate a new TreeStore.

Parameters:
columnsThe column types for this tree model.
Returns:
The new TreeStore.
iterator Gtk::TreeStore::erase ( const iterator iter)

Removes the given row from the list store.

Parameters:
iterThe iterator to the row to be removed.
Returns:
An iterator to the next row, or end() if there is none.
static GType Gtk::TreeStore::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

Reimplemented from Gtk::Buildable.

GtkTreeStore* Gtk::TreeStore::gobj ( )
inline

Provides access to the underlying C GObject.

Reimplemented from Glib::Object.

const GtkTreeStore* Gtk::TreeStore::gobj ( ) const
inline

Provides access to the underlying C GObject.

Reimplemented from Glib::Object.

GtkTreeStore* Gtk::TreeStore::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

iterator Gtk::TreeStore::insert ( const iterator iter)

Creates a new row before the position.

If iter is end() then a new row will be appended to the list. The row will be empty - to fill in values, you need to dereference the returned iterator and use Row::operator[] or Row::set_value(). See also prepend() and append().

Parameters:
iterAn iterator to the row before which the new row will be inserted.
Returns:
An iterator to the new row.
iterator Gtk::TreeStore::insert_after ( const iterator iter)

Creates a new row after the position.

If iter is end() then a new row will be prepended to the list. The row will be empty - to fill in values, you need to dereference the returned iterator and use Row::operator[] or Row::set_value(). See also prepend() and append().

Parameters:
iterAn iterator to the row after which the new row will be inserted.
Returns:
An iterator to the new row.
bool Gtk::TreeStore::is_ancestor ( const iterator iter,
const iterator descendant 
) const

Returns true if iter is an ancestor of descendant.

That is, iter is the parent (or grandparent or great-grandparent) of descendant.

Parameters:
iterA valid Gtk::TreeIter.
descendantA valid Gtk::TreeIter.
Returns:
true, if iter is an ancestor of descendant.
int Gtk::TreeStore::iter_depth ( const iterator iter) const

Returns the depth of iter.

This will be 0 for anything on the root level, 1 for anything down a level, etc.

Parameters:
iterA valid Gtk::TreeIter.
Returns:
The depth of iter.
bool Gtk::TreeStore::iter_is_valid ( const iterator iter) const

WARNING: This function is slow.

Only use it for debugging and/or testing purposes.

Checks if the given iter is a valid iter for this Gtk::TreeStore.

Since gtkmm 2.2:
Parameters:
iterA Gtk::TreeIter.
Returns:
true if the iter is valid, false if the iter is invalid.
void Gtk::TreeStore::iter_swap ( const iterator a,
const iterator b 
)

Swaps a and b in the same level of tree_store.

Note that this function only works with unsorted stores.

Since gtkmm 2.2:
Parameters:
aA Gtk::TreeIter.
bAnother Gtk::TreeIter.
void Gtk::TreeStore::move ( const iterator source,
const iterator destination 
)

Moves source to the position at destination.

source and destination should be at the same level. Note that this function only works with unsorted stores.

Parameters:
sourceThe row that should be moved.
destinationThe position to move to.
iterator Gtk::TreeStore::prepend ( )

Creates a new row at the start of the top-level.

The row will be empty - to fill in values, you need to dereference the returned iterator and use Row::operator[] or Row::set_value(). See also insert() and append().

Returns:
An iterator to the new row.
iterator Gtk::TreeStore::prepend ( const TreeNodeChildren node)

Creates a new row at the start of the row's children.

The row will be empty - to fill in values, you need to dereference the returned iterator and use Row::operator[] or Row::set_value(). See also insert() and append().

Parameters:
nodeThe list of the parent row's children, as returned by Gtk::TreeModel::iterator::children().
Returns:
An iterator to the new row.
void Gtk::TreeStore::reorder ( const TreeNodeChildren node,
const std::vector< int > &  new_order 
)

Reorders the children of node to follow the order indicated by new_order.

Note that this function only works with unsorted stores.

void Gtk::TreeStore::set_column_types ( const TreeModelColumnRecord columns)
virtual void Gtk::TreeStore::set_value_impl ( const iterator row,
int  column,
const Glib::ValueBase value 
)
protectedvirtual

Override and implement this in a derived TreeModel class, so that Row::operator() and Row::set_value() work.

You can probably just implement this by calling set_value_vfunc(). Your implementation of set_value_impl() should also call row_changed() after changing the value.

Reimplemented from Gtk::TreeModel.


Friends And Related Function Documentation

Glib::RefPtr< Gtk::TreeStore > wrap ( GtkTreeStore *  object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters:
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns:
A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file: