Bug #: 4154
[WebKit-https.git] / SVGSupport / kdom / css / Counter.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 "Counter.h"
25 #include "NodeImpl.h"
26 #include "CSSHelper.h"
27 #include "CounterImpl.h"
28
29 #include "kdom/data/CSSConstants.h"
30 #include "Counter.lut.h"
31 using namespace KDOM;
32 using namespace KJS;
33
34 /*
35 @begin Counter::s_hashTable 5
36  identifier     CounterConstants::Identifier    DontDelete|ReadOnly
37  listStyle      CounterConstants::ListStyle             DontDelete|ReadOnly
38  separator      CounterConstants::Separator             DontDelete|ReadOnly
39 @end
40 */
41
42 Value Counter::getValueProperty(ExecState *, int token) const
43 {
44         switch(token)
45         {
46                 case CounterConstants::Identifier:
47                         return getDOMString(identifier());
48                 case CounterConstants::ListStyle:
49                         return getDOMString(listStyle());
50                 case CounterConstants::Separator:
51                         return getDOMString(separator());
52                 default:
53                         kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl;
54         }
55
56         return Undefined();
57 }
58
59 Counter Counter::null;
60
61 Counter::Counter() : d(0)
62 {
63 }
64
65 Counter::Counter(const Counter &other) : d(0)
66 {
67         (*this) = other;
68 }
69
70 Counter::Counter(CounterImpl *i) : d(i)
71 {
72 }
73
74 KDOM_IMPL_DTOR_ASSIGN_OP(Counter)
75
76 DOMString Counter::identifier() const
77 {
78         if(!d)
79                 return DOMString();
80
81         return d->identifier();
82 }
83
84 DOMString Counter::listStyle() const
85 {
86         if(!d)
87                 return DOMString();
88
89         return CSSHelper::stringForListStyleType((EListStyleType) d->listStyle());
90 }
91
92 DOMString Counter::separator() const
93 {
94         if(!d)
95                 return DOMString();
96
97         return d->separator();
98 }
99
100 // vim:ts=4:noet