#ifndef __CR_NODE_IFACE_H__ #define __CR_NODE_IFACE_H__ #include G_BEGIN_DECLS typedef gconstpointer CRXMLNodePtr ; typedef struct _CRNodeIface CRNodeIface ; struct _CRNodeIface { /* Names based on DOM. */ CRXMLNodePtr (*getParentNode)(CRXMLNodePtr); CRXMLNodePtr (*getFirstChild)(CRXMLNodePtr); CRXMLNodePtr (*getNextSibling)(CRXMLNodePtr); CRXMLNodePtr (*getPrevSibling)(CRXMLNodePtr); char const *(*getLocalName)(CRXMLNodePtr); char *(*getProp)(CRXMLNodePtr, char const *); /* Others. */ void (*freePropVal)(void *); gboolean (*isElementNode)(CRXMLNodePtr); #if 0 char const *getLang(CRXMLNodePtr); /* todo: Make it easy to have the default xml rules for lang. Maybe interpret NULL like this. Or provide a cr_get_xml_lang(CRNodeIface const *, CRXMLNodePtr) function. */ #endif }; G_END_DECLS #endif/*__CR_NODE_IFACE_H__*/