Chromium Code Reviews| 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 |