Initial revision
[TestXSLT.git] / libsablot / src / engine / jsdom.h
1 /* 
2  * The contents of this file are subject to the Mozilla Public
3  * License Version 1.1 (the "License"); you may not use this file
4  * except in compliance with the License. You may obtain a copy of
5  * the License at http://www.mozilla.org/MPL/
6  * 
7  * Software distributed under the License is distributed on an "AS
8  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9  * implied. See the License for the specific language governing
10  * rights and limitations under the License.
11  * 
12  * The Original Code is the Sablotron XSLT Processor.
13  * 
14  * The Initial Developer of the Original Code is Ginger Alliance Ltd.
15  * Portions created by Ginger Alliance are Copyright (C) 2000-2002
16  * Ginger Alliance Ltd. All Rights Reserved.
17  * 
18  * Contributor(s):
19  * 
20  * Alternatively, the contents of this file may be used under the
21  * terms of the GNU General Public License Version 2 or later (the
22  * "GPL"), in which case the provisions of the GPL are applicable 
23  * instead of those above.  If you wish to allow use of your 
24  * version of this file only under the terms of the GPL and not to
25  * allow others to use your version of this file under the MPL,
26  * indicate your decision by deleting the provisions above and
27  * replace them with the notice and other provisions required by
28  * the GPL.  If you do not delete the provisions above, a recipient
29  * may use your version of this file under either the MPL or the
30  * GPL.
31  */
32
33 #ifndef JSDOMHIncl
34 #define JSDOMHIncl
35
36 #ifdef HAVE_CONFIG_H
37 #include <config.h>
38 #endif
39
40 #ifdef ENABLE_JS
41
42 #include "base.h"
43 #include "jsext.h"
44 #include "domprovider.h"
45
46 #define DOM_EX(stmt) if (int c = stmt) {jsdom_raiseException(cx, c); return FALSE;}
47
48
49 struct NodePrivate
50 {
51   Situation *situa;
52   NodeHandle node;
53 };
54
55 struct DomExPrivate
56 {
57   int code;
58 };
59
60 struct NLPrivate
61 {
62   JSObject_Sab *array;
63 };
64
65 /* classes */
66 extern JSClass nlistClass;
67 extern JSClass nodeClass;
68
69 /* functions */
70 void jsdom_delegateDOM(JSContext *cx);
71 JSObject* jsdom_wrapNode(Sit S, JSContext *cx, NodeHandle node);
72 JSObject* jsdom_createNode(JSContext *cx, NodePrivate *np_, NodeHandle node);
73 void jsdom_raiseException(JSContext *cx, int code);
74 JSObject* jsdom_createNodeList(JSContext *cx, int num);
75 JSObject* jsdom_createNamedNodeMap(JSContext *cx, int num);
76 //have jsapi.h
77
78 #endif //ENABLE_JS
79
80 #endif //JSDOMHIncl
81