18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2004 Zack Rusin <zack@kde.org> 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2004, 2005, 2006, 2008 Apple Inc. All rights reserved. 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Lesser General Public 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Lesser General Public License for more details. 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Lesser General Public 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License along with this library; if not, write to the Free Software 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 02110-1301 USA 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef CSSComputedStyleDeclaration_h 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define CSSComputedStyleDeclaration_h 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSStyleDeclaration.h" 2554cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block#include "PlatformString.h" 26dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "RenderStyleConstants.h" 27e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#include <wtf/RefPtr.h> 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 31e78cbe89e6f337f2f1fe40315be88f742b547151Steve Blockclass Color; 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass CSSMutableStyleDeclaration; 33e78cbe89e6f337f2f1fe40315be88f742b547151Steve Blockclass CSSPrimitiveValue; 34e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeclass Node; 35e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeclass RenderStyle; 36cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Blockclass ShadowData; 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectenum EUpdateLayout { DoNotUpdateLayout = false, UpdateLayout = true }; 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass CSSComputedStyleDeclaration : public CSSStyleDeclaration { 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 42dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block friend PassRefPtr<CSSComputedStyleDeclaration> computedStyle(PassRefPtr<Node>, bool allowVisitedStyle, const String& pseudoElementName); 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ~CSSComputedStyleDeclaration(); 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual String cssText() const; 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4721939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual unsigned virtualLength() const; 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual String item(unsigned index) const; 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual PassRefPtr<CSSValue> getPropertyCSSValue(int propertyID) const; 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual String getPropertyValue(int propertyID) const; 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool getPropertyPriority(int propertyID) const; 53635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual int getPropertyShorthand(int /*propertyID*/) const { return -1; } 54635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual bool isPropertyImplicit(int /*propertyID*/) const { return false; } 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual PassRefPtr<CSSMutableStyleDeclaration> copy() const; 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual PassRefPtr<CSSMutableStyleDeclaration> makeMutable(); 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> getPropertyCSSValue(int propertyID, EUpdateLayout) const; 605f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian PassRefPtr<CSSValue> getFontSizeCSSValuePreferringKeyword() const; 615abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick bool useFixedFontDefaultSize() const; 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project PassRefPtr<CSSValue> getSVGPropertyCSSValue(int propertyID, EUpdateLayout) const; 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochprotected: 670bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual bool cssPropertyMatches(const CSSProperty*) const; 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate: 70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block CSSComputedStyleDeclaration(PassRefPtr<Node>, bool allowVisitedStyle, const String&); 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setCssText(const String&, ExceptionCode&); 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual String removeProperty(int propertyID, ExceptionCode&); 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void setProperty(int propertyId, const String& value, bool important, ExceptionCode&); 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7768513a70bcd92384395513322f1b801e7bf9c729Steve Block PassRefPtr<CSSValue> valueForShadow(const ShadowData*, int, RenderStyle*) const; 78e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block PassRefPtr<CSSPrimitiveValue> currentColorOrValidColor(RenderStyle*, const Color&) const; 7954cdeeebc7adcbcd900e8b6a141a8cae27d9a631Steve Block 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<Node> m_node; 81dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block PseudoId m_pseudoElementSpecifier; 82dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool m_allowVisitedStyle; 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 85dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockinline PassRefPtr<CSSComputedStyleDeclaration> computedStyle(PassRefPtr<Node> node, bool allowVisitedStyle = false, const String& pseudoElementName = String()) 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 87dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block return adoptRef(new CSSComputedStyleDeclaration(node, allowVisitedStyle, pseudoElementName)); 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // CSSComputedStyleDeclaration_h 93