KHtml

SVGStyledTransformableElement.h
1 /*
2  Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <[email protected]>
3  2004, 2005, 2006, 2007 Rob Buis <[email protected]>
4 
5  This file is part of the KDE project
6 
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Library General Public
9  License as published by the Free Software Foundation; either
10  version 2 of the License, or (at your option) any later version.
11 
12  This library is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  Library General Public License for more details.
16 
17  You should have received a copy of the GNU Library General Public License
18  along with this library; see the file COPYING.LIB. If not, write to
19  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  Boston, MA 02110-1301, USA.
21 */
22 
23 #ifndef SVGStyledTransformableElement_h
24 #define SVGStyledTransformableElement_h
25 
26 #if ENABLE(SVG)
27 #include "SVGStyledLocatableElement.h"
28 #include "SVGTransformable.h"
29 #include "wtf/OwnPtr.h"
30 
31 namespace WebCore
32 {
33 
34 class AffineTransform;
35 class SVGTransformList;
36 
37 class SVGStyledTransformableElement : public SVGStyledLocatableElement,
38  public SVGTransformable
39 {
40 public:
41  SVGStyledTransformableElement(const QualifiedName &, Document *);
42  virtual ~SVGStyledTransformableElement();
43 
44  bool isStyledTransformable() const override
45  {
46  return true;
47  }
48 
49  AffineTransform getCTM() const override;
50  AffineTransform getScreenCTM() const override;
51  SVGElement *nearestViewportElement() const override;
52  SVGElement *farthestViewportElement() const override;
53 
54  AffineTransform animatedLocalTransform() const override;
55  AffineTransform *supplementalTransform() override;
56 
57  FloatRect getBBox() const override;
58 
59  void parseMappedAttribute(MappedAttribute *) override;
60  bool isKnownAttribute(const QualifiedName &);
61 
62  // "base class" methods for all the elements which render as paths
63  virtual Path toPathData() const
64  {
65  return Path();
66  }
67  virtual Path toClipPath() const
68  {
69  return toPathData();
70  }
71  RenderObject *createRenderer(RenderArena *, RenderStyle *) override;
72 
73 protected:
74  ANIMATED_PROPERTY_DECLARATIONS(SVGStyledTransformableElement, SVGTransformList *, RefPtr<SVGTransformList>, Transform, transform)
75 private:
76  // Used by <animateMotion>
77  OwnPtr<AffineTransform> m_supplementalTransform;
78 };
79 
80 } // namespace WebCore
81 
82 #endif // ENABLE(SVG)
83 #endif // SVGStyledTransformableElement_h
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Mon Oct 25 2021 22:48:23 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.