Logo Search packages:      
Sourcecode: inkscape version File versions  Download package

Inkscape::XML::Document Struct Reference

#include <document.h>

Inheritance diagram for Inkscape::XML::Document:

Inkscape::XML::Node Inkscape::GC::Anchored

List of all members.

Detailed Description

Interface for XML documents.

This class represents a complete document tree. You have to go through this class to create new nodes. It also contains transaction support, which forms the base of the undo system.

The document is also a node. It usually contains only two child nodes - a processing instruction node (PINode) containing the XML prolog, and the root node. You can get the root node of the document by calling the root() method.

The name "transaction" can be misleading, because they are not atomic. Their main feature is that they provide rollback. After starting a transaction, all changes made to the document are stored in an internal event log. At any time after starting the transaction, you can call the rollback() method, which restores the document to the state it was before starting the transaction. Calling the commit() method causes the internal event log to be discarded, and you can estabilish a new "restore point" by calling beginTransaction() again. There can be only one active transaction at a time for a given document.

Definition at line 44 of file document.h.

Public Member Functions

unsigned _anchored_refcount () const
void anchor () const
virtual NodeObserverlogger ()=0
 Get the event logger for this document.
void release () const
Manipulate the XML tree
virtual void addChild (Node *child, Node *after)=0
 Insert another node as a child of this node.
virtual void appendChild (Node *child)=0
 Append a node as the last child of this node.
virtual void changeOrder (Node *child, Node *after)=0
 Move a given node in this node's child order.
virtual Nodeduplicate (Document *doc) const =0
 Create a duplicate of this node.
virtual void mergeFrom (Node const *src, gchar const *key)=0
 Merge all children of another node with the current.
virtual void removeChild (Node *child)=0
 Remove a child of this node.
Notify observers about operations on the node
virtual void addListener (NodeEventVector const *vector, void *data)=0
 Add a set node change callbacks with an associated data.
virtual void addObserver (NodeObserver &observer)=0
 Add an object that will be notified of the changes to this node.
virtual void addSubtreeObserver (NodeObserver &observer)=0
 Add an object that will be notified of the changes to this node and its descendants.
virtual void removeListenerByData (void *data)=0
 Remove a set of node change callbacks by their associated data.
virtual void removeObserver (NodeObserver &observer)=0
 Remove an object from the list of observers.
virtual void removeSubtreeObserver (NodeObserver &observer)=0
 Remove an object from the subtree observers list.
virtual void synthesizeEvents (NodeEventVector const *vector, void *data)=0
 Generate a sequence of events corresponding to the state of this node.
virtual void synthesizeEvents (NodeObserver &observer)=0
 Generate a sequence of events corresponding to the state of this node.
Retrieve information about the node
virtual gchar const * attribute (gchar const *key) const =0
 Get the string representation of a node's attribute.
virtual Inkscape::Util::List
< AttributeRecord const > 
attributeList () const =0
 Get a list of the node's attributes.
virtual unsigned childCount () const =0
 Get the number of children of this node.
virtual int code () const =0
 Get the integer code corresponding to the node's name.
virtual gchar const * content () const =0
 Get the content of a text or comment node.
virtual bool matchAttributeName (gchar const *partial_name) const =0
 Check whether this node has any attribute that matches a string.
virtual gchar const * name () const =0
 Get the name of the element node.
virtual unsigned position () const =0
 Get the index of this node in parent's child order.
virtual NodeType type () const =0
 Get the type of the node.
Document transactions
virtual void beginTransaction ()=0
 Begin a transaction and start recording changes.
virtual void commit ()=0
 Commit a transaction and discard change data.
virtual EventcommitUndoable ()=0
 Commit a transaction and store the events for later use.
virtual bool inTransaction ()=0
 Checks whether there is an active transaction for this document.
virtual void rollback ()=0
 Restore the state of the document prior to the transaction.
Create new nodes
virtual NodecreateComment (char const *content)=0
virtual NodecreateElement (char const *name)=0
virtual NodecreatePI (char const *target, char const *content)=0
virtual NodecreateTextNode (char const *content)=0
Traverse the XML tree
virtual Document const * document () const =0
virtual Documentdocument ()=0
 Get the node's associated document.
virtual Node const * firstChild () const =0
virtual NodefirstChild ()=0
 Get the first child of this node.
virtual Node const * lastChild () const =0
virtual NodelastChild ()=0
 Get the last child of this node.
virtual Node const * next () const =0
virtual Nodenext ()=0
 Get the next sibling of this node.
virtual Node const * nthChild (unsigned index) const =0
virtual NodenthChild (unsigned index)=0
 Get the child of this node with a given index.
virtual Node const * parent () const =0
virtual Nodeparent ()=0
 Get the parent of this node.
virtual Node const * root () const =0
virtual Noderoot ()=0
 Get the root node of this node's document.
Modify the node
virtual void setAttribute (gchar const *key, gchar const *value, bool is_interactive=false)=0
 Change an attribute of this node.
virtual void setCodeUnsafe (int code)=0
 Directly set the integer GQuark code for the name of the node.
virtual void setContent (gchar const *value)=0
 Set the content of a text or comment node.
virtual void setPosition (int pos)=0
 Set the position of this node in parent's child order.

Related Functions

(Note that these are not member functions.)

Inkscape::XML::Nodesp_repr_lookup_child (Inkscape::XML::Node *repr, gchar const *key, gchar const *value)
 Find an element node using an unique attribute.
Inkscape::XML::Nodesp_repr_lookup_name (Inkscape::XML::Node *repr, gchar const *name, gint maxdepth)
 Find an element node with the given name.
Nodenext_node (Node *node)
 Get the next node in sibling order.
Nodeparent_node (Node *node)
 Get the node's parent.
Nodeprevious_node (Node *node)
 Get the previous node in sibling order.

The documentation for this struct was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index