Home | History | Annotate | Download | only in svg
      1 /*
      2  * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann (at) kde.org>
      3  * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis (at) kde.org>
      4  *
      5  * This library is free software; you can redistribute it and/or
      6  * modify it under the terms of the GNU Library General Public
      7  * License as published by the Free Software Foundation; either
      8  * version 2 of the License, or (at your option) any later version.
      9  *
     10  * This library is distributed in the hope that it will be useful,
     11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13  * Library General Public License for more details.
     14  *
     15  * You should have received a copy of the GNU Library General Public License
     16  * along with this library; see the file COPYING.LIB.  If not, write to
     17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18  * Boston, MA 02110-1301, USA.
     19  */
     20 
     21 #ifndef SVGStyleElement_h
     22 #define SVGStyleElement_h
     23 
     24 #include "core/SVGNames.h"
     25 #include "core/dom/StyleElement.h"
     26 #include "core/svg/SVGElement.h"
     27 
     28 namespace blink {
     29 
     30 class SVGStyleElement FINAL : public SVGElement
     31                             , public StyleElement {
     32     DEFINE_WRAPPERTYPEINFO();
     33     WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(SVGStyleElement);
     34 public:
     35     static PassRefPtrWillBeRawPtr<SVGStyleElement> create(Document&, bool createdByParser);
     36     virtual ~SVGStyleElement();
     37 
     38     using StyleElement::sheet;
     39 
     40     bool disabled() const;
     41     void setDisabled(bool);
     42 
     43     virtual const AtomicString& type() const OVERRIDE;
     44     void setType(const AtomicString&);
     45 
     46     virtual const AtomicString& media() const OVERRIDE;
     47     void setMedia(const AtomicString&);
     48 
     49     virtual String title() const OVERRIDE;
     50     void setTitle(const AtomicString&);
     51 
     52     virtual void trace(Visitor*) OVERRIDE;
     53 
     54 private:
     55     SVGStyleElement(Document&, bool createdByParser);
     56 
     57     bool isSupportedAttribute(const QualifiedName&);
     58     virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERRIDE;
     59     virtual InsertionNotificationRequest insertedInto(ContainerNode*) OVERRIDE;
     60     virtual void didNotifySubtreeInsertionsToDocument() OVERRIDE;
     61     virtual void removedFrom(ContainerNode*) OVERRIDE;
     62     virtual void childrenChanged(const ChildrenChange&) OVERRIDE;
     63 
     64     virtual void finishParsingChildren() OVERRIDE;
     65     virtual bool rendererIsNeeded(const RenderStyle&) OVERRIDE { return false; }
     66 
     67     virtual bool sheetLoaded() OVERRIDE { return StyleElement::sheetLoaded(document()); }
     68     virtual void startLoadingDynamicSheet() OVERRIDE { StyleElement::startLoadingDynamicSheet(document()); }
     69     virtual Timer<SVGElement>* svgLoadEventTimer() OVERRIDE { return &m_svgLoadEventTimer; }
     70 
     71     Timer<SVGElement> m_svgLoadEventTimer;
     72 };
     73 
     74 } // namespace blink
     75 
     76 #endif // SVGStyleElement_h
     77