Gtk::TreeRow Class Reference
TreeView Classes

Typedefed as TreeModel::Row. More...

`#include <gtkmm/treeiter.h>`

Inheritance diagram for Gtk::TreeRow:
[legend]

## Public Member Functions

template<class ColumnType >
TreeValueProxy< ColumnType > | operator[] (const TreeModelColumn< ColumnType >& column) const
| Use this to set and get the value of this column of this row. More...
template<class ColumnType >
void | set_value (const TreeModelColumn< ColumnType >& column, const ColumnType& data) const
| Sets the value of this column of this row. More...
template<class ColumnType >
void | set_value (int column, const ColumnType& data) const
| Use set_value(const TreeModelColumn<>& column, const ColumnType& data) unless you do not know the column type at compile-time. More...
template<class ColumnType >
ColumnType | get_value (const TreeModelColumn< ColumnType >& column) const
| Gets the value of this column of this row. More...
template<class ColumnType >
void | get_value (int column, ColumnType& data) const
| Use get_value(const TreeModelColumn<>& column) unless you do not know the column type at compile-time. More...
const TreeNodeChildren& | children () const
| This returns an STL-like container API, for iterating over the rows. More...
TreeIter | parent () const
| Gets an iterator to the parent row of this row. More...
| operator BoolExpr () const
| Discover whether this is a valid row. More...
| operator bool () const
| Discover whether this is a valid row. More...
GtkTreeIter* | gobj ()
| Provides access to the underlying C GObject. More...
const GtkTreeIter* | gobj () const
| Provides access to the underlying C GObject. More...
Public Member Functions inherited from Gtk::TreeIter
| TreeIter ()
TreeIter& | operator++ ()
const TreeIter | operator++ (int)
TreeIter& | operator-- ()
| Please note that this is very slow compared to operator++(). More...
const TreeIter | operator-- (int)
| Please note that this is very slow compared to operator++(). More...
reference | operator* () const
pointer | operator-> () const
bool | equal (const TreeIter& other) const
| operator BoolExpr () const
| Discover whether the iterator is valid, and not equal to end(). More...
| operator bool () const
| Discover whether the iterator is valid, and not equal to end(). More...
int | get_stamp () const
| This is only useful when implementing a custom Gtk::TreeModel class. More...
void | set_stamp (int stamp)
| This is only useful when implementing a custom Gtk::TreeModel class. More...
Public Member Functions inherited from Gtk::TreeIterBase
| 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. More...
const GtkTreeIter* | gobj () const
| Provides access to the underlying C instance. More...

## Public Attributes

const typedef void* | BoolExpr
| This typedef is just to make it more obvious that our operator const void* should be used like operator bool(). More...
Public Attributes inherited from Gtk::TreeIter
const typedef Gtk::TreeRow& | reference
const typedef Gtk::TreeRow* | pointer
const typedef void* | BoolExpr
| This typedef is just to make it more obvious that our operator const void* should be used like operator bool(). More...

## Additional Inherited Members

Public Types inherited from Gtk::TreeIter
typedef std::bidirectional_iterator_tag | iterator_category
typedef Gtk::TreeRow | value_type
typedef int | difference_type
Static Public Member Functions inherited from Gtk::TreeIterBase
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...
Protected Attributes inherited from Gtk::TreeIterBase
GtkTreeIter | gobject_
Related Functions inherited from Gtk::TreeIter
bool | operator== (const TreeIter& lhs, const TreeIter& rhs)
bool | operator!= (const TreeIter& lhs, const TreeIter& rhs)

## Detailed Description

Typedefed as TreeModel::Row.

Dereference a TreeModel::iterator to get the Row. Use operator[] or set_value() and get_value() to access the values in the columns of this row.

If the model contains a hierarchy of rows (such as Gtk::TreeStore), then you can access the child rows with children().

You can use a const TreeModel::Row& for any parameter that takes a const TreeModel::iterator&.

## Member Function Documentation

## children()

const TreeNodeChildren& Gtk::TreeRow::children | ( |  | ) | const

This returns an STL-like container API, for iterating over the rows.

See also Gtk::TreeModel::children() for the top-level children.

## get_value() [1/2]

template <class ColumnType >

ColumnType Gtk::TreeRow::get_value | ( | const TreeModelColumn< ColumnType >& | column | ) | const

Gets the value of this column of this row.

This is a templated method, so the compiler will not allow you to provide an inappropriate type of data for the model column.

See also operator[].

Parameters

  column | The model column.

Returns
  The value of this column of this row

## get_value() [2/2]

template <class ColumnType >

void Gtk::TreeRow::get_value | ( | int | column,
|  | ColumnType & | data
| ) |  | const

Use get_value(const TreeModelColumn<>& column) unless you do not know the column type at compile-time.

If the data output argument is of an inappropriate C++ type then this might fail at runtime.

Parameters

  | column | The number of the column whose value you want to query.
  [out] | data | An output argument which will contain the value of this column of this row.

## gobj() [1/2]

GtkTreeIter* Gtk::TreeRow::gobj | ( |  | ) |

inline

Provides access to the underlying C GObject.

## gobj() [2/2]

const GtkTreeIter* Gtk::TreeRow::gobj | ( |  | ) | const

inline

Provides access to the underlying C GObject.

## operator bool()

Gtk::TreeRow::operator bool | ( |  | ) | const

explicit

Discover whether this is a valid row.

For instance,

if(treeiter)
do_something()

Since gtkmm 3.22:

## operator BoolExpr()

Gtk::TreeRow::operator BoolExpr | ( |  | ) | const

Discover whether this is a valid row.

For instance,

if(treeiter)
do_something()

Deprecated:
  Use the explicit operator bool() instead.

## operator[]()

template <class ColumnType >

TreeValueProxy<ColumnType> Gtk::TreeRow::operator[] | ( | const TreeModelColumn< ColumnType >& | column | ) | const

inline

Use this to set and get the value of this column of this row.

This is a templated method, so the compiler will not allow you to provide an inappropriate type of data for the model column.

This is just a more convenient syntax that does the same thing as set_value() and get_value().

Parameters

  column | The model column..

## parent()

TreeIter Gtk::TreeRow::parent | ( |  | ) | const

Gets an iterator to the parent row of this row.

Returns
  An iterator to the parent row.

## set_value() [1/2]

template <class ColumnType >

void Gtk::TreeRow::set_value | ( | const TreeModelColumn< ColumnType >& | column,
|  | const ColumnType & | data
| ) |  | const

Sets the value of this column of this row.

This is a templated method, so the compiler will not allow you to provide an inappropriate type of data for the model column.

See also operator[].

Parameters

  column | The model column.
  data | The new value to use for this column of this row.

## set_value() [2/2]

template <class ColumnType >

void Gtk::TreeRow::set_value | ( | int | column,
|  | const ColumnType & | data
| ) |  | const

Use set_value(const TreeModelColumn<>& column, const ColumnType& data) unless you do not know the column type at compile-time.

If the data is of an inappropriate C++ type then this might fail at runtime.

Parameters

  column | The number of the column whose value you want to change.
  data | The new value to use for this column of this row.

## Member Data Documentation

## BoolExpr

const typedef void* Gtk::TreeRow::BoolExpr

This typedef is just to make it more obvious that our operator const void* should be used like operator bool().

Deprecated:
  Use the explicit operator bool() instead.