KHtml

SVGSwitchElement.cpp
1 /*
2  Copyright (C) 2004, 2005 Nikolas Zimmermann <[email protected]>
3  2004, 2005, 2006 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 #if ENABLE(SVG)
24 #include "SVGSwitchElement.h"
25 
26 #include "RenderSVGTransformableContainer.h"
27 #include "SVGNames.h"
28 
29 namespace WebCore
30 {
31 
32 SVGSwitchElement::SVGSwitchElement(const QualifiedName &tagName, Document *doc)
33  : SVGStyledTransformableElement(tagName, doc)
34  , SVGTests()
35  , SVGLangSpace()
36  , SVGExternalResourcesRequired()
37 {
38 }
39 
40 SVGSwitchElement::~SVGSwitchElement()
41 {
42 }
43 
44 bool SVGSwitchElement::childShouldCreateRenderer(Node *child) const
45 {
46  for (Node *n = firstChild(); n != 0; n = n->nextSibling()) {
47  if (n->isSVGElement()) {
48  SVGElement *element = static_cast<SVGElement *>(n);
49  if (element && element->isValid()) {
50  return (n == child); // Only allow this child if it's the first valid child
51  }
52  }
53  }
54 
55  return false;
56 }
57 
58 RenderObject *SVGSwitchElement::createRenderer(RenderArena *arena, RenderStyle *)
59 {
60  return new(arena) RenderSVGTransformableContainer(this);
61 }
62 
63 }
64 
65 #endif // ENABLE(SVG)
66 
MESSAGECORE_EXPORT KMime::Content * firstChild(const KMime::Content *node)
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Oct 16 2021 22:48:02 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.