bonobo-ui-node

Name

bonobo-ui-node -- Simplified XML Node manipulation API

Synopsis



struct      BonoboUINode;
BonoboUINode* bonobo_ui_node_new            (const char *name);
BonoboUINode* bonobo_ui_node_new_child      (BonoboUINode *parent,
                                             const char *name);
BonoboUINode* bonobo_ui_node_copy           (BonoboUINode *node,
                                             gboolean recursive);
void        bonobo_ui_node_free             (BonoboUINode *node);
void        bonobo_ui_node_set_data         (BonoboUINode *node,
                                             gpointer data);
gpointer    bonobo_ui_node_get_data         (BonoboUINode *node);
void        bonobo_ui_node_set_attr         (BonoboUINode *node,
                                             const char *name,
                                             const char *value);
char*       bonobo_ui_node_get_attr         (BonoboUINode *node,
                                             const char *name);
gboolean    bonobo_ui_node_has_attr         (BonoboUINode *node,
                                             const char *name);
void        bonobo_ui_node_remove_attr      (BonoboUINode *node,
                                             const char *name);
void        bonobo_ui_node_add_child        (BonoboUINode *parent,
                                             BonoboUINode *child);
void        bonobo_ui_node_insert_before    (BonoboUINode *sibling,
                                             BonoboUINode *prev_sibling);
void        bonobo_ui_node_unlink           (BonoboUINode *node);
void        bonobo_ui_node_replace          (BonoboUINode *old_node,
                                             BonoboUINode *new_node);
void        bonobo_ui_node_set_content      (BonoboUINode *node,
                                             const char *content);
char*       bonobo_ui_node_get_content      (BonoboUINode *node);
BonoboUINode* bonobo_ui_node_next           (BonoboUINode *node);
BonoboUINode* bonobo_ui_node_prev           (BonoboUINode *node);
BonoboUINode* bonobo_ui_node_children       (BonoboUINode *node);
BonoboUINode* bonobo_ui_node_parent         (BonoboUINode *node);
const char* bonobo_ui_node_get_name         (BonoboUINode *node);
gboolean    bonobo_ui_node_has_name         (BonoboUINode *node,
                                             const char *name);
gboolean    bonobo_ui_node_transparent      (BonoboUINode *node);
void        bonobo_ui_node_copy_attrs       (BonoboUINode *src,
                                             BonoboUINode *dest);
void        bonobo_ui_node_free_string      (char *str);
char*       bonobo_ui_node_to_string        (BonoboUINode *node,
                                             gboolean recurse);
BonoboUINode* bonobo_ui_node_from_string    (const char *str);
BonoboUINode* bonobo_ui_node_from_file      (const char *filename);
void        bonobo_ui_node_strip            (BonoboUINode **node);

Description

The BonoboUINode API is designed to make XML node manipulation simple, and to hide the underlying implementation of the XML tree. This is to allow the use of some more efficient internal representation than libxml's at some later date.

Details

struct BonoboUINode

struct BonoboUINode;

The BonoboUINode structure is fully opaque to stop any code depending on libxml inadvertantly.


bonobo_ui_node_new ()

BonoboUINode* bonobo_ui_node_new            (const char *name);

Creates a new node with name name


bonobo_ui_node_new_child ()

BonoboUINode* bonobo_ui_node_new_child      (BonoboUINode *parent,
                                             const char *name);

Create a new node as a child of parent with name name


bonobo_ui_node_copy ()

BonoboUINode* bonobo_ui_node_copy           (BonoboUINode *node,
                                             gboolean recursive);

Copy an XML node, if recursive do a deep copy, otherwise just dup the node itself.


bonobo_ui_node_free ()

void        bonobo_ui_node_free             (BonoboUINode *node);

Frees the memory associated with the node and unlink it from the tree


bonobo_ui_node_set_data ()

void        bonobo_ui_node_set_data         (BonoboUINode *node,
                                             gpointer data);

Associates some user data with the node pointer


bonobo_ui_node_get_data ()

gpointer    bonobo_ui_node_get_data         (BonoboUINode *node);

Gets user data associated with node


bonobo_ui_node_set_attr ()

void        bonobo_ui_node_set_attr         (BonoboUINode *node,
                                             const char *name,
                                             const char *value);

Set the attribute of name on node to value overriding any previous values of that attr.


bonobo_ui_node_get_attr ()

char*       bonobo_ui_node_get_attr         (BonoboUINode *node,
                                             const char *name);

Fetch the value of an attr of name name from node see also: bonobo_ui_node_free_string


bonobo_ui_node_has_attr ()

gboolean    bonobo_ui_node_has_attr         (BonoboUINode *node,
                                             const char *name);

Determines whether the node has an attribute of name name


bonobo_ui_node_remove_attr ()

void        bonobo_ui_node_remove_attr      (BonoboUINode *node,
                                             const char *name);

remove any attribute with name name from node


bonobo_ui_node_add_child ()

void        bonobo_ui_node_add_child        (BonoboUINode *parent,
                                             BonoboUINode *child);

Add a child node to the parent node ( after the other children )


bonobo_ui_node_insert_before ()

void        bonobo_ui_node_insert_before    (BonoboUINode *sibling,
                                             BonoboUINode *prev_sibling);

Insert a sibling before prev_sibling in a node list


bonobo_ui_node_unlink ()

void        bonobo_ui_node_unlink           (BonoboUINode *node);

Unlink node from its tree, ie. disassociate it with its parent


bonobo_ui_node_replace ()

void        bonobo_ui_node_replace          (BonoboUINode *old_node,
                                             BonoboUINode *new_node);

Replace old_node with new_node in the tree. old_node is left unlinked and floating with its children.


bonobo_ui_node_set_content ()

void        bonobo_ui_node_set_content      (BonoboUINode *node,
                                             const char *content);

Set the textual content of node to content


bonobo_ui_node_get_content ()

char*       bonobo_ui_node_get_content      (BonoboUINode *node);

see also: bonobo_ui_node_free_string


bonobo_ui_node_next ()

BonoboUINode* bonobo_ui_node_next           (BonoboUINode *node);

accesses the next node.


bonobo_ui_node_prev ()

BonoboUINode* bonobo_ui_node_prev           (BonoboUINode *node);

accesses the previous node.


bonobo_ui_node_children ()

BonoboUINode* bonobo_ui_node_children       (BonoboUINode *node);

accesses the node's children.


bonobo_ui_node_parent ()

BonoboUINode* bonobo_ui_node_parent         (BonoboUINode *node);

accesses the node's parent.


bonobo_ui_node_get_name ()

const char* bonobo_ui_node_get_name         (BonoboUINode *node);


bonobo_ui_node_has_name ()

gboolean    bonobo_ui_node_has_name         (BonoboUINode *node,
                                             const char *name);

accesses the node's name.


bonobo_ui_node_transparent ()

gboolean    bonobo_ui_node_transparent      (BonoboUINode *node);

Determines whether node is transparent. A node is transparent if it has no content and either no attributes or a single 'name' attribute.


bonobo_ui_node_copy_attrs ()

void        bonobo_ui_node_copy_attrs       (BonoboUINode *src,
                                             BonoboUINode *dest);

This function copies all the attributes from src to dest effectively cloning the src node as dest


bonobo_ui_node_free_string ()

void        bonobo_ui_node_free_string      (char *str);

Frees a string returned by any of the get routines.


bonobo_ui_node_to_string ()

char*       bonobo_ui_node_to_string        (BonoboUINode *node,
                                             gboolean recurse);

Convert the Node to its XML string representation see also: bonobo_ui_node_free_string


bonobo_ui_node_from_string ()

BonoboUINode* bonobo_ui_node_from_string    (const char *str);

Parses a string into an XML tree


bonobo_ui_node_from_file ()

BonoboUINode* bonobo_ui_node_from_file      (const char *filename);

Loads and parses the filename into an XML tree


bonobo_ui_node_strip ()

void        bonobo_ui_node_strip            (BonoboUINode **node);

This function is used to purge unwanted content from a set of nodes, and particularly clean up stray Doc and NS pointers that cause serious trouble later.

See Also

BonoboUIComponent, bonobo-ui-util