2006-07-30 Eric Seidel <eric@eseidel.com>
[WebKit-https.git] / WebCore / ksvg2 / ecma / GlobalObject.cpp
1 /*
2     Copyright (C) 2002 David Faure <faure@kde.org>
3                   2004, 2005 Nikolas Zimmermann <wildfox@kde.org>
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., 59 Temple Place - Suite 330,
20     Boston, MA 02111-1307, USA.
21 */
22
23 #include "config.h"
24 #if SVG_SUPPORT
25 #include <kdom/core/Document.h>
26
27 #include "GlobalObject.h"
28 #include "Constructors.h"
29
30 #include <ksvg2/data/EcmaConstants.h>
31 #include <ksvg2/data/GlobalObject.lut.h>
32 using namespace WebCore;
33
34 /*
35 @begin GlobalObject::s_hashTable 13
36 # Constructors
37  SVGException    GlobalObjectConstants::SVGException DontDelete|Function 1
38  SVGLength        GlobalObjectConstants::SVGLength DontDelete|Function 1
39  SVGAngle        GlobalObjectConstants::SVGAngle DontDelete|Function 1
40  SVGColor        GlobalObjectConstants::SVGColor DontDelete|Function 1
41  SVGUnitTypes    GlobalObjectConstants::SVGUnitTypes DontDelete|Function 1
42  SVGTransform    GlobalObjectConstants::SVGTransform DontDelete|Function 1
43  SVGPaint        GlobalObjectConstants::SVGPaint DontDelete|Function 1
44  SVGGradientElement        GlobalObjectConstants::SVGGradientElement DontDelete|Function 1
45  SVGPreserveAspectRatio        GlobalObjectConstants::SVGPreserveAspectRatio DontDelete|Function 1
46  SVGZoomAndPan        GlobalObjectConstants::SVGZoomAndPan DontDelete|Function 1
47  SVGMarkerElement    GlobalObjectConstants::SVGMarkerElement DontDelete|Function 1
48 @end
49 */
50
51 GlobalObject::GlobalObject(Document *doc) : GlobalObject(doc)
52 {
53 }
54
55 GlobalObject::~GlobalObject()
56 {
57 }
58
59 KJS::JSValue *GlobalObject::get(KJS::ExecState *exec, const KJS::Identifier &p) const
60 {
61     kdDebug(26004) << "WebCore::GlobalObject (" << this << ")::get " << p.deprecatedString() << endl;
62
63     KJS::JSValue *ret = GlobalObject::get(exec, p);
64     if(ret->type() != KJS::UndefinedType)
65         return ret;
66
67     const KJS::HashEntry *entry = KJS::Lookup::findEntry(&GlobalObject::s_hashTable, p);
68     if(entry)
69     {
70         switch(entry->value)
71         {
72             case GlobalObjectConstants::SVGException:
73                 return getSVGExceptionConstructor(exec);
74             case GlobalObjectConstants::SVGLength:
75                 return getSVGLengthConstructor(exec);
76             case GlobalObjectConstants::SVGAngle:
77                 return getSVGAngleConstructor(exec);
78             case GlobalObjectConstants::SVGColor:
79                 return getSVGColorConstructor(exec);
80             case GlobalObjectConstants::SVGPaint:
81                 return getSVGPaintConstructor(exec);
82             case GlobalObjectConstants::SVGUnitTypes:
83                 return getSVGUnitTypesConstructor(exec);
84             case GlobalObjectConstants::SVGTransform:
85                 return getSVGTransformConstructor(exec);
86             case GlobalObjectConstants::SVGGradientElement:
87                 return getSVGGradientElementConstructor(exec);
88             case GlobalObjectConstants::SVGPreserveAspectRatio:
89                 return getSVGPreserveAspectRatioConstructor(exec);
90             case GlobalObjectConstants::SVGZoomAndPan:
91                 return getSVGZoomAndPanConstructor(exec);
92             case GlobalObjectConstants::SVGMarkerElement:
93                 return getSVGMarkerElementConstructor(exec);
94         }
95     }
96
97     // This isn't necessarily a bug. Some code uses if(!window.blah) window.blah=1
98     // But it can also mean something isn't loaded or implemented...
99     kdDebug(26004) << "GlobalObject::get property not found: " << p.deprecatedString() << endl;
100     return KJS::jsUndefined();
101 }
102
103 // vim:ts=4:noet
104 #endif // SVG_SUPPORT
105