gtkmm: Gtk::TreePath Class Reference

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< iteratorreverse_iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 

Public Member Functions

 TreePath ()
 
 TreePath (const TreePath& other)
 
TreePathoperator= (const TreePath& other)
 
 TreePath (TreePath&& other) noexcept
 
TreePathoperator= (TreePath&& other) noexcept
 
 ~TreePath () noexcept
 
void swap (TreePath& other) noexcept
 
GtkTreePath* gobj ()
 Provides access to the underlying C instance. More...

 
const GtkTreePath* gobj () const
 Provides access to the underlying C instance. More...

 
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. More...

 
 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 ()
 
TreePathoperator= (const TreeModel::iterator& iter)
 
 operator bool () const
 Checks that the path is not empty, by calling empty(). More...

 
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. More...

 
void push_front (int index)
 Prepends a new index to a path. More...

 
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. More...

 
bool prev ()
 Moves the path to point to the previous node at the current depth, if it exists. More...

 
bool up ()
 Moves the path to point to its parent node, if it has a parent. More...

 
void down ()
 Moves path to point to the first child of the current path. More...

 
bool is_ancestor (const TreePath& descendant) const
 Returns true if descendant is a descendant of path. More...

 
bool is_descendant (const TreePath& ancestor) const
 Returns true if path is a descendant of ancestor. More...

 
Glib::ustring to_string () const
 Generates a string representation of the path. More...

 
Glib::RefPtr< Gdk::ContentProvidercreate_row_drag_content (const Glib::RefPtr< const TreeModel >& model) const
 Creates a content provider for dragging the path from model. More...

 

Static Public Member Functions

static GType get_type ()
 Get the GType for this class, for use with the underlying GObject type system. More...

 
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. More...

 
static bool get_row_drag_data (const Glib::ValueBase& value, TreePath& path)
 See description in the other overload. More...

 

Protected Attributes

GtkTreePath* gobject_
 

Related Functions

(Note that these are not member functions.)

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. More...

 

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.

Member Typedef Documentation

typedef const int* Gtk::TreePath::const_iterator
typedef const int& Gtk::TreePath::const_reference
typedef unsigned int Gtk::TreePath::size_type

Constructor & Destructor Documentation

Gtk::TreePath::TreePath ( )
Gtk::TreePath::TreePath ( const TreePath other)
Gtk::TreePath::TreePath ( TreePath&&  other)
noexcept
Gtk::TreePath::~TreePath ( )
noexcept
Gtk::TreePath::TreePath ( GtkTreePath *  gobject,
bool  make_a_copy = true 
)
explicit
Gtk::TreePath::TreePath ( size_type  n,
value_type  value = 0 
)
explicit
Gtk::TreePath::TreePath ( const Glib::ustring path)
explicit
Gtk::TreePath::TreePath ( const TreeModel::iterator iter)
explicit
template <class In >
Gtk::TreePath::TreePath ( In  pbegin,
In  pend 
)
inline

Member Function Documentation

template <class In >
void Gtk::TreePath::append ( In  pbegin,
In  pend 
)
template <class In >
void Gtk::TreePath::assign ( In  pbegin,
In  pend 
)
inline
reference Gtk::TreePath::back ( )
inline
const_reference Gtk::TreePath::back ( ) const
inline
iterator Gtk::TreePath::begin ( )
const_iterator Gtk::TreePath::begin ( ) const
void Gtk::TreePath::clear ( )
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
modelA Gtk::TreeModel.
Returns
A Gdk::ContentProvider.
void Gtk::TreePath::down ( )

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

bool Gtk::TreePath::empty ( ) const
iterator Gtk::TreePath::end ( )
const_iterator Gtk::TreePath::end ( ) const
reference Gtk::TreePath::front ( )
inline
const_reference Gtk::TreePath::front ( ) const
inline
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
valueA Glib::ValueBase
[out]modelA Gtk::TreeModel
[out]pathA row in model
Returns
true if the value had target type GTK_TYPE_TREE_ROW_DATA and is otherwise valid.
static bool Gtk::TreePath::get_row_drag_data ( const Glib::ValueBase value,
TreePath path 
)
static

See description in the other overload.

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

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

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

Provides access to the underlying C instance.

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

Provides access to the underlying C instance.

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.

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

Returns true if descendant is a descendant of path.

Parameters
descendantAnother Gtk::TreePath-struct.
Returns
true if descendant is contained inside path.
bool Gtk::TreePath::is_descendant ( const TreePath ancestor) const

Returns true if path is a descendant of ancestor.

Parameters
ancestorAnother Gtk::TreePath-struct.
Returns
true if ancestor contains path somewhere below it.
void Gtk::TreePath::next ( )

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

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:
TreePath& Gtk::TreePath::operator= ( const TreePath other)
TreePath& Gtk::TreePath::operator= ( TreePath&&  other)
noexcept
TreePath& Gtk::TreePath::operator= ( const TreeModel::iterator iter)
reference Gtk::TreePath::operator[] ( size_type  i)
const_reference Gtk::TreePath::operator[] ( size_type  i) const
bool Gtk::TreePath::prev ( )

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

Returns
true if path has a previous node, and the move was made.
void Gtk::TreePath::push_back ( int  index)

Appends a new index to a path.

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

Parameters
indexThe index.
void Gtk::TreePath::push_front ( int  index)

Prepends a new index to a path.

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

Parameters
indexThe index.
reverse_iterator Gtk::TreePath::rbegin ( )
inline
const_reverse_iterator Gtk::TreePath::rbegin ( ) const
inline
reverse_iterator Gtk::TreePath::rend ( )
inline
const_reverse_iterator Gtk::TreePath::rend ( ) const
inline
size_type Gtk::TreePath::size ( ) const
void Gtk::TreePath::swap ( TreePath other)
noexcept
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.

Returns
The string.
bool Gtk::TreePath::up ( )

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

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

Friends And Related Function Documentation

bool operator!= ( const TreePath lhs,
const TreePath rhs 
)
related
Parameters
lhsThe left-hand side
rhsThe right-hand side
Returns
The result
bool operator< ( const TreePath lhs,
const TreePath rhs 
)
related
Parameters
lhsThe left-hand side
rhsThe right-hand side
Returns
The result
bool operator<= ( const TreePath lhs,
const TreePath rhs 
)
related
Parameters
lhsThe left-hand side
rhsThe right-hand side
Returns
The result
bool operator== ( const TreePath lhs,
const TreePath rhs 
)
related
Parameters
lhsThe left-hand side
rhsThe right-hand side
Returns
The result
bool operator> ( const TreePath lhs,
const TreePath rhs 
)
related
Parameters
lhsThe left-hand side
rhsThe right-hand side
Returns
The result
bool operator>= ( const TreePath lhs,
const TreePath rhs 
)
related
Parameters
lhsThe left-hand side
rhsThe right-hand side
Returns
The result
void swap ( TreePath lhs,
TreePath rhs 
)
related
Parameters
lhsThe left-hand side
rhsThe right-hand side
Gtk::TreePath wrap ( GtkTreePath *  object,
bool  take_copy = false 
)
related

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

Parameters
objectThe C instance.
take_copyFalse 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

GtkTreePath* Gtk::TreePath::gobject_
protected