Bug #: 4154
[WebKit-https.git] / SVGSupport / kdom / css / DocumentStyle.cpp
1 /*
2     Copyright (C) 2004 Nikolas Zimmermann <wildfox@kde.org>
3                                   2004 Rob Buis <buis@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 "Ecma.h"
24 #include "NodeImpl.h"
25 #include "DocumentStyle.h"
26 #include "StyleSheetList.h"
27 #include "DocumentStyleImpl.h"
28
29 #include "kdom/data/CSSConstants.h"
30 #include "DocumentStyle.lut.h"
31 using namespace KDOM;
32 using namespace KJS;
33
34 /*
35 @begin DocumentStyle::s_hashTable 2
36  styleSheets    DocumentStyleConstants::StyleSheets     DontDelete|ReadOnly
37 @end
38 */
39
40 Value DocumentStyle::getValueProperty(ExecState *exec, int token) const
41 {
42         switch(token)
43         {
44                 case DocumentStyleConstants::StyleSheets:
45                         return safe_cache<StyleSheetList>(exec, styleSheets());
46                 default:
47                         kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl;
48         }
49
50         return Undefined();
51 };
52
53 DocumentStyle DocumentStyle::null;
54
55 DocumentStyle::DocumentStyle() : d(0)
56 {
57 }
58
59 DocumentStyle::DocumentStyle(DocumentStyleImpl *i) : d(i)
60 {
61 }
62
63 DocumentStyle::DocumentStyle(const DocumentStyle &other) : d(0)
64 {
65         (*this) = other;
66 }
67
68 DocumentStyle::~DocumentStyle()
69 {
70 }
71
72 DocumentStyle &DocumentStyle::operator=(const DocumentStyle &other)
73 {
74         if(d != other.d)
75                 d = other.d;
76
77         return *this;
78 }
79
80 DocumentStyle &DocumentStyle::operator=(DocumentStyleImpl *other)
81 {
82         if(d != other)
83                 d = other;
84
85         return *this;
86 }
87
88 StyleSheetList DocumentStyle::styleSheets() const
89 {
90         if(!d)
91                 return StyleSheetList::null;
92
93         return StyleSheetList(d->styleSheets());
94 }
95
96 // vim:ts=4:noet