diff options
Diffstat (limited to 'khtml/dom/css_value.h')
-rw-r--r-- | khtml/dom/css_value.h | 745 |
1 files changed, 0 insertions, 745 deletions
diff --git a/khtml/dom/css_value.h b/khtml/dom/css_value.h deleted file mode 100644 index 5d4a043c7..000000000 --- a/khtml/dom/css_value.h +++ /dev/null @@ -1,745 +0,0 @@ -/* - * This file is part of the DOM implementation for KDE. - * - * (C) 1999 Lars Knoll (knoll@kde.org) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - * This file includes excerpts from the Document Object Model (DOM) - * Level 2 Specification (Style) - * http://www.w3.org/TR/DOM-Level-2-Style/ - * Copyright © 2000 W3C® (MIT, INRIA, Keio), All Rights Reserved. - * - */ -#ifndef _CSS_css_value_h_ -#define _CSS_css_value_h_ - -#include <dom/dom_string.h> - -#include <tqcolor.h> - -#include <kdemacros.h> - -namespace DOM { - -class CSSStyleDeclarationImpl; -class CSSRule; -class CSSValue; - -/** - * The \c CSSStyleDeclaration interface represents a - * single <a href="http://www.w3.org/TR/REC-CSS2/syndata.html#block"> - * CSS declaration block </a> . 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 through the \c CSSStyleDeclaration - * interface. Furthermore, implementations that support a - * specific level of CSS should correctly handle <a - * href="http://www.w3.org/TR/REC-CSS2/about.html#shorthand"> CSS - * shorthand </a> properties for that level. For a further discussion - * of shorthand properties, see the \c CSS2Properties - * interface. - * - */ -class KHTML_EXPORT CSSStyleDeclaration -{ -public: - CSSStyleDeclaration(); - CSSStyleDeclaration(const CSSStyleDeclaration &other); - CSSStyleDeclaration(CSSStyleDeclarationImpl *impl); -public: - - CSSStyleDeclaration & operator = (const CSSStyleDeclaration &other); - - ~CSSStyleDeclaration(); - - /** - * The parsable textual representation of the declaration block - * (including the surrounding curly braces). Setting this - * attribute will result in the parsing of the new value and - * resetting of the properties in the declaration block. - * - */ - DOM::DOMString cssText() const; - - /** - * see cssText - * @exception CSSException - * SYNTAX_ERR: Raised if the specified CSS string value has a - * syntax error and is unparsable. - * - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is - * readonly. - * - */ - void setCssText( const DOM::DOMString & ); - - /** - * The number of properties that have been explicitly set in this - * declaration block. - * - */ - unsigned long length() const; - - /** - * The CSS rule that contains this declaration block. - * - */ - CSSRule parentRule() const; - - /** - * Used to retrieve the value of a CSS property if it has been - * explicitly set within this declaration block. - * - * @param propertyName The name of the CSS property. See the <a - * href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property - * index </a> . - * - * @return Returns the value of the property if it has been - * explicitly set for this declaration block. Returns the empty - * string if the property has not been set. - * - */ - DOM::DOMString getPropertyValue ( const DOM::DOMString &propertyName ) const; - DOM::DOMString getPropertyValue ( const DOM::DOMString &propertyName ); - - /** - * 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 <a href="http://www.w3.org/TR/REC-CSS2/about.html#shorthand"> - * shorthand </a> property. Shorthand property values can only be - * accessed and modified as strings, using the - * \c getPropertyValue and \c setProperty - * methods. - * - * @param propertyName The name of the CSS property. See the <a - * href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property - * index </a> . - * - * @return Returns the value of the property if it has been - * explicitly set for this declaration block. Returns the - * \c null if the property has not been set. - * - */ - CSSValue getPropertyCSSValue ( const DOM::DOMString &propertyName ) const; - CSSValue getPropertyCSSValue ( const DOM::DOMString &propertyName ); - - /** - * Used to remove a CSS property if it has been explicitly set - * within this declaration block. - * - * @param propertyName The name of the CSS property. See the <a - * href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property - * index </a> . - * - * @return Returns the value of the property if it has been - * explicitly set for this declaration block. Returns the empty - * string if the property has not been set or the property name - * does not correspond to a valid CSS2 property. - * - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is - * readonly. - * - */ - DOM::DOMString removeProperty ( const DOM::DOMString &propertyName ); - - /** - * Used to retrieve the priority of a CSS property (e.g. the - * \c "important" qualifier) if the property has been - * explicitly set in this declaration block. - * - * @param propertyName The name of the CSS property. See the <a - * href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property - * index </a> . - * - * @return A string representing the priority (e.g. - * \c "important" ) if one exists. The empty string if none - * exists. - * - */ - DOM::DOMString getPropertyPriority ( const DOM::DOMString &propertyName ) const; - DOM::DOMString getPropertyPriority ( const DOM::DOMString &propertyName ); - - /** - * Used to set a property value and priority within this - * declaration block. - * - * @param propertyName The name of the CSS property. See the <a - * href="http://www.w3.org/TR/REC-CSS2/propidx.html"> CSS property - * index </a> . - * - * @param value The new value of the property. - * - * @param priority The new priority of the property (e.g. - * \c "important" ). - * - * @return - * - * @exception CSSException - * SYNTAX_ERR: Raised if the specified value has a syntax error - * and is unparsable. - * - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is - * readonly. - * - */ - void setProperty ( const DOM::DOMString &propertyName, const DOM::DOMString &value, const DOM::DOMString &priority ); - - /** - * 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. - * - * @param index Index of the property name to retrieve. - * - * @return The name of the property at this ordinal position. The - * empty string if no property exists at this position. - * - */ - DOM::DOMString item ( unsigned long index ) const; - DOM::DOMString item ( unsigned long index ); - - /** - * @internal - * not part of the DOM - */ - CSSStyleDeclarationImpl *handle() const; - bool isNull() const; - -protected: - CSSStyleDeclarationImpl *impl; -}; - - -class CSSValueImpl; - -/** - * The \c CSSValue interface represents a simple or a - * complexe value. - * - */ -class KHTML_EXPORT CSSValue -{ -public: - CSSValue(); - CSSValue(const CSSValue &other); - CSSValue(CSSValueImpl *impl); -public: - - CSSValue & operator = (const CSSValue &other); - - ~CSSValue(); - /** - * An integer indicating which type of unit applies to the value. - * - * All CSS2 constants are not supposed to be required by the - * implementation since all CSS2 interfaces are optionals. - * - */ - enum UnitTypes { - CSS_INHERIT = 0, - CSS_PRIMITIVE_VALUE = 1, - CSS_VALUE_LIST = 2, - CSS_CUSTOM = 3, - CSS_INITIAL = 4 - }; - - /** - * A string representation of the current value. - * - */ - DOM::DOMString cssText() const; - - /** - * see cssText - * @exception CSSException - * SYNTAX_ERR: Raised if the specified CSS string value has a - * syntax error and is unparsable. - * - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is - * readonly. - * - */ - void setCssText( const DOM::DOMString & ); - - /** - * A code defining the type of the value as defined above. - * - */ - unsigned short cssValueType() const; - - /** - * @internal - * not part of the DOM - */ - bool isCSSValueList() const; - bool isCSSPrimitiveValue() const; - CSSValueImpl *handle() const; - bool isNull() const; - -protected: - CSSValueImpl *impl; -}; - - -class CSSValueListImpl; -class CSSValue; - -/** - * The \c CSSValueList interface provides the absraction - * of an ordered collection of CSS values. - * - */ -class KHTML_EXPORT CSSValueList : public CSSValue -{ -public: - CSSValueList(); - CSSValueList(const CSSValueList &other); - CSSValueList(const CSSValue &other); - CSSValueList(CSSValueListImpl *impl); -public: - - CSSValueList & operator = (const CSSValueList &other); - CSSValueList & operator = (const CSSValue &other); - - ~CSSValueList(); - - /** - * The number of \c CSSValue s in the list. The range - * of valid values indices is \c 0 to \c length-1 - * inclusive. - * - */ - unsigned long length() const; - - /** - * Used to retrieve a CSS rule by ordinal index. The order in this - * collection represents the order of the values in the CSS style - * property. - * - * @param index Index into the collection. - * - * @return The style rule at the \c index position in - * the \c CSSValueList , or \c null if - * that is not valid index. - * - */ - CSSValue item ( unsigned long index ); - -protected: - CSSValueListImpl *vimpl; -}; - - -class CSSPrimitiveValueImpl; -class Counter; -class RGBColor; -class Rect; - -/** - * The \c CSSPrimitiveValue interface represents a single - * <a href="http://www.w3.org/TR/REC-CSS2/syndata.html#values"> CSS - * value </a> . 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 properties explicitly within the block. An instance - * of this interface can be obtained from the - * \c getPropertyCSSValue method of the - * \c CSSStyleDeclaration interface. - * - */ -class KHTML_EXPORT CSSPrimitiveValue : public CSSValue -{ -public: - CSSPrimitiveValue(); - CSSPrimitiveValue(const CSSPrimitiveValue &other); - CSSPrimitiveValue(const CSSValue &other); - CSSPrimitiveValue(CSSPrimitiveValueImpl *impl); -public: - - CSSPrimitiveValue & operator = (const CSSPrimitiveValue &other); - CSSPrimitiveValue & operator = (const CSSValue &other); - - ~CSSPrimitiveValue(); - /** - * An integer indicating which type of unit applies to the value. - * - */ - enum UnitTypes { - 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, - CSS_PAIR = 100, // We envision this being exposed as a means of getting computed style values for pairs - CSS_HTML_RELATIVE = 255 - }; - - /** - * The type of the value as defined by the constants specified - * above. - * - */ - unsigned short primitiveType() const; - - /** - * 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 - * \c DOMException will be raised. - * - * @param unitType A unit code as defined above. The unit code can - * only be a float unit type (e.g. \c NUMBER , - * \c PERCENTAGE , \c CSS_EMS , \c CSS_EXS - * , \c CSS_PX , \c CSS_PX , - * \c CSS_CM , \c CSS_MM , \c CSS_IN - * , \c CSS_PT , \c CSS_PC , - * \c CSS_DEG , \c CSS_RAD , - * \c CSS_GRAD , \c CSS_MS , \c CSS_S - * , \c CSS_HZ , \c CSS_KHZ , - * \c CSS_DIMENSION ). - * - * @param floatValue The new float value. - * - * @return - * @exception DOMException - * INVALID_ACCESS_ERR: Raises if the attached property doesn't - * support the float value or the unit type. - * - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - * - */ - void setFloatValue ( unsigned short unitType, float floatValue ); - - /** - * 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 \c DOMException - * is raised. - * - * @param unitType A unit code to get the float value. The unit - * code can only be a float unit type (e.g. \c CSS_NUMBER - * , \c CSS_PERCENTAGE , \c CSS_EMS - * , \c CSS_EXS , \c CSS_PX , - * \c CSS_PX , \c CSS_CM , \c CSS_MM - * , \c CSS_IN , \c CSS_PT , - * \c CSS_PC , \c CSS_DEG , \c CSS_RAD - * , \c CSS_GRAD , \c CSS_MS , - * \c CSS_S , \c CSS_HZ , \c CSS_KHZ - * , \c CSS_DIMENSION ). - * - * @return The float value in the specified unit. - * - * @exception DOMException - * INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a - * float value or if the float value can't be converted into the - * specified unit. - * - */ - // ### KDE 4: make this const! - float getFloatValue ( unsigned short unitType ); - - /** - * A method to set the string value with a 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 - * \c DOMException will be raised. - * - * @param stringType A string code as defined above. The string - * code can only be a string unit type (e.g. \c CSS_URI - * , \c CSS_IDENT , \c CSS_INHERIT - * and \c CSS_ATTR ). - * - * @param stringValue The new string value. If the - * \c stringType is equal to \c CSS_INHERIT , the - * \c stringValue should be \c inherit . - * - * @return - * @exception DOMException - * INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a - * string value or if the string value can't be converted into the - * specified unit. - * - * NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - * - */ - void setStringValue ( unsigned short stringType, const DOM::DOMString &stringValue ); - - /** - * This method is used to get the string value in a specified - * unit. If the CSS value doesn't contain a string value, a - * \c DOMException is raised. - * - * @return The string value in the current unit. The current - * \c valueType can only be a string unit type (e.g. - * \c CSS_URI , \c CSS_IDENT and - * \c CSS_ATTR ). - * - * @exception DOMException - * INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a - * string value. - * - */ - // ### KDE4: make this const! - DOM::DOMString getStringValue ( ); - - /** - * This method is used to get the Counter value. If this CSS value - * doesn't contain a counter value, a \c DOMException - * is raised. Modification to the corresponding style property can - * be achieved using the \c Counter interface. - * - * @return The Counter value. - * - * @exception DOMException - * INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a - * Counter value. - * - */ - // ### KDE4: make this const! - Counter getCounterValue ( ); - - /** - * This method is used to get the Rect value. If this CSS value - * doesn't contain a rect value, a \c DOMException is - * raised. Modification to the corresponding style property can be - * achieved using the \c Rect interface. - * - * @return The Rect value. - * - * @exception DOMException - * INVALID_ACCESS_ERR: Raises if the CSS value doesn't contain a - * Rect value. - * - */ - // ### KDE4: make this const! - Rect getRectValue ( ); - - /** - * This method is used to get the RGB color. If this CSS value - * doesn't contain a RGB color value, a \c DOMException - * is raised. Modification to the corresponding style - * property can be achieved using the \c RGBColor - * interface. - * - * @return the RGB color value. - * - * @exception DOMException - * INVALID_ACCESS_ERR: Raises if the attached property can't - * return a RGB color value. - * - */ - // ### KDE4: make this const! - RGBColor getRGBColorValue ( ); -}; - - - -/** - * The \c RGBColor interface is used to represent any <a - * href="http://www.w3.org/TR/REC-CSS2/syndata.html#value-def-color"> - * RGB color </a> value. This interface reflects the values in the - * underlying style property. Hence, modifications made through this - * interface modify the style property. - * - */ -class KHTML_EXPORT RGBColor -{ -public: - RGBColor(); - /** - * @deprecated - */ - RGBColor(const TQColor& c) { m_color = c.rgb(); } - RGBColor(QRgb color); - - RGBColor(const RGBColor &other); - RGBColor & operator = (const RGBColor &other); - - ~RGBColor(); - - /** - * This attribute is used for the red value of the RGB color. - * - */ - CSSPrimitiveValue red() const; - - /** - * This attribute is used for the green value of the RGB color. - * - */ - CSSPrimitiveValue green() const; - - /** - * This attribute is used for the blue value of the RGB color. - * - */ - CSSPrimitiveValue blue() const; - - /** - * @internal - */ - QRgb color() const { return m_color; } -protected: - QRgb m_color; -}; - -class RectImpl; - -/** - * The \c Rect interface is used to represent any <a - * href="http://www.w3.org/TR/REC-CSS2/visufx.html#value-def-shape"> - * rect </a> value. This interface reflects the values in the - * underlying style property. Hence, modifications made through this - * interface modify the style property. - * - */ -class KHTML_EXPORT Rect -{ - friend class CSSPrimitiveValue; -public: - Rect(); - Rect(const Rect &other); - - Rect & operator = (const Rect &other); - - ~Rect(); - - /** - * This attribute is used for the top of the rect. - * - */ - CSSPrimitiveValue top() const; - - /** - * This attribute is used for the right of the rect. - * - */ - CSSPrimitiveValue right() const; - - /** - * This attribute is used for the bottom of the rect. - * - */ - CSSPrimitiveValue bottom() const; - - /** - * This attribute is used for the left of the rect. - * - */ - CSSPrimitiveValue left() const; - - /** - * @internal - * not part of the DOM - */ - RectImpl *handle() const; - bool isNull() const; - -protected: - RectImpl *impl; - Rect(RectImpl *i); -}; - -class CounterImpl; - -/** - * The \c Counter interface is used to represent any <a - * href="http://www.w3.org/TR/REC-CSS2/syndata.html#value-def-counter"> - * counter or counters function </a> value. This interface reflects - * the values in the underlying style property. Hence, modifications - * made through this interface modify the style property. - * - */ -class KHTML_EXPORT Counter -{ - friend class CSSPrimitiveValue; -public: - Counter(); - Counter(const Counter &other); -public: - - Counter & operator = (const Counter &other); - - ~Counter(); - - /** - * This attribute is used for the identifier of the counter. - * - */ - DOM::DOMString identifier() const; - - /** - * This attribute is used for the style of the list. - * - */ - DOM::DOMString listStyle() const; - - /** - * This attribute is used for the separator of nested counters. - * - */ - DOM::DOMString separator() const; - - /** - * @internal - * not part of the DOM - */ - CounterImpl *handle() const; - bool isNull() const; - -protected: - CounterImpl *impl; - Counter(CounterImpl *i); -}; - - -} // namespace - - -#endif |