WebCore:
[WebKit-https.git] / WebCore / kwq / DOMInternal.h
1 /*
2  * Copyright (C) 2004 Apple Computer, Inc.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
24  */
25
26 #import "DOM.h"
27
28 namespace DOM {
29     class CSSStyleDeclarationImpl;
30     class CSSStyleSheetImpl;
31     class DocumentImpl;
32     class ElementImpl;
33     class NodeImpl;
34     class NodeListImpl;
35     class RangeImpl;
36     class StyleSheetListImpl;
37 }
38
39 @interface DOMNode (WebCoreInternal)
40 + (DOMNode *)_nodeWithImpl:(DOM::NodeImpl *)impl;
41 - (DOM::NodeImpl *)_nodeImpl;
42 @end
43
44 @interface DOMNodeList (WebCoreInternal)
45 + (DOMNodeList *)_nodeListWithImpl:(DOM::NodeListImpl *)impl;
46 @end
47
48 @interface DOMElement (WebCoreInternal)
49 + (DOMElement *)_elementWithImpl:(DOM::ElementImpl *)impl;
50 - (DOM::ElementImpl *)_elementImpl;
51 @end
52
53 @interface DOMDocument (WebCoreInternal)
54 + (DOMDocument *)_documentWithImpl:(DOM::DocumentImpl *)impl;
55 @end
56
57 @interface DOMRange (WebCoreInternal)
58 + (DOMRange *)_rangeWithImpl:(DOM::RangeImpl *)impl;
59 - (DOM::RangeImpl *)_rangeImpl;
60 @end
61
62 @interface DOMObject (WebCoreInternal)
63 - (id)_init;
64 @end
65
66 @interface DOMCSSStyleDeclaration (WebCoreInternal)
67 + (DOMCSSStyleDeclaration *)_styleDeclarationWithImpl:(DOM::CSSStyleDeclarationImpl *)impl;
68 @end
69
70 @interface DOMStyleSheetList (WebCoreInternal)
71 + (DOMStyleSheetList *)_styleSheetListWithImpl:(DOM::StyleSheetListImpl *)impl;
72 @end
73
74 @interface DOMCSSStyleSheet (WebCoreInternal)
75 + (DOMCSSStyleSheet *)_CSSStyleSheetWithImpl:(DOM::CSSStyleSheetImpl *)impl;
76 @end
77
78 // Helper functions for DOM wrappers and gluing to Objective-C
79
80 id getDOMWrapperForImpl(const void *impl);
81 void setDOMWrapperForImpl(id wrapper, const void *impl);
82 void removeDOMWrapperForImpl(const void *impl);
83 void raiseDOMException(int code);
84
85 inline void raiseOnDOMError(int code) 
86 {
87     if (code) 
88         raiseDOMException(code);
89 }