Reviewed by John
[WebKit-https.git] / WebCore / khtml / css / css_computedstyle.h
1 /**
2  * css_computedstyle.h
3  *
4  * Copyright (C)  2004  Zack Rusin <zack@kde.org>
5  * Copyright (C)  2004  Apple Computer, Inc.
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20  * 02111-1307  USA
21  */
22 #ifndef CSS_COMPUTEDSTYLE_H
23 #define CSS_COMPUTEDSTYLE_H
24
25 #include "css/css_valueimpl.h"
26 #include "dom/dom_string.h"
27
28 namespace khtml {
29     class RenderObject;
30 }
31
32 namespace DOM {
33
34 class CSSProperty;
35 class CSSStyleDeclarationImpl;
36 class CSSValueImpl;
37 class DOMString;
38 class NodeImpl;
39
40 enum EUpdateLayout { DoNotUpdateLayout = false, UpdateLayout = true };
41
42 class CSSComputedStyleDeclarationImpl : public CSSStyleDeclarationImpl
43 {
44 public:
45     CSSComputedStyleDeclarationImpl(NodeImpl *node);
46     virtual ~CSSComputedStyleDeclarationImpl();
47
48     virtual DOMString cssText() const;
49     virtual void setCssText(const DOMString &);
50
51     virtual CSSValueImpl *getPropertyCSSValue(int propertyID) const;
52     CSSValueImpl *getPropertyCSSValue(int propertyID, bool updateLayout) const;
53     virtual DOMString getPropertyValue(int propertyID) const;
54     virtual bool getPropertyPriority(int propertyID) const;
55
56     virtual DOMString removeProperty(int propertyID);
57     virtual bool setProperty(int propertyId, const DOMString &value, bool important = false);
58     virtual void setProperty(int propertyId, int value, bool important = false);
59     virtual void setLengthProperty(int id, const DOMString &value, bool important, bool multiLength = false);
60
61     virtual void setProperty(const DOMString &propertyString);
62     virtual DOMString item(unsigned long index) const;
63
64     CSSStyleDeclarationImpl *copyInheritableProperties() const;
65
66     CSSValueImpl* getPositionOffsetValue(int propertyID) const;
67
68 private:
69     CSSProperty property(int id) const;
70
71     khtml::RenderObject *m_renderer;
72 };
73
74
75 }
76
77 #endif