18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                  2004, 2005, 2007 Rob Buis <buis@kde.org>
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 Library 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    Library 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 Library General Public License
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    along with this library; see the file COPYING.LIB.  If not, write to
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Boston, MA 02110-1301, USA.
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef SVGViewElement_h
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define SVGViewElement_h
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG)
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGStyledElement.h"
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGExternalResourcesRequired.h"
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGFitToViewBox.h"
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGZoomAndPan.h"
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class SVGStringList;
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    class SVGViewElement : public SVGStyledElement,
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                           public SVGExternalResourcesRequired,
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                           public SVGFitToViewBox,
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                           public SVGZoomAndPan {
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    public:
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        SVGViewElement(const QualifiedName&, Document*);
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual ~SVGViewElement();
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual void parseMappedAttribute(MappedAttribute*);
42d0825bca7fe65beaee391d30da42e937db621564Steve Block        virtual void synchronizeProperty(const QualifiedName&);
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        SVGStringList* viewTarget() const;
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        virtual bool rendererIsNeeded(RenderStyle*) { return false; }
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    private:
49cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block        // SVGExternalResourcesRequired
50d0825bca7fe65beaee391d30da42e937db621564Steve Block        DECLARE_ANIMATED_PROPERTY(SVGViewElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
51cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block
52cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block        // SVGFitToViewBox
53d0825bca7fe65beaee391d30da42e937db621564Steve Block        DECLARE_ANIMATED_PROPERTY(SVGViewElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
54d0825bca7fe65beaee391d30da42e937db621564Steve Block        DECLARE_ANIMATED_PROPERTY(SVGViewElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
55cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        mutable RefPtr<SVGStringList> m_viewTarget;
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    };
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // ENABLE(SVG)
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
63