Reviewed by Darin.
[WebKit-https.git] / WebCore / kwq / DOM-CSS.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 <Foundation/Foundation.h>
27
28 #import "DOM.h"
29
30 //=========================================================================
31 //=========================================================================
32 //=========================================================================
33
34 // Important Note:
35 // Though this file appears as an exported header from WebKit, the
36 // version you should edit is in WebCore. The WebKit version is copied
37 // to WebKit during the build process.
38
39 //=========================================================================
40 //=========================================================================
41 //=========================================================================
42
43 enum {
44     //
45     // CSSRule types
46     //
47     CSS_UNKNOWN_RULE               = 0,
48     CSS_STYLE_RULE                 = 1,
49     CSS_CHARSET_RULE               = 2,
50     CSS_IMPORT_RULE                = 3,
51     CSS_MEDIA_RULE                 = 4,
52     CSS_FONT_FACE_RULE             = 5,
53     CSS_PAGE_RULE                  = 6,
54     //
55     // CSSValue unit types
56     //
57     CSS_INHERIT                    = 0,
58     CSS_PRIMITIVE_VALUE            = 1,
59     CSS_VALUE_LIST                 = 2,
60     CSS_CUSTOM                     = 3,
61     //
62     // CSSPrimitiveValue unit types
63     //
64     CSS_UNKNOWN                    = 0,
65     CSS_NUMBER                     = 1,
66     CSS_PERCENTAGE                 = 2,
67     CSS_EMS                        = 3,
68     CSS_EXS                        = 4,
69     CSS_PX                         = 5,
70     CSS_CM                         = 6,
71     CSS_MM                         = 7,
72     CSS_IN                         = 8,
73     CSS_PT                         = 9,
74     CSS_PC                         = 10,
75     CSS_DEG                        = 11,
76     CSS_RAD                        = 12,
77     CSS_GRAD                       = 13,
78     CSS_MS                         = 14,
79     CSS_S                          = 15,
80     CSS_HZ                         = 16,
81     CSS_KHZ                        = 17,
82     CSS_DIMENSION                  = 18,
83     CSS_STRING                     = 19,
84     CSS_URI                        = 20,
85     CSS_IDENT                      = 21,
86     CSS_ATTR                       = 22,
87     CSS_COUNTER                    = 23,
88     CSS_RECT                       = 24,
89     CSS_RGBCOLOR                   = 25,
90 };
91
92 @class CSSCounter;
93 @class CSSMediaList;
94 @class CSSRect;
95 @class CSSRGBColor;
96 @class CSSRule;
97 @class CSSRuleList;
98 @class CSSStyleDeclaration;
99 @class CSSValue;
100
101 @interface DOMStyleSheet : DOMObject
102 - (NSString *)type;
103 - (BOOL)disabled;
104 - (void)setDisabled:(BOOL)disabled;
105 - (DOMNode *)ownerNode;
106 - (DOMStyleSheet *)parentStyleSheet;
107 - (NSString *)href;
108 - (NSString *)title;
109 - (CSSMediaList *)media;
110 @end
111
112 @interface DOMStyleSheetList : DOMObject
113 - (unsigned long)length;
114 - (DOMStyleSheet *)item:(unsigned long)index;
115 @end
116
117 @interface CSSStyleSheet : DOMStyleSheet
118 - (CSSRule *)ownerRule;
119 - (CSSRuleList *)cssRules;
120 - (unsigned long)insertRule:(NSString *)rule :(unsigned long)index;
121 - (void)deleteRule:(unsigned long)index;
122 @end
123
124 @interface CSSMediaList : DOMObject
125 - (NSString *)mediaText;
126 - (void)setMediaText:(NSString *)mediaText;
127 - (unsigned long)length;
128 - (NSString *)item:(unsigned long)index;
129 - (void)deleteMedium:(NSString *)oldMedium;
130 - (void)appendMedium:(NSString *)newMedium;
131 @end
132
133 @interface CSSRuleList : DOMObject
134 - (unsigned long)length;
135 - (CSSRule *)item:(unsigned long)index;
136 @end
137
138 @interface CSSRule : DOMObject
139 - (unsigned short)type;
140 - (NSString *)cssText;
141 - (void)setCSSText:(NSString *)cssText;
142 - (CSSStyleSheet *)parentStyleSheet;
143 - (CSSRule *)parentRule;
144 @end
145
146 @interface CSSStyleRule : CSSRule
147 - (NSString *)selectorText;
148 - (void)setSelectorText:(NSString *)selectorText;
149 - (CSSStyleDeclaration *)style;
150 @end
151
152 @interface CSSMediaRule : CSSRule
153 - (CSSMediaList *)media;
154 - (CSSRuleList *)cssRules;
155 - (unsigned long)insertRule:(NSString *)rule :(unsigned long)index;
156 - (void)deleteRule:(unsigned long)index;
157 @end
158
159 @interface CSSFontFaceRule : CSSRule
160 - (CSSStyleDeclaration *)style;
161 @end
162
163 @interface CSSPageRule : CSSRule
164 - (NSString *)selectorText;
165 - (void)setSelectorText:(NSString *)selectorText;
166 - (CSSStyleDeclaration *)style;
167 @end
168
169 @interface CSSImportRule : CSSRule
170 - (CSSMediaList *)media;
171 - (NSString *)href;
172 - (CSSStyleSheet *)styleSheet;
173 @end
174
175 @interface CSSCharsetRule : CSSRule
176 - (NSString *)encoding;
177 @end
178
179 @interface CSSStyleDeclaration : DOMObject
180 - (NSString *)cssText;
181 - (void)setCSSText:(NSString *)cssText;
182 - (NSString *)getPropertyValue:(NSString *)propertyName;
183 - (CSSValue *)getPropertyCSSValue:(NSString *)propertyName;
184 - (NSString *)removeProperty:(NSString *)propertyName;
185 - (NSString *)getPropertyPriority:(NSString *)propertyName;
186 - (void)setProperty:(NSString *)propertyName :(NSString *)value :(NSString *)priority;
187 - (unsigned long)length;
188 - (NSString *)item:(unsigned long)index;
189 - (CSSRule *)parentRule;
190 @end
191
192 @interface CSSValue : DOMObject
193 - (NSString *)cssText;
194 - (void)setCSSText:(NSString *)cssText;
195 - (unsigned short)cssValueType;
196 @end
197
198 @interface CSSPrimitiveValue : CSSValue
199 - (unsigned short)primitiveType;
200 - (void)setFloatValue:(unsigned short)unitType :(float)floatValue;
201 - (float)getFloatValue:(unsigned short)unitType;
202 - (void)setStringValue:(unsigned short)stringType :(NSString *)stringValue;
203 - (NSString *)getStringValue;
204 - (CSSCounter *)getCounterValue;
205 - (CSSRect *)getRectValue;
206 - (CSSRGBColor *)getRGBColorValue;
207 @end
208
209 @interface CSSValueList : CSSValue
210 - (unsigned long)length;
211 - (CSSValue *)item:(unsigned long)index;
212 @end
213
214 @interface CSSRGBColor : DOMObject
215 - (CSSPrimitiveValue *)red;
216 - (CSSPrimitiveValue *)green;
217 - (CSSPrimitiveValue *)blue;
218 @end
219
220 @interface CSSRect : DOMObject
221 - (CSSPrimitiveValue *)top;
222 - (CSSPrimitiveValue *)right;
223 - (CSSPrimitiveValue *)bottom;
224 - (CSSPrimitiveValue *)left;
225 @end
226
227 @interface CSSCounter : DOMObject
228 - (NSString *)identifier;
229 - (NSString *)listStyle;
230 - (NSString *)separator;
231 @end