OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * Copyright (C) 2004, 2005, 2006, 2007, 2009 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2009 Apple Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
121 TextDirection directionality(Node** strongDirectionalityTextNode= 0) const; | 121 TextDirection directionality(Node** strongDirectionalityTextNode= 0) const; |
122 | 122 |
123 TranslateAttributeMode translateAttributeMode() const; | 123 TranslateAttributeMode translateAttributeMode() const; |
124 | 124 |
125 void handleKeypressEvent(KeyboardEvent*); | 125 void handleKeypressEvent(KeyboardEvent*); |
126 bool supportsSpatialNavigationFocus() const; | 126 bool supportsSpatialNavigationFocus() const; |
127 }; | 127 }; |
128 | 128 |
129 DEFINE_ELEMENT_TYPE_CASTS(HTMLElement, isHTMLElement()); | 129 DEFINE_ELEMENT_TYPE_CASTS(HTMLElement, isHTMLElement()); |
130 | 130 |
131 template <> inline bool isElementOfType<const HTMLElement>(const Node& node) { r eturn node.isHTMLElement(); } | |
Inactive
2014/03/20 22:15:24
Without this template specialization, isElementOfT
| |
131 template <typename T> bool isElementOfType(const HTMLElement&); | 132 template <typename T> bool isElementOfType(const HTMLElement&); |
132 template <> inline bool isElementOfType<HTMLElement>(const HTMLElement&) { retur n true; } | 133 template <> inline bool isElementOfType<const HTMLElement>(const HTMLElement&) { return true; } |
133 | 134 |
134 inline HTMLElement::HTMLElement(const QualifiedName& tagName, Document& document , ConstructionType type = CreateHTMLElement) | 135 inline HTMLElement::HTMLElement(const QualifiedName& tagName, Document& document , ConstructionType type = CreateHTMLElement) |
135 : Element(tagName, &document, type) | 136 : Element(tagName, &document, type) |
136 { | 137 { |
137 ASSERT(!tagName.localName().isNull()); | 138 ASSERT(!tagName.localName().isNull()); |
138 ScriptWrappable::init(this); | 139 ScriptWrappable::init(this); |
139 } | 140 } |
140 | 141 |
141 // This requires isHTML*Element(const Element&) and isHTML*Element(const HTMLEle ment&). | 142 // This requires isHTML*Element(const Element&) and isHTML*Element(const HTMLEle ment&). |
142 // When the input element is an HTMLElement, we don't need to check the namespac e URI, just the local name. | 143 // When the input element is an HTMLElement, we don't need to check the namespac e URI, just the local name. |
143 #define DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(thisType) \ | 144 #define DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(thisType) \ |
144 inline bool is##thisType(const thisType* element); \ | 145 inline bool is##thisType(const thisType* element); \ |
145 inline bool is##thisType(const thisType& element); \ | 146 inline bool is##thisType(const thisType& element); \ |
146 inline bool is##thisType(const HTMLElement* element) { return element && is# #thisType(*element); } \ | 147 inline bool is##thisType(const HTMLElement* element) { return element && is# #thisType(*element); } \ |
147 inline bool is##thisType(const Element* element) { return element && is##thi sType(*element); } \ | 148 inline bool is##thisType(const Element* element) { return element && is##thi sType(*element); } \ |
148 inline bool is##thisType(const Node& node) { return node.isElementNode() ? i s##thisType(toElement(node)) : false; } \ | 149 inline bool is##thisType(const Node& node) { return node.isElementNode() ? i s##thisType(toElement(node)) : false; } \ |
149 inline bool is##thisType(const Node* node) { return node && node->isElementN ode() ? is##thisType(*toElement(node)) : false; } \ | 150 inline bool is##thisType(const Node* node) { return node && node->isElementN ode() ? is##thisType(*toElement(node)) : false; } \ |
150 template<typename T> inline bool is##thisType(const PassRefPtr<T>& node) { r eturn is##thisType(node.get()); } \ | 151 template<typename T> inline bool is##thisType(const PassRefPtr<T>& node) { r eturn is##thisType(node.get()); } \ |
151 template<typename T> inline bool is##thisType(const RefPtr<T>& node) { retur n is##thisType(node.get()); } \ | 152 template<typename T> inline bool is##thisType(const RefPtr<T>& node) { retur n is##thisType(node.get()); } \ |
152 template <> inline bool isElementOfType<const thisType>(const HTMLElement& e lement) { return is##thisType(element); } \ | 153 template <> inline bool isElementOfType<const thisType>(const HTMLElement& e lement) { return is##thisType(element); } \ |
153 DEFINE_ELEMENT_TYPE_CASTS_WITH_FUNCTION(thisType) | 154 DEFINE_ELEMENT_TYPE_CASTS_WITH_FUNCTION(thisType) |
154 | 155 |
155 } // namespace WebCore | 156 } // namespace WebCore |
156 | 157 |
157 #include "HTMLElementTypeHelpers.h" | 158 #include "HTMLElementTypeHelpers.h" |
158 | 159 |
159 #endif // HTMLElement_h | 160 #endif // HTMLElement_h |
OLD | NEW |