Ardour
9.0-pre0-582-g084a23a80d
|
#include <treeiter.h>
Public Types | |
typedef std::bidirectional_iterator_tag | iterator_category |
typedef Gtk::TreeRow | value_type |
typedef int | difference_type |
typedef const Gtk::TreeRow & | reference |
typedef const Gtk::TreeRow * | pointer |
Public Member Functions | |
TreeIter () | |
TreeIter & | operator++ () |
const TreeIter | operator++ (int) |
TreeIter & | operator-- () |
const TreeIter | operator-- (int) |
reference | operator* () const |
pointer | operator-> () const |
bool | equal (const TreeIter &other) const |
operator bool () const | |
int | get_stamp () const |
void | set_stamp (int stamp) |
Public Member Functions inherited from Gtk::TreeIterBase | |
TreeIterBase () | |
TreeIterBase (const GtkTreeIter *gobject) | |
GtkTreeIter * | gobj () |
Provides access to the underlying C instance. More... | |
const GtkTreeIter * | gobj () const |
Provides access to the underlying C instance. More... | |
Related Functions | |
(Note that these are not member functions.) | |
bool | operator== (const TreeIter &lhs, const TreeIter &rhs) |
bool | operator!= (const TreeIter &lhs, const TreeIter &rhs) |
Additional Inherited Members | |
Static Public Member Functions inherited from Gtk::TreeIterBase | |
static GType | get_type () G_GNUC_CONST |
Protected Attributes inherited from Gtk::TreeIterBase | |
GtkTreeIter | gobject_ |
A Gtk::TreeModel::iterator is a reference to a specific node on a specific model.
It is a generic structure with an integer and three generic pointers. These are filled in by the model in a model-specific way.
One can convert a path to an iterator by calling Gtk::TreeModel::get_iter().
These iterators are the primary way of accessing a model and are similar to the iterators used by Gtk::TextBuffer. The model interface defines a set of operations using them for navigating the model.
The lifecycle of an iterator can be a little confusing at first. Iterators are expected to always be valid for as long as the model is unchanged (and doesn't emit a signal). Additionally, some models guarantee that an iterator is valid for as long as the node it refers to is valid (most notably the Gtk::TreeStore and Gtk::ListStore).
Although generally uninteresting, as one always has to allow for the case where iterators do not persist beyond a signal, some very important performance enhancements were made in the sort model. As a result, the Gtk::TREE_MODEL_ITERS_PERSIST flag was added to indicate this behaviour - see Gtk::TreeModel::get_flags().
Typedefed as Gtk::TreeModel::iterator. The Gtk::TreeModel iterator.
Definition at line 129 of file treeiter.h.
typedef int Gtk::TreeIter::difference_type |
Definition at line 134 of file treeiter.h.
typedef std::bidirectional_iterator_tag Gtk::TreeIter::iterator_category |
Definition at line 132 of file treeiter.h.
typedef const Gtk::TreeRow* Gtk::TreeIter::pointer |
Definition at line 136 of file treeiter.h.
typedef const Gtk::TreeRow& Gtk::TreeIter::reference |
Definition at line 135 of file treeiter.h.
Definition at line 133 of file treeiter.h.
Gtk::TreeIter::TreeIter | ( | ) |
bool Gtk::TreeIter::equal | ( | const TreeIter & | other | ) | const |
int Gtk::TreeIter::get_stamp | ( | ) | const |
This is only useful when implementing a custom Gtk::TreeModel class. Compare the iterator's stamp with your model's stamp to discover whether it is valid.
Gtk::TreeIter::operator bool | ( | ) | const |
Discover whether the iterator is valid, and not equal to end().
|
inline |
TreeIter& Gtk::TreeIter::operator++ | ( | ) |
const TreeIter Gtk::TreeIter::operator++ | ( | int | ) |
TreeIter& Gtk::TreeIter::operator-- | ( | ) |
Please note that this is very slow compared to operator++().
const TreeIter Gtk::TreeIter::operator-- | ( | int | ) |
Please note that this is very slow compared to operator++().
|
inline |
void Gtk::TreeIter::set_stamp | ( | int | stamp | ) |
This is only useful when implementing a custom Gtk::TreeModel class. Set the stamp to be equal to your model's stamp, to mark the iterator as valid. When your model's structure changes, you should increment your model's stamp to mark all older iterators as invalid. They will be recognised as invalid because they will then have an incorrect stamp.
Definition at line 222 of file treeiter.h.
Definition at line 218 of file treeiter.h.