Annotation of win32/gnome/gdome2-x.x.x/libgdome/gdomecore/gdome-xml-node.h, revision 1.4

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 {
1.4     ! paf        34:  void                (*ref)                  (xmlNode *self, GdomeException *exc);
        !            35:  void                (*unref)                (xmlNode *self, GdomeException *exc);
        !            36:  gpointer            (*query_interface)      (xmlNode *self, const char *interface,
        !            37:                                                GdomeException *exc);
        !            38:  GdomeDOMString *    (*nodeName)             (xmlNode *self, GdomeException *exc);
        !            39:  GdomeDOMString *    (*nodeValue)            (xmlNode *self, GdomeException *exc);
        !            40:  void                (*set_nodeValue)        (xmlNode *self, GdomeDOMString *nodeValue,
        !            41:                                                GdomeException *exc);
        !            42:   unsigned short      (*nodeType)             (xmlNode *self, GdomeException *exc);
        !            43:  xmlNode *         (*parentNode)           (xmlNode *self, GdomeException *exc);
        !            44:  GdomeNodeList *     (*childNodes)           (xmlNode *self, GdomeException *exc);
        !            45:  xmlNode *         (*firstChild)           (xmlNode *self, GdomeException *exc);
        !            46:  xmlNode *         (*lastChild)            (xmlNode *self, GdomeException *exc);
        !            47:  xmlNode *         (*previousSibling)      (xmlNode *self, GdomeException *exc);
        !            48:  xmlNode *         (*nextSibling)          (xmlNode *self, GdomeException *exc);
        !            49:  GdomeNamedNodeMap * (*attributes)           (xmlNode *self, GdomeException *exc);
        !            50:  GdomeDocument *     (*ownerDocument)        (xmlNode *self, GdomeException *exc);
        !            51:  xmlNode *         (*insertBefore)         (xmlNode *self, xmlNode *newChild,
        !            52:                                                xmlNode *refChild, GdomeException *exc);
        !            53:  xmlNode *         (*replaceChild)         (xmlNode *self, xmlNode *newChild,
        !            54:                                                xmlNode *oldChild, GdomeException *exc);
        !            55:  xmlNode *         (*removeChild)          (xmlNode *self, xmlNode *oldChild,
1.1       paf        56:                                                GdomeException *exc);
1.4     ! paf        57:  xmlNode *         (*appendChild)          (xmlNode *self, xmlNode *newChild,
1.1       paf        58:                                                GdomeException *exc);
1.4     ! paf        59:  GdomeBoolean        (*hasChildNodes)        (xmlNode *self, GdomeException *exc);
        !            60:  xmlNode *         (*cloneNode)            (xmlNode *self, GdomeBoolean deep,
1.1       paf        61:                                                GdomeException *exc);
1.4     ! paf        62:  void                (*normalize)            (xmlNode *self, GdomeException *exc);
        !            63:  GdomeBoolean        (*isSupported)          (xmlNode *self, GdomeDOMString *feature,
1.1       paf        64:                                                GdomeDOMString *version, GdomeException *exc);
1.4     ! paf        65:   GdomeDOMString *    (*namespaceURI)         (xmlNode *self, GdomeException *exc);
        !            66:  GdomeDOMString *    (*prefix)               (xmlNode *self, GdomeException *exc);
        !            67:  void                (*set_prefix)           (xmlNode *self, GdomeDOMString *prefix,
        !            68:                                                GdomeException *exc);
        !            69:  GdomeDOMString *    (*localName)            (xmlNode *self, GdomeException *exc);
        !            70:  GdomeBoolean        (*hasAttributes)        (xmlNode *self, GdomeException *exc);
        !            71:  void                (*addEventListener)     (xmlNode *self, GdomeDOMString *type,
1.1       paf        72:                                                GdomeEventListener *listener,
                     73:                                                GdomeBoolean useCapture,
                     74:                                                GdomeException *exc);
1.4     ! paf        75:  void                (*removeEventListener)  (xmlNode *self, GdomeDOMString *type,
1.1       paf        76:                                                GdomeEventListener *listener,
                     77:                                                GdomeBoolean useCapture, GdomeException *exc);
1.4     ! paf        78:  GdomeBoolean        (*dispatchEvent)        (xmlNode *self, GdomeEvent *evt,
1.1       paf        79:                                                GdomeException *exc);
1.4     ! paf        80:   void                (*subTreeDispatchEvent) (xmlNode *self, GdomeEvent *evt,
1.1       paf        81:                                                GdomeException *exc);
1.4     ! paf        82:   GdomeBoolean        (*canAppend)            (xmlNode *self,
        !            83:                                                xmlNode *newChild,
1.1       paf        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;
1.3       paf        91:  guint32 type;
1.1       paf        92:  GdomeEventListener *listener;
                     93:   GdomeBoolean useCapture;
                     94: };
                     95: 
                     96: 
                     97: typedef struct _Gdome_xml_Node Gdome_xml_Node;
                     98: struct _Gdome_xml_Node {
1.4     ! paf        99:  xmlNode super;
1.1       paf       100:  const GdomeNodeVtab *vtab;
                    101:  int refcnt;
                    102:   xmlNode *n;
                    103:   GdomeAccessType accessType;
                    104:  Gdome_xml_ListenerList *ll;
                    105: };
                    106: 
1.4     ! paf       107: xmlNode           * gdome_xml_n_get_xmlNode      (xmlNode *node);
        !           108: xmlNode         * gdome_xml_n_mkref            (xmlNode *n);
        !           109: void                gdome_xml_n_ref              (xmlNode *self,
1.1       paf       110:                                                  GdomeException *exc);
1.4     ! paf       111: void                gdome_xml_n_unref            (xmlNode *self, 
1.1       paf       112:                                                  GdomeException *exc);
1.4     ! paf       113: gpointer            gdome_xml_n_query_interface  (xmlNode *self,
1.1       paf       114:                                                  const char *interface, 
                    115:                                                  GdomeException *exc);
1.4     ! paf       116: GdomeDOMString    * gdome_xml_n_nodeName         (xmlNode *self, 
1.1       paf       117:                                                  GdomeException *exc);
1.4     ! paf       118: GdomeDOMString    * gdome_xml_n_nodeValue        (xmlNode *self, 
1.1       paf       119:                                                  GdomeException *exc);
1.4     ! paf       120: void                gdome_xml_n_set_nodeValue    (xmlNode *self, 
1.1       paf       121:                                                  GdomeDOMString *nodeValue, 
                    122:                                                  GdomeException *exc);
1.4     ! paf       123: unsigned short      gdome_xml_n_nodeType         (xmlNode *self, 
1.1       paf       124:                                                  GdomeException *exc);
1.4     ! paf       125: xmlNode         * gdome_xml_n_parentNode       (xmlNode *self, 
1.1       paf       126:                                                  GdomeException *exc);
1.4     ! paf       127: GdomeNodeList     * gdome_xml_n_childNodes       (xmlNode *self, 
1.1       paf       128:                                                  GdomeException *exc);
1.4     ! paf       129: xmlNode         * gdome_xml_n_firstChild       (xmlNode *self, 
1.1       paf       130:                                                  GdomeException *exc);
1.4     ! paf       131: xmlNode         * gdome_xml_n_lastChild        (xmlNode *self, 
1.1       paf       132:                                                  GdomeException *exc);
1.4     ! paf       133: xmlNode         * gdome_xml_n_previousSibling  (xmlNode *self, 
1.1       paf       134:                                                  GdomeException *exc);
1.4     ! paf       135: xmlNode         * gdome_xml_n_nextSibling      (xmlNode *self, 
1.1       paf       136:                                                  GdomeException *exc);
1.4     ! paf       137: GdomeNamedNodeMap * gdome_xml_n_attributes       (xmlNode *self, 
1.1       paf       138:                                                  GdomeException *exc);
1.4     ! paf       139: GdomeDocument     * gdome_xml_n_ownerDocument    (xmlNode *self, 
1.1       paf       140:                                                  GdomeException *exc);
1.4     ! paf       141: xmlNode         * gdome_xml_n_insertBefore     (xmlNode *self, 
        !           142:                                                  xmlNode *newChild, 
        !           143:                                                  xmlNode *refChild, 
1.1       paf       144:                                                  GdomeException *exc);
1.4     ! paf       145: xmlNode         * gdome_xml_n_replaceChild     (xmlNode *self, 
        !           146:                                                  xmlNode *newChild, 
        !           147:                                                  xmlNode *oldChild, 
1.1       paf       148:                                                  GdomeException *exc);
1.4     ! paf       149: xmlNode         * gdome_xml_n_removeChild      (xmlNode *self, 
        !           150:                                                  xmlNode *oldChild, 
1.1       paf       151:                                                  GdomeException *exc);
1.4     ! paf       152: xmlNode         * gdome_xml_n_appendChild      (xmlNode *self, 
        !           153:                                                  xmlNode *newChild, 
1.1       paf       154:                                                  GdomeException *exc);
1.4     ! paf       155: GdomeBoolean        gdome_xml_n_hasChildNodes    (xmlNode *self, 
1.1       paf       156:                                                  GdomeException *exc);
1.4     ! paf       157: xmlNode         * gdome_xml_n_cloneNode        (xmlNode *self, 
1.1       paf       158:                                                  GdomeBoolean deep, 
                    159:                                                  GdomeException *exc);
1.4     ! paf       160: void                gdome_xml_n_normalize        (xmlNode *self, 
1.1       paf       161:                                                  GdomeException *exc);
1.4     ! paf       162: GdomeBoolean        gdome_xml_n_isSupported      (xmlNode *self,
1.1       paf       163:                                                  GdomeDOMString *feature, 
                    164:                                                  GdomeDOMString *version, 
                    165:                                                  GdomeException *exc);
1.4     ! paf       166: GdomeDOMString    * gdome_xml_n_namespaceURI     (xmlNode *self, 
1.1       paf       167:                                                  GdomeException *exc);
1.4     ! paf       168: GdomeDOMString    * gdome_xml_n_prefix           (xmlNode *self, 
1.1       paf       169:                                                  GdomeException *exc);
1.4     ! paf       170: void                gdome_xml_n_set_prefix       (xmlNode *self, 
1.1       paf       171:                                                  GdomeDOMString *prefix, 
                    172:                                                  GdomeException *exc);
1.4     ! paf       173: GdomeDOMString    * gdome_xml_n_localName        (xmlNode *self, 
1.1       paf       174:                                                  GdomeException *exc);
1.4     ! paf       175: GdomeBoolean        gdome_xml_n_hasAttributes    (xmlNode *self,
1.1       paf       176:                                                  GdomeException *exc);
1.4     ! paf       177: void                gdome_xml_n_addEventListener (xmlNode *self, 
1.1       paf       178:                                                  GdomeDOMString *type, 
                    179:                                                  GdomeEventListener *listener, 
                    180:                                                  GdomeBoolean useCapture, 
                    181:                                                  GdomeException *exc);
1.4     ! paf       182: void                gdome_xml_n_removeEventListener (xmlNode *self, 
1.1       paf       183:                                                     GdomeDOMString *type, 
                    184:                                                     GdomeEventListener *listener, 
                    185:                                                     GdomeBoolean useCapture, 
                    186:                                                     GdomeException *exc);
1.4     ! paf       187: GdomeBoolean        gdome_xml_n_dispatchEvent    (xmlNode *self, 
1.1       paf       188:                                                  GdomeEvent *evt, 
                    189:                                                  GdomeException *exc);
1.4     ! paf       190: xmlNode         * gdome_xml_n_appendChild      (xmlNode *self, 
        !           191:                                                  xmlNode *newChild, 
1.1       paf       192:                                                  GdomeException *exc);
1.4     ! paf       193: void                gdome_xml_n_subTreeDispatchEvent (xmlNode *self,
1.1       paf       194:                                                       GdomeEvent *evt,
                    195:                                                       GdomeException *exc);
1.4     ! paf       196: GdomeBoolean        gdome_xml_n_canAppend        (xmlNode *self,
        !           197:                                                   xmlNode *newChild,
1.1       paf       198:                                                   GdomeException *exc);
1.4     ! paf       199: GdomeBoolean        gdome_xml_n_eventEnabledByCode (xmlNode *self,
1.3       paf       200:                                                    guint32 code);
1.1       paf       201: 
1.2       paf       202: extern const GdomeNodeVtab gdome_xml_n_vtab;
1.1       paf       203: 
                    204: #endif /* GDOME_NODE_FILE */

E-mail: