logo top
Main Page   Widgets   Namespaces   Book  

Gtk::TreeIter Class Reference
[TreeView Classes]

Inheritance diagram for Gtk::TreeIter:

Inheritance graph
[legend]
List of all members.

Detailed Description

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.


Public Types

typedef int difference_type
typedef std::bidirectional_iterator_tag iterator_category
typedef const Gtk::TreeRowpointer
typedef const Gtk::TreeRowreference
typedef Gtk::TreeRow value_type

Public Member Functions

bool equal (const TreeIter& other) const
int get_stamp () const
 This is only useful when implementing a custom Gtk::TreeModel class.
reference operator* () const
 operator bool () const
 Discover whether the iterator is valid, and not equal to end().
const TreeIter operator++ (int)
TreeIteroperator++ ()
const TreeIter operator-- (int)
 Please note that this is very slow compared to operator++().
TreeIteroperator-- ()
 Please note that this is very slow compared to operator++().
pointer operator-> () const
void set_stamp (int stamp)
 This is only useful when implementing a custom Gtk::TreeModel class.
 TreeIter ()

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)


Member Typedef Documentation

typedef int Gtk::TreeIter::difference_type
 

Reimplemented in Gtk::TreeNodeChildren.

typedef std::bidirectional_iterator_tag Gtk::TreeIter::iterator_category
 

typedef const Gtk::TreeRow* Gtk::TreeIter::pointer
 

typedef const Gtk::TreeRow& Gtk::TreeIter::reference
 

typedef Gtk::TreeRow Gtk::TreeIter::value_type
 

Reimplemented in Gtk::TreeNodeChildren.


Constructor & Destructor Documentation

Gtk::TreeIter::TreeIter (  ) 
 


Member Function Documentation

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.

See also:
set_stamp().
Returns:
The iterator's stamp.

reference Gtk::TreeIter::operator* (  )  const [inline]
 

Gtk::TreeIter::operator bool (  )  const
 

Discover whether the iterator is valid, and not equal to end().

Reimplemented in Gtk::TreeRow, and Gtk::TreeNodeChildren.

const TreeIter Gtk::TreeIter::operator++ ( int   ) 
 

TreeIter& Gtk::TreeIter::operator++ (  ) 
 

const TreeIter Gtk::TreeIter::operator-- ( int   ) 
 

Please note that this is very slow compared to operator++().

TreeIter& Gtk::TreeIter::operator-- (  ) 
 

Please note that this is very slow compared to operator++().

pointer Gtk::TreeIter::operator-> (  )  const [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.


Friends And Related Function Documentation

bool operator!= ( const TreeIter lhs,
const TreeIter rhs
[related]
 

bool operator== ( const TreeIter lhs,
const TreeIter rhs
[related]
 


The documentation for this class was generated from the following file:
Generated for gtkmm 2.4 by Doxygen 1.4.4 © 1997-2001