18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (C) 1999-2003 Lars Knoll (knoll@kde.org) 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (C) 2002-2003 Dirk Mueller (mueller@kde.org) 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2002, 2006, 2008 Apple Inc. All rights reserved. 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details. 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB. If not, write to 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA. 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef CSSStyleRule_h 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define CSSStyleRule_h 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSRule.h" 26635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "CSSSelectorList.h" 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/PassRefPtr.h> 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/RefPtr.h> 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass CSSMutableStyleDeclaration; 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass CSSSelector; 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass CSSStyleRule : public CSSRule { 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 37dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block static PassRefPtr<CSSStyleRule> create(CSSStyleSheet* parent, int sourceLine) 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 39dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block return adoptRef(new CSSStyleRule(parent, sourceLine)); 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual ~CSSStyleRule(); 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4321939df44de1705786c545cd1bf519d47250322dBen Murdoch virtual String selectorText() const; 44bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen void setSelectorText(const String&); 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSMutableStyleDeclaration* style() const { return m_style.get(); } 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual String cssText() const; 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Not part of the CSSOM 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool parseString(const String&, bool = false); 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 532fc2651226baac27029e38c9d6ef883fa32084dbSteve Block void adoptSelectorVector(Vector<OwnPtr<CSSParserSelector> >& selectors) { m_selectorList.adoptSelectorVector(selectors); } 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setDeclaration(PassRefPtr<CSSMutableStyleDeclaration>); 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 56635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project const CSSSelectorList& selectorList() const { return m_selectorList; } 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CSSMutableStyleDeclaration* declaration() { return m_style.get(); } 58635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 59635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void addSubresourceStyleURLs(ListHashSet<KURL>& urls); 60635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 61dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block int sourceLine() { return m_sourceLine; } 62dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 6321939df44de1705786c545cd1bf519d47250322dBen Murdochprotected: 64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block CSSStyleRule(CSSStyleSheet* parent, int sourceLine); 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6621939df44de1705786c545cd1bf519d47250322dBen Murdochprivate: 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isStyleRule() { return true; } 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Inherited from CSSRule 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual unsigned short type() const { return STYLE_RULE; } 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RefPtr<CSSMutableStyleDeclaration> m_style; 73635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project CSSSelectorList m_selectorList; 74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block int m_sourceLine; 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // CSSStyleRule_h 80