18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *           (C) 1999 Antti Koivisto (koivisto@kde.org)
45af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke * Copyright (C) 2003, 2010 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 */
22ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef HTMLStyleElement_h
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define HTMLStyleElement_h
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "HTMLElement.h"
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleElement.h"
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
315af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkeclass StyleSheet;
325af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
33ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blockclass HTMLStyleElement : public HTMLElement, private StyleElement {
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic:
355af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    static PassRefPtr<HTMLStyleElement> create(const QualifiedName&, Document*, bool createdByParser);
366b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    virtual ~HTMLStyleElement();
375af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
385af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    void setType(const AtomicString&);
395af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
406b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner    using StyleElement::sheet;
415af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool disabled() const;
4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    void setDisabled(bool);
4465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
455af96e2c7b73ebc627c6894727826a7576d31758Leon Clarkeprivate:
46635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    HTMLStyleElement(const QualifiedName&, Document*, bool createdByParser);
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // overload from HTMLElement
49e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block    virtual void parseMappedAttribute(Attribute*);
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void insertedIntoDocument();
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void removedFromDocument();
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void finishParsingChildren();
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
56db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    virtual bool isLoading() const { return StyleElement::isLoading(); }
57db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block    virtual bool sheetLoaded() { return StyleElement::sheetLoaded(document()); }
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
59635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const;
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
61ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    virtual const AtomicString& media() const;
62ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block    virtual const AtomicString& type() const;
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} //namespace
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
68