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