• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This file is part of the WebKit project.
3  *
4  * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Library General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public License
17  * along with this library; see the file COPYING.LIB.  If not, write to
18  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  * Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #ifndef RenderSVGHiddenContainer_h
24 #define RenderSVGHiddenContainer_h
25 
26 #if ENABLE(SVG)
27 
28 #include "RenderSVGContainer.h"
29 
30 namespace WebCore {
31 
32     class SVGStyledElement;
33 
34     // This class is for containers which are never drawn, but do need to support style
35     // <defs>, <linearGradient>, <radialGradient> are all good examples
36     class RenderSVGHiddenContainer : public RenderSVGContainer {
37     public:
38         RenderSVGHiddenContainer(SVGStyledElement*);
39 
40     private:
isSVGHiddenContainer()41         virtual bool isSVGHiddenContainer() const { return true; }
42 
renderName()43         virtual const char* renderName() const { return "RenderSVGHiddenContainer"; }
44 
requiresLayer()45         virtual bool requiresLayer() const { return false; }
46 
47         virtual void layout();
48         virtual void paint(PaintInfo&, int parentX, int parentY);
49 
50         virtual IntRect clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer);
51         virtual void absoluteRects(Vector<IntRect>& rects, int tx, int ty);
52         virtual void absoluteQuads(Vector<FloatQuad>&);
53 
54         // FIXME: This override only exists to match existing LayoutTest results.
absoluteTransform()55         virtual TransformationMatrix absoluteTransform() const { return TransformationMatrix(); }
56 
57         virtual FloatRect objectBoundingBox() const;
58         virtual FloatRect repaintRectInLocalCoordinates() const;
59 
60         virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction);
61     };
62 }
63 
64 #endif // ENABLE(SVG)
65 #endif // RenderSVGHiddenContainer_h
66