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