1 /**
2 * Phoebe DOM Implementation.
3 *
4 * This is a C++ approximation of the W3C DOM model, which follows
5 * fairly closely the specifications in the various .idl files, copies of
6 * which are provided for reference. Most important is this one:
7 *
8 * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
9 *
10 * Authors:
11 * Bob Jamison
12 *
13 * Copyright (C) 2005-2008 Bob Jamison
14 *
15 * This library is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU Lesser General Public
17 * License as published by the Free Software Foundation; either
18 * version 2.1 of the License, or (at your option) any later version.
19 *
20 * This library is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * Lesser General Public License for more details.
24 *
25 * You should have received a copy of the GNU Lesser General Public
26 * License along with this library; if not, write to the Free Software
27 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 *
29 * =======================================================================
30 * NOTES
31 *
32 * Views, Stylesheets and CSS are DOM Level 2 for the purposes of supporting
33 * SVG. Be prepared in the future when they make Level 3 and SVG is likewise
34 * updated. The API here and many of the comments come from this document:
35 * http://www.w3.org/TR/DOM-Level-2-Style/css.html
37 */
39 #ifndef __CSS_H__
40 #define __CSS_H__
42 #include "dom.h"
43 #include "stylesheets.h"
44 #include "views.h"
46 #include <vector>
47 #include <map>
50 namespace org {
51 namespace w3c {
52 namespace dom {
53 namespace css {
58 //Make local definitions
59 typedef dom::DOMString DOMString;
60 typedef dom::Element Element;
61 typedef dom::DOMImplementation DOMImplementation;
63 //forward declarations
64 class CSSRule;
65 class CSSStyleSheet;
66 class CSSStyleDeclaration;
67 class CSSValue;
68 class Counter;
69 class Rect;
70 class RGBColor;
76 /*#########################################################################
77 ## CSSRule
78 #########################################################################*/
80 /**
81 * The CSSRule interface is the abstract base interface for any type of CSS
82 * statement. This includes both rule sets and at-rules. An implementation is
83 * expected to preserve all rules specified in a CSS style sheet, even if the
84 * rule is not recognized by the parser. Unrecognized rules are represented using
85 * the CSSUnknownRule interface.
86 */
87 class CSSRule
88 {
89 public:
91 /**
92 * An integer indicating which type of rule this is.
93 */
94 typedef enum
95 {
96 UNKNOWN_RULE = 0,
97 STYLE_RULE = 1,
98 CHARSET_RULE = 2,
99 IMPORT_RULE = 3,
100 MEDIA_RULE = 4,
101 FONT_FACE_RULE = 5,
102 PAGE_RULE = 6
103 } RuleType;
106 /**
107 * The type of the rule, as defined above. The expectation is that
108 * binding-specific casting methods can be used to cast down from an instance of
109 * the CSSRule interface to the specific derived interface implied by the type.
110 */
111 virtual unsigned short getType()
112 {
113 return type;
114 }
116 /**
117 * The parsable textual representation of the rule. This reflects the current
118 * state of the rule and not its initial value.
119 */
120 virtual DOMString getCssText()
121 {
122 return cssText;
123 }
125 /**
126 * The parsable textual representation of the rule. This reflects the current
127 * state of the rule and not its initial value.
128 * Note that setting involves reparsing.
129 */
130 virtual void setCssText(const DOMString &val) throw (dom::DOMException)
131 {
132 cssText = val;
133 }
135 /**
136 * The style sheet that contains this rule.
137 */
138 virtual CSSStyleSheet *getParentStyleSheet()
139 {
140 return parentStyleSheet;
141 }
143 /**
144 * If this rule is contained inside another rule (e.g. a style rule inside an
145 * @media block), this is the containing rule. If this rule is not nested inside
146 * any other rules, this returns null.
147 */
148 virtual CSSRule *getParentRule()
149 {
150 return parentRule;
151 }
155 //##################
156 //# Non-API methods
157 //##################
159 /**
160 *
161 */
162 CSSRule()
163 {
164 type = UNKNOWN_RULE;
165 cssText = "";
166 parentStyleSheet = NULL;
167 parentRule = NULL;
168 }
170 /**
171 *
172 */
173 CSSRule(const CSSRule &other)
174 {
175 assign(other);
176 }
178 /**
179 *
180 */
181 CSSRule &operator=(const CSSRule &other)
182 {
183 assign(other);
184 return *this;
185 }
187 /**
188 *
189 */
190 void assign(const CSSRule &other)
191 {
192 type = other.type;
193 cssText = other.cssText;
194 parentStyleSheet = other.parentStyleSheet;
195 parentRule = other.parentRule;
196 }
198 /**
199 *
200 */
201 virtual ~CSSRule() {}
203 protected:
205 int type;
207 DOMString cssText;
209 CSSStyleSheet *parentStyleSheet;
211 CSSRule *parentRule;
212 };
216 /*#########################################################################
217 ## CSSRuleList
218 #########################################################################*/
220 /**
221 * The CSSRuleList interface provides the abstraction of an ordered collection of
222 * CSS rules.
223 *
224 * The items in the CSSRuleList are accessible via an integral index, starting
225 * from 0.
226 */
227 class CSSRuleList
228 {
229 public:
231 /**
232 * The number of CSSRules in the list. The range of valid child rule indices is 0
233 * to length-1 inclusive.
234 */
235 virtual unsigned long getLength()
236 {
237 return rules.size();
238 }
240 /**
241 * Used to retrieve a CSS rule by ordinal index. The order in this collection
242 * represents the order of the rules in the CSS style sheet. If index is greater
243 * than or equal to the number of rules in the list, this returns null.
244 */
245 virtual CSSRule item(unsigned long index)
246 {
247 if (index>=rules.size())
248 {
249 CSSRule rule;
250 return rule;
251 }
252 return rules[index];
253 }
256 //##################
257 //# Non-API methods
258 //##################
260 /**
261 *
262 */
263 CSSRuleList() {}
266 /**
267 *
268 */
269 CSSRuleList(const CSSRuleList &other)
270 {
271 rules = other.rules;
272 }
274 /**
275 *
276 */
277 CSSRuleList &operator=(const CSSRuleList &other)
278 {
279 rules = other.rules;
280 return *this;
281 }
283 /**
284 *
285 */
286 virtual ~CSSRuleList() {}
288 protected:
290 friend class CSSMediaRule;
291 friend class CSSStyleSheet;
293 /**
294 *
295 */
296 virtual void addRule(const CSSRule &rule)
297 {
298 rules.push_back(rule);
299 }
302 /**
303 *
304 */
305 virtual void deleteRule(unsigned long index)
306 {
307 if (index>=rules.size())
308 return;
309 std::vector<CSSRule>::iterator iter = rules.begin() + index;
310 rules.erase(iter);
311 }
314 /**
315 *
316 */
317 virtual long insertRule(const CSSRule &rule, unsigned long index)
318 {
319 if (index>=rules.size())
320 return -1;
321 std::vector<CSSRule>::iterator iter = rules.begin() + index;
322 rules.insert(iter, rule);
323 return index;
324 }
326 std::vector<CSSRule>rules;
327 };
330 /*#########################################################################
331 ## CSSStyleSheet
332 #########################################################################*/
334 /**
335 * The CSSStyleSheet interface is a concrete interface used to represent a CSS
336 * style sheet i.e., a style sheet whose content type is "text/css".
337 */
338 class CSSStyleSheet : virtual public stylesheets::StyleSheet
339 {
340 public:
342 /**
343 * If this style sheet comes from an @import rule, the ownerRule attribute will
344 * contain the CSSImportRule. In that case, the ownerNode attribute in the
345 * StyleSheet interface will be null. If the style sheet comes from an element or
346 * a processing instruction, the ownerRule attribute will be null and the
347 * ownerNode attribute will contain the Node.
348 */
349 virtual CSSRule *getOwnerRule()
350 {
351 return ownerRule;
352 }
354 /**
355 * The list of all CSS rules contained within the style sheet. This
356 * includes both rule sets and at-rules.
357 */
358 virtual CSSRuleList getCssRules()
359 {
360 return rules;
361 }
363 /**
364 * Used to insert a new rule into the style sheet. The new rule now
365 * becomes part of the cascade.
366 */
367 virtual unsigned long insertRule(const DOMString &/*ruleStr*/,
368 unsigned long index)
369 throw (dom::DOMException)
370 {
371 CSSRule rule;
372 return rules.insertRule(rule, index);
373 }
375 /**
376 * Used to delete a rule from the style sheet.
377 */
378 virtual void deleteRule(unsigned long index)
379 throw (dom::DOMException)
380 {
381 rules.deleteRule(index);
382 }
384 //##################
385 //# Non-API methods
386 //##################
388 /**
389 *
390 */
391 CSSStyleSheet() : stylesheets::StyleSheet()
392 {
393 }
395 /**
396 *
397 */
398 CSSStyleSheet(const CSSStyleSheet &other) :
399 stylesheets::StyleSheet(other)
400 {
401 assign(other);
402 }
404 /**
405 *
406 */
407 CSSStyleSheet &operator=(const CSSStyleSheet &other)
408 {
409 assign(other);
410 return *this;
411 }
413 /**
414 *
415 */
416 void assign(const CSSStyleSheet &other)
417 {
418 ownerRule = other.ownerRule;
419 rules = other.rules;
420 }
422 /**
423 *
424 */
425 virtual ~CSSStyleSheet() {}
427 protected:
429 CSSRule *ownerRule;
431 CSSRuleList rules;
432 };
435 /*#########################################################################
436 ## CSSValue
437 #########################################################################*/
439 /**
440 * The CSSValue interface represents a simple or a complex value. A CSSValue
441 * object only occurs in a context of a CSS property.
442 */
443 class CSSValue
444 {
445 public:
447 /**
448 * An integer indicating which type of unit applies to the value.
449 */
450 typedef enum
451 {
452 CSS_INHERIT = 0,
453 CSS_PRIMITIVE_VALUE = 1,
454 CSS_VALUE_LIST = 2,
455 CSS_CUSTOM = 3
456 } UnitTypes;
458 /**
459 * A code defining the type of the value as defined above.
460 */
461 virtual unsigned short getCssValueType()
462 {
463 return valueType;
464 }
466 /**
467 * A string representation of the current value.
468 */
469 virtual DOMString getCssText()
470 {
471 return cssText;
472 }
474 /**
475 * A string representation of the current value.
476 * Note that setting implies parsing.
477 */
478 virtual void setCssText(const DOMString &val)
479 throw (dom::DOMException)
480 {
481 cssText = val;
482 }
484 //##################
485 //# Non-API methods
486 //##################
488 /**
489 *
490 */
491 CSSValue()
492 {
493 valueType = CSS_INHERIT;
494 }
496 /**
497 *
498 */
499 CSSValue(const CSSValue &other)
500 {
501 assign(other);
502 }
504 /**
505 *
506 */
507 CSSValue &operator=(const CSSValue &other)
508 {
509 assign(other);
510 return *this;
511 }
513 /**
514 *
515 */
516 void assign(const CSSValue &other)
517 {
518 cssText = other.cssText;
519 valueType = other.valueType;
520 }
522 /**
523 *
524 */
525 virtual ~CSSValue() {}
527 protected:
529 DOMString cssText;
530 int valueType;
531 };
537 /*#########################################################################
538 ## CSSStyleDeclaration
539 #########################################################################*/
541 /**
542 * The CSSStyleDeclaration interface represents a single CSS declaration block.
543 * This interface may be used to determine the style properties currently set in
544 * a block or to set style properties explicitly within the block.
545 *
546 * While an implementation may not recognize all CSS properties within a CSS
547 * declaration block, it is expected to provide access to all specified
548 * properties in the style sheet through the CSSStyleDeclaration interface.
549 * Furthermore, implementations that support a specific level of CSS should
550 * correctly handle CSS shorthand properties for that level. For a further
551 * discussion of shorthand properties, see the CSS2Properties interface.
552 *
553 * This interface is also used to provide a read-only access to the computed
554 * values of an element. See also the ViewCSS interface.
555 *
556 * Note: The CSS Object Model doesn't provide an access to the specified or
557 * actual values of the CSS cascade.
558 */
559 class CSSStyleDeclaration
560 {
561 private:
563 class CSSStyleDeclarationEntry
564 {
565 public:
566 CSSStyleDeclarationEntry(const DOMString &nameArg,
567 const DOMString &valueArg,
568 const DOMString &prioArg)
569 {
570 name = nameArg;
571 value = valueArg;
572 prio = prioArg;
573 }
574 virtual ~CSSStyleDeclarationEntry(){}
575 DOMString name;
576 DOMString value;
577 DOMString prio;
578 };
581 public:
583 /**
584 * The parsable textual representation of the declaration block (excluding the
585 * surrounding curly braces).
586 */
587 virtual DOMString getCssText()
588 {
589 return cssText;
590 }
592 /**
593 * The parsable textual representation of the declaration block (excluding the
594 * surrounding curly braces). Setting this attribute will result in the parsing
595 * of the new value and resetting of all the properties in the declaration block
596 * including the removal or addition of properties.
597 */
598 virtual void setCssText(const DOMString &val)
599 throw (dom::DOMException)
600 {
601 cssText = val;
602 }
604 /**
605 * Used to retrieve the value of a CSS property if it has been explicitly
606 * set within this declaration block.
607 */
608 virtual DOMString getPropertyValue(const DOMString &propertyName)
609 {
610 std::vector<CSSStyleDeclarationEntry>::iterator iter;
611 for (iter=items.begin() ; iter!=items.end() ; iter++)
612 {
613 if (iter->name == propertyName)
614 return iter->value;
615 }
616 return "";
617 }
619 /**
620 * Used to retrieve the object representation of the value of a CSS property if
621 * it has been explicitly set within this declaration block. This method returns
622 * null if the property is a shorthand property. Shorthand property values can
623 * only be accessed and modified as strings, using the getPropertyValue and
624 * setProperty methods.
625 */
626 virtual CSSValue getPropertyCSSValue(const DOMString &/*propertyName*/)
627 {
628 CSSValue value;
629 return value;
630 }
632 /**
633 * Used to remove a CSS property if it has been explicitly set within
634 * this declaration block.
635 */
636 virtual DOMString removeProperty(const DOMString &propertyName)
637 throw (dom::DOMException)
638 {
639 std::vector<CSSStyleDeclarationEntry>::iterator iter;
640 for (iter=items.begin() ; iter!=items.end() ; iter++)
641 {
642 if (iter->name == propertyName)
643 items.erase(iter);
644 }
645 return propertyName;
646 }
648 /**
649 * Used to retrieve the priority of a CSS property (e.g. the "important"
650 * qualifier) if the property has been explicitly set in this declaration block.
651 */
652 virtual DOMString getPropertyPriority(const DOMString &propertyName)
653 {
654 std::vector<CSSStyleDeclarationEntry>::iterator iter;
655 for (iter=items.begin() ; iter!=items.end() ; iter++)
656 {
657 if (iter->name == propertyName)
658 return iter->prio;
659 }
660 return "";
661 }
663 /**
664 * Used to set a property value and priority within this declaration block.
665 */
666 virtual void setProperty(const DOMString &propertyName,
667 const DOMString &value,
668 const DOMString &priority)
669 throw (dom::DOMException)
670 {
671 std::vector<CSSStyleDeclarationEntry>::iterator iter;
672 for (iter=items.begin() ; iter!=items.end() ; iter++)
673 {
674 if (iter->name == propertyName)
675 {
676 iter->name = propertyName;
677 iter->value = value;
678 iter->prio = priority;
679 return;
680 }
681 }
682 CSSStyleDeclarationEntry entry(propertyName, value, priority);
683 items.push_back(entry);
684 }
686 /**
687 * The number of properties that have been explicitly set in this declaration
688 * block. The range of valid indices is 0 to length-1 inclusive.
689 */
690 virtual unsigned long getLength()
691 {
692 return items.size();
693 }
695 /**
696 * Used to retrieve the properties that have been explicitly set in this
697 * declaration block. The order of the properties retrieved using this method
698 * does not have to be the order in which they were set. This method can be used
699 * to iterate over all properties in this declaration block.
700 */
701 virtual DOMString item(unsigned long index)
702 {
703 if (index>=items.size())
704 return "";
705 DOMString ret = items[index].name;
706 ret.append(":");
707 ret.append(items[index].value);
708 return ret;
709 }
711 /**
712 * The CSS rule that contains this declaration block or null if this
713 * CSSStyleDeclaration is not attached to a CSSRule.
714 */
715 virtual CSSRule *getParentRule()
716 {
717 return parentRule;
718 }
720 //##################
721 //# Non-API methods
722 //##################
724 /**
725 *
726 */
727 CSSStyleDeclaration()
728 {
729 parentRule = NULL;
730 }
732 /**
733 *
734 */
735 CSSStyleDeclaration(const CSSStyleDeclaration &other)
736 {
737 assign(other);
738 }
740 /**
741 *
742 */
743 CSSStyleDeclaration &operator=(const CSSStyleDeclaration &other)
744 {
745 assign(other);
746 return *this;
747 }
749 /**
750 *
751 */
752 void assign(const CSSStyleDeclaration &other)
753 {
754 parentRule = other.parentRule;
755 cssText = other.cssText;
756 items = other.items;
757 }
759 /**
760 *
761 */
762 virtual ~CSSStyleDeclaration() {}
764 protected:
766 DOMString cssText;
768 CSSRule *parentRule;
770 std::vector<CSSStyleDeclarationEntry> items;
771 };
776 /*#########################################################################
777 ## CSSStyleRule
778 #########################################################################*/
780 /**
781 * The CSSStyleRule interface represents a single rule set in a CSS style sheet.
782 */
783 class CSSStyleRule : virtual public CSSRule
784 {
785 public:
787 /**
788 * The textual representation of the selector for the rule set. The
789 * implementation may have stripped out insignificant whitespace while parsing
790 * the selector.
791 */
792 virtual DOMString getSelectorText()
793 {
794 return selectorText;
795 }
797 /**
798 * The textual representation of the selector for the rule set. The
799 * implementation may have stripped out insignificant whitespace while parsing
800 * the selector. Setting implies reparsing.
801 */
802 virtual void setSelectorText(const DOMString &val)
803 throw (dom::DOMException)
804 {
805 selectorText = val;
806 }
809 /**
810 * The declaration-block of this rule set.
811 */
812 virtual CSSStyleDeclaration &getStyle()
813 {
814 return style;
815 }
817 //##################
818 //# Non-API methods
819 //##################
821 /**
822 *
823 */
824 CSSStyleRule() : CSSRule()
825 {
826 type = STYLE_RULE;
827 selectorText = "";
828 }
831 /**
832 *
833 */
834 CSSStyleRule(const CSSStyleRule &other) : CSSRule(other)
835 {
836 assign(other);
837 }
839 /**
840 *
841 */
842 CSSStyleRule &operator=(const CSSStyleRule &other)
843 {
844 assign(other);
845 return *this;
846 }
848 /**
849 *
850 */
851 void assign(const CSSStyleRule &other)
852 {
853 selectorText = other.selectorText;
854 style = other.style;
855 }
857 /**
858 *
859 */
860 virtual ~CSSStyleRule() {}
862 protected:
864 DOMString selectorText;
866 CSSStyleDeclaration style;
868 };
870 /*#########################################################################
871 ## CSSMediaRule
872 #########################################################################*/
874 /**
875 * The CSSMediaRule interface represents a @media rule in a CSS style sheet. A
876 * @media rule can be used to delimit style rules for specific media types.
877 */
878 class CSSMediaRule : virtual public CSSRule
879 {
880 public:
882 /**
883 * A list of media types for this rule.
884 */
885 virtual stylesheets::MediaList getMedia()
886 {
887 return mediaList;
888 }
890 /**
891 * A list of all CSS rules contained within the media block.
892 */
893 virtual CSSRuleList getCssRules()
894 {
895 return cssRules;
896 }
898 /**
899 * Used to insert a new rule into the media block.
900 */
901 virtual unsigned long insertRule(const DOMString &/*ruleStr*/,
902 unsigned long index)
903 throw (dom::DOMException)
904 {
905 if (index>cssRules.getLength())
906 return 0;
907 CSSRule rule;
908 cssRules.insertRule(rule, index);
909 return index;
910 }
912 /**
913 * Used to delete a rule from the media block.
914 */
915 virtual void deleteRule(unsigned long index)
916 throw(dom::DOMException)
917 {
918 cssRules.deleteRule(index);
919 }
921 //##################
922 //# Non-API methods
923 //##################
925 /**
926 *
927 */
928 CSSMediaRule() : CSSRule()
929 {
930 type = MEDIA_RULE;
931 }
933 /**
934 *
935 */
936 CSSMediaRule(const CSSMediaRule &other) : CSSRule(other)
937 {
938 assign(other);
939 }
941 /**
942 *
943 */
944 CSSMediaRule &operator=(const CSSMediaRule &other)
945 {
946 assign(other);
947 return *this;
948 }
950 /**
951 *
952 */
953 void assign(const CSSMediaRule &other)
954 {
955 mediaList = other.mediaList;
956 cssRules = other.cssRules;
957 }
959 /**
960 *
961 */
962 virtual ~CSSMediaRule() {}
964 protected:
966 stylesheets::MediaList mediaList;
968 CSSRuleList cssRules;
969 };
974 /*#########################################################################
975 ## CSSFontFaceRule
976 #########################################################################*/
978 /**
979 * The CSSFontFaceRule interface represents a @font-face rule in a CSS style
980 * sheet. The @font-face rule is used to hold a set of font descriptions.
981 */
982 class CSSFontFaceRule : virtual public CSSRule
983 {
984 public:
986 /**
987 * The declaration-block of this rule.
988 */
989 virtual CSSStyleDeclaration getStyle()
990 {
991 return style;
992 }
995 //##################
996 //# Non-API methods
997 //##################
999 /**
1000 *
1001 */
1002 CSSFontFaceRule() : CSSRule()
1003 {
1004 type = FONT_FACE_RULE;
1005 }
1007 /**
1008 *
1009 */
1010 CSSFontFaceRule(const CSSFontFaceRule &other) : CSSRule(other)
1011 {
1012 style = other.style;
1013 }
1015 /**
1016 *
1017 */
1018 CSSFontFaceRule &operator=(const CSSFontFaceRule &other)
1019 {
1020 style = other.style;
1021 return *this;
1022 }
1024 /**
1025 *
1026 */
1027 void assign(const CSSFontFaceRule &other)
1028 {
1029 style = other.style;
1030 }
1032 /**
1033 *
1034 */
1035 virtual ~CSSFontFaceRule() {}
1037 protected:
1039 CSSStyleDeclaration style;
1040 };
1045 /*#########################################################################
1046 ## CSSPageRule
1047 #########################################################################*/
1049 /**
1050 * The CSSPageRule interface represents a @page rule within a CSS style sheet.
1051 * The @page rule is used to specify the dimensions, orientation, margins, etc.
1052 * of a page box for paged media.
1053 */
1054 class CSSPageRule : virtual public CSSRule
1055 {
1056 public:
1058 /**
1059 * The parsable textual representation of the page selector for the rule.
1060 */
1061 virtual DOMString getSelectorText()
1062 {
1063 return selectorText;
1064 }
1066 /**
1067 * The parsable textual representation of the page selector for the rule.
1068 * Setting implies parsing.
1069 */
1070 virtual void setSelectorText(const DOMString &val)
1071 throw(dom::DOMException)
1072 {
1073 selectorText = val;
1074 }
1077 /**
1078 * The declaration-block of this rule.
1079 */
1080 virtual CSSStyleDeclaration getStyle()
1081 {
1082 return style;
1083 }
1086 //##################
1087 //# Non-API methods
1088 //##################
1090 /**
1091 *
1092 */
1093 CSSPageRule() : CSSRule()
1094 {
1095 type = PAGE_RULE;
1096 }
1098 /**
1099 *
1100 */
1101 CSSPageRule(const CSSPageRule &other) : CSSRule(other)
1102 {
1103 assign(other);
1104 }
1106 /**
1107 *
1108 */
1109 CSSPageRule &operator=(const CSSPageRule &other)
1110 {
1111 assign(other);
1112 return *this;
1113 }
1115 /**
1116 *
1117 */
1118 void assign(const CSSPageRule &other)
1119 {
1120 selectorText = other.selectorText;
1121 style = other.style;
1122 }
1124 /**
1125 *
1126 */
1127 virtual ~CSSPageRule() {}
1129 protected:
1131 DOMString selectorText;
1133 CSSStyleDeclaration style;
1134 };
1140 /*#########################################################################
1141 ## CSSImportRule
1142 #########################################################################*/
1144 /**
1145 * The CSSImportRule interface represents a @import rule within a CSS style
1146 * sheet. The @import rule is used to import style rules from other style sheets.
1147 */
1148 class CSSImportRule : virtual public CSSRule
1149 {
1150 public:
1152 /**
1153 * The location of the style sheet to be imported. The attribute will not contain
1154 * the "url(...)" specifier around the URI.
1155 */
1156 virtual DOMString getHref()
1157 {
1158 return href;
1159 }
1161 /**
1162 * A list of media types for which this style sheet may be used.
1163 */
1164 virtual stylesheets::MediaList getMedia()
1165 {
1166 return mediaList;
1167 }
1169 /**
1170 * The style sheet referred to by this rule, if it has been loaded. The value of
1171 * this attribute is null if the style sheet has not yet been loaded or if it
1172 * will not be loaded (e.g. if the style sheet is for a media type not supported
1173 * by the user agent).
1174 */
1175 virtual CSSStyleSheet getStyleSheet()
1176 {
1177 return styleSheet;
1178 }
1181 //##################
1182 //# Non-API methods
1183 //##################
1185 /**
1186 *
1187 */
1188 CSSImportRule() : CSSRule()
1189 {
1190 type = IMPORT_RULE;
1191 }
1193 /**
1194 *
1195 */
1196 CSSImportRule(const CSSImportRule &other) : CSSRule(other)
1197 {
1198 assign(other);
1199 }
1201 /**
1202 *
1203 */
1204 CSSImportRule &operator=(const CSSImportRule &other)
1205 {
1206 assign(other);
1207 return *this;
1208 }
1210 /**
1211 *
1212 */
1213 void assign(const CSSImportRule &other)
1214 {
1215 mediaList = other.mediaList;
1216 styleSheet = other.styleSheet;
1217 }
1219 /**
1220 *
1221 */
1222 virtual ~CSSImportRule() {}
1224 protected:
1226 DOMString href;
1228 stylesheets::MediaList mediaList;
1230 CSSStyleSheet styleSheet;
1231 };
1238 /*#########################################################################
1239 ## CSSCharsetRule
1240 #########################################################################*/
1242 /**
1243 * The CSSCharsetRule interface represents a @charset rule in a CSS style sheet.
1244 * The value of the encoding attribute does not affect the encoding of text data
1245 * in the DOM objects; this encoding is always UTF-16. After a stylesheet is
1246 * loaded, the value of the encoding attribute is the value found in the @charset
1247 * rule. If there was no @charset in the original document, then no
1248 * CSSCharsetRule is created. The value of the encoding attribute may also be
1249 * used as a hint for the encoding used on serialization of the style sheet.
1250 *
1251 * The value of the @charset rule (and therefore of the CSSCharsetRule) may not
1252 * correspond to the encoding the document actually came in; character encoding
1253 * information e.g. in an HTTP header, has priority (see CSS document
1254 * representation) but this is not reflected in the CSSCharsetRule.
1255 */
1256 class CSSCharsetRule : virtual public CSSRule
1257 {
1258 public:
1260 /**
1261 * The encoding information used in this @charset rule.
1262 */
1263 virtual DOMString getEncoding()
1264 {
1265 return encoding;
1266 }
1268 /**
1269 * The encoding information used in this @charset rule.
1270 * Setting implies parsing.
1271 */
1272 virtual void setEncoding(const DOMString &val) throw (dom::DOMException)
1273 {
1274 encoding = val;
1275 }
1277 //##################
1278 //# Non-API methods
1279 //##################
1281 /**
1282 *
1283 */
1284 CSSCharsetRule() : CSSRule()
1285 {
1286 type = CHARSET_RULE;
1287 }
1289 /**
1290 *
1291 */
1292 CSSCharsetRule(const CSSCharsetRule &other) : CSSRule(other)
1293 {
1294 encoding = other.encoding;
1295 }
1297 /**
1298 *
1299 */
1300 CSSCharsetRule &operator=(const CSSCharsetRule &other)
1301 {
1302 encoding = other.encoding;
1303 return *this;
1304 }
1306 /**
1307 *
1308 */
1309 virtual ~CSSCharsetRule() {}
1311 protected:
1313 DOMString encoding;
1315 };
1321 /*#########################################################################
1322 ## CSSUnknownRule
1323 #########################################################################*/
1325 /**
1326 * The CSSUnknownRule interface represents an at-rule not supported by
1327 * this user agent.
1328 */
1329 class CSSUnknownRule : virtual public CSSRule
1330 {
1331 public:
1333 //##################
1334 //# Non-API methods
1335 //##################
1337 /**
1338 *
1339 */
1340 CSSUnknownRule() : CSSRule()
1341 {
1342 type = UNKNOWN_RULE;
1343 }
1345 /**
1346 *
1347 */
1348 CSSUnknownRule(const CSSUnknownRule &other) : CSSRule(other)
1349 {
1350 }
1352 /**
1353 *
1354 */
1355 CSSUnknownRule &operator=(const CSSUnknownRule &/*other*/)
1356 {
1357 return *this;
1358 }
1360 /**
1361 *
1362 */
1363 virtual ~CSSUnknownRule() {}
1364 };
1372 /*#########################################################################
1373 ## CSSValueList
1374 #########################################################################*/
1376 /**
1377 * The CSSValueList interface provides the abstraction of an ordered collection
1378 * of CSS values.
1379 *
1380 * Some properties allow an empty list into their syntax. In that case, these
1381 * properties take the none identifier. So, an empty list means that the property
1382 * has the value none.
1383 *
1384 * The items in the CSSValueList are accessible via an integral index, starting
1385 * from 0.
1386 */
1387 class CSSValueList : virtual public CSSValue
1388 {
1389 public:
1391 /**
1392 * The number of CSSValues in the list. The range of valid values of the indices
1393 * is 0 to length-1 inclusive.
1394 */
1395 virtual unsigned long getLength()
1396 {
1397 return items.size();
1398 }
1400 /**
1401 * Used to retrieve a CSSValue by ordinal index. The order in this collection
1402 * represents the order of the values in the CSS style property. If index is
1403 * greater than or equal to the number of values in the list, this returns null.
1404 */
1405 virtual CSSValue item(unsigned long index)
1406 {
1407 if (index>=items.size())
1408 {
1409 CSSValue dummy;
1410 return dummy;
1411 }
1412 return items[index];
1413 }
1416 //##################
1417 //# Non-API methods
1418 //##################
1420 /**
1421 *
1422 */
1423 CSSValueList()
1424 {
1425 }
1427 /**
1428 *
1429 */
1430 CSSValueList(const CSSValueList &other) : CSSValue(other)
1431 {
1432 items = other.items;
1433 }
1435 /**
1436 *
1437 */
1438 CSSValueList &operator=(const CSSValueList &other)
1439 {
1440 items = other.items;
1441 return *this;
1442 }
1444 /**
1445 *
1446 */
1447 virtual ~CSSValueList() {}
1449 protected:
1451 std::vector<CSSValue> items;
1452 };
1457 /*#########################################################################
1458 ## CSSPrimitiveValue
1459 #########################################################################*/
1461 /**
1462 * The CSSPrimitiveValue interface represents a single CSS value. This interface
1463 * may be used to determine the value of a specific style property currently set
1464 * in a block or to set a specific style property explicitly within the block. An
1465 * instance of this interface might be obtained from the getPropertyCSSValue
1466 * method of the CSSStyleDeclaration interface. A CSSPrimitiveValue object only
1467 * occurs in a context of a CSS property.
1468 *
1469 * Conversions are allowed between absolute values (from millimeters to
1470 * centimeters, from degrees to radians, and so on) but not between relative
1471 * values. (For example, a pixel value cannot be converted to a centimeter value.)
1472 * Percentage values can't be converted since they are relative to the parent
1473 * value (or another property value). There is one exception for color percentage
1474 * values: since a color percentage value is relative to the range 0-255, a color
1475 * percentage value can be converted to a number; (see also the RGBColor
1476 * interface).
1477 */
1478 class CSSPrimitiveValue : virtual public CSSValue
1479 {
1480 public:
1482 /**
1483 *An integer indicating which type of unit applies to the value.
1484 */
1485 typedef enum
1486 {
1487 CSS_UNKNOWN = 0,
1488 CSS_NUMBER = 1,
1489 CSS_PERCENTAGE = 2,
1490 CSS_EMS = 3,
1491 CSS_EXS = 4,
1492 CSS_PX = 5,
1493 CSS_CM = 6,
1494 CSS_MM = 7,
1495 CSS_IN = 8,
1496 CSS_PT = 9,
1497 CSS_PC = 10,
1498 CSS_DEG = 11,
1499 CSS_RAD = 12,
1500 CSS_GRAD = 13,
1501 CSS_MS = 14,
1502 CSS_S = 15,
1503 CSS_HZ = 16,
1504 CSS_KHZ = 17,
1505 CSS_DIMENSION = 18,
1506 CSS_STRING = 19,
1507 CSS_URI = 20,
1508 CSS_IDENT = 21,
1509 CSS_ATTR = 22,
1510 CSS_COUNTER = 23,
1511 CSS_RECT = 24,
1512 CSS_RGBCOLOR = 25
1513 } UnitTypes;
1516 /**
1517 * The type of the value as defined by the constants specified above.
1518 */
1519 virtual unsigned short getPrimitiveType()
1520 {
1521 return primitiveType;
1522 }
1524 /**
1525 * A method to set the float value with a specified unit. If the property
1526 * attached with this value can not accept the specified unit or the float value,
1527 * the value will be unchanged and a DOMException will be raised.
1528 */
1529 virtual void setFloatValue(unsigned short unitType,
1530 double doubleValueArg)
1531 throw (dom::DOMException)
1532 {
1533 primitiveType = unitType;
1534 doubleValue = doubleValueArg;
1535 }
1537 /**
1538 * This method is used to get a float value in a specified unit. If this CSS
1539 * value doesn't contain a float value or can't be converted into the specified
1540 * unit, a DOMException is raised.
1541 */
1542 virtual double getFloatValue(unsigned short /*unitType*/)
1543 throw (dom::DOMException)
1544 {
1545 return doubleValue;
1546 }
1548 /**
1549 * A method to set the string value with the specified unit. If the property
1550 * attached to this value can't accept the specified unit or the string value,
1551 * the value will be unchanged and a DOMException will be raised.
1552 */
1553 virtual void setStringValue(unsigned short /*stringType*/,
1554 const DOMString &stringValueArg)
1555 throw (dom::DOMException)
1556 {
1557 stringValue = stringValueArg;
1558 }
1560 /**
1561 * This method is used to get the string value. If the CSS value doesn't contain
1562 * a string value, a DOMException is raised.
1563 *
1564 * Note: Some properties (like 'font-family' or 'voice-family') convert a
1565 * whitespace separated list of idents to a string.
1566 */
1567 virtual DOMString getStringValue() throw (dom::DOMException)
1568 {
1569 return stringValue;
1570 }
1572 /**
1573 * This method is used to get the Counter value. If this CSS value doesn't
1574 * contain a counter value, a DOMException is raised. Modification to the
1575 * corresponding style property can be achieved using the Counter interface.
1576 */
1577 virtual Counter *getCounterValue() throw (dom::DOMException)
1578 {
1579 return NULL;
1580 }
1582 /**
1583 * This method is used to get the Rect value. If this CSS value doesn't contain a
1584 * rect value, a DOMException is raised. Modification to the corresponding style
1585 * property can be achieved using the Rect interface.
1586 */
1587 virtual Rect *getRectValue() throw (dom::DOMException)
1588 {
1589 return NULL;
1590 }
1592 /**
1593 * This method is used to get the RGB color. If this CSS value doesn't contain a
1594 * RGB color value, a DOMException is raised. Modification to the corresponding
1595 * style property can be achieved using the RGBColor interface.
1596 */
1597 virtual RGBColor *getRGBColorValue() throw (dom::DOMException)
1598 {
1599 return NULL;
1600 }
1602 //##################
1603 //# Non-API methods
1604 //##################
1606 /**
1607 *
1608 */
1609 CSSPrimitiveValue() : CSSValue()
1610 {
1611 }
1613 /**
1614 *
1615 */
1616 CSSPrimitiveValue(const CSSPrimitiveValue &other) : CSSValue(other)
1617 {
1618 }
1620 /**
1621 *
1622 */
1623 CSSPrimitiveValue &operator=(const CSSPrimitiveValue &/*other*/)
1624 {
1625 return *this;
1626 }
1628 /**
1629 *
1630 */
1631 virtual ~CSSPrimitiveValue() {}
1633 protected:
1635 int primitiveType;
1637 double doubleValue;
1639 DOMString stringValue;
1642 };
1646 /*#########################################################################
1647 ## RGBColor
1648 #########################################################################*/
1650 /**
1651 * The RGBColor interface is used to represent any RGB color value. This
1652 * interface reflects the values in the underlying style property. Hence,
1653 * modifications made to the CSSPrimitiveValue objects modify the style property.
1654 *
1655 * A specified RGB color is not clipped (even if the number is outside the range
1656 * 0-255 or 0%-100%). A computed RGB color is clipped depending on the device.
1657 *
1658 * Even if a style sheet can only contain an integer for a color value, the
1659 * internal storage of this integer is a float, and this can be used as a float
1660 * in the specified or the computed style.
1661 *
1662 * A color percentage value can always be converted to a number and vice versa.
1663 */
1664 class RGBColor
1665 {
1666 public:
1668 /**
1669 * This attribute is used for the red value of the RGB color.
1670 */
1671 virtual CSSPrimitiveValue getRed()
1672 {
1673 return red;
1674 }
1676 /**
1677 * This attribute is used for the green value of the RGB color.
1678 */
1679 virtual CSSPrimitiveValue getGreen()
1680 {
1681 return green;
1682 }
1684 /**
1685 * This attribute is used for the blue value of the RGB color.
1686 */
1687 virtual CSSPrimitiveValue getBlue()
1688 {
1689 return blue;
1690 }
1692 /**
1693 * REPLACES: RGBColor CSSPrimitiveValue::getRGBColorValue() throw (dom::DOMException)
1694 */
1695 static RGBColor getRGBColorValue(const CSSPrimitiveValue &/*val*/)
1696 {
1697 RGBColor col;
1698 return col;
1699 }
1701 //##################
1702 //# Non-API methods
1703 //##################
1705 /**
1706 *
1707 */
1708 RGBColor() {}
1710 /**
1711 *
1712 */
1713 RGBColor(const RGBColor &other)
1714 {
1715 assign(other);
1716 }
1718 /**
1719 *
1720 */
1721 RGBColor &operator=(const RGBColor &other)
1722 {
1723 assign(other);
1724 return *this;
1725 }
1727 /**
1728 *
1729 */
1730 void assign(const RGBColor &other)
1731 {
1732 red = other.red;
1733 green = other.green;
1734 blue = other.blue;
1735 }
1737 /**
1738 *
1739 */
1740 virtual ~RGBColor() {}
1742 protected:
1744 CSSPrimitiveValue red;
1745 CSSPrimitiveValue green;
1746 CSSPrimitiveValue blue;
1747 };
1752 /*#########################################################################
1753 ## Rect
1754 #########################################################################*/
1756 /**
1757 * The Rect interface is used to represent any rect value. This interface
1758 * reflects the values in the underlying style property. Hence, modifications
1759 * made to the CSSPrimitiveValue objects modify the style property.
1760 */
1761 class Rect
1762 {
1763 public:
1765 /**
1766 * This attribute is used for the top of the rect.
1767 */
1768 virtual CSSPrimitiveValue getTop()
1769 {
1770 return top;
1771 }
1773 /**
1774 * This attribute is used for the right of the rect.
1775 */
1776 virtual CSSPrimitiveValue getRight()
1777 {
1778 return right;
1779 }
1781 /**
1782 * This attribute is used for the bottom of the rect.
1783 */
1784 virtual CSSPrimitiveValue getBottom()
1785 {
1786 return bottom;
1787 }
1789 /**
1790 * This attribute is used for the left of the rect.
1791 */
1792 virtual CSSPrimitiveValue getLeft()
1793 {
1794 return left;
1795 }
1797 /**
1798 * REPLACES: Rect CSSPrimitiveValue::getRectValue() throw (dom::DOMException)
1799 */
1800 static Rect getRectValue(const CSSPrimitiveValue &/*val*/)
1801 {
1802 Rect rect;
1803 return rect;
1804 }
1806 //##################
1807 //# Non-API methods
1808 //##################
1810 /**
1811 *
1812 */
1813 Rect() {}
1815 /**
1816 *
1817 */
1818 Rect(const Rect &other)
1819 {
1820 assign(other);
1821 }
1823 /**
1824 *
1825 */
1826 Rect &operator=(const Rect &other)
1827 {
1828 assign(other);
1829 return *this;
1830 }
1832 /**
1833 *
1834 */
1835 void assign(const Rect &other)
1836 {
1837 top = other.top;
1838 right = other.right;
1839 bottom = other.bottom;
1840 left = other.left;
1841 }
1843 /**
1844 *
1845 */
1846 virtual ~Rect() {}
1848 protected:
1850 CSSPrimitiveValue top;
1851 CSSPrimitiveValue right;
1852 CSSPrimitiveValue bottom;
1853 CSSPrimitiveValue left;
1854 };
1861 /*#########################################################################
1862 ## Counter
1863 #########################################################################*/
1865 /**
1866 * The Counter interface is used to represent any counter or counters function
1867 * value. This interface reflects the values in the underlying style property.
1868 */
1869 class Counter
1870 {
1871 public:
1873 /**
1874 * This attribute is used for the identifier of the counter.
1875 */
1876 virtual DOMString getIdentifier()
1877 {
1878 return identifier;
1879 }
1881 /**
1882 * This attribute is used for the style of the list.
1883 */
1884 virtual DOMString getListStyle()
1885 {
1886 return listStyle;
1887 }
1889 /**
1890 * This attribute is used for the separator of the nested counters.
1891 */
1892 virtual DOMString getSeparator()
1893 {
1894 return separator;
1895 }
1897 /**
1898 * REPLACES: Counter CSSPrimitiveValue::getCounterValue() throw (dom::DOMException)
1899 */
1900 static Counter getCounterValue(const CSSPrimitiveValue &/*val*/)
1901 {
1902 Counter counter;
1903 return counter;
1904 }
1906 //##################
1907 //# Non-API methods
1908 //##################
1910 /**
1911 *
1912 */
1913 Counter() {}
1915 /**
1916 *
1917 */
1918 Counter(const Counter &other)
1919 {
1920 assign(other);
1921 }
1923 /**
1924 *
1925 */
1926 Counter &operator=(const Counter &other)
1927 {
1928 assign(other);
1929 return *this;
1930 }
1932 /**
1933 *
1934 */
1935 void assign(const Counter &other)
1936 {
1937 identifier = other.identifier;
1938 listStyle = other.listStyle;
1939 separator = other.separator;
1940 }
1942 /**
1943 *
1944 */
1945 virtual ~Counter() {}
1947 protected:
1949 DOMString identifier;
1950 DOMString listStyle;
1951 DOMString separator;
1953 };
1958 /*#########################################################################
1959 ## ElementCSSInlineStyle
1960 #########################################################################*/
1962 /**
1963 * Inline style information attached to elements is exposed through the style
1964 * attribute. This represents the contents of the STYLE attribute for HTML
1965 * elements (or elements in other schemas or DTDs which use the STYLE attribute
1966 * in the same way). The expectation is that an instance of the
1967 * ElementCSSInlineStyle interface can be obtained by using binding-specific
1968 * casting methods on an instance of the Element interface when the element
1969 * supports inline CSS style informations.
1970 */
1971 class ElementCSSInlineStyle
1972 {
1973 public:
1975 /**
1976 * The style attribute.
1977 */
1978 virtual CSSStyleDeclaration getStyle()
1979 {
1980 return style;
1981 }
1983 //##################
1984 //# Non-API methods
1985 //##################
1987 /**
1988 *
1989 */
1990 ElementCSSInlineStyle() {}
1992 /**
1993 *
1994 */
1995 ElementCSSInlineStyle(const ElementCSSInlineStyle &other)
1996 {
1997 style = other.style;
1998 }
2000 /**
2001 *
2002 */
2003 ElementCSSInlineStyle &operator=(const ElementCSSInlineStyle &other)
2004 {
2005 style = other.style;
2006 return *this;
2007 }
2009 /**
2010 *
2011 */
2012 virtual ~ElementCSSInlineStyle() {}
2014 protected:
2016 CSSStyleDeclaration style;
2017 };
2024 /*#########################################################################
2025 ## CSS2Properties
2026 #########################################################################*/
2028 /**
2029 * The CSS2Properties interface represents a convenience mechanism for retrieving
2030 * and setting properties within a CSSStyleDeclaration. The attributes of this
2031 * interface correspond to all the properties specified in CSS2. Getting an
2032 * attribute of this interface is equivalent to calling the getPropertyValue
2033 * method of the CSSStyleDeclaration interface. Setting an attribute of this
2034 * interface is equivalent to calling the setProperty method of the
2035 * CSSStyleDeclaration interface.
2036 *
2037 * A conformant implementation of the CSS module is not required to implement the
2038 * CSS2Properties interface. If an implementation does implement this interface,
2039 * the expectation is that language-specific methods can be used to cast from an
2040 * instance of the CSSStyleDeclaration interface to the CSS2Properties interface.
2041 *
2042 * If an implementation does implement this interface, it is expected to
2043 * understand the specific syntax of the shorthand properties, and apply their
2044 * semantics; when the margin property is set, for example, the marginTop,
2045 * marginRight, marginBottom and marginLeft properties are actually being set by
2046 * the underlying implementation.
2047 *
2048 * When dealing with CSS "shorthand" properties, the shorthand properties should
2049 * be decomposed into their component longhand properties as appropriate, and
2050 * when querying for their value, the form returned should be the shortest form
2051 * exactly equivalent to the declarations made in the ruleset. However, if there
2052 * is no shorthand declaration that could be added to the ruleset without
2053 * changing in any way the rules already declared in the ruleset (i.e., by adding
2054 * longhand rules that were previously not declared in the ruleset), then the
2055 * empty string should be returned for the shorthand property.
2056 *
2057 * For example, querying for the font property should not return "normal normal
2058 * normal 14pt/normal Arial, sans-serif", when "14pt Arial, sans-serif" suffices.
2059 * (The normals are initial values, and are implied by use of the longhand
2060 * property.)
2061 *
2062 * If the values for all the longhand properties that compose a particular string
2063 * are the initial values, then a string consisting of all the initial values
2064 * should be returned (e.g. a border-width value of "medium" should be returned
2065 * as such, not as "").
2066 *
2067 * For some shorthand properties that take missing values from other sides, such
2068 * as the margin, padding, and border-[width|style|color] properties, the minimum
2069 * number of sides possible should be used; i.e., "0px 10px" will be returned
2070 * instead of "0px 10px 0px 10px".
2071 *
2072 * If the value of a shorthand property can not be decomposed into its component
2073 * longhand properties, as is the case for the font property with a value of
2074 * "menu", querying for the values of the component longhand properties should
2075 * return the empty string.
2076 * */
2077 class CSS2Properties
2078 {
2079 public:
2082 /**
2083 * return the 'azimuth' property
2084 */
2085 virtual DOMString getAzimuth()
2086 {
2087 return azimuth;
2088 }
2090 /**
2091 * set the 'azimuth' property
2092 */
2093 virtual void setAzimuth(const DOMString &val)
2094 throw (dom::DOMException)
2095 {
2096 azimuth = val;
2097 }
2099 /**
2100 * return the 'background' property
2101 */
2102 virtual DOMString getBackground()
2103 {
2104 return background;
2105 }
2107 /**
2108 * set the 'background' property
2109 */
2110 virtual void setBackground(const DOMString &val)
2111 throw (dom::DOMException)
2112 {
2113 background = val;
2114 }
2116 /**
2117 * return the 'backgroundAttachment' property
2118 */
2119 virtual DOMString getBackgroundAttachment()
2120 {
2121 return backgroundAttachment;
2122 }
2124 /**
2125 * set the 'backgroundAttachment' property
2126 */
2127 virtual void setBackgroundAttachment(const DOMString &val)
2128 throw (dom::DOMException)
2129 {
2130 backgroundAttachment = val;
2131 }
2133 /**
2134 * return the 'backgroundColor' property
2135 */
2136 virtual DOMString getBackgroundColor()
2137 {
2138 return backgroundColor;
2139 }
2141 /**
2142 * set the 'backgroundColor' property
2143 */
2144 virtual void setBackgroundColor(const DOMString &val)
2145 throw (dom::DOMException)
2146 {
2147 backgroundColor = val;
2148 }
2150 /**
2151 * return the 'backgroundImage' property
2152 */
2153 virtual DOMString getBackgroundImage()
2154 {
2155 return backgroundImage;
2156 }
2158 /**
2159 * set the 'backgroundImage' property
2160 */
2161 virtual void setBackgroundImage(const DOMString &val)
2162 throw (dom::DOMException)
2163 {
2164 backgroundImage = val;
2165 }
2167 /**
2168 * return the 'backgroundPosition' property
2169 */
2170 virtual DOMString getBackgroundPosition()
2171 {
2172 return backgroundPosition;
2173 }
2175 /**
2176 * set the 'backgroundPosition' property
2177 */
2178 virtual void setBackgroundPosition(const DOMString &val)
2179 throw (dom::DOMException)
2180 {
2181 backgroundPosition = val;
2182 }
2184 /**
2185 * return the 'backgroundRepeat' property
2186 */
2187 virtual DOMString getBackgroundRepeat()
2188 {
2189 return backgroundRepeat;
2190 }
2192 /**
2193 * set the 'backgroundRepeat' property
2194 */
2195 virtual void setBackgroundRepeat(const DOMString &val)
2196 throw (dom::DOMException)
2197 {
2198 backgroundRepeat = val;
2199 }
2201 /**
2202 * return the 'border' property
2203 */
2204 virtual DOMString getBorder()
2205 {
2206 return border;
2207 }
2209 /**
2210 * set the 'border' property
2211 */
2212 virtual void setBorder(const DOMString &val)
2213 throw (dom::DOMException)
2214 {
2215 border = val;
2216 }
2218 /**
2219 * return the 'borderCollapse' property
2220 */
2221 virtual DOMString getBorderCollapse()
2222 {
2223 return borderCollapse;
2224 }
2226 /**
2227 * set the 'borderCollapse' property
2228 */
2229 virtual void setBorderCollapse(const DOMString &val)
2230 throw (dom::DOMException)
2231 {
2232 borderCollapse = val;
2233 }
2235 /**
2236 * return the 'borderColor' property
2237 */
2238 virtual DOMString getBorderColor()
2239 {
2240 return borderColor;
2241 }
2243 /**
2244 * set the 'borderColor' property
2245 */
2246 virtual void setBorderColor(const DOMString &val)
2247 throw (dom::DOMException)
2248 {
2249 borderColor = val;
2250 }
2252 /**
2253 * return the 'borderSpacing' property
2254 */
2255 virtual DOMString getBorderSpacing()
2256 {
2257 return borderSpacing;
2258 }
2260 /**
2261 * set the 'borderSpacing' property
2262 */
2263 virtual void setBorderSpacing(const DOMString &val)
2264 throw (dom::DOMException)
2265 {
2266 borderSpacing = val;
2267 }
2269 /**
2270 * return the 'borderStyle' property
2271 */
2272 virtual DOMString getBorderStyle()
2273 {
2274 return borderStyle;
2275 }
2277 /**
2278 * set the 'borderStyle' property
2279 */
2280 virtual void setBorderStyle(const DOMString &val)
2281 throw (dom::DOMException)
2282 {
2283 borderStyle = val;
2284 }
2286 /**
2287 * return the 'borderTop' property
2288 */
2289 virtual DOMString getBorderTop()
2290 {
2291 return borderTop;
2292 }
2294 /**
2295 * set the 'borderTop' property
2296 */
2297 virtual void setBorderTop(const DOMString &val)
2298 throw (dom::DOMException)
2299 {
2300 borderTop = val;
2301 }
2303 /**
2304 * return the 'borderRight' property
2305 */
2306 virtual DOMString getBorderRight()
2307 {
2308 return borderRight;
2309 }
2311 /**
2312 * set the 'borderRight' property
2313 */
2314 virtual void setBorderRight(const DOMString &val)
2315 throw (dom::DOMException)
2316 {
2317 borderRight = val;
2318 }
2320 /**
2321 * return the 'borderBottom' property
2322 */
2323 virtual DOMString getBorderBottom()
2324 {
2325 return borderBottom;
2326 }
2328 /**
2329 * set the 'borderBottom' property
2330 */
2331 virtual void setBorderBottom(const DOMString &val)
2332 throw (dom::DOMException)
2333 {
2334 borderBottom = val;
2335 }
2337 /**
2338 * return the 'borderLeft' property
2339 */
2340 virtual DOMString getBorderLeft()
2341 {
2342 return borderLeft;
2343 }
2345 /**
2346 * set the 'borderLeft' property
2347 */
2348 virtual void setBorderLeft(const DOMString &val)
2349 throw (dom::DOMException)
2350 {
2351 borderLeft = val;
2352 }
2354 /**
2355 * return the 'borderTopColor' property
2356 */
2357 virtual DOMString getBorderTopColor()
2358 {
2359 return borderTopColor;
2360 }
2362 /**
2363 * set the 'borderTopColor' property
2364 */
2365 virtual void setBorderTopColor(const DOMString &val)
2366 throw (dom::DOMException)
2367 {
2368 borderTopColor = val;
2369 }
2371 /**
2372 * return the 'borderRightColor' property
2373 */
2374 virtual DOMString getBorderRightColor()
2375 {
2376 return borderRightColor;
2377 }
2379 /**
2380 * set the 'borderRightColor' property
2381 */
2382 virtual void setBorderRightColor(const DOMString &val)
2383 throw (dom::DOMException)
2384 {
2385 borderRightColor = val;
2386 }
2388 /**
2389 * return the 'borderBottomColor' property
2390 */
2391 virtual DOMString getBorderBottomColor()
2392 {
2393 return borderBottomColor;
2394 }
2396 /**
2397 * set the 'borderBottomColor' property
2398 */
2399 virtual void setBorderBottomColor(const DOMString &val)
2400 throw (dom::DOMException)
2401 {
2402 borderBottomColor = val;
2403 }
2405 /**
2406 * return the 'borderLeftColor' property
2407 */
2408 virtual DOMString getBorderLeftColor()
2409 {
2410 return borderLeftColor;
2411 }
2413 /**
2414 * set the 'borderLeftColor' property
2415 */
2416 virtual void setBorderLeftColor(const DOMString &val)
2417 throw (dom::DOMException)
2418 {
2419 borderLeftColor = val;
2420 }
2422 /**
2423 * return the 'borderTopStyle' property
2424 */
2425 virtual DOMString getBorderTopStyle()
2426 {
2427 return borderTopStyle;
2428 }
2430 /**
2431 * set the 'borderTopStyle' property
2432 */
2433 virtual void setBorderTopStyle(const DOMString &val)
2434 throw (dom::DOMException)
2435 {
2436 borderTopStyle = val;
2437 }
2439 /**
2440 * return the 'borderRightStyle' property
2441 */
2442 virtual DOMString getBorderRightStyle()
2443 {
2444 return borderRightStyle;
2445 }
2447 /**
2448 * set the 'borderRightStyle' property
2449 */
2450 virtual void setBorderRightStyle(const DOMString &val)
2451 throw (dom::DOMException)
2452 {
2453 borderRightStyle = val;
2454 }
2456 /**
2457 * return the 'borderBottomStyle' property
2458 */
2459 virtual DOMString getBorderBottomStyle()
2460 {
2461 return borderBottomStyle;
2462 }
2464 /**
2465 * set the 'borderBottomStyle' property
2466 */
2467 virtual void setBorderBottomStyle(const DOMString &val)
2468 throw (dom::DOMException)
2469 {
2470 borderBottomStyle = val;
2471 }
2473 /**
2474 * return the 'borderLeftStyle' property
2475 */
2476 virtual DOMString getBorderLeftStyle()
2477 {
2478 return borderLeftStyle;
2479 }
2481 /**
2482 * set the 'borderLeftStyle' property
2483 */
2484 virtual void setBorderLeftStyle(const DOMString &val)
2485 throw (dom::DOMException)
2486 {
2487 borderLeftStyle = val;
2488 }
2490 /**
2491 * return the 'borderTopWidth' property
2492 */
2493 virtual DOMString getBorderTopWidth()
2494 {
2495 return borderTopWidth;
2496 }
2498 /**
2499 * set the 'borderTopWidth' property
2500 */
2501 virtual void setBorderTopWidth(const DOMString &val)
2502 throw (dom::DOMException)
2503 {
2504 borderTopWidth = val;
2505 }
2507 /**
2508 * return the 'borderRightWidth' property
2509 */
2510 virtual DOMString getBorderRightWidth()
2511 {
2512 return borderRightWidth;
2513 }
2515 /**
2516 * set the 'borderRightWidth' property
2517 */
2518 virtual void setBorderRightWidth(const DOMString &val)
2519 throw (dom::DOMException)
2520 {
2521 borderRightWidth = val;
2522 }
2524 /**
2525 * return the 'borderBottomWidth' property
2526 */
2527 virtual DOMString getBorderBottomWidth()
2528 {
2529 return borderBottomWidth;
2530 }
2532 /**
2533 * set the 'borderBottomWidth' property
2534 */
2535 virtual void setBorderBottomWidth(const DOMString &val)
2536 throw (dom::DOMException)
2537 {
2538 borderBottomWidth = val;
2539 }
2541 /**
2542 * return the 'borderLeftWidth' property
2543 */
2544 virtual DOMString getBorderLeftWidth()
2545 {
2546 return borderLeftWidth;
2547 }
2549 /**
2550 * set the 'borderLeftWidth' property
2551 */
2552 virtual void setBorderLeftWidth(const DOMString &val)
2553 throw (dom::DOMException)
2554 {
2555 borderLeftWidth = val;
2556 }
2558 /**
2559 * return the 'borderWidth' property
2560 */
2561 virtual DOMString getBorderWidth()
2562 {
2563 return borderWidth;
2564 }
2566 /**
2567 * set the 'borderWidth' property
2568 */
2569 virtual void setBorderWidth(const DOMString &val)
2570 throw (dom::DOMException)
2571 {
2572 borderWidth = val;
2573 }
2575 /**
2576 * return the 'bottom' property
2577 */
2578 virtual DOMString getBottom()
2579 {
2580 return bottom;
2581 }
2583 /**
2584 * set the 'bottom' property
2585 */
2586 virtual void setBottom(const DOMString &val)
2587 throw (dom::DOMException)
2588 {
2589 bottom = val;
2590 }
2592 /**
2593 * return the 'captionSide' property
2594 */
2595 virtual DOMString getCaptionSide()
2596 {
2597 return captionSide;
2598 }
2600 /**
2601 * set the 'captionSide' property
2602 */
2603 virtual void setCaptionSide(const DOMString &val)
2604 throw (dom::DOMException)
2605 {
2606 captionSide = val;
2607 }
2609 /**
2610 * return the 'clear' property
2611 */
2612 virtual DOMString getClear()
2613 {
2614 return clear;
2615 }
2617 /**
2618 * set the 'clear' property
2619 */
2620 virtual void setClear(const DOMString &val)
2621 throw (dom::DOMException)
2622 {
2623 clear = val;
2624 }
2626 /**
2627 * return the 'clip' property
2628 */
2629 virtual DOMString getClip()
2630 {
2631 return clip;
2632 }
2634 /**
2635 * set the 'clip' property
2636 */
2637 virtual void setClip(const DOMString &val)
2638 throw (dom::DOMException)
2639 {
2640 clip = val;
2641 }
2643 /**
2644 * return the 'color' property
2645 */
2646 virtual DOMString getColor()
2647 {
2648 return color;
2649 }
2651 /**
2652 * set the 'color' property
2653 */
2654 virtual void setColor(const DOMString &val)
2655 throw (dom::DOMException)
2656 {
2657 color = val;
2658 }
2660 /**
2661 * return the 'content' property
2662 */
2663 virtual DOMString getContent()
2664 {
2665 return content;
2666 }
2668 /**
2669 * set the 'content' property
2670 */
2671 virtual void setContent(const DOMString &val)
2672 throw (dom::DOMException)
2673 {
2674 content = val;
2675 }
2677 /**
2678 * return the 'counterIncrement' property
2679 */
2680 virtual DOMString getCounterIncrement()
2681 {
2682 return counterIncrement;
2683 }
2685 /**
2686 * set the 'counterIncrement' property
2687 */
2688 virtual void setCounterIncrement(const DOMString &val)
2689 throw (dom::DOMException)
2690 {
2691 counterIncrement = val;
2692 }
2694 /**
2695 * return the 'counterReset' property
2696 */
2697 virtual DOMString getCounterReset()
2698 {
2699 return counterReset;
2700 }
2702 /**
2703 * set the 'counterReset' property
2704 */
2705 virtual void setCounterReset(const DOMString &val)
2706 throw (dom::DOMException)
2707 {
2708 counterReset = val;
2709 }
2711 /**
2712 * return the 'cue' property
2713 */
2714 virtual DOMString getCue()
2715 {
2716 return cue;
2717 }
2719 /**
2720 * set the 'cue' property
2721 */
2722 virtual void setCue(const DOMString &val)
2723 throw (dom::DOMException)
2724 {
2725 cue = val;
2726 }
2728 /**
2729 * return the 'cueAfter' property
2730 */
2731 virtual DOMString getCueAfter()
2732 {
2733 return cueAfter;
2734 }
2736 /**
2737 * set the 'cueAfter' property
2738 */
2739 virtual void setCueAfter(const DOMString &val)
2740 throw (dom::DOMException)
2741 {
2742 cueAfter = val;
2743 }
2745 /**
2746 * return the 'cueBefore' property
2747 */
2748 virtual DOMString getCueBefore()
2749 {
2750 return cueBefore;
2751 }
2753 /**
2754 * set the 'cueBefore' property
2755 */
2756 virtual void setCueBefore(const DOMString &val)
2757 throw (dom::DOMException)
2758 {
2759 cueBefore = val;
2760 }
2762 /**
2763 * return the 'cursor' property
2764 */
2765 virtual DOMString getCursor()
2766 {
2767 return cursor;
2768 }
2770 /**
2771 * set the 'cursor' property
2772 */
2773 virtual void setCursor(const DOMString &val)
2774 throw (dom::DOMException)
2775 {
2776 cursor = val;
2777 }
2779 /**
2780 * return the 'direction' property
2781 */
2782 virtual DOMString getDirection()
2783 {
2784 return direction;
2785 }
2787 /**
2788 * set the 'direction' property
2789 */
2790 virtual void setDirection(const DOMString &val)
2791 throw (dom::DOMException)
2792 {
2793 direction = val;
2794 }
2796 /**
2797 * return the 'display' property
2798 */
2799 virtual DOMString getDisplay()
2800 {
2801 return display;
2802 }
2804 /**
2805 * set the 'display' property
2806 */
2807 virtual void setDisplay(const DOMString &val)
2808 throw (dom::DOMException)
2809 {
2810 display = val;
2811 }
2813 /**
2814 * return the 'elevation' property
2815 */
2816 virtual DOMString getElevation()
2817 {
2818 return elevation;
2819 }
2821 /**
2822 * set the 'elevation' property
2823 */
2824 virtual void setElevation(const DOMString &val)
2825 throw (dom::DOMException)
2826 {
2827 elevation = val;
2828 }
2830 /**
2831 * return the 'emptyCells' property
2832 */
2833 virtual DOMString getEmptyCells()
2834 {
2835 return emptyCells;
2836 }
2838 /**
2839 * set the 'emptyCells' property
2840 */
2841 virtual void setEmptyCells(const DOMString &val)
2842 throw (dom::DOMException)
2843 {
2844 emptyCells = val;
2845 }
2847 /**
2848 * return the 'cssFloat' property
2849 */
2850 virtual DOMString getCssFloat()
2851 {
2852 return cssFloat;
2853 }
2855 /**
2856 * set the 'cssFloat' property
2857 */
2858 virtual void setCssFloat(const DOMString &val)
2859 throw (dom::DOMException)
2860 {
2861 cssFloat = val;
2862 }
2864 /**
2865 * return the 'font' property
2866 */
2867 virtual DOMString getFont()
2868 {
2869 return font;
2870 }
2872 /**
2873 * set the 'font' property
2874 */
2875 virtual void setFont(const DOMString &val)
2876 throw (dom::DOMException)
2877 {
2878 font = val;
2879 }
2881 /**
2882 * return the 'fontFamily' property
2883 */
2884 virtual DOMString getFontFamily()
2885 {
2886 return fontFamily;
2887 }
2889 /**
2890 * set the 'fontFamily' property
2891 */
2892 virtual void setFontFamily(const DOMString &val)
2893 throw (dom::DOMException)
2894 {
2895 fontFamily = val;
2896 }
2898 /**
2899 * return the 'fontSize' property
2900 */
2901 virtual DOMString getFontSize()
2902 {
2903 return fontSize;
2904 }
2906 /**
2907 * set the 'fontSize' property
2908 */
2909 virtual void setFontSize(const DOMString &val)
2910 throw (dom::DOMException)
2911 {
2912 fontSize = val;
2913 }
2915 /**
2916 * return the 'fontSizeAdjust' property
2917 */
2918 virtual DOMString getFontSizeAdjust()
2919 {
2920 return fontSizeAdjust;
2921 }
2923 /**
2924 * set the 'fontSizeAdjust' property
2925 */
2926 virtual void setFontSizeAdjust(const DOMString &val)
2927 throw (dom::DOMException)
2928 {
2929 fontSizeAdjust = val;
2930 }
2932 /**
2933 * return the 'fontStretch' property
2934 */
2935 virtual DOMString getFontStretch()
2936 {
2937 return fontStretch;
2938 }
2940 /**
2941 * set the 'fontStretch' property
2942 */
2943 virtual void setFontStretch(const DOMString &val)
2944 throw (dom::DOMException)
2945 {
2946 fontStretch = val;
2947 }
2949 /**
2950 * return the 'fontStyle' property
2951 */
2952 virtual DOMString getFontStyle()
2953 {
2954 return fontStyle;
2955 }
2957 /**
2958 * set the 'fontStyle' property
2959 */
2960 virtual void setFontStyle(const DOMString &val)
2961 throw (dom::DOMException)
2962 {
2963 fontStyle = val;
2964 }
2966 /**
2967 * return the 'fontVariant' property
2968 */
2969 virtual DOMString getFontVariant()
2970 {
2971 return fontVariant;
2972 }
2974 /**
2975 * set the 'fontVariant' property
2976 */
2977 virtual void setFontVariant(const DOMString &val)
2978 throw (dom::DOMException)
2979 {
2980 fontVariant = val;
2981 }
2983 /**
2984 * return the 'fontWeight' property
2985 */
2986 virtual DOMString getFontWeight()
2987 {
2988 return fontWeight;
2989 }
2991 /**
2992 * set the 'fontWeight' property
2993 */
2994 virtual void setFontWeight(const DOMString &val)
2995 throw (dom::DOMException)
2996 {
2997 fontWeight = val;
2998 }
3000 /**
3001 * return the 'height' property
3002 */
3003 virtual DOMString getHeight()
3004 {
3005 return height;
3006 }
3008 /**
3009 * set the 'height' property
3010 */
3011 virtual void setHeight(const DOMString &val)
3012 throw (dom::DOMException)
3013 {
3014 height = val;
3015 }
3017 /**
3018 * return the 'left' property
3019 */
3020 virtual DOMString getLeft()
3021 {
3022 return left;
3023 }
3025 /**
3026 * set the 'left' property
3027 */
3028 virtual void setLeft(const DOMString &val)
3029 throw (dom::DOMException)
3030 {
3031 left = val;
3032 }
3034 /**
3035 * return the 'letterSpacing' property
3036 */
3037 virtual DOMString getLetterSpacing()
3038 {
3039 return letterSpacing;
3040 }
3042 /**
3043 * set the 'letterSpacing' property
3044 */
3045 virtual void setLetterSpacing(const DOMString &val)
3046 throw (dom::DOMException)
3047 {
3048 letterSpacing = val;
3049 }
3051 /**
3052 * return the 'lineHeight' property
3053 */
3054 virtual DOMString getLineHeight()
3055 {
3056 return lineHeight;
3057 }
3059 /**
3060 * set the 'lineHeight' property
3061 */
3062 virtual void setLineHeight(const DOMString &val)
3063 throw (dom::DOMException)
3064 {
3065 lineHeight = val;
3066 }
3068 /**
3069 * return the 'listStyle' property
3070 */
3071 virtual DOMString getListStyle()
3072 {
3073 return listStyle;
3074 }
3076 /**
3077 * set the 'listStyle' property
3078 */
3079 virtual void setListStyle(const DOMString &val)
3080 throw (dom::DOMException)
3081 {
3082 listStyle = val;
3083 }
3085 /**
3086 * return the 'listStyleImage' property
3087 */
3088 virtual DOMString getListStyleImage()
3089 {
3090 return listStyleImage;
3091 }
3093 /**
3094 * set the 'listStyleImage' property
3095 */
3096 virtual void setListStyleImage(const DOMString &val)
3097 throw (dom::DOMException)
3098 {
3099 listStyleImage = val;
3100 }
3102 /**
3103 * return the 'listStylePosition' property
3104 */
3105 virtual DOMString getListStylePosition()
3106 {
3107 return listStylePosition;
3108 }
3110 /**
3111 * set the 'listStylePosition' property
3112 */
3113 virtual void setListStylePosition(const DOMString &val)
3114 throw (dom::DOMException)
3115 {
3116 listStylePosition = val;
3117 }
3119 /**
3120 * return the 'listStyleType' property
3121 */
3122 virtual DOMString getListStyleType()
3123 {
3124 return listStyleType;
3125 }
3127 /**
3128 * set the 'listStyleType' property
3129 */
3130 virtual void setListStyleType(const DOMString &val)
3131 throw (dom::DOMException)
3132 {
3133 listStyleType = val;
3134 }
3136 /**
3137 * return the 'margin' property
3138 */
3139 virtual DOMString getMargin()
3140 {
3141 return margin;
3142 }
3144 /**
3145 * set the 'margin' property
3146 */
3147 virtual void setMargin(const DOMString &val)
3148 throw (dom::DOMException)
3149 {
3150 margin = val;
3151 }
3153 /**
3154 * return the 'marginTop' property
3155 */
3156 virtual DOMString getMarginTop()
3157 {
3158 return marginTop;
3159 }
3161 /**
3162 * set the 'marginTop' property
3163 */
3164 virtual void setMarginTop(const DOMString &val)
3165 throw (dom::DOMException)
3166 {
3167 marginTop = val;
3168 }
3170 /**
3171 * return the 'marginRight' property
3172 */
3173 virtual DOMString getMarginRight()
3174 {
3175 return marginRight;
3176 }
3178 /**
3179 * set the 'marginRight' property
3180 */
3181 virtual void setMarginRight(const DOMString &val)
3182 throw (dom::DOMException)
3183 {
3184 marginRight = val;
3185 }
3187 /**
3188 * return the 'marginBottom' property
3189 */
3190 virtual DOMString getMarginBottom()
3191 {
3192 return marginBottom;
3193 }
3195 /**
3196 * set the 'marginBottom' property
3197 */
3198 virtual void setMarginBottom(const DOMString &val)
3199 throw (dom::DOMException)
3200 {
3201 marginBottom = val;
3202 }
3204 /**
3205 * return the 'marginLeft' property
3206 */
3207 virtual DOMString getMarginLeft()
3208 {
3209 return marginLeft;
3210 }
3212 /**
3213 * set the 'marginLeft' property
3214 */
3215 virtual void setMarginLeft(const DOMString &val)
3216 throw (dom::DOMException)
3217 {
3218 marginLeft = val;
3219 }
3221 /**
3222 * return the 'markerOffset' property
3223 */
3224 virtual DOMString getMarkerOffset()
3225 {
3226 return markerOffset;
3227 }
3229 /**
3230 * set the 'markerOffset' property
3231 */
3232 virtual void setMarkerOffset(const DOMString &val)
3233 throw (dom::DOMException)
3234 {
3235 markerOffset = val;
3236 }
3238 /**
3239 * return the 'marks' property
3240 */
3241 virtual DOMString getMarks()
3242 {
3243 return marks;
3244 }
3246 /**
3247 * set the 'marks' property
3248 */
3249 virtual void setMarks(const DOMString &val)
3250 throw (dom::DOMException)
3251 {
3252 marks = val;
3253 }
3255 /**
3256 * return the 'maxHeight' property
3257 */
3258 virtual DOMString getMaxHeight()
3259 {
3260 return maxHeight;
3261 }
3263 /**
3264 * set the 'maxHeight' property
3265 */
3266 virtual void setMaxHeight(const DOMString &val)
3267 throw (dom::DOMException)
3268 {
3269 maxHeight = val;
3270 }
3272 /**
3273 * return the 'maxWidth' property
3274 */
3275 virtual DOMString getMaxWidth()
3276 {
3277 return maxWidth;
3278 }
3280 /**
3281 * set the 'maxWidth' property
3282 */
3283 virtual void setMaxWidth(const DOMString &val)
3284 throw (dom::DOMException)
3285 {
3286 maxWidth = val;
3287 }
3289 /**
3290 * return the 'minHeight' property
3291 */
3292 virtual DOMString getMinHeight()
3293 {
3294 return minHeight;
3295 }
3297 /**
3298 * set the 'minHeight' property
3299 */
3300 virtual void setMinHeight(const DOMString &val)
3301 throw (dom::DOMException)
3302 {
3303 minHeight = val;
3304 }
3306 /**
3307 * return the 'minWidth' property
3308 */
3309 virtual DOMString getMinWidth()
3310 {
3311 return minWidth;
3312 }
3314 /**
3315 * set the 'minWidth' property
3316 */
3317 virtual void setMinWidth(const DOMString &val)
3318 throw (dom::DOMException)
3319 {
3320 minWidth = val;
3321 }
3323 /**
3324 * return the 'orphans' property
3325 */
3326 virtual DOMString getOrphans()
3327 {
3328 return orphans;
3329 }
3331 /**
3332 * set the 'orphans' property
3333 */
3334 virtual void setOrphans(const DOMString &val)
3335 throw (dom::DOMException)
3336 {
3337 orphans = val;
3338 }
3340 /**
3341 * return the 'outline' property
3342 */
3343 virtual DOMString getOutline()
3344 {
3345 return outline;
3346 }
3348 /**
3349 * set the 'outline' property
3350 */
3351 virtual void setOutline(const DOMString &val)
3352 throw (dom::DOMException)
3353 {
3354 outline = val;
3355 }
3357 /**
3358 * return the 'outlineColor' property
3359 */
3360 virtual DOMString getOutlineColor()
3361 {
3362 return outlineColor;
3363 }
3365 /**
3366 * set the 'outlineColor' property
3367 */
3368 virtual void setOutlineColor(const DOMString &val)
3369 throw (dom::DOMException)
3370 {
3371 outlineColor = val;
3372 }
3374 /**
3375 * return the 'outlineStyle' property
3376 */
3377 virtual DOMString getOutlineStyle()
3378 {
3379 return outlineStyle;
3380 }
3382 /**
3383 * set the 'outlineStyle' property
3384 */
3385 virtual void setOutlineStyle(const DOMString &val)
3386 throw (dom::DOMException)
3387 {
3388 outlineStyle = val;
3389 }
3391 /**
3392 * return the 'outlineWidth' property
3393 */
3394 virtual DOMString getOutlineWidth()
3395 {
3396 return outlineWidth;
3397 }
3399 /**
3400 * set the 'outlineWidth' property
3401 */
3402 virtual void setOutlineWidth(const DOMString &val)
3403 throw (dom::DOMException)
3404 {
3405 outlineWidth = val;
3406 }
3408 /**
3409 * return the 'overflow' property
3410 */
3411 virtual DOMString getOverflow()
3412 {
3413 return overflow;
3414 }
3416 /**
3417 * set the 'overflow' property
3418 */
3419 virtual void setOverflow(const DOMString &val)
3420 throw (dom::DOMException)
3421 {
3422 overflow = val;
3423 }
3425 /**
3426 * return the 'padding' property
3427 */
3428 virtual DOMString getPadding()
3429 {
3430 return padding;
3431 }
3433 /**
3434 * set the 'padding' property
3435 */
3436 virtual void setPadding(const DOMString &val)
3437 throw (dom::DOMException)
3438 {
3439 padding = val;
3440 }
3442 /**
3443 * return the 'paddingTop' property
3444 */
3445 virtual DOMString getPaddingTop()
3446 {
3447 return paddingTop;
3448 }
3450 /**
3451 * set the 'paddingTop' property
3452 */
3453 virtual void setPaddingTop(const DOMString &val)
3454 throw (dom::DOMException)
3455 {
3456 paddingTop = val;
3457 }
3459 /**
3460 * return the 'paddingRight' property
3461 */
3462 virtual DOMString getPaddingRight()
3463 {
3464 return paddingRight;
3465 }
3467 /**
3468 * set the 'paddingRight' property
3469 */
3470 virtual void setPaddingRight(const DOMString &val)
3471 throw (dom::DOMException)
3472 {
3473 paddingRight = val;
3474 }
3476 /**
3477 * return the 'paddingBottom' property
3478 */
3479 virtual DOMString getPaddingBottom()
3480 {
3481 return paddingBottom;
3482 }
3484 /**
3485 * set the 'paddingBottom' property
3486 */
3487 virtual void setPaddingBottom(const DOMString &val)
3488 throw (dom::DOMException)
3489 {
3490 paddingBottom = val;
3491 }
3493 /**
3494 * return the 'paddingLeft' property
3495 */
3496 virtual DOMString getPaddingLeft()
3497 {
3498 return paddingLeft;
3499 }
3501 /**
3502 * set the 'paddingLeft' property
3503 */
3504 virtual void setPaddingLeft(const DOMString &val)
3505 throw (dom::DOMException)
3506 {
3507 paddingLeft = val;
3508 }
3510 /**
3511 * return the 'page' property
3512 */
3513 virtual DOMString getPage()
3514 {
3515 return page;
3516 }
3518 /**
3519 * set the 'page' property
3520 */
3521 virtual void setPage(const DOMString &val)
3522 throw (dom::DOMException)
3523 {
3524 page = val;
3525 }
3527 /**
3528 * return the 'pageBreakAfter' property
3529 */
3530 virtual DOMString getPageBreakAfter()
3531 {
3532 return pageBreakAfter;
3533 }
3535 /**
3536 * set the 'pageBreakAfter' property
3537 */
3538 virtual void setPageBreakAfter(const DOMString &val)
3539 throw (dom::DOMException)
3540 {
3541 pageBreakAfter = val;
3542 }
3544 /**
3545 * return the 'pageBreakBefore' property
3546 */
3547 virtual DOMString getPageBreakBefore()
3548 {
3549 return pageBreakBefore;
3550 }
3552 /**
3553 * set the 'pageBreakBefore' property
3554 */
3555 virtual void setPageBreakBefore(const DOMString &val)
3556 throw (dom::DOMException)
3557 {
3558 pageBreakBefore = val;
3559 }
3561 /**
3562 * return the 'pageBreakInside' property
3563 */
3564 virtual DOMString getPageBreakInside()
3565 {
3566 return pageBreakInside;
3567 }
3569 /**
3570 * set the 'pageBreakInside' property
3571 */
3572 virtual void setPageBreakInside(const DOMString &val)
3573 throw (dom::DOMException)
3574 {
3575 pageBreakInside = val;
3576 }
3578 /**
3579 * return the 'pause' property
3580 */
3581 virtual DOMString getPause()
3582 {
3583 return pause;
3584 }
3586 /**
3587 * set the 'pause' property
3588 */
3589 virtual void setPause(const DOMString &val)
3590 throw (dom::DOMException)
3591 {
3592 pause = val;
3593 }
3595 /**
3596 * return the 'pauseAfter' property
3597 */
3598 virtual DOMString getPauseAfter()
3599 {
3600 return pauseAfter;
3601 }
3603 /**
3604 * set the 'pauseAfter' property
3605 */
3606 virtual void setPauseAfter(const DOMString &val)
3607 throw (dom::DOMException)
3608 {
3609 pauseAfter = val;
3610 }
3612 /**
3613 * return the 'pauseBefore' property
3614 */
3615 virtual DOMString getPauseBefore()
3616 {
3617 return pauseBefore;
3618 }
3620 /**
3621 * set the 'pauseBefore' property
3622 */
3623 virtual void setPauseBefore(const DOMString &val)
3624 throw (dom::DOMException)
3625 {
3626 pauseBefore = val;
3627 }
3629 /**
3630 * return the 'pitch' property
3631 */
3632 virtual DOMString getPitch()
3633 {
3634 return pitch;
3635 }
3637 /**
3638 * set the 'pitch' property
3639 */
3640 virtual void setPitch(const DOMString &val)
3641 throw (dom::DOMException)
3642 {
3643 pitch = val;
3644 }
3646 /**
3647 * return the 'pitchRange' property
3648 */
3649 virtual DOMString getPitchRange()
3650 {
3651 return pitchRange;
3652 }
3654 /**
3655 * set the 'pitchRange' property
3656 */
3657 virtual void setPitchRange(const DOMString &val)
3658 throw (dom::DOMException)
3659 {
3660 pitchRange = val;
3661 }
3663 /**
3664 * return the 'playDuring' property
3665 */
3666 virtual DOMString getPlayDuring()
3667 {
3668 return playDuring;
3669 }
3671 /**
3672 * set the 'playDuring' property
3673 */
3674 virtual void setPlayDuring(const DOMString &val)
3675 throw (dom::DOMException)
3676 {
3677 playDuring = val;
3678 }
3680 /**
3681 * return the 'position' property
3682 */
3683 virtual DOMString getPosition()
3684 {
3685 return position;
3686 }
3688 /**
3689 * set the 'position' property
3690 */
3691 virtual void setPosition(const DOMString &val)
3692 throw (dom::DOMException)
3693 {
3694 position = val;
3695 }
3697 /**
3698 * return the 'quotes' property
3699 */
3700 virtual DOMString getQuotes()
3701 {
3702 return quotes;
3703 }
3705 /**
3706 * set the 'quotes' property
3707 */
3708 virtual void setQuotes(const DOMString &val)
3709 throw (dom::DOMException)
3710 {
3711 quotes = val;
3712 }
3714 /**
3715 * return the 'richness' property
3716 */
3717 virtual DOMString getRichness()
3718 {
3719 return richness;
3720 }
3722 /**
3723 * set the 'richness' property
3724 */
3725 virtual void setRichness(const DOMString &val)
3726 throw (dom::DOMException)
3727 {
3728 richness = val;
3729 }
3731 /**
3732 * return the 'right' property
3733 */
3734 virtual DOMString getRight()
3735 {
3736 return right;
3737 }
3739 /**
3740 * set the 'right' property
3741 */
3742 virtual void setRight(const DOMString &val)
3743 throw (dom::DOMException)
3744 {
3745 right = val;
3746 }
3748 /**
3749 * return the 'size' property
3750 */
3751 virtual DOMString getSize()
3752 {
3753 return size;
3754 }
3756 /**
3757 * set the 'size' property
3758 */
3759 virtual void setSize(const DOMString &val)
3760 throw (dom::DOMException)
3761 {
3762 size = val;
3763 }
3765 /**
3766 * return the 'speak' property
3767 */
3768 virtual DOMString getSpeak()
3769 {
3770 return speak;
3771 }
3773 /**
3774 * set the 'speak' property
3775 */
3776 virtual void setSpeak(const DOMString &val)
3777 throw (dom::DOMException)
3778 {
3779 speak = val;
3780 }
3782 /**
3783 * return the 'speakHeader' property
3784 */
3785 virtual DOMString getSpeakHeader()
3786 {
3787 return speakHeader;
3788 }
3790 /**
3791 * set the 'speakHeader' property
3792 */
3793 virtual void setSpeakHeader(const DOMString &val)
3794 throw (dom::DOMException)
3795 {
3796 speakHeader = val;
3797 }
3799 /**
3800 * return the 'speakNumeral' property
3801 */
3802 virtual DOMString getSpeakNumeral()
3803 {
3804 return speakNumeral;
3805 }
3807 /**
3808 * set the 'speakNumeral' property
3809 */
3810 virtual void setSpeakNumeral(const DOMString &val)
3811 throw (dom::DOMException)
3812 {
3813 speakNumeral = val;
3814 }
3816 /**
3817 * return the 'speakPunctuation' property
3818 */
3819 virtual DOMString getSpeakPunctuation()
3820 {
3821 return speakPunctuation;
3822 }
3824 /**
3825 * set the 'speakPunctuation' property
3826 */
3827 virtual void setSpeakPunctuation(const DOMString &val)
3828 throw (dom::DOMException)
3829 {
3830 speakPunctuation = val;
3831 }
3833 /**
3834 * return the 'speechRate' property
3835 */
3836 virtual DOMString getSpeechRate()
3837 {
3838 return speechRate;
3839 }
3841 /**
3842 * set the 'speechRate' property
3843 */
3844 virtual void setSpeechRate(const DOMString &val)
3845 throw (dom::DOMException)
3846 {
3847 speechRate = val;
3848 }
3850 /**
3851 * return the 'stress' property
3852 */
3853 virtual DOMString getStress()
3854 {
3855 return stress;
3856 }
3858 /**
3859 * set the 'stress' property
3860 */
3861 virtual void setStress(const DOMString &val)
3862 throw (dom::DOMException)
3863 {
3864 stress = val;
3865 }
3867 /**
3868 * return the 'tableLayout' property
3869 */
3870 virtual DOMString getTableLayout()
3871 {
3872 return tableLayout;
3873 }
3875 /**
3876 * set the 'tableLayout' property
3877 */
3878 virtual void setTableLayout(const DOMString &val)
3879 throw (dom::DOMException)
3880 {
3881 tableLayout = val;
3882 }
3884 /**
3885 * return the 'textAlign' property
3886 */
3887 virtual DOMString getTextAlign()
3888 {
3889 return textAlign;
3890 }
3892 /**
3893 * set the 'textAlign' property
3894 */
3895 virtual void setTextAlign(const DOMString &val)
3896 throw (dom::DOMException)
3897 {
3898 textAlign = val;
3899 }
3901 /**
3902 * return the 'textDecoration' property
3903 */
3904 virtual DOMString getTextDecoration()
3905 {
3906 return textDecoration;
3907 }
3909 /**
3910 * set the 'textDecoration' property
3911 */
3912 virtual void setTextDecoration(const DOMString &val)
3913 throw (dom::DOMException)
3914 {
3915 textDecoration = val;
3916 }
3918 /**
3919 * return the 'textIndent' property
3920 */
3921 virtual DOMString getTextIndent()
3922 {
3923 return textIndent;
3924 }
3926 /**
3927 * set the 'textIndent' property
3928 */
3929 virtual void setTextIndent(const DOMString &val)
3930 throw (dom::DOMException)
3931 {
3932 textIndent = val;
3933 }
3935 /**
3936 * return the 'textShadow' property
3937 */
3938 virtual DOMString getTextShadow()
3939 {
3940 return textShadow;
3941 }
3943 /**
3944 * set the 'textShadow' property
3945 */
3946 virtual void setTextShadow(const DOMString &val)
3947 throw (dom::DOMException)
3948 {
3949 textShadow = val;
3950 }
3952 /**
3953 * return the 'textTransform' property
3954 */
3955 virtual DOMString getTextTransform()
3956 {
3957 return textTransform;
3958 }
3960 /**
3961 * set the 'textTransform' property
3962 */
3963 virtual void setTextTransform(const DOMString &val)
3964 throw (dom::DOMException)
3965 {
3966 textTransform = val;
3967 }
3969 /**
3970 * return the 'top' property
3971 */
3972 virtual DOMString getTop()
3973 {
3974 return top;
3975 }
3977 /**
3978 * set the 'top' property
3979 */
3980 virtual void setTop(const DOMString &val)
3981 throw (dom::DOMException)
3982 {
3983 top = val;
3984 }
3986 /**
3987 * return the 'unicodeBidi' property
3988 */
3989 virtual DOMString getUnicodeBidi()
3990 {
3991 return unicodeBidi;
3992 }
3994 /**
3995 * set the 'unicodeBidi' property
3996 */
3997 virtual void setUnicodeBidi(const DOMString &val)
3998 throw (dom::DOMException)
3999 {
4000 unicodeBidi = val;
4001 }
4003 /**
4004 * return the 'verticalAlign' property
4005 */
4006 virtual DOMString getVerticalAlign()
4007 {
4008 return verticalAlign;
4009 }
4011 /**
4012 * set the 'verticalAlign' property
4013 */
4014 virtual void setVerticalAlign(const DOMString &val)
4015 throw (dom::DOMException)
4016 {
4017 verticalAlign = val;
4018 }
4020 /**
4021 * return the 'visibility' property
4022 */
4023 virtual DOMString getVisibility()
4024 {
4025 return visibility;
4026 }
4028 /**
4029 * set the 'visibility' property
4030 */
4031 virtual void setVisibility(const DOMString &val)
4032 throw (dom::DOMException)
4033 {
4034 visibility = val;
4035 }
4037 /**
4038 * return the 'voiceFamily' property
4039 */
4040 virtual DOMString getVoiceFamily()
4041 {
4042 return voiceFamily;
4043 }
4045 /**
4046 * set the 'voiceFamily' property
4047 */
4048 virtual void setVoiceFamily(const DOMString &val)
4049 throw (dom::DOMException)
4050 {
4051 voiceFamily = val;
4052 }
4054 /**
4055 * return the 'volume' property
4056 */
4057 virtual DOMString getVolume()
4058 {
4059 return volume;
4060 }
4062 /**
4063 * set the 'volume' property
4064 */
4065 virtual void setVolume(const DOMString &val)
4066 throw (dom::DOMException)
4067 {
4068 volume = val;
4069 }
4071 /**
4072 * return the 'whiteSpace' property
4073 */
4074 virtual DOMString getWhiteSpace()
4075 {
4076 return whiteSpace;
4077 }
4079 /**
4080 * set the 'whiteSpace' property
4081 */
4082 virtual void setWhiteSpace(const DOMString &val)
4083 throw (dom::DOMException)
4084 {
4085 whiteSpace = val;
4086 }
4088 /**
4089 * return the 'widows' property
4090 */
4091 virtual DOMString getWidows()
4092 {
4093 return widows;
4094 }
4096 /**
4097 * set the 'widows' property
4098 */
4099 virtual void setWidows(const DOMString &val)
4100 throw (dom::DOMException)
4101 {
4102 widows = val;
4103 }
4105 /**
4106 * return the 'width' property
4107 */
4108 virtual DOMString getWidth()
4109 {
4110 return width;
4111 }
4113 /**
4114 * set the 'width' property
4115 */
4116 virtual void setWidth(const DOMString &val)
4117 throw (dom::DOMException)
4118 {
4119 width = val;
4120 }
4122 /**
4123 * return the 'wordSpacing' property
4124 */
4125 virtual DOMString getWordSpacing()
4126 {
4127 return wordSpacing;
4128 }
4130 /**
4131 * set the 'wordSpacing' property
4132 */
4133 virtual void setWordSpacing(const DOMString &val)
4134 throw (dom::DOMException)
4135 {
4136 wordSpacing = val;
4137 }
4139 /**
4140 * return the 'zIndex' property
4141 */
4142 virtual DOMString getZIndex()
4143 {
4144 return zIndex;
4145 }
4147 /**
4148 * set the 'zIndex' property
4149 */
4150 virtual void setZIndex(const DOMString &val)
4151 throw (dom::DOMException)
4152 {
4153 zIndex = val;
4154 }
4158 //##################
4159 //# Non-API methods
4160 //##################
4162 /**
4163 *
4164 */
4165 CSS2Properties()
4166 {
4167 }
4169 /**
4170 *
4171 */
4172 CSS2Properties(const CSS2Properties &other)
4173 {
4174 assign(other);
4175 }
4177 /**
4178 *
4179 */
4180 CSS2Properties &operator=(const CSS2Properties &other)
4181 {
4182 assign(other);
4183 return *this;
4184 }
4186 /**
4187 *
4188 */
4189 void assign(const CSS2Properties &other)
4190 {
4191 azimuth = other.azimuth;
4192 background = other.background;
4193 backgroundAttachment = other.backgroundAttachment;
4194 backgroundColor = other.backgroundColor;
4195 backgroundImage = other.backgroundImage;
4196 backgroundPosition = other.backgroundPosition;
4197 backgroundRepeat = other.backgroundRepeat;
4198 border = other.border;
4199 borderCollapse = other.borderCollapse;
4200 borderColor = other.borderColor;
4201 borderSpacing = other.borderSpacing;
4202 borderStyle = other.borderStyle;
4203 borderTop = other.borderTop;
4204 borderRight = other.borderRight;
4205 borderBottom = other.borderBottom;
4206 borderLeft = other.borderLeft;
4207 borderTopColor = other.borderTopColor;
4208 borderRightColor = other.borderRightColor;
4209 borderBottomColor = other.borderBottomColor;
4210 borderLeftColor = other.borderLeftColor;
4211 borderTopStyle = other.borderTopStyle;
4212 borderRightStyle = other.borderRightStyle;
4213 borderBottomStyle = other.borderBottomStyle;
4214 borderLeftStyle = other.borderLeftStyle;
4215 borderTopWidth = other.borderTopWidth;
4216 borderRightWidth = other.borderRightWidth;
4217 borderBottomWidth = other.borderBottomWidth;
4218 borderLeftWidth = other.borderLeftWidth;
4219 borderWidth = other.borderWidth;
4220 bottom = other.bottom;
4221 captionSide = other.captionSide;
4222 clear = other.clear;
4223 clip = other.clip;
4224 color = other.color;
4225 content = other.content;
4226 counterIncrement = other.counterIncrement;
4227 counterReset = other.counterReset;
4228 cue = other.cue;
4229 cueAfter = other.cueAfter;
4230 cueBefore = other.cueBefore;
4231 cursor = other.cursor;
4232 direction = other.direction;
4233 display = other.display;
4234 elevation = other.elevation;
4235 emptyCells = other.emptyCells;
4236 cssFloat = other.cssFloat;
4237 font = other.font;
4238 fontFamily = other.fontFamily;
4239 fontSize = other.fontSize;
4240 fontSizeAdjust = other.fontSizeAdjust;
4241 fontStretch = other.fontStretch;
4242 fontStyle = other.fontStyle;
4243 fontVariant = other.fontVariant;
4244 fontWeight = other.fontWeight;
4245 height = other.height;
4246 left = other.left;
4247 letterSpacing = other.letterSpacing;
4248 lineHeight = other.lineHeight;
4249 listStyle = other.listStyle;
4250 listStyleImage = other.listStyleImage;
4251 listStylePosition = other.listStylePosition;
4252 listStyleType = other.listStyleType;
4253 margin = other.margin;
4254 marginTop = other.marginTop;
4255 marginRight = other.marginRight;
4256 marginBottom = other.marginBottom;
4257 marginLeft = other.marginLeft;
4258 markerOffset = other.markerOffset;
4259 marks = other.marks;
4260 maxHeight = other.maxHeight;
4261 maxWidth = other.maxWidth;
4262 minHeight = other.minHeight;
4263 minWidth = other.minWidth;
4264 orphans = other.orphans;
4265 outline = other.outline;
4266 outlineColor = other.outlineColor;
4267 outlineStyle = other.outlineStyle;
4268 outlineWidth = other.outlineWidth;
4269 overflow = other.overflow;
4270 padding = other.padding;
4271 paddingTop = other.paddingTop;
4272 paddingRight = other.paddingRight;
4273 paddingBottom = other.paddingBottom;
4274 paddingLeft = other.paddingLeft;
4275 page = other.page;
4276 pageBreakAfter = other.pageBreakAfter;
4277 pageBreakBefore = other.pageBreakBefore;
4278 pageBreakInside = other.pageBreakInside;
4279 pause = other.pause;
4280 pauseAfter = other.pauseAfter;
4281 pauseBefore = other.pauseBefore;
4282 pitch = other.pitch;
4283 pitchRange = other.pitchRange;
4284 playDuring = other.playDuring;
4285 position = other.position;
4286 quotes = other.quotes;
4287 richness = other.richness;
4288 right = other.right;
4289 size = other.size;
4290 speak = other.speak;
4291 speakHeader = other.speakHeader;
4292 speakNumeral = other.speakNumeral;
4293 speakPunctuation = other.speakPunctuation;
4294 speechRate = other.speechRate;
4295 stress = other.stress;
4296 tableLayout = other.tableLayout;
4297 textAlign = other.textAlign;
4298 textDecoration = other.textDecoration;
4299 textIndent = other.textIndent;
4300 textShadow = other.textShadow;
4301 textTransform = other.textTransform;
4302 top = other.top;
4303 unicodeBidi = other.unicodeBidi;
4304 verticalAlign = other.verticalAlign;
4305 visibility = other.visibility;
4306 voiceFamily = other.voiceFamily;
4307 volume = other.volume;
4308 whiteSpace = other.whiteSpace;
4309 widows = other.widows;
4310 width = other.width;
4311 wordSpacing = other.wordSpacing;
4312 zIndex = other.zIndex;
4313 }
4315 /**
4316 *
4317 */
4318 virtual ~CSS2Properties() {}
4320 protected:
4322 //######################
4323 //# P R O P E R T I E S
4324 //######################
4325 DOMString azimuth;
4326 DOMString background;
4327 DOMString backgroundAttachment;
4328 DOMString backgroundColor;
4329 DOMString backgroundImage;
4330 DOMString backgroundPosition;
4331 DOMString backgroundRepeat;
4332 DOMString border;
4333 DOMString borderCollapse;
4334 DOMString borderColor;
4335 DOMString borderSpacing;
4336 DOMString borderStyle;
4337 DOMString borderTop;
4338 DOMString borderRight;
4339 DOMString borderBottom;
4340 DOMString borderLeft;
4341 DOMString borderTopColor;
4342 DOMString borderRightColor;
4343 DOMString borderBottomColor;
4344 DOMString borderLeftColor;
4345 DOMString borderTopStyle;
4346 DOMString borderRightStyle;
4347 DOMString borderBottomStyle;
4348 DOMString borderLeftStyle;
4349 DOMString borderTopWidth;
4350 DOMString borderRightWidth;
4351 DOMString borderBottomWidth;
4352 DOMString borderLeftWidth;
4353 DOMString borderWidth;
4354 DOMString bottom;
4355 DOMString captionSide;
4356 DOMString clear;
4357 DOMString clip;
4358 DOMString color;
4359 DOMString content;
4360 DOMString counterIncrement;
4361 DOMString counterReset;
4362 DOMString cue;
4363 DOMString cueAfter;
4364 DOMString cueBefore;
4365 DOMString cursor;
4366 DOMString direction;
4367 DOMString display;
4368 DOMString elevation;
4369 DOMString emptyCells;
4370 DOMString cssFloat;
4371 DOMString font;
4372 DOMString fontFamily;
4373 DOMString fontSize;
4374 DOMString fontSizeAdjust;
4375 DOMString fontStretch;
4376 DOMString fontStyle;
4377 DOMString fontVariant;
4378 DOMString fontWeight;
4379 DOMString height;
4380 DOMString left;
4381 DOMString letterSpacing;
4382 DOMString lineHeight;
4383 DOMString listStyle;
4384 DOMString listStyleImage;
4385 DOMString listStylePosition;
4386 DOMString listStyleType;
4387 DOMString margin;
4388 DOMString marginTop;
4389 DOMString marginRight;
4390 DOMString marginBottom;
4391 DOMString marginLeft;
4392 DOMString markerOffset;
4393 DOMString marks;
4394 DOMString maxHeight;
4395 DOMString maxWidth;
4396 DOMString minHeight;
4397 DOMString minWidth;
4398 DOMString orphans;
4399 DOMString outline;
4400 DOMString outlineColor;
4401 DOMString outlineStyle;
4402 DOMString outlineWidth;
4403 DOMString overflow;
4404 DOMString padding;
4405 DOMString paddingTop;
4406 DOMString paddingRight;
4407 DOMString paddingBottom;
4408 DOMString paddingLeft;
4409 DOMString page;
4410 DOMString pageBreakAfter;
4411 DOMString pageBreakBefore;
4412 DOMString pageBreakInside;
4413 DOMString pause;
4414 DOMString pauseAfter;
4415 DOMString pauseBefore;
4416 DOMString pitch;
4417 DOMString pitchRange;
4418 DOMString playDuring;
4419 DOMString position;
4420 DOMString quotes;
4421 DOMString richness;
4422 DOMString right;
4423 DOMString size;
4424 DOMString speak;
4425 DOMString speakHeader;
4426 DOMString speakNumeral;
4427 DOMString speakPunctuation;
4428 DOMString speechRate;
4429 DOMString stress;
4430 DOMString tableLayout;
4431 DOMString textAlign;
4432 DOMString textDecoration;
4433 DOMString textIndent;
4434 DOMString textShadow;
4435 DOMString textTransform;
4436 DOMString top;
4437 DOMString unicodeBidi;
4438 DOMString verticalAlign;
4439 DOMString visibility;
4440 DOMString voiceFamily;
4441 DOMString volume;
4442 DOMString whiteSpace;
4443 DOMString widows;
4444 DOMString width;
4445 DOMString wordSpacing;
4446 DOMString zIndex;
4449 };
4458 /*#########################################################################
4459 ## ViewCSS
4460 #########################################################################*/
4462 /**
4463 * This interface represents a CSS view. The getComputedStyle method provides a
4464 * read only access to the computed values of an element.
4465 *
4466 * The expectation is that an instance of the ViewCSS interface can be obtained
4467 * by using binding-specific casting methods on an instance of the AbstractView
4468 * interface.
4469 *
4470 * Since a computed style is related to an Element node, if this element is
4471 * removed from the document, the associated CSSStyleDeclaration and CSSValue
4472 * related to this declaration are no longer valid.
4473 */
4474 class ViewCSS : virtual public views::AbstractView
4475 {
4476 public:
4478 /**
4479 * This method is used to get the computed style as it is defined in [CSS2].
4480 */
4481 virtual CSSStyleDeclaration getComputedStyle(const Element &/*elt*/,
4482 const DOMString &/*pseudoElt*/)
4483 {
4484 CSSStyleDeclaration style;
4485 return style;
4486 }
4488 //##################
4489 //# Non-API methods
4490 //##################
4492 /**
4493 *
4494 */
4495 ViewCSS() : views::AbstractView()
4496 {
4497 }
4499 /**
4500 *
4501 */
4502 ViewCSS(const ViewCSS &other) : views::AbstractView(other)
4503 {
4504 }
4506 /**
4507 *
4508 */
4509 ViewCSS &operator=(const ViewCSS &/*other*/)
4510 {
4511 return *this;
4512 }
4514 /**
4515 *
4516 */
4517 virtual ~ViewCSS() {}
4518 };
4524 /*#########################################################################
4525 ## DocumentCSS
4526 #########################################################################*/
4528 /**
4529 * This interface represents a document with a CSS view.
4530 *
4531 * The getOverrideStyle method provides a mechanism through which a DOM author
4532 * could effect immediate change to the style of an element without modifying the
4533 * explicitly linked style sheets of a document or the inline style of elements
4534 * in the style sheets. This style sheet comes after the author style sheet in
4535 * the cascade algorithm and is called override style sheet. The override style
4536 * sheet takes precedence over author style sheets. An "!important" declaration
4537 * still takes precedence over a normal declaration. Override, author, and user
4538 * style sheets all may contain "!important" declarations. User "!important"
4539 * rules take precedence over both override and author "!important" rules, and
4540 * override "!important" rules take precedence over author "!important" rules.
4541 *
4542 * The expectation is that an instance of the DocumentCSS interface can be
4543 * obtained by using binding-specific casting methods on an instance of the
4544 * Document interface.
4545 */
4546 class DocumentCSS : virtual public stylesheets::DocumentStyle
4547 {
4548 public:
4550 /**
4551 * This method is used to retrieve the override style declaration for a specified
4552 * element and a specified pseudo-element.
4553 */
4554 virtual CSSStyleDeclaration getOverrideStyle(const Element */*elt*/,
4555 const DOMString &/*pseudoElt*/)
4556 {
4557 CSSStyleDeclaration style;
4558 return style;
4559 }
4561 //##################
4562 //# Non-API methods
4563 //##################
4565 /**
4566 *
4567 */
4568 DocumentCSS() : stylesheets::DocumentStyle()
4569 {
4570 }
4572 /**
4573 *
4574 */
4575 DocumentCSS(const DocumentCSS &other) : stylesheets::DocumentStyle(other)
4576 {
4577 }
4579 /**
4580 *
4581 */
4582 DocumentCSS &operator=(const DocumentCSS &/*other*/)
4583 {
4584 return *this;
4585 }
4587 /**
4588 *
4589 */
4590 virtual ~DocumentCSS() {}
4591 };
4598 /*#########################################################################
4599 ## DOMImplementationCSS
4600 #########################################################################*/
4602 /**
4603 * This interface allows the DOM user to create a CSSStyleSheet outside the
4604 * context of a document. There is no way to associate the new CSSStyleSheet with
4605 * a document in DOM Level 2.
4606 */
4607 class DOMImplementationCSS : virtual public DOMImplementation
4608 {
4609 public:
4611 /**
4612 * Creates a new CSSStyleSheet.
4613 */
4614 virtual CSSStyleSheet createCSSStyleSheet(const DOMString &/*title*/,
4615 const DOMString &/*media*/)
4616 throw (dom::DOMException)
4617 {
4618 CSSStyleSheet sheet;
4619 return sheet;
4620 }
4622 //##################
4623 //# Non-API methods
4624 //##################
4626 /**
4627 *
4628 */
4629 DOMImplementationCSS() {}
4631 /**
4632 *
4633 */
4634 DOMImplementationCSS(const DOMImplementationCSS &other)
4635 : DOMImplementation(other)
4636 {
4637 }
4639 /**
4640 *
4641 */
4642 DOMImplementationCSS &operator=(const DOMImplementationCSS &/*other*/)
4643 {
4644 return *this;
4645 }
4647 /**
4648 *
4649 */
4650 virtual ~DOMImplementationCSS() {}
4651 };
4660 } //namespace css
4661 } //namespace dom
4662 } //namespace w3c
4663 } //namespace org
4666 #endif /* __CSS_H__ */
4668 /*#########################################################################
4669 ## E N D O F F I L E
4670 #########################################################################*/