• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * This file is part of the WebKit project.
3   *
4   * Copyright (C) 2006 Apple Computer, Inc.
5   *           (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
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  
24  #ifndef RenderSVGText_h
25  #define RenderSVGText_h
26  
27  #if ENABLE(SVG)
28  
29  #include "TransformationMatrix.h"
30  #include "RenderSVGBlock.h"
31  
32  namespace WebCore {
33  
34  class SVGTextElement;
35  
36  class RenderSVGText : public RenderSVGBlock {
37  public:
38      RenderSVGText(SVGTextElement* node);
39  
40  private:
renderName()41      virtual const char* renderName() const { return "RenderSVGText"; }
42  
isSVGText()43      virtual bool isSVGText() const { return true; }
44  
localToParentTransform()45      virtual TransformationMatrix localToParentTransform() const { return m_localTransform; }
46  
47      virtual void paint(PaintInfo&, int tx, int ty);
48      virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
49      virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction);
50  
requiresLayer()51      virtual bool requiresLayer() const { return false; }
52      virtual void layout();
53  
54      virtual void absoluteRects(Vector<IntRect>&, int tx, int ty);
55      virtual void absoluteQuads(Vector<FloatQuad>&);
56  
57      virtual IntRect clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer);
58      virtual void computeRectForRepaint(RenderBoxModelObject* repaintContainer, IntRect&, bool fixed = false);
59  
60      virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&) const;
61  
62      virtual FloatRect objectBoundingBox() const;
63      virtual FloatRect repaintRectInLocalCoordinates() const;
64  
65      // FIXME: This can be removed when localTransform() is removed from RenderObject
localTransform()66      virtual TransformationMatrix localTransform() const { return m_localTransform; }
67  
68      virtual RootInlineBox* createRootInlineBox();
69  
70      TransformationMatrix m_localTransform;
71  };
72  
73  }
74  
75  #endif // ENABLE(SVG)
76  #endif
77  
78  // vim:ts=4:noet
79