Bug #: 4154
[WebKit-https.git] / SVGSupport / kdom / css / CSSCharsetRule.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 "DOMException.h"
25 #include "CSSCharsetRule.h"
26 #include "DOMExceptionImpl.h"
27 #include "CSSCharsetRuleImpl.h"
28
29 #include "kdom/data/CSSConstants.h"
30 #include "CSSCharsetRule.lut.h"
31 using namespace KDOM;
32 using namespace KJS;
33
34 /*
35 @begin CSSCharsetRule::s_hashTable 2
36  encoding       CSSCharsetRuleConstants::Encoding       DontDelete
37 @end
38 */
39
40 Value CSSCharsetRule::getValueProperty(ExecState *, int token) const
41 {
42         switch(token)
43         {
44                 case CSSCharsetRuleConstants::Encoding:
45                         return getDOMString(encoding());
46                 default:
47                         kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl;
48         }
49
50         return Undefined();
51 }
52
53 void CSSCharsetRule::putValueProperty(ExecState *exec, int token, const Value &value, int)
54 {
55         KDOM_ENTER_SAFE
56
57         switch(token)
58         {
59                 case CSSCharsetRuleConstants::Encoding:
60                         setEncoding(toDOMString(exec, value));
61                         break;
62                 default:
63                         kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl;
64         }
65
66         KDOM_LEAVE_SAFE(DOMException)
67 }
68
69 // The qdom way...
70 #define impl (static_cast<CSSCharsetRuleImpl *>(d))
71
72 CSSCharsetRule CSSCharsetRule::null;
73
74 CSSCharsetRule::CSSCharsetRule() : CSSRule()
75 {
76 }
77
78 CSSCharsetRule::CSSCharsetRule(const CSSCharsetRule &other) : CSSRule()
79 {
80         (*this) = other;
81 }
82
83 CSSCharsetRule::CSSCharsetRule(const CSSRule &other) : CSSRule()
84 {
85         (*this) = other;
86 }
87
88 CSSCharsetRule::CSSCharsetRule(CSSCharsetRuleImpl *i) : CSSRule(i)
89 {
90 }
91
92 CSSCharsetRule::~CSSCharsetRule()
93 {
94 }
95
96 CSSCharsetRule &CSSCharsetRule::operator=(const CSSCharsetRule &other)
97 {
98         CSSRule::operator=(other);
99         return *this;
100 }
101
102 KDOM_CSSRULE_DERIVED_ASSIGN_OP(CSSCharsetRule, CHARSET_RULE)
103
104 void CSSCharsetRule::setEncoding(const DOMString &encoding)
105 {
106         if(d)
107                 impl->setEncoding(encoding);
108 }
109
110 DOMString CSSCharsetRule::encoding() const
111 {
112         if(!d)
113                 return DOMString();
114
115         return impl->encoding();
116 }
117
118 // vim:ts=4:noet