gtkmm: Gtk::TreePath Class Reference

gtkmm 4.12.0

Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Related Symbols | List of all members
Gtk::TreePath Class Reference
TreeView Classes

A path is essentially a potential node. More...

`#include <gtkmm/treepath.h>`

## Public Types
typedef unsigned int | size_type
typedef int | difference_type
typedef int | value_type
typedef int & | reference
typedef const int & | const_reference
typedef int * | iterator
typedef const int * | const_iterator
typedef std::reverse_iterator< iterator > | reverse_iterator
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator

## Public Member Functions
| TreePath ()
| TreePath (const TreePath & other)
TreePath & | operator= (const TreePath & other)
| TreePath (TreePath && other) noexcept
TreePath & | operator= (TreePath && other) noexcept
| ~TreePath () noexcept
void | swap (TreePath & other) noexcept
GtkTreePath * | gobj ()
| Provides access to the underlying C instance.
const GtkTreePath * | gobj () const
| Provides access to the underlying C instance.
GtkTreePath * | gobj_copy () const
| Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.
| TreePath (GtkTreePath * gobject, bool make_a_copy=true)
| TreePath (size_type n, value_type value=0)
| TreePath (const Glib::ustring & path)
| TreePath (const TreeModel::iterator & iter)
template<class In >
| TreePath (In pbegin, In pend)
void | clear ()
TreePath & | operator= (const TreeModel::iterator & iter)
| operator bool () const
| Checks that the path is not empty, by calling empty().
template<class In >
void | assign (In pbegin, In pend)
template<class In >
void | append (In pbegin, In pend)
void | push_back (int index)
| Appends a new index to a path.
void | push_front (int index)
| Prepends a new index to a path.
size_type | size () const
bool | empty () const
reference | operator[] (size_type i)
const_reference | operator[] (size_type i) const
iterator | begin ()
iterator | end ()
const_iterator | begin () const
const_iterator | end () const
reverse_iterator | rbegin ()
reverse_iterator | rend ()
const_reverse_iterator | rbegin () const
const_reverse_iterator | rend () const
reference | front ()
const_reference | front () const
reference | back ()
const_reference | back () const
void | next ()
| Moves the path to point to the next node at the current depth.
bool | prev ()
| Moves the path to point to the previous node at the current depth, if it exists.
bool | up ()
| Moves the path to point to its parent node, if it has a parent.
void | down ()
| Moves path to point to the first child of the current path.
bool | is_ancestor (const TreePath & descendant) const
| Returns `true` if descendant is a descendant of path.
bool | is_descendant (const TreePath & ancestor) const
| Returns `true` if path is a descendant of ancestor.
Glib::ustring | to_string () const
| Generates a string representation of the path.
Glib::RefPtr< Gdk::ContentProvider > | create_row_drag_content (const Glib::RefPtr< const TreeModel > & model) const
| Creates a content provider for dragging the path from model.

## Static Public Member Functions
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system.
static bool | get_row_drag_data (const Glib::ValueBase & value, Glib::RefPtr< const TreeModel > & model, TreePath & path)
| Obtains a Gtk::TreeModel and Gtk::TreeModel::Path from value of target type GTK_TYPE_TREE_ROW_DATA.
static bool | get_row_drag_data (const Glib::ValueBase & value, TreePath & path)
| See description in the other overload.

## Protected Attributes
GtkTreePath * | gobject_

## Related Symbols
(Note that these are not member symbols.)
bool | operator== (const TreePath & lhs, const TreePath & rhs)
bool | operator!= (const TreePath & lhs, const TreePath & rhs)
bool | operator< (const TreePath & lhs, const TreePath & rhs)
bool | operator> (const TreePath & lhs, const TreePath & rhs)
bool | operator<= (const TreePath & lhs, const TreePath & rhs)
bool | operator>= (const TreePath & lhs, const TreePath & rhs)
void | swap (TreePath & lhs, TreePath & rhs) noexcept
Gtk::TreePath | wrap (GtkTreePath * object, bool take_copy=false)
| A Glib::wrap() method for this object.

## Detailed Description

A path is essentially a potential node.

It is a location on a model that may or may not actually correspond to a node on a specific model.

A Path can be converted into either an array of unsigned integers or a string. The string form is a list of numbers separated by a colon. Each number refers to the offset at that level. Thus, the path "0" refers to the root node and the path "2:4" refers to the fifth child of the third node.

Typedefed as Gtk::TreeModel::Path.

Deprecated:
  4.10: Use Gio::ListModel instead.

## Member Typedef Documentation

## ◆ const_iterator

typedef const int* Gtk::TreePath::const_iterator

## ◆ const_reference

typedef const int& Gtk::TreePath::const_reference

## ◆ const_reverse_iterator

typedef std::reverse_iterator<const_iterator> Gtk::TreePath::const_reverse_iterator

## ◆ difference_type

typedef int Gtk::TreePath::difference_type

## ◆ iterator

typedef int* Gtk::TreePath::iterator

## ◆ reference

typedef int& Gtk::TreePath::reference

## ◆ reverse_iterator

typedef std::reverse_iterator<iterator> Gtk::TreePath::reverse_iterator

## ◆ size_type

typedef unsigned int Gtk::TreePath::size_type

## ◆ value_type

typedef int Gtk::TreePath::value_type

## Constructor & Destructor Documentation

## ◆ TreePath() [1/8]

Gtk::TreePath::TreePath | ( |  | ) |

## ◆ TreePath() [2/8]

Gtk::TreePath::TreePath | ( | const TreePath & | other | ) |

## ◆ TreePath() [3/8]

Gtk::TreePath::TreePath | ( | TreePath && | other | ) |
| noexcept

## ◆ ~TreePath()

Gtk::TreePath::~TreePath | ( |  | ) |
| noexcept

## ◆ TreePath() [4/8]

Gtk::TreePath::TreePath | ( | GtkTreePath * | gobject,
|  | bool | make_a_copy = `true`
| ) |  |
| explicit

## ◆ TreePath() [5/8]

Gtk::TreePath::TreePath | ( | size_type | n,
|  | value_type | value = `0`
| ) |  |
| explicit

## ◆ TreePath() [6/8]

Gtk::TreePath::TreePath | ( | const Glib::ustring & | path | ) |
| explicit

## ◆ TreePath() [7/8]

Gtk::TreePath::TreePath | ( | const TreeModel::iterator & | iter | ) |
| explicit

## ◆ TreePath() [8/8]

template <class In >

Gtk::TreePath::TreePath | ( | In | pbegin,
|  | In | pend
| ) |  |
| inline

## Member Function Documentation

## ◆ append()

template <class In >

void Gtk::TreePath::append | ( | In | pbegin,
|  | In | pend
| ) |  |

## ◆ assign()

template <class In >

void Gtk::TreePath::assign | ( | In | pbegin,
|  | In | pend
| ) |  |
| inline

## ◆ back() [1/2]

reference Gtk::TreePath::back | ( |  | ) |
| inline

## ◆ back() [2/2]

const_reference Gtk::TreePath::back | ( |  | ) | const
| inline

## ◆ begin() [1/2]

iterator Gtk::TreePath::begin | ( |  | ) |

## ◆ begin() [2/2]

const_iterator Gtk::TreePath::begin | ( |  | ) | const

## ◆ clear()

void Gtk::TreePath::clear | ( |  | ) |

## ◆ create_row_drag_content()

Glib::RefPtr< Gdk::ContentProvider > Gtk::TreePath::create_row_drag_content | ( | const Glib::RefPtr< const TreeModel > & | model | ) | const

Creates a content provider for dragging the path from model.

Parameters

  model | A Gtk::TreeModel.

Returns
  A Gdk::ContentProvider.

## ◆ down()

void Gtk::TreePath::down | ( |  | ) |

Moves path to point to the first child of the current path.

Deprecated: 4.10

## ◆ empty()

bool Gtk::TreePath::empty | ( |  | ) | const

## ◆ end() [1/2]

iterator Gtk::TreePath::end | ( |  | ) |

## ◆ end() [2/2]

const_iterator Gtk::TreePath::end | ( |  | ) | const

## ◆ front() [1/2]

reference Gtk::TreePath::front | ( |  | ) |
| inline

## ◆ front() [2/2]

const_reference Gtk::TreePath::front | ( |  | ) | const
| inline

## ◆ get_row_drag_data() [1/2]

static bool Gtk::TreePath::get_row_drag_data | ( | const Glib::ValueBase & | value,
|  | Glib::RefPtr< const TreeModel > & | model,
|  | TreePath & | path
| ) |  |
| static

Obtains a Gtk::TreeModel and Gtk::TreeModel::Path from value of target type GTK_TYPE_TREE_ROW_DATA.

Parameters

  | value | A Glib::ValueBase
  [out] | model | A Gtk::TreeModel
  [out] | path | A row in model

Returns
  `true` if the value had target type GTK_TYPE_TREE_ROW_DATA and is otherwise valid.

## ◆ get_row_drag_data() [2/2]

static bool Gtk::TreePath::get_row_drag_data | ( | const Glib::ValueBase & | value,
|  | TreePath & | path
| ) |  |
| static

See description in the other overload.

## ◆ get_type()

static GType Gtk::TreePath::get_type | ( |  | ) |
| static

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

## ◆ gobj() [1/2]

GtkTreePath * Gtk::TreePath::gobj | ( |  | ) |
| inline

Provides access to the underlying C instance.

## ◆ gobj() [2/2]

const GtkTreePath * Gtk::TreePath::gobj | ( |  | ) | const
| inline

Provides access to the underlying C instance.

## ◆ gobj_copy()

GtkTreePath * Gtk::TreePath::gobj_copy | ( |  | ) | const

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

## ◆ is_ancestor()

bool Gtk::TreePath::is_ancestor | ( | const TreePath & | descendant | ) | const

Returns `true` if descendant is a descendant of path.

Deprecated: 4.10

Parameters

  descendant | Another `Gtk::TreePath`.

Returns
  `true` if descendant is contained inside path.

## ◆ is_descendant()

bool Gtk::TreePath::is_descendant | ( | const TreePath & | ancestor | ) | const

Returns `true` if path is a descendant of ancestor.

Deprecated: 4.10

Parameters

  ancestor | Another `Gtk::TreePath`.

Returns
  `true` if ancestor contains path somewhere below it.

## ◆ next()

void Gtk::TreePath::next | ( |  | ) |

Moves the path to point to the next node at the current depth.

Deprecated: 4.10

## ◆ operator bool()

Gtk::TreePath::operator bool | ( |  | ) | const
| explicit

Checks that the path is not empty, by calling empty().

For instance,

if(treepath)
do_something()

Since gtkmm 3.22:

## ◆ operator=() [1/3]

TreePath & Gtk::TreePath::operator= | ( | const TreeModel::iterator & | iter | ) |

## ◆ operator=() [2/3]

TreePath & Gtk::TreePath::operator= | ( | const TreePath & | other | ) |

## ◆ operator=() [3/3]

TreePath & Gtk::TreePath::operator= | ( | TreePath && | other | ) |
| noexcept

## ◆ operator[]() [1/2]

reference Gtk::TreePath::operator[] | ( | size_type | i | ) |

## ◆ operator[]() [2/2]

const_reference Gtk::TreePath::operator[] | ( | size_type | i | ) | const

## ◆ prev()

bool Gtk::TreePath::prev | ( |  | ) |

Moves the path to point to the previous node at the current depth, if it exists.

Deprecated: 4.10

Returns
  `true` if path has a previous node, and the move was made.

## ◆ push_back()

void Gtk::TreePath::push_back | ( | int | index | ) |

Appends a new index to a path.

As a result, the depth of the path is increased.

Deprecated: 4.10

Parameters

  index | The index.

## ◆ push_front()

void Gtk::TreePath::push_front | ( | int | index | ) |

Prepends a new index to a path.

As a result, the depth of the path is increased.

Deprecated: 4.10

Parameters

  index | The index.

## ◆ rbegin() [1/2]

reverse_iterator Gtk::TreePath::rbegin | ( |  | ) |
| inline

## ◆ rbegin() [2/2]

const_reverse_iterator Gtk::TreePath::rbegin | ( |  | ) | const
| inline

## ◆ rend() [1/2]

reverse_iterator Gtk::TreePath::rend | ( |  | ) |
| inline

## ◆ rend() [2/2]

const_reverse_iterator Gtk::TreePath::rend | ( |  | ) | const
| inline

## ◆ size()

size_type Gtk::TreePath::size | ( |  | ) | const

## ◆ swap()

void Gtk::TreePath::swap | ( | TreePath & | other | ) |
| noexcept

## ◆ to_string()

Glib::ustring Gtk::TreePath::to_string | ( |  | ) | const

Generates a string representation of the path.

This string is a “:” separated list of numbers. For example, “4:10:0:3” would be an acceptable return value for this string. If the path has depth 0, `nullptr` is returned.

Deprecated: 4.10

Returns
  The string.

## ◆ up()

bool Gtk::TreePath::up | ( |  | ) |

Moves the path to point to its parent node, if it has a parent.

Deprecated: 4.10

Returns
  `true` if path has a parent, and the move was made.

## Friends And Related Symbol Documentation

## ◆ operator!=()

bool operator!= | ( | const TreePath & | lhs,
|  | const TreePath & | rhs
| ) |  |
| related

Parameters

  lhs | The left-hand side
  rhs | The right-hand side

Returns
  The result

## ◆ operator<()

bool operator< | ( | const TreePath & | lhs,
|  | const TreePath & | rhs
| ) |  |
| related

Parameters

  lhs | The left-hand side
  rhs | The right-hand side

Returns
  The result

## ◆ operator<=()

bool operator<= | ( | const TreePath & | lhs,
|  | const TreePath & | rhs
| ) |  |
| related

Parameters

  lhs | The left-hand side
  rhs | The right-hand side

Returns
  The result

## ◆ operator==()

bool operator== | ( | const TreePath & | lhs,
|  | const TreePath & | rhs
| ) |  |
| related

Parameters

  lhs | The left-hand side
  rhs | The right-hand side

Returns
  The result

## ◆ operator>()

bool operator> | ( | const TreePath & | lhs,
|  | const TreePath & | rhs
| ) |  |
| related

Parameters

  lhs | The left-hand side
  rhs | The right-hand side

Returns
  The result

## ◆ operator>=()

bool operator>= | ( | const TreePath & | lhs,
|  | const TreePath & | rhs
| ) |  |
| related

Parameters

  lhs | The left-hand side
  rhs | The right-hand side

Returns
  The result

## ◆ swap()

void swap | ( | TreePath & | lhs,
|  | TreePath & | rhs
| ) |  |
| related

Parameters

  lhs | The left-hand side
  rhs | The right-hand side

## ◆ wrap()

Gtk::TreePath wrap | ( | GtkTreePath * | object,
|  | bool | take_copy = `false`
| ) |  |
| related

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

Parameters

  object | The C instance.
  take_copy | False 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.

## Member Data Documentation

## ◆ gobject_

GtkTreePath* Gtk::TreePath::gobject_
| protected