css.h revision 6cd2e86330e1049942b9ce57d4f10bbe2542067d
/**
* @file
* Phoebe DOM Implementation.
*
* This is a C++ approximation of the W3C DOM model, which follows
* fairly closely the specifications in the various .idl files, copies of
* which are provided for reference. Most important is this one:
*
*/
/*
* Authors:
* Bob Jamison
*
* Copyright (C) 2005-2008 Bob Jamison
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* =======================================================================
* NOTES
*
* Views, Stylesheets and CSS are DOM Level 2 for the purposes of supporting
* SVG. Be prepared in the future when they make Level 3 and SVG is likewise
* updated. The API here and many of the comments come from this document:
*/
#ifndef SEEN_CSS_H
#define SEEN_CSS_H
#include "dom.h"
#include "stylesheets.h"
#include "views.h"
#include <vector>
#include <map>
//Make local definitions
//forward declarations
/*#########################################################################
## CSSRule
#########################################################################*/
/**
* The CSSRule interface is the abstract base interface for any type of CSS
* statement. This includes both rule sets and at-rules. An implementation is
* expected to preserve all rules specified in a CSS style sheet, even if the
* rule is not recognized by the parser. Unrecognized rules are represented using
* the CSSUnknownRule interface.
*/
{
/**
* An integer indicating which type of rule this is.
*/
typedef enum
{
UNKNOWN_RULE = 0,
STYLE_RULE = 1,
CHARSET_RULE = 2,
IMPORT_RULE = 3,
MEDIA_RULE = 4,
FONT_FACE_RULE = 5,
PAGE_RULE = 6
} RuleType;
/**
* The type of the rule, as defined above. The expectation is that
* binding-specific casting methods can be used to cast down from an instance of
* the CSSRule interface to the specific derived interface implied by the type.
*/
{
return type;
}
/**
* The parsable textual representation of the rule. This reflects the current
* state of the rule and not its initial value.
*/
{
return cssText;
}
/**
* The parsable textual representation of the rule. This reflects the current
* state of the rule and not its initial value.
* Note that setting involves reparsing.
*/
{
}
/**
* The style sheet that contains this rule.
*/
{
return parentStyleSheet;
}
/**
* If this rule is contained inside another rule (e.g. a style rule inside an
* @media block), this is the containing rule. If this rule is not nested inside
* any other rules, this returns null.
*/
{
return parentRule;
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSRule()
{
type = UNKNOWN_RULE;
cssText = "";
parentRule = NULL;
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
int type;
};
/*#########################################################################
## CSSRuleList
#########################################################################*/
/**
* The CSSRuleList interface provides the abstraction of an ordered collection of
* CSS rules.
*
* The items in the CSSRuleList are accessible via an integral index, starting
* from 0.
*/
{
/**
* The number of CSSRules in the list. The range of valid child rule indices is 0
* to length-1 inclusive.
*/
{
}
/**
* Used to retrieve a CSS rule by ordinal index. The order in this collection
* represents the order of the rules in the CSS style sheet. If index is greater
* than or equal to the number of rules in the list, this returns null.
*/
{
{
return rule;
}
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSRuleList() {}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
virtual ~CSSRuleList() {}
/**
*
*/
{
}
/**
*
*/
{
return;
}
/**
*
*/
{
return -1;
return index;
}
};
/*#########################################################################
## CSSStyleSheet
#########################################################################*/
/**
* The CSSStyleSheet interface is a concrete interface used to represent a CSS
*/
{
/**
* If this style sheet comes from an @import rule, the ownerRule attribute will
* contain the CSSImportRule. In that case, the ownerNode attribute in the
* StyleSheet interface will be null. If the style sheet comes from an element or
* a processing instruction, the ownerRule attribute will be null and the
* ownerNode attribute will contain the Node.
*/
{
return ownerRule;
}
/**
* The list of all CSS rules contained within the style sheet. This
* includes both rule sets and at-rules.
*/
{
return rules;
}
/**
* Used to insert a new rule into the style sheet. The new rule now
* becomes part of the cascade.
*/
unsigned long index)
{
}
/**
* Used to delete a rule from the style sheet.
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
virtual ~CSSStyleSheet() {}
};
/*#########################################################################
## CSSValue
#########################################################################*/
/**
* The CSSValue interface represents a simple or a complex value. A CSSValue
* object only occurs in a context of a CSS property.
*/
{
/**
* An integer indicating which type of unit applies to the value.
*/
typedef enum
{
CSS_INHERIT = 0,
CSS_PRIMITIVE_VALUE = 1,
CSS_VALUE_LIST = 2,
CSS_CUSTOM = 3
} UnitTypes;
/**
* A code defining the type of the value as defined above.
*/
virtual unsigned short getCssValueType()
{
return valueType;
}
/**
* A string representation of the current value.
*/
{
return cssText;
}
/**
* A string representation of the current value.
* Note that setting implies parsing.
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSValue()
{
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
int valueType;
};
/*#########################################################################
## CSSStyleDeclaration
#########################################################################*/
/**
* The CSSStyleDeclaration interface represents a single CSS declaration block.
* This interface may be used to determine the style properties currently set in
* a block or to set style properties explicitly within the block.
*
* While an implementation may not recognize all CSS properties within a CSS
* declaration block, it is expected to provide access to all specified
* properties in the style sheet through the CSSStyleDeclaration interface.
* Furthermore, implementations that support a specific level of CSS should
* correctly handle CSS shorthand properties for that level. For a further
* discussion of shorthand properties, see the CSS2Properties interface.
*
* This interface is also used to provide a read-only access to the computed
* values of an element. See also the ViewCSS interface.
*
* Note: The CSS Object Model doesn't provide an access to the specified or
* actual values of the CSS cascade.
*/
{
{
{
}
};
/**
* The parsable textual representation of the declaration block (excluding the
* surrounding curly braces).
*/
{
return cssText;
}
/**
* The parsable textual representation of the declaration block (excluding the
* surrounding curly braces). Setting this attribute will result in the parsing
* of the new value and resetting of all the properties in the declaration block
* including the removal or addition of properties.
*/
{
}
/**
* Used to retrieve the value of a CSS property if it has been explicitly
* set within this declaration block.
*/
{
{
}
return "";
}
/**
* Used to retrieve the object representation of the value of a CSS property if
* it has been explicitly set within this declaration block. This method returns
* null if the property is a shorthand property. Shorthand property values can
* only be accessed and modified as strings, using the getPropertyValue and
* setProperty methods.
*/
{
return value;
}
/**
* Used to remove a CSS property if it has been explicitly set within
* this declaration block.
*/
{
}
else{
++iter;
}
}
return propertyName;
}
/**
* Used to retrieve the priority of a CSS property (e.g. the "important"
* qualifier) if the property has been explicitly set in this declaration block.
*/
{
{
}
return "";
}
/**
* Used to set a property value and priority within this declaration block.
*/
{
{
{
return;
}
}
}
/**
* The number of properties that have been explicitly set in this declaration
* block. The range of valid indices is 0 to length-1 inclusive.
*/
{
}
/**
* Used to retrieve the properties that have been explicitly set in this
* declaration block. The order of the properties retrieved using this method
* does not have to be the order in which they were set. This method can be used
* to iterate over all properties in this declaration block.
*/
{
return "";
return ret;
}
/**
* The CSS rule that contains this declaration block or null if this
* CSSStyleDeclaration is not attached to a CSSRule.
*/
{
return parentRule;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
parentRule = NULL;
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
virtual ~CSSStyleDeclaration() {}
};
/*#########################################################################
## CSSStyleRule
#########################################################################*/
/**
* The CSSStyleRule interface represents a single rule set in a CSS style sheet.
*/
{
/**
* The textual representation of the selector for the rule set. The
* implementation may have stripped out insignificant whitespace while parsing
* the selector.
*/
{
return selectorText;
}
/**
* The textual representation of the selector for the rule set. The
* implementation may have stripped out insignificant whitespace while parsing
* the selector. Setting implies reparsing.
*/
{
selectorText = val;
}
/**
* The declaration-block of this rule set.
*/
{
return style;
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSStyleRule() : CSSRule()
{
type = STYLE_RULE;
selectorText = "";
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
virtual ~CSSStyleRule() {}
};
/*#########################################################################
## CSSMediaRule
#########################################################################*/
/**
* The CSSMediaRule interface represents a @media rule in a CSS style sheet. A
* @media rule can be used to delimit style rules for specific media types.
*/
{
/**
* A list of media types for this rule.
*/
{
return mediaList;
}
/**
* A list of all CSS rules contained within the media block.
*/
{
return cssRules;
}
/**
* Used to insert a new rule into the media block.
*/
unsigned long index)
{
return 0;
return index;
}
/**
* Used to delete a rule from the media block.
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSMediaRule() : CSSRule()
{
type = MEDIA_RULE;
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
virtual ~CSSMediaRule() {}
};
/*#########################################################################
## CSSFontFaceRule
#########################################################################*/
/**
* The CSSFontFaceRule interface represents a @font-face rule in a CSS style
* sheet. The @font-face rule is used to hold a set of font descriptions.
*/
{
/**
* The declaration-block of this rule.
*/
{
return style;
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSFontFaceRule() : CSSRule()
{
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
virtual ~CSSFontFaceRule() {}
};
/*#########################################################################
## CSSPageRule
#########################################################################*/
/**
* The CSSPageRule interface represents a @page rule within a CSS style sheet.
* The @page rule is used to specify the dimensions, orientation, margins, etc.
* of a page box for paged media.
*/
{
/**
* The parsable textual representation of the page selector for the rule.
*/
{
return selectorText;
}
/**
* The parsable textual representation of the page selector for the rule.
* Setting implies parsing.
*/
{
selectorText = val;
}
/**
* The declaration-block of this rule.
*/
{
return style;
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSPageRule() : CSSRule()
{
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
virtual ~CSSPageRule() {}
};
/*#########################################################################
## CSSImportRule
#########################################################################*/
/**
* The CSSImportRule interface represents a @import rule within a CSS style
* sheet. The @import rule is used to import style rules from other style sheets.
*/
{
/**
* The location of the style sheet to be imported. The attribute will not contain
* the "url(...)" specifier around the URI.
*/
{
return href;
}
/**
* A list of media types for which this style sheet may be used.
*/
{
return mediaList;
}
/**
* The style sheet referred to by this rule, if it has been loaded. The value of
* this attribute is null if the style sheet has not yet been loaded or if it
* will not be loaded (e.g. if the style sheet is for a media type not supported
* by the user agent).
*/
{
return styleSheet;
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSImportRule() : CSSRule()
{
type = IMPORT_RULE;
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
virtual ~CSSImportRule() {}
};
/*#########################################################################
## CSSCharsetRule
#########################################################################*/
/**
* The CSSCharsetRule interface represents a @charset rule in a CSS style sheet.
* The value of the encoding attribute does not affect the encoding of text data
* in the DOM objects; this encoding is always UTF-16. After a stylesheet is
* loaded, the value of the encoding attribute is the value found in the @charset
* rule. If there was no @charset in the original document, then no
* CSSCharsetRule is created. The value of the encoding attribute may also be
* used as a hint for the encoding used on serialization of the style sheet.
*
* The value of the @charset rule (and therefore of the CSSCharsetRule) may not
* correspond to the encoding the document actually came in; character encoding
* information e.g. in an HTTP header, has priority (see CSS document
* representation) but this is not reflected in the CSSCharsetRule.
*/
{
/**
* The encoding information used in this @charset rule.
*/
{
return encoding;
}
/**
* The encoding information used in this @charset rule.
* Setting implies parsing.
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSCharsetRule() : CSSRule()
{
type = CHARSET_RULE;
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
virtual ~CSSCharsetRule() {}
};
/*#########################################################################
## CSSUnknownRule
#########################################################################*/
/**
* The CSSUnknownRule interface represents an at-rule not supported by
* this user agent.
*/
{
//##################
//# Non-API methods
//##################
/**
*
*/
CSSUnknownRule() : CSSRule()
{
type = UNKNOWN_RULE;
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
virtual ~CSSUnknownRule() {}
};
/*#########################################################################
## CSSValueList
#########################################################################*/
/**
* The CSSValueList interface provides the abstraction of an ordered collection
* of CSS values.
*
* Some properties allow an empty list into their syntax. In that case, these
* properties take the none identifier. So, an empty list means that the property
* has the value none.
*
* The items in the CSSValueList are accessible via an integral index, starting
* from 0.
*/
{
/**
* The number of CSSValues in the list. The range of valid values of the indices
* is 0 to length-1 inclusive.
*/
{
}
/**
* Used to retrieve a CSSValue by ordinal index. The order in this collection
* represents the order of the values in the CSS style property. If index is
* greater than or equal to the number of values in the list, this returns null.
*/
{
{
return dummy;
}
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
virtual ~CSSValueList() {}
};
/*#########################################################################
## CSSPrimitiveValue
#########################################################################*/
/**
* The CSSPrimitiveValue interface represents a single CSS value. This interface
* may be used to determine the value of a specific style property currently set
* in a block or to set a specific style property explicitly within the block. An
* instance of this interface might be obtained from the getPropertyCSSValue
* method of the CSSStyleDeclaration interface. A CSSPrimitiveValue object only
* occurs in a context of a CSS property.
*
* Conversions are allowed between absolute values (from millimeters to
* centimeters, from degrees to radians, and so on) but not between relative
* values. (For example, a pixel value cannot be converted to a centimeter value.)
* Percentage values can't be converted since they are relative to the parent
* value (or another property value). There is one exception for color percentage
* values: since a color percentage value is relative to the range 0-255, a color
* percentage value can be converted to a number; (see also the RGBColor
* interface).
*/
{
/**
*An integer indicating which type of unit applies to the value.
*/
typedef enum
{
CSS_UNKNOWN = 0,
CSS_NUMBER = 1,
CSS_PERCENTAGE = 2,
CSS_EMS = 3,
CSS_EXS = 4,
CSS_PX = 5,
CSS_CM = 6,
CSS_MM = 7,
CSS_IN = 8,
CSS_PT = 9,
CSS_PC = 10,
CSS_DEG = 11,
CSS_RAD = 12,
CSS_GRAD = 13,
CSS_MS = 14,
CSS_S = 15,
CSS_HZ = 16,
CSS_KHZ = 17,
CSS_DIMENSION = 18,
CSS_STRING = 19,
CSS_URI = 20,
CSS_IDENT = 21,
CSS_ATTR = 22,
CSS_COUNTER = 23,
CSS_RECT = 24,
CSS_RGBCOLOR = 25
} UnitTypes;
/**
* The type of the value as defined by the constants specified above.
*/
virtual unsigned short getPrimitiveType()
{
return primitiveType;
}
/**
* A method to set the float value with a specified unit. If the property
* attached with this value can not accept the specified unit or the float value,
* the value will be unchanged and a DOMException will be raised.
*/
double doubleValueArg)
{
}
/**
* This method is used to get a float value in a specified unit. If this CSS
* value doesn't contain a float value or can't be converted into the specified
* unit, a DOMException is raised.
*/
{
return doubleValue;
}
/**
* A method to set the string value with the specified unit. If the property
* attached to this value can't accept the specified unit or the string value,
* the value will be unchanged and a DOMException will be raised.
*/
const DOMString &stringValueArg)
{
}
/**
* This method is used to get the string value. If the CSS value doesn't contain
* a string value, a DOMException is raised.
*
* Note: Some properties (like 'font-family' or 'voice-family') convert a
* whitespace separated list of idents to a string.
*/
{
return stringValue;
}
/**
* This method is used to get the Counter value. If this CSS value doesn't
* contain a counter value, a DOMException is raised. Modification to the
* corresponding style property can be achieved using the Counter interface.
*/
{
return NULL;
}
/**
* This method is used to get the Rect value. If this CSS value doesn't contain a
* rect value, a DOMException is raised. Modification to the corresponding style
* property can be achieved using the Rect interface.
*/
{
return NULL;
}
/**
* This method is used to get the RGB color. If this CSS value doesn't contain a
* RGB color value, a DOMException is raised. Modification to the corresponding
* style property can be achieved using the RGBColor interface.
*/
{
return NULL;
}
//##################
//# Non-API methods
//##################
/**
*
*/
CSSValue(),
primitiveType(0),
doubleValue(0),
{
}
/**
*
*/
CSSValue()
{
}
/**
*
*/
{
{
return *this;
}
return *this;
}
/**
*
*/
virtual ~CSSPrimitiveValue() {}
int primitiveType;
double doubleValue;
};
/*#########################################################################
## RGBColor
#########################################################################*/
/**
* The RGBColor interface is used to represent any RGB color value. This
* interface reflects the values in the underlying style property. Hence,
* modifications made to the CSSPrimitiveValue objects modify the style property.
*
* A specified RGB color is not clipped (even if the number is outside the range
* 0-255 or 0%-100%). A computed RGB color is clipped depending on the device.
*
* Even if a style sheet can only contain an integer for a color value, the
* internal storage of this integer is a float, and this can be used as a float
* in the specified or the computed style.
*
* A color percentage value can always be converted to a number and vice versa.
*/
{
/**
* This attribute is used for the red value of the RGB color.
*/
{
return red;
}
/**
* This attribute is used for the green value of the RGB color.
*/
{
return green;
}
/**
* This attribute is used for the blue value of the RGB color.
*/
{
return blue;
}
/**
* REPLACES: RGBColor CSSPrimitiveValue::getRGBColorValue() throw (dom::DOMException)
*/
{
return col;
}
//##################
//# Non-API methods
//##################
/**
*
*/
RGBColor() {}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## Rect
#########################################################################*/
/**
* The Rect interface is used to represent any rect value. This interface
* reflects the values in the underlying style property. Hence, modifications
* made to the CSSPrimitiveValue objects modify the style property.
*/
{
/**
* This attribute is used for the top of the rect.
*/
{
return top;
}
/**
* This attribute is used for the right of the rect.
*/
{
return right;
}
/**
* This attribute is used for the bottom of the rect.
*/
{
return bottom;
}
/**
* This attribute is used for the left of the rect.
*/
{
return left;
}
/**
* REPLACES: Rect CSSPrimitiveValue::getRectValue() throw (dom::DOMException)
*/
{
return rect;
}
//##################
//# Non-API methods
//##################
/**
*
*/
Rect() {}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## Counter
#########################################################################*/
/**
* The Counter interface is used to represent any counter or counters function
* value. This interface reflects the values in the underlying style property.
*/
{
/**
* This attribute is used for the identifier of the counter.
*/
{
return identifier;
}
/**
* This attribute is used for the style of the list.
*/
{
return listStyle;
}
/**
* This attribute is used for the separator of the nested counters.
*/
{
return separator;
}
/**
* REPLACES: Counter CSSPrimitiveValue::getCounterValue() throw (dom::DOMException)
*/
{
return counter;
}
//##################
//# Non-API methods
//##################
/**
*
*/
Counter() {}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
};
/*#########################################################################
## ElementCSSInlineStyle
#########################################################################*/
/**
* Inline style information attached to elements is exposed through the style
* attribute. This represents the contents of the STYLE attribute for HTML
* elements (or elements in other schemas or DTDs which use the STYLE attribute
* in the same way). The expectation is that an instance of the
* ElementCSSInlineStyle interface can be obtained by using binding-specific
* casting methods on an instance of the Element interface when the element
* supports inline CSS style informations.
*/
{
/**
* The style attribute.
*/
{
return style;
}
//##################
//# Non-API methods
//##################
/**
*
*/
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
virtual ~ElementCSSInlineStyle() {}
};
/*#########################################################################
## CSS2Properties
#########################################################################*/
/**
* The CSS2Properties interface represents a convenience mechanism for retrieving
* and setting properties within a CSSStyleDeclaration. The attributes of this
* interface correspond to all the properties specified in CSS2. Getting an
* attribute of this interface is equivalent to calling the getPropertyValue
* method of the CSSStyleDeclaration interface. Setting an attribute of this
* interface is equivalent to calling the setProperty method of the
* CSSStyleDeclaration interface.
*
* A conformant implementation of the CSS module is not required to implement the
* CSS2Properties interface. If an implementation does implement this interface,
* the expectation is that language-specific methods can be used to cast from an
* instance of the CSSStyleDeclaration interface to the CSS2Properties interface.
*
* If an implementation does implement this interface, it is expected to
* understand the specific syntax of the shorthand properties, and apply their
* semantics; when the margin property is set, for example, the marginTop,
* marginRight, marginBottom and marginLeft properties are actually being set by
* the underlying implementation.
*
* When dealing with CSS "shorthand" properties, the shorthand properties should
* be decomposed into their component longhand properties as appropriate, and
* when querying for their value, the form returned should be the shortest form
* exactly equivalent to the declarations made in the ruleset. However, if there
* is no shorthand declaration that could be added to the ruleset without
* changing in any way the rules already declared in the ruleset (i.e., by adding
* longhand rules that were previously not declared in the ruleset), then the
* empty string should be returned for the shorthand property.
*
* For example, querying for the font property should not return "normal normal
* (The normals are initial values, and are implied by use of the longhand
* property.)
*
* If the values for all the longhand properties that compose a particular string
* are the initial values, then a string consisting of all the initial values
* should be returned (e.g. a border-width value of "medium" should be returned
* as such, not as "").
*
* For some shorthand properties that take missing values from other sides, such
* as the margin, padding, and border-[width|style|color] properties, the minimum
* number of sides possible should be used; i.e., "0px 10px" will be returned
* instead of "0px 10px 0px 10px".
*
* If the value of a shorthand property can not be decomposed into its component
* longhand properties, as is the case for the font property with a value of
* "menu", querying for the values of the component longhand properties should
* return the empty string.
* */
{
/**
* return the 'azimuth' property
*/
{
return azimuth;
}
/**
* set the 'azimuth' property
*/
{
}
/**
* return the 'background' property
*/
{
return background;
}
/**
* set the 'background' property
*/
{
background = val;
}
/**
* return the 'backgroundAttachment' property
*/
{
return backgroundAttachment;
}
/**
* set the 'backgroundAttachment' property
*/
{
}
/**
* return the 'backgroundColor' property
*/
{
return backgroundColor;
}
/**
* set the 'backgroundColor' property
*/
{
}
/**
* return the 'backgroundImage' property
*/
{
return backgroundImage;
}
/**
* set the 'backgroundImage' property
*/
{
}
/**
* return the 'backgroundPosition' property
*/
{
return backgroundPosition;
}
/**
* set the 'backgroundPosition' property
*/
{
}
/**
* return the 'backgroundRepeat' property
*/
{
return backgroundRepeat;
}
/**
* set the 'backgroundRepeat' property
*/
{
}
/**
* return the 'border' property
*/
{
return border;
}
/**
* set the 'border' property
*/
{
}
/**
* return the 'borderCollapse' property
*/
{
return borderCollapse;
}
/**
* set the 'borderCollapse' property
*/
{
}
/**
* return the 'borderColor' property
*/
{
return borderColor;
}
/**
* set the 'borderColor' property
*/
{
borderColor = val;
}
/**
* return the 'borderSpacing' property
*/
{
return borderSpacing;
}
/**
* set the 'borderSpacing' property
*/
{
borderSpacing = val;
}
/**
* return the 'borderStyle' property
*/
{
return borderStyle;
}
/**
* set the 'borderStyle' property
*/
{
borderStyle = val;
}
/**
* return the 'borderTop' property
*/
{
return borderTop;
}
/**
* set the 'borderTop' property
*/
{
}
/**
* return the 'borderRight' property
*/
{
return borderRight;
}
/**
* set the 'borderRight' property
*/
{
borderRight = val;
}
/**
* return the 'borderBottom' property
*/
{
return borderBottom;
}
/**
* set the 'borderBottom' property
*/
{
borderBottom = val;
}
/**
* return the 'borderLeft' property
*/
{
return borderLeft;
}
/**
* set the 'borderLeft' property
*/
{
borderLeft = val;
}
/**
* return the 'borderTopColor' property
*/
{
return borderTopColor;
}
/**
* set the 'borderTopColor' property
*/
{
}
/**
* return the 'borderRightColor' property
*/
{
return borderRightColor;
}
/**
* set the 'borderRightColor' property
*/
{
}
/**
* return the 'borderBottomColor' property
*/
{
return borderBottomColor;
}
/**
* set the 'borderBottomColor' property
*/
{
}
/**
* return the 'borderLeftColor' property
*/
{
return borderLeftColor;
}
/**
* set the 'borderLeftColor' property
*/
{
}
/**
* return the 'borderTopStyle' property
*/
{
return borderTopStyle;
}
/**
* set the 'borderTopStyle' property
*/
{
}
/**
* return the 'borderRightStyle' property
*/
{
return borderRightStyle;
}
/**
* set the 'borderRightStyle' property
*/
{
}
/**
* return the 'borderBottomStyle' property
*/
{
return borderBottomStyle;
}
/**
* set the 'borderBottomStyle' property
*/
{
}
/**
* return the 'borderLeftStyle' property
*/
{
return borderLeftStyle;
}
/**
* set the 'borderLeftStyle' property
*/
{
}
/**
* return the 'borderTopWidth' property
*/
{
return borderTopWidth;
}
/**
* set the 'borderTopWidth' property
*/
{
}
/**
* return the 'borderRightWidth' property
*/
{
return borderRightWidth;
}
/**
* set the 'borderRightWidth' property
*/
{
}
/**
* return the 'borderBottomWidth' property
*/
{
return borderBottomWidth;
}
/**
* set the 'borderBottomWidth' property
*/
{
}
/**
* return the 'borderLeftWidth' property
*/
{
return borderLeftWidth;
}
/**
* set the 'borderLeftWidth' property
*/
{
}
/**
* return the 'borderWidth' property
*/
{
return borderWidth;
}
/**
* set the 'borderWidth' property
*/
{
borderWidth = val;
}
/**
* return the 'bottom' property
*/
{
return bottom;
}
/**
* set the 'bottom' property
*/
{
}
/**
* return the 'captionSide' property
*/
{
return captionSide;
}
/**
* set the 'captionSide' property
*/
{
captionSide = val;
}
/**
* return the 'clear' property
*/
{
return clear;
}
/**
* set the 'clear' property
*/
{
}
/**
* return the 'clip' property
*/
{
return clip;
}
/**
* set the 'clip' property
*/
{
}
/**
* return the 'color' property
*/
{
return color;
}
/**
* set the 'color' property
*/
{
}
/**
* return the 'content' property
*/
{
return content;
}
/**
* set the 'content' property
*/
{
}
/**
* return the 'counterIncrement' property
*/
{
return counterIncrement;
}
/**
* set the 'counterIncrement' property
*/
{
}
/**
* return the 'counterReset' property
*/
{
return counterReset;
}
/**
* set the 'counterReset' property
*/
{
counterReset = val;
}
/**
* return the 'cue' property
*/
{
return cue;
}
/**
* set the 'cue' property
*/
{
}
/**
* return the 'cueAfter' property
*/
{
return cueAfter;
}
/**
* set the 'cueAfter' property
*/
{
}
/**
* return the 'cueBefore' property
*/
{
return cueBefore;
}
/**
* set the 'cueBefore' property
*/
{
}
/**
* return the 'cursor' property
*/
{
return cursor;
}
/**
* set the 'cursor' property
*/
{
}
/**
* return the 'direction' property
*/
{
return direction;
}
/**
* set the 'direction' property
*/
{
}
/**
* return the 'display' property
*/
{
return display;
}
/**
* set the 'display' property
*/
{
}
/**
* return the 'elevation' property
*/
{
return elevation;
}
/**
* set the 'elevation' property
*/
{
}
/**
* return the 'emptyCells' property
*/
{
return emptyCells;
}
/**
* set the 'emptyCells' property
*/
{
emptyCells = val;
}
/**
* return the 'cssFloat' property
*/
{
return cssFloat;
}
/**
* set the 'cssFloat' property
*/
{
}
/**
* return the 'font' property
*/
{
return font;
}
/**
* set the 'font' property
*/
{
}
/**
* return the 'fontFamily' property
*/
{
return fontFamily;
}
/**
* set the 'fontFamily' property
*/
{
fontFamily = val;
}
/**
* return the 'fontSize' property
*/
{
return fontSize;
}
/**
* set the 'fontSize' property
*/
{
}
/**
* return the 'fontSizeAdjust' property
*/
{
return fontSizeAdjust;
}
/**
* set the 'fontSizeAdjust' property
*/
{
}
/**
* return the 'fontStretch' property
*/
{
return fontStretch;
}
/**
* set the 'fontStretch' property
*/
{
fontStretch = val;
}
/**
* return the 'fontStyle' property
*/
{
return fontStyle;
}
/**
* set the 'fontStyle' property
*/
{
}
/**
* return the 'fontVariant' property
*/
{
return fontVariant;
}
/**
* set the 'fontVariant' property
*/
{
fontVariant = val;
}
/**
* return the 'fontWeight' property
*/
{
return fontWeight;
}
/**
* set the 'fontWeight' property
*/
{
fontWeight = val;
}
/**
* return the 'height' property
*/
{
return height;
}
/**
* set the 'height' property
*/
{
}
/**
* return the 'left' property
*/
{
return left;
}
/**
* set the 'left' property
*/
{
}
/**
* return the 'letterSpacing' property
*/
{
return letterSpacing;
}
/**
* set the 'letterSpacing' property
*/
{
letterSpacing = val;
}
/**
* return the 'lineHeight' property
*/
{
return lineHeight;
}
/**
* set the 'lineHeight' property
*/
{
lineHeight = val;
}
/**
* return the 'listStyle' property
*/
{
return listStyle;
}
/**
* set the 'listStyle' property
*/
{
}
/**
* return the 'listStyleImage' property
*/
{
return listStyleImage;
}
/**
* set the 'listStyleImage' property
*/
{
}
/**
* return the 'listStylePosition' property
*/
{
return listStylePosition;
}
/**
* set the 'listStylePosition' property
*/
{
}
/**
* return the 'listStyleType' property
*/
{
return listStyleType;
}
/**
* set the 'listStyleType' property
*/
{
listStyleType = val;
}
/**
* return the 'margin' property
*/
{
return margin;
}
/**
* set the 'margin' property
*/
{
}
/**
* return the 'marginTop' property
*/
{
return marginTop;
}
/**
* set the 'marginTop' property
*/
{
}
/**
* return the 'marginRight' property
*/
{
return marginRight;
}
/**
* set the 'marginRight' property
*/
{
marginRight = val;
}
/**
* return the 'marginBottom' property
*/
{
return marginBottom;
}
/**
* set the 'marginBottom' property
*/
{
marginBottom = val;
}
/**
* return the 'marginLeft' property
*/
{
return marginLeft;
}
/**
* set the 'marginLeft' property
*/
{
marginLeft = val;
}
/**
* return the 'markerOffset' property
*/
{
return markerOffset;
}
/**
* set the 'markerOffset' property
*/
{
markerOffset = val;
}
/**
* return the 'marks' property
*/
{
return marks;
}
/**
* set the 'marks' property
*/
{
}
/**
* return the 'maxHeight' property
*/
{
return maxHeight;
}
/**
* set the 'maxHeight' property
*/
{
}
/**
* return the 'maxWidth' property
*/
{
return maxWidth;
}
/**
* set the 'maxWidth' property
*/
{
}
/**
* return the 'minHeight' property
*/
{
return minHeight;
}
/**
* set the 'minHeight' property
*/
{
}
/**
* return the 'minWidth' property
*/
{
return minWidth;
}
/**
* set the 'minWidth' property
*/
{
}
/**
* return the 'orphans' property
*/
{
return orphans;
}
/**
* set the 'orphans' property
*/
{
}
/**
* return the 'outline' property
*/
{
return outline;
}
/**
* set the 'outline' property
*/
{
}
/**
* return the 'outlineColor' property
*/
{
return outlineColor;
}
/**
* set the 'outlineColor' property
*/
{
outlineColor = val;
}
/**
* return the 'outlineStyle' property
*/
{
return outlineStyle;
}
/**
* set the 'outlineStyle' property
*/
{
outlineStyle = val;
}
/**
* return the 'outlineWidth' property
*/
{
return outlineWidth;
}
/**
* set the 'outlineWidth' property
*/
{
outlineWidth = val;
}
/**
* return the 'overflow' property
*/
{
return overflow;
}
/**
* set the 'overflow' property
*/
{
}
/**
* return the 'padding' property
*/
{
return padding;
}
/**
* set the 'padding' property
*/
{
}
/**
* return the 'paddingTop' property
*/
{
return paddingTop;
}
/**
* set the 'paddingTop' property
*/
{
paddingTop = val;
}
/**
* return the 'paddingRight' property
*/
{
return paddingRight;
}
/**
* set the 'paddingRight' property
*/
{
paddingRight = val;
}
/**
* return the 'paddingBottom' property
*/
{
return paddingBottom;
}
/**
* set the 'paddingBottom' property
*/
{
paddingBottom = val;
}
/**
* return the 'paddingLeft' property
*/
{
return paddingLeft;
}
/**
* set the 'paddingLeft' property
*/
{
paddingLeft = val;
}
/**
* return the 'page' property
*/
{
return page;
}
/**
* set the 'page' property
*/
{
}
/**
* return the 'pageBreakAfter' property
*/
{
return pageBreakAfter;
}
/**
* set the 'pageBreakAfter' property
*/
{
}
/**
* return the 'pageBreakBefore' property
*/
{
return pageBreakBefore;
}
/**
* set the 'pageBreakBefore' property
*/
{
}
/**
* return the 'pageBreakInside' property
*/
{
return pageBreakInside;
}
/**
* set the 'pageBreakInside' property
*/
{
}
/**
* return the 'pause' property
*/
{
return pause;
}
/**
* set the 'pause' property
*/
{
}
/**
* return the 'pauseAfter' property
*/
{
return pauseAfter;
}
/**
* set the 'pauseAfter' property
*/
{
pauseAfter = val;
}
/**
* return the 'pauseBefore' property
*/
{
return pauseBefore;
}
/**
* set the 'pauseBefore' property
*/
{
pauseBefore = val;
}
/**
* return the 'pitch' property
*/
{
return pitch;
}
/**
* set the 'pitch' property
*/
{
}
/**
* return the 'pitchRange' property
*/
{
return pitchRange;
}
/**
* set the 'pitchRange' property
*/
{
pitchRange = val;
}
/**
* return the 'playDuring' property
*/
{
return playDuring;
}
/**
* set the 'playDuring' property
*/
{
playDuring = val;
}
/**
* return the 'position' property
*/
{
return position;
}
/**
* set the 'position' property
*/
{
}
/**
* return the 'quotes' property
*/
{
return quotes;
}
/**
* set the 'quotes' property
*/
{
}
/**
* return the 'richness' property
*/
{
return richness;
}
/**
* set the 'richness' property
*/
{
}
/**
* return the 'right' property
*/
{
return right;
}
/**
* set the 'right' property
*/
{
}
/**
* return the 'size' property
*/
{
return size;
}
/**
* set the 'size' property
*/
{
}
/**
* return the 'speak' property
*/
{
return speak;
}
/**
* set the 'speak' property
*/
{
}
/**
* return the 'speakHeader' property
*/
{
return speakHeader;
}
/**
* set the 'speakHeader' property
*/
{
speakHeader = val;
}
/**
* return the 'speakNumeral' property
*/
{
return speakNumeral;
}
/**
* set the 'speakNumeral' property
*/
{
speakNumeral = val;
}
/**
* return the 'speakPunctuation' property
*/
{
return speakPunctuation;
}
/**
* set the 'speakPunctuation' property
*/
{
}
/**
* return the 'speechRate' property
*/
{
return speechRate;
}
/**
* set the 'speechRate' property
*/
{
speechRate = val;
}
/**
* return the 'stress' property
*/
{
return stress;
}
/**
* set the 'stress' property
*/
{
}
/**
* return the 'tableLayout' property
*/
{
return tableLayout;
}
/**
* set the 'tableLayout' property
*/
{
tableLayout = val;
}
/**
* return the 'textAlign' property
*/
{
return textAlign;
}
/**
* set the 'textAlign' property
*/
{
}
/**
* return the 'textDecoration' property
*/
{
return textDecoration;
}
/**
* set the 'textDecoration' property
*/
{
}
/**
* return the 'textIndent' property
*/
{
return textIndent;
}
/**
* set the 'textIndent' property
*/
{
textIndent = val;
}
/**
* return the 'textShadow' property
*/
{
return textShadow;
}
/**
* set the 'textShadow' property
*/
{
textShadow = val;
}
/**
* return the 'textTransform' property
*/
{
return textTransform;
}
/**
* set the 'textTransform' property
*/
{
textTransform = val;
}
/**
* return the 'top' property
*/
{
return top;
}
/**
* set the 'top' property
*/
{
}
/**
* return the 'unicodeBidi' property
*/
{
return unicodeBidi;
}
/**
* set the 'unicodeBidi' property
*/
{
unicodeBidi = val;
}
/**
* return the 'verticalAlign' property
*/
{
return verticalAlign;
}
/**
* set the 'verticalAlign' property
*/
{
verticalAlign = val;
}
/**
* return the 'visibility' property
*/
{
return visibility;
}
/**
* set the 'visibility' property
*/
{
visibility = val;
}
/**
* return the 'voiceFamily' property
*/
{
return voiceFamily;
}
/**
* set the 'voiceFamily' property
*/
{
voiceFamily = val;
}
/**
* return the 'volume' property
*/
{
return volume;
}
/**
* set the 'volume' property
*/
{
}
/**
* return the 'whiteSpace' property
*/
{
return whiteSpace;
}
/**
* set the 'whiteSpace' property
*/
{
whiteSpace = val;
}
/**
* return the 'widows' property
*/
{
return widows;
}
/**
* set the 'widows' property
*/
{
}
/**
* return the 'width' property
*/
{
return width;
}
/**
* set the 'width' property
*/
{
}
/**
* return the 'wordSpacing' property
*/
{
return wordSpacing;
}
/**
* set the 'wordSpacing' property
*/
{
wordSpacing = val;
}
/**
* return the 'zIndex' property
*/
{
return zIndex;
}
/**
* set the 'zIndex' property
*/
{
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
{
}
/**
*
*/
virtual ~CSS2Properties() {}
//######################
//# P R O P E R T I E S
//######################
};
/*#########################################################################
## ViewCSS
#########################################################################*/
/**
* This interface represents a CSS view. The getComputedStyle method provides a
* read only access to the computed values of an element.
*
* The expectation is that an instance of the ViewCSS interface can be obtained
* by using binding-specific casting methods on an instance of the AbstractView
* interface.
*
* Since a computed style is related to an Element node, if this element is
* removed from the document, the associated CSSStyleDeclaration and CSSValue
* related to this declaration are no longer valid.
*/
{
/**
* This method is used to get the computed style as it is defined in [CSS2].
*/
const DOMString &/*pseudoElt*/)
{
return style;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
};
/*#########################################################################
## DocumentCSS
#########################################################################*/
/**
* This interface represents a document with a CSS view.
*
* The getOverrideStyle method provides a mechanism through which a DOM author
* could effect immediate change to the style of an element without modifying the
* explicitly linked style sheets of a document or the inline style of elements
* in the style sheets. This style sheet comes after the author style sheet in
* the cascade algorithm and is called override style sheet. The override style
* sheet takes precedence over author style sheets. An "!important" declaration
* still takes precedence over a normal declaration. Override, author, and user
* style sheets all may contain "!important" declarations. User "!important"
* rules take precedence over both override and author "!important" rules, and
* override "!important" rules take precedence over author "!important" rules.
*
* The expectation is that an instance of the DocumentCSS interface can be
* obtained by using binding-specific casting methods on an instance of the
* Document interface.
*/
{
/**
* This method is used to retrieve the override style declaration for a specified
* element and a specified pseudo-element.
*/
const DOMString &/*pseudoElt*/)
{
return style;
}
//##################
//# Non-API methods
//##################
/**
*
*/
{
}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
virtual ~DocumentCSS() {}
};
/*#########################################################################
## DOMImplementationCSS
#########################################################################*/
/**
* This interface allows the DOM user to create a CSSStyleSheet outside the
* context of a document. There is no way to associate the new CSSStyleSheet with
* a document in DOM Level 2.
*/
{
/**
* Creates a new CSSStyleSheet.
*/
const DOMString &/*media*/)
{
return sheet;
}
//##################
//# Non-API methods
//##################
/**
*
*/
DOMImplementationCSS() {}
/**
*
*/
{
}
/**
*
*/
{
return *this;
}
/**
*
*/
virtual ~DOMImplementationCSS() {}
};
} //namespace css
} //namespace dom
} //namespace w3c
} //namespace org
#endif // SEEN_CSS_H
/*#########################################################################
## E N D O F F I L E
#########################################################################*/