30#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
31#error "Only <glib.h> can be included directly."
85#define G_NODE_IS_ROOT(node) (((GNode*) (node))->parent == NULL && \
86 ((GNode*) (node))->prev == NULL && \
87 ((GNode*) (node))->next == NULL)
98#define G_NODE_IS_LEAF(node) (((GNode*) (node))->children == NULL)
153#define g_node_append(parent, node) \
154 g_node_insert_before ((parent), NULL, (node))
167#define g_node_insert_data(parent, position, data) \
168 g_node_insert ((parent), (position), g_node_new (data))
181#define g_node_insert_data_after(parent, sibling, data) \
182 g_node_insert_after ((parent), (sibling), g_node_new (data))
193#define g_node_insert_data_before(parent, sibling, data) \
194 g_node_insert_before ((parent), (sibling), g_node_new (data))
205#define g_node_prepend_data(parent, data) \
206 g_node_prepend ((parent), g_node_new (data))
217#define g_node_append_data(parent, data) \
218 g_node_insert_before ((parent), NULL, g_node_new (data))
280#define g_node_prev_sibling(node) ((node) ? \
281 ((GNode*) (node))->prev : NULL)
292#define g_node_next_sibling(node) ((node) ? \
293 ((GNode*) (node))->next : NULL)
304#define g_node_first_child(node) ((node) ? \
305 ((GNode*) (node))->children : NULL)
#define GLIB_AVAILABLE_IN_ALL
GLIB_AVAILABLE_IN_ALL gint g_node_child_position(GNode *node, GNode *child)
GLIB_AVAILABLE_IN_ALL GNode * g_node_nth_child(GNode *node, guint n)
GLIB_AVAILABLE_IN_ALL void g_node_traverse(GNode *root, GTraverseType order, GTraverseFlags flags, gint max_depth, GNodeTraverseFunc func, gpointer data)
gboolean(* GNodeTraverseFunc)(GNode *node, gpointer data)
GLIB_AVAILABLE_IN_ALL GNode * g_node_last_sibling(GNode *node)
GLIB_AVAILABLE_IN_ALL GNode * g_node_new(gpointer data)
GLIB_AVAILABLE_IN_ALL guint g_node_depth(GNode *node)
GLIB_AVAILABLE_IN_ALL GNode * g_node_copy_deep(GNode *node, GCopyFunc copy_func, gpointer data)
void(* GNodeForeachFunc)(GNode *node, gpointer data)
GLIB_AVAILABLE_IN_ALL void g_node_destroy(GNode *root)
GLIB_AVAILABLE_IN_ALL GNode * g_node_first_sibling(GNode *node)
GLIB_AVAILABLE_IN_ALL GNode * g_node_prepend(GNode *parent, GNode *node)
GLIB_AVAILABLE_IN_ALL gint g_node_child_index(GNode *node, gpointer data)
GLIB_AVAILABLE_IN_ALL guint g_node_n_nodes(GNode *root, GTraverseFlags flags)
GLIB_AVAILABLE_IN_ALL GNode * g_node_last_child(GNode *node)
GLIB_AVAILABLE_IN_ALL GNode * g_node_insert_after(GNode *parent, GNode *sibling, GNode *node)
GLIB_AVAILABLE_IN_ALL GNode * g_node_copy(GNode *node)
GLIB_AVAILABLE_IN_ALL GNode * g_node_find_child(GNode *node, GTraverseFlags flags, gpointer data)
GLIB_AVAILABLE_IN_ALL void g_node_unlink(GNode *node)
GLIB_AVAILABLE_IN_ALL GNode * g_node_insert_before(GNode *parent, GNode *sibling, GNode *node)
GLIB_AVAILABLE_IN_ALL void g_node_children_foreach(GNode *node, GTraverseFlags flags, GNodeForeachFunc func, gpointer data)
GLIB_AVAILABLE_IN_ALL GNode * g_node_find(GNode *root, GTraverseType order, GTraverseFlags flags, gpointer data)
GLIB_AVAILABLE_IN_ALL gboolean g_node_is_ancestor(GNode *node, GNode *descendant)
GLIB_AVAILABLE_IN_ALL void g_node_reverse_children(GNode *node)
typedefG_BEGIN_DECLS struct _GNode GNode
GLIB_AVAILABLE_IN_ALL GNode * g_node_get_root(GNode *node)
GLIB_AVAILABLE_IN_ALL guint g_node_max_height(GNode *root)
GLIB_AVAILABLE_IN_ALL GNode * g_node_insert(GNode *parent, gint position, GNode *node)
GLIB_AVAILABLE_IN_ALL guint g_node_n_children(GNode *node)
gpointer(* GCopyFunc)(gconstpointer src, gpointer data)