1/*
2 * Copyright (C) 2006, 2007, 2008 Apple 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#ifndef DO_NO_IMPORTS
27import "oaidl.idl";
28import "ocidl.idl";
29import "DOMCore.idl";
30import "IWebScriptObject.idl";
31#endif
32
33interface IDOMObject;
34interface IDOMCSSValue;
35interface IDOMCSSStyleDeclaration;
36interface IDOMCSSStyleSheet;
37interface IDOMCSSRule;
38interface IDOMElement;
39
40/*
41    @interface DOMDocument (DOMViewCSS)
42*/
43[
44    object,
45    oleautomation,
46    uuid(43EFE238-A4DF-400a-983D-FCE0C0F56BCD),
47    pointer_default(unique)
48]
49interface IDOMViewCSS : IUnknown
50{
51    /*
52        - (DOMCSSStyleDeclaration *)getComputedStyle:(DOMElement *)elt :(NSString *)pseudoElt;
53    */
54    HRESULT getComputedStyle([in] IDOMElement* elt, [in] BSTR pseudoElt, [out, retval] IDOMCSSStyleDeclaration** result);
55}
56
57/*
58    @interface DOMCSSRuleList : DOMObject
59*/
60[
61    object,
62    oleautomation,
63    uuid(D45DA43D-5EDB-4315-A097-3ED3FA089193),
64    pointer_default(unique)
65]
66interface IDOMCSSRuleList : IDOMObject
67{
68    /*
69        - (unsigned)length;
70    */
71    HRESULT length([out, retval] UINT* result);
72
73    /*
74        - (DOMCSSRule *)item:(unsigned)index;
75    */
76    HRESULT item([in] UINT index, [out, retval] IDOMCSSRule** result);
77}
78
79/*
80    @interface DOMCSSRule : DOMObject
81*/
82[
83    object,
84    oleautomation,
85    uuid(05947A31-9E1C-4c98-8608-6688959D6542),
86    pointer_default(unique)
87]
88interface IDOMCSSRule : IDOMObject
89{
90    /*
91        - (unsigned short)type;
92    */
93    HRESULT type([out, retval] unsigned short* result);
94
95    /*
96        - (NSString *)cssText;
97    */
98    HRESULT cssText([out, retval] BSTR* text);
99
100    /*
101        - (void)setCssText:(NSString *)cssText;
102    */
103    HRESULT setCssText([in] BSTR cssText);
104
105    /*
106        - (DOMCSSStyleSheet *)parentStyleSheet;
107    */
108    HRESULT parentStyleSheet([out, retval] IDOMCSSStyleSheet** sheet);
109
110    /*
111        - (DOMCSSRule *)parentRule;
112    */
113    HRESULT parentRule([out, retval] IDOMCSSRule** rule);
114}
115
116/*
117    @interface DOMCSSStyleDeclaration : DOMObject
118*/
119[
120    object,
121    oleautomation,
122    uuid(DBBE9A6B-D505-4647-B4AB-40A7CF3EE63E),
123    pointer_default(unique)
124]
125interface IDOMCSSStyleDeclaration : IDOMObject
126{
127    /*
128        - (NSString *)cssText;
129    */
130    HRESULT cssText([out, retval] BSTR* result);
131
132    /*
133        - (void)setCssText:(NSString *)cssText;
134    */
135    HRESULT setCssText([in] BSTR cssText);
136
137    /*
138        - (NSString *)getPropertyValue:(NSString *)propertyName;
139    */
140    HRESULT getPropertyValue([in] BSTR propertyName, [out, retval] BSTR* result);
141
142    /*
143        - (DOMCSSValue *)getPropertyCSSValue:(NSString *)propertyName;
144    */
145    HRESULT getPropertyCSSValue([in] BSTR propertyName, [out, retval] IDOMCSSValue** result);
146
147    /*
148        - (NSString *)removeProperty:(NSString *)propertyName;
149    */
150    HRESULT removeProperty([in] BSTR propertyName, [out, retval] BSTR* result);
151
152    /*
153        - (NSString *)getPropertyPriority:(NSString *)propertyName;
154    */
155    HRESULT getPropertyPriority([in] BSTR propertyName, [out, retval] BSTR* result);
156
157    /*
158        - (void)setProperty:(NSString *)propertyName :(NSString *)value :(NSString *)priority;
159    */
160    HRESULT setProperty([in] BSTR propertyName, [in] BSTR value, [in] BSTR priority);
161
162    /*
163        - (unsigned)length;
164    */
165    HRESULT length([out, retval] UINT* result);
166
167    /*
168        - (NSString *)item:(unsigned)index;
169    */
170    HRESULT item([in] UINT index, [out, retval] BSTR* result);
171
172    /*
173        - (DOMCSSRule *)parentRule;
174    */
175    HRESULT parentRule([out, retval] IDOMCSSRule** result);
176}
177
178/*
179    @interface DOMCSSValue : DOMObject
180*/
181[
182    object,
183    oleautomation,
184    uuid(51D29553-2AF7-4f52-AFE6-3C59196A8BAA),
185    pointer_default(unique)
186]
187interface IDOMCSSValue : IDOMObject
188{
189    /*
190        - (NSString *)cssText;
191    */
192    HRESULT cssText([out, retval] BSTR* text);
193
194    /*
195        - (void)setCssText:(NSString *)cssText;
196    */
197    HRESULT setCssText([in] BSTR text);
198
199    /*
200        - (unsigned short)cssValueType;
201    */
202    HRESULT cssValueType([out, retval] unsigned short *valueType);
203}
204
205/*
206    @interface DOMCSSStyleSheet : DOMStyleSheet
207*/
208[
209    object,
210    oleautomation,
211    uuid(14B1C213-1458-48a1-AD8F-54BFE64F9ECF),
212    pointer_default(unique)
213]
214interface IDOMCSSStyleSheet : IDOMObject
215{
216    /*
217        - (DOMCSSRule *)ownerRule;
218    */
219    HRESULT ownerRule([out, retval] IDOMCSSRule** rule);
220
221    /*
222        - (DOMCSSRuleList *)cssRules;
223    */
224    HRESULT cssRules([out, retval] IDOMCSSRuleList** ruleList);
225
226    /*
227        - (unsigned)insertRule:(NSString *)rule :(unsigned)index;
228    */
229    HRESULT insertRule([in] BSTR rule, [in] UINT index, [out, retval] UINT* result);
230
231    /*
232        - (void)deleteRule:(unsigned)index;
233    */
234    HRESULT deleteRule([in] UINT index);
235}
236
237/*
238    @interface DOMElement (DOMElementCSSInlineStyle)
239*/
240[
241    object,
242    oleautomation,
243    uuid(585127E2-D698-44c4-83EC-4D1E6E07E90D),
244    pointer_default(unique)
245]
246interface IDOMElementCSSInlineStyle : IUnknown
247{
248    /*
249        - (DOMCSSStyleDeclaration *)style;
250    */
251    HRESULT style([out, retval] IDOMCSSStyleDeclaration** result);
252}
253