Annotation of win32/gnome/gdome2-x.x.x/libgdome/gdomecore/gdome-xml-node.h, revision 1.1
1.1 ! paf 1: /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
! 2: /* gdome-xml-node.h
! 3: *
! 4: * Copyright (C) 1999 Raph Levien <raph@acm.org>
! 5: * Copyright (C) 2000 Mathieu Lacage <mathieu@gnu.org>
! 6: * Copyright (C) 2001 Paolo Casarini <paolo@casarini.org>
! 7: *
! 8: * This library is free software; you can redistribute it and/or
! 9: * modify it under the terms of the GNU Lesser General Public
! 10: * License as published by the Free Software Foundation; either
! 11: * version 2.1 of the License, or (at your option) any later version.
! 12: *
! 13: * This library is distributed in the hope that it will be useful,
! 14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
! 15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
! 16: * Lesser General Public License for more details.
! 17: *
! 18: * You should have received a copy of the GNU Lesser General Public
! 19: * License along with this library; if not, write to the Free Software
! 20: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
! 21: */
! 22:
! 23:
! 24: /* -------------------------------------------------------------- */
! 25: /* --------------------------- Node --------------------------- */
! 26: /* -------------------------------------------------------------- */
! 27:
! 28:
! 29:
! 30: #ifndef GDOME_NODE_FILE
! 31: #define GDOME_NODE_FILE
! 32:
! 33: struct _GdomeNodeVtab {
! 34: void (*ref) (GdomeNode *self, GdomeException *exc);
! 35: void (*unref) (GdomeNode *self, GdomeException *exc);
! 36: gpointer (*query_interface) (GdomeNode *self, const char *interface,
! 37: GdomeException *exc);
! 38: GdomeDOMString * (*nodeName) (GdomeNode *self, GdomeException *exc);
! 39: GdomeDOMString * (*nodeValue) (GdomeNode *self, GdomeException *exc);
! 40: void (*set_nodeValue) (GdomeNode *self, GdomeDOMString *nodeValue,
! 41: GdomeException *exc);
! 42: unsigned short (*nodeType) (GdomeNode *self, GdomeException *exc);
! 43: GdomeNode * (*parentNode) (GdomeNode *self, GdomeException *exc);
! 44: GdomeNodeList * (*childNodes) (GdomeNode *self, GdomeException *exc);
! 45: GdomeNode * (*firstChild) (GdomeNode *self, GdomeException *exc);
! 46: GdomeNode * (*lastChild) (GdomeNode *self, GdomeException *exc);
! 47: GdomeNode * (*previousSibling) (GdomeNode *self, GdomeException *exc);
! 48: GdomeNode * (*nextSibling) (GdomeNode *self, GdomeException *exc);
! 49: GdomeNamedNodeMap * (*attributes) (GdomeNode *self, GdomeException *exc);
! 50: GdomeDocument * (*ownerDocument) (GdomeNode *self, GdomeException *exc);
! 51: GdomeNode * (*insertBefore) (GdomeNode *self, GdomeNode *newChild,
! 52: GdomeNode *refChild, GdomeException *exc);
! 53: GdomeNode * (*replaceChild) (GdomeNode *self, GdomeNode *newChild,
! 54: GdomeNode *oldChild, GdomeException *exc);
! 55: GdomeNode * (*removeChild) (GdomeNode *self, GdomeNode *oldChild,
! 56: GdomeException *exc);
! 57: GdomeNode * (*appendChild) (GdomeNode *self, GdomeNode *newChild,
! 58: GdomeException *exc);
! 59: GdomeBoolean (*hasChildNodes) (GdomeNode *self, GdomeException *exc);
! 60: GdomeNode * (*cloneNode) (GdomeNode *self, GdomeBoolean deep,
! 61: GdomeException *exc);
! 62: void (*normalize) (GdomeNode *self, GdomeException *exc);
! 63: GdomeBoolean (*isSupported) (GdomeNode *self, GdomeDOMString *feature,
! 64: GdomeDOMString *version, GdomeException *exc);
! 65: GdomeDOMString * (*namespaceURI) (GdomeNode *self, GdomeException *exc);
! 66: GdomeDOMString * (*prefix) (GdomeNode *self, GdomeException *exc);
! 67: void (*set_prefix) (GdomeNode *self, GdomeDOMString *prefix,
! 68: GdomeException *exc);
! 69: GdomeDOMString * (*localName) (GdomeNode *self, GdomeException *exc);
! 70: GdomeBoolean (*hasAttributes) (GdomeNode *self, GdomeException *exc);
! 71: void (*addEventListener) (GdomeNode *self, GdomeDOMString *type,
! 72: GdomeEventListener *listener,
! 73: GdomeBoolean useCapture,
! 74: GdomeException *exc);
! 75: void (*removeEventListener) (GdomeNode *self, GdomeDOMString *type,
! 76: GdomeEventListener *listener,
! 77: GdomeBoolean useCapture, GdomeException *exc);
! 78: GdomeBoolean (*dispatchEvent) (GdomeNode *self, GdomeEvent *evt,
! 79: GdomeException *exc);
! 80: void (*subTreeDispatchEvent) (GdomeNode *self, GdomeEvent *evt,
! 81: GdomeException *exc);
! 82: GdomeBoolean (*canAppend) (GdomeNode *self,
! 83: GdomeNode *newChild,
! 84: GdomeException *exc);
! 85: };
! 86:
! 87: /* structure used for the Node events */
! 88: typedef struct _Gdome_xml_ListenerList Gdome_xml_ListenerList;
! 89: struct _Gdome_xml_ListenerList {
! 90: Gdome_xml_ListenerList *next;
! 91: char *type;
! 92: GdomeEventListener *listener;
! 93: GdomeBoolean useCapture;
! 94: GdomeBoolean processing;
! 95: GdomeBoolean toRemove;
! 96: };
! 97:
! 98:
! 99: typedef struct _Gdome_xml_Node Gdome_xml_Node;
! 100: struct _Gdome_xml_Node {
! 101: GdomeNode super;
! 102: const GdomeNodeVtab *vtab;
! 103: int refcnt;
! 104: xmlNode *n;
! 105: GdomeAccessType accessType;
! 106: Gdome_xml_ListenerList *ll;
! 107: };
! 108:
! 109: const GdomeNodeVtab gdome_xml_n_vtab;
! 110:
! 111: xmlNode * gdome_xml_n_get_xmlNode (GdomeNode *node);
! 112: GdomeNode * gdome_xml_n_mkref (xmlNode *n);
! 113: void gdome_xml_n_ref (GdomeNode *self,
! 114: GdomeException *exc);
! 115: void gdome_xml_n_unref (GdomeNode *self,
! 116: GdomeException *exc);
! 117: gpointer gdome_xml_n_query_interface (GdomeNode *self,
! 118: const char *interface,
! 119: GdomeException *exc);
! 120: GdomeDOMString * gdome_xml_n_nodeName (GdomeNode *self,
! 121: GdomeException *exc);
! 122: GdomeDOMString * gdome_xml_n_nodeValue (GdomeNode *self,
! 123: GdomeException *exc);
! 124: void gdome_xml_n_set_nodeValue (GdomeNode *self,
! 125: GdomeDOMString *nodeValue,
! 126: GdomeException *exc);
! 127: unsigned short gdome_xml_n_nodeType (GdomeNode *self,
! 128: GdomeException *exc);
! 129: GdomeNode * gdome_xml_n_parentNode (GdomeNode *self,
! 130: GdomeException *exc);
! 131: GdomeNodeList * gdome_xml_n_childNodes (GdomeNode *self,
! 132: GdomeException *exc);
! 133: GdomeNode * gdome_xml_n_firstChild (GdomeNode *self,
! 134: GdomeException *exc);
! 135: GdomeNode * gdome_xml_n_lastChild (GdomeNode *self,
! 136: GdomeException *exc);
! 137: GdomeNode * gdome_xml_n_previousSibling (GdomeNode *self,
! 138: GdomeException *exc);
! 139: GdomeNode * gdome_xml_n_nextSibling (GdomeNode *self,
! 140: GdomeException *exc);
! 141: GdomeNamedNodeMap * gdome_xml_n_attributes (GdomeNode *self,
! 142: GdomeException *exc);
! 143: GdomeDocument * gdome_xml_n_ownerDocument (GdomeNode *self,
! 144: GdomeException *exc);
! 145: GdomeNode * gdome_xml_n_insertBefore (GdomeNode *self,
! 146: GdomeNode *newChild,
! 147: GdomeNode *refChild,
! 148: GdomeException *exc);
! 149: GdomeNode * gdome_xml_n_replaceChild (GdomeNode *self,
! 150: GdomeNode *newChild,
! 151: GdomeNode *oldChild,
! 152: GdomeException *exc);
! 153: GdomeNode * gdome_xml_n_removeChild (GdomeNode *self,
! 154: GdomeNode *oldChild,
! 155: GdomeException *exc);
! 156: GdomeNode * gdome_xml_n_appendChild (GdomeNode *self,
! 157: GdomeNode *newChild,
! 158: GdomeException *exc);
! 159: GdomeBoolean gdome_xml_n_hasChildNodes (GdomeNode *self,
! 160: GdomeException *exc);
! 161: GdomeNode * gdome_xml_n_cloneNode (GdomeNode *self,
! 162: GdomeBoolean deep,
! 163: GdomeException *exc);
! 164: void gdome_xml_n_normalize (GdomeNode *self,
! 165: GdomeException *exc);
! 166: GdomeBoolean gdome_xml_n_isSupported (GdomeNode *self,
! 167: GdomeDOMString *feature,
! 168: GdomeDOMString *version,
! 169: GdomeException *exc);
! 170: GdomeDOMString * gdome_xml_n_namespaceURI (GdomeNode *self,
! 171: GdomeException *exc);
! 172: GdomeDOMString * gdome_xml_n_prefix (GdomeNode *self,
! 173: GdomeException *exc);
! 174: void gdome_xml_n_set_prefix (GdomeNode *self,
! 175: GdomeDOMString *prefix,
! 176: GdomeException *exc);
! 177: GdomeDOMString * gdome_xml_n_localName (GdomeNode *self,
! 178: GdomeException *exc);
! 179: GdomeBoolean gdome_xml_n_hasAttributes (GdomeNode *self,
! 180: GdomeException *exc);
! 181: void gdome_xml_n_addEventListener (GdomeNode *self,
! 182: GdomeDOMString *type,
! 183: GdomeEventListener *listener,
! 184: GdomeBoolean useCapture,
! 185: GdomeException *exc);
! 186: void gdome_xml_n_removeEventListener (GdomeNode *self,
! 187: GdomeDOMString *type,
! 188: GdomeEventListener *listener,
! 189: GdomeBoolean useCapture,
! 190: GdomeException *exc);
! 191: GdomeBoolean gdome_xml_n_dispatchEvent (GdomeNode *self,
! 192: GdomeEvent *evt,
! 193: GdomeException *exc);
! 194: GdomeNode * gdome_xml_n_appendChild (GdomeNode *self,
! 195: GdomeNode *newChild,
! 196: GdomeException *exc);
! 197: void gdome_xml_n_subTreeDispatchEvent (GdomeNode *self,
! 198: GdomeEvent *evt,
! 199: GdomeException *exc);
! 200: GdomeBoolean gdome_xml_n_canAppend (GdomeNode *self,
! 201: GdomeNode *newChild,
! 202: GdomeException *exc);
! 203:
! 204: //paf const GdomeNodeVtab gdome_xml_n_vtab;
! 205:
! 206: #endif /* GDOME_NODE_FILE */
E-mail: