/* -*- C -*- */ |
class GTK2.TreePath; |
|
//! TreePath. |
|
void create(?string path) |
//! Creates a new GTK2.TreePath. |
{ |
pgtk2_verify_not_inited(); |
pgtk2_verify_setup(); |
if (args) { |
char *s; |
get_all_args("create",args,"%s",&s); |
if (s) { |
THIS->obj=(void *)gtk_tree_path_new_from_string(s); |
} else { |
THIS->obj=(void *)gtk_tree_path_new_first(); |
} |
} else { |
THIS->obj=(void *)gtk_tree_path_new_first(); |
} |
pgtk2_pop_n_elems(args); |
pgtk2__init_this_object(); |
} |
|
string _sprintf(int flag) |
{ |
INT_TYPE mode=0; |
pgtk2_verify_inited(); |
if (args) |
get_all_args("_sprintf",args,"%i",&mode); |
pgtk2_pop_n_elems(args); |
if (mode!='O') { |
push_undefined(); |
return; |
} |
{ |
gchar *s=gtk_tree_path_to_string((GtkTreePath *)THIS->obj); |
if (s) { |
ref_push_string(_STR("GTK2.TreePath( \"")); |
push_text(s); |
ref_push_string(_STR("\" );")); |
f_add(3); |
g_free(s); |
} else |
push_undefined(); |
} |
} |
|
string to_string() |
//! 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. |
{ |
pgtk2_verify_inited(); |
{ |
const gchar *a1; |
a1=gtk_tree_path_to_string((GtkTreePath *)THIS->obj); |
pgtk2_pop_n_elems(args); |
PGTK_PUSH_GCHAR(a1); |
} |
} |
|
void append_index(int index) |
//! Appends a new index to path. As a result, the depth |
//! of the path is increased. |
{ |
pgtk2_verify_inited(); |
{ |
INT_TYPE index; |
get_all_args("append_index",args,"%i",&index); |
gtk_tree_path_append_index((GtkTreePath *)THIS->obj,index); |
} |
RETURN_THIS(); |
} |
|
void prepend_index(int index) |
//! Prepends a new index to a path. As a result, the depth |
//! of the path is increased. |
{ |
pgtk2_verify_inited(); |
{ |
INT_TYPE index; |
get_all_args("prepend_index",args,"%i",&index); |
gtk_tree_path_prepend_index((GtkTreePath *)THIS->obj,index); |
} |
RETURN_THIS(); |
} |
|
int get_depth() |
//! Returns the current depth of path. |
{ |
pgtk2_verify_inited(); |
pgtk2_pop_n_elems(args); |
PGTK_PUSH_INT(gtk_tree_path_get_depth((GtkTreePath *)THIS->obj)); |
} |
|
array(int) get_indices() |
//! Returns the current indices of path as an array |
//! of integers, each representing a node in a tree. |
{ |
int n=0; |
gint *arr=gtk_tree_path_get_indices((GtkTreePath *)THIS->obj); |
pgtk2_pop_n_elems(args); |
while (arr[n]) |
PGTK_PUSH_INT(arr[n++]); |
if (!n) |
ref_push_array(&empty_array); |
else |
f_aggregate(n); |
} |
|
void destroy() |
{ |
if (THIS->obj) |
gtk_tree_path_free((GtkTreePath *)THIS->obj); |
THIS->obj=0; |
pgtk2_pop_n_elems(args); |
PGTK_PUSH_INT(0); |
} |
|
GTK2.TreePath copy() |
//! Creates a new GTK2.TreePath as a copy. |
{ |
pgtk2_verify_inited(); |
{ |
GtkTreePath *a1; |
a1=(GtkTreePath *)gtk_tree_path_copy((GtkTreePath *)THIS->obj); |
pgtk2_pop_n_elems(args); |
push_gobjectclass(a1,pgtk2_tree_path_program); |
} |
} |
|
int compare(GTK2.TreePath b) |
//! Compares two paths. If this path appears before b, -1 is returned. |
//! If b before this path, 1 is return. If they are equal, 0 is returned. |
{ |
pgtk2_verify_inited(); |
{ |
GtkTreePath *gp=NULL; |
struct object *o1; |
int res; |
get_all_args("compare",args,"%o",&o1); |
if (o1) |
gp=(GtkTreePath *)get_pg2object(o1,pgtk2_tree_path_program); |
res=gtk_tree_path_compare((GtkTreePath *)THIS->obj,gp); |
pgtk2_pop_n_elems(args); |
PGTK_PUSH_INT(res); |
} |
} |
|
void next() |
//! Moves the path to point to the next node at the current depth. |
{ |
pgtk2_verify_inited(); |
gtk_tree_path_next((GtkTreePath *)THIS->obj); |
RETURN_THIS(); |
} |
|
void prev() |
//! Moves the path to point to the previous node at the current depth, |
//! if it exists. Returns TRUE if the move was made. |
{ |
pgtk2_verify_inited(); |
gtk_tree_path_prev((GtkTreePath *)THIS->obj); |
RETURN_THIS(); |
} |
|
void up() |
//! Moves the path to point to its parent node, if it has a parent. |
{ |
pgtk2_verify_inited(); |
gtk_tree_path_up((GtkTreePath *)THIS->obj); |
RETURN_THIS(); |
} |
|
void down() |
//! Moves path to point to the first child of the current path. |
{ |
pgtk2_verify_inited(); |
gtk_tree_path_down((GtkTreePath *)THIS->obj); |
RETURN_THIS(); |
} |
|
int is_ancestor(GTK2.TreePath descendant) |
//! Returns TRUE if descendant is a descendant of this path. |
{ |
pgtk2_verify_inited(); |
{ |
GtkTreePath *gp=NULL; |
struct object *o1; |
int res; |
get_all_args("is_ancestor",args,"%o",&o1); |
if (o1) |
gp=(GtkTreePath *)get_pg2object(o1,pgtk2_tree_path_program); |
res=gtk_tree_path_is_ancestor((GtkTreePath *)THIS->obj,gp); |
pgtk2_pop_n_elems(args); |
PGTK_PUSH_INT(res); |
} |
} |
|
int is_descendant(GTK2.TreePath ancestor) |
//! Returns TRUE if this path is a descendant of ancestor. |
{ |
pgtk2_verify_inited(); |
{ |
GtkTreePath *gp; |
struct object *o1; |
int res; |
get_all_args("is_descendant",args,"%o",&o1); |
if (o1) |
gp=(GtkTreePath *)get_pg2object(o1,pgtk2_tree_path_program); |
res=gtk_tree_path_is_descendant((GtkTreePath *)THIS->obj,gp); |
pgtk2_pop_n_elems(args); |
PGTK_PUSH_INT(res); |
} |
} |
|