gtkmm 4.10.0
|
Typedefed as TreeModel::iterator and TreeModel::const_iterator. More...
#include <gtkmm/treeiter.h>
Public Types | |
using | iterator_category = std::bidirectional_iterator_tag |
using | value_type = T |
using | difference_type = int |
using | reference = T & |
using | pointer = T * |
Public Member Functions | |
TreeIter () | |
template<typename T2 , typename = typename std::enable_if< std::is_same<T, TreeConstRow>::value && std::is_same<T2, TreeRow>::value, T2>::type> | |
TreeIter (const TreeIter< T2 > & src) | |
iterator to const_iterator conversion. | |
template<typename T2 , typename = typename std::enable_if< std::is_same<T, TreeConstRow>::value && std::is_same<T2, TreeRow>::value, T2>::type> | |
TreeIter & | operator= (const TreeIter< T2 > & src) |
iterator to const_iterator assignment. | |
TreeIter & | operator++ () |
TreeIter | operator++ (int) |
TreeIter & | operator-- () |
Note that this is very slow compared to operator++(). | |
TreeIter | operator-- (int) |
Note that this is very slow compared to operator++(int). | |
reference | operator* () const |
pointer | operator-> () const |
operator bool () const | |
Discover whether the iterator is valid, and not equal to end(). | |
![]() | |
bool | equal (const TreeIterBase3 & other) const |
int | get_stamp () const |
This is only useful when implementing a custom Gtk::TreeModel class. | |
void | set_stamp (int stamp) |
This is only useful when implementing a custom Gtk::TreeModel class. | |
![]() | |
TreeIterBase (const TreeIterBase & other) noexcept | |
TreeIterBase & | operator= (const TreeIterBase & other) noexcept |
TreeIterBase (TreeIterBase && other) noexcept | |
TreeIterBase & | operator= (TreeIterBase && other) noexcept |
TreeIterBase () | |
TreeIterBase (const GtkTreeIter * gobject) | |
GtkTreeIter * | gobj () |
Provides access to the underlying C instance. | |
const GtkTreeIter * | gobj () const |
Provides access to the underlying C instance. | |
Related Functions | |
(Note that these are not member functions.) | |
bool | operator== (const TreeIterBase3 & lhs, const TreeIterBase3 & rhs) |
bool | operator!= (const TreeIterBase3 & lhs, const TreeIterBase3 & rhs) |
Additional Inherited Members | |
![]() | |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
![]() | |
GtkTreeIter | gobject_ |
Typedefed as TreeModel::iterator and TreeModel::const_iterator.
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::TreeModel::Flags::ITERS_PERSIST flag was added to indicate this behaviour - see Gtk::TreeModel::get_flags().
T | TreeRow for an iterator, TreeConstRow for a const_iterator. |
using Gtk::TreeIter< T >::difference_type = int |
using Gtk::TreeIter< T >::iterator_category = std::bidirectional_iterator_tag |
using Gtk::TreeIter< T >::pointer = T* |
using Gtk::TreeIter< T >::reference = T& |
using Gtk::TreeIter< T >::value_type = T |
Gtk::TreeIter< T >::TreeIter | ( | ) |
Gtk::TreeIter< T >::TreeIter | ( | const TreeIter< T2 > & | src | ) |
iterator to const_iterator conversion.
|
inlineexplicit |
Discover whether the iterator is valid, and not equal to end().
For instance,
|
inline |
TreeIter & Gtk::TreeIter< T >::operator++ | ( | ) |
TreeIter Gtk::TreeIter< T >::operator++ | ( | int | ) |
TreeIter & Gtk::TreeIter< T >::operator-- | ( | ) |
Note that this is very slow compared to operator++().
TreeIter Gtk::TreeIter< T >::operator-- | ( | int | ) |
Note that this is very slow compared to operator++(int).
|
inline |
TreeIter & Gtk::TreeIter< T >::operator= | ( | const TreeIter< T2 > & | src | ) |
iterator to const_iterator assignment.
|
related |
|
related |