Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Side by Side Diff: sky/engine/core/html/HTMLElement.cpp

Issue 772133003: Mostly merge HTMLElement into Element. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sky/engine/core/html/HTMLElement.h ('k') | sky/engine/core/html/HTMLElement.idl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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-2008, 2013, 2014 Apple Inc. All rights reserved. 4 * Copyright (C) 2004-2008, 2013, 2014 Apple Inc. All rights reserved.
5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 5 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
6 * Copyright (C) 2011 Motorola Mobility. All rights reserved. 6 * Copyright (C) 2011 Motorola Mobility. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version. 11 * version 2 of the License, or (at your option) any later version.
12 * 12 *
13 * This library is distributed in the hope that it will be useful, 13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details. 16 * Library General Public License for more details.
17 * 17 *
18 * You should have received a copy of the GNU Library General Public License 18 * You should have received a copy of the GNU Library General Public License
19 * along with this library; see the file COPYING.LIB. If not, write to 19 * along with this library; see the file COPYING.LIB. If not, write to
20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA. 21 * Boston, MA 02110-1301, USA.
22 * 22 *
23 */ 23 */
24 24
25 #include "sky/engine/config.h" 25 #include "sky/engine/config.h"
26 #include "sky/engine/core/html/HTMLElement.h" 26 #include "sky/engine/core/html/HTMLElement.h"
27 27
28 #include "core/V8HTMLElementWrapperFactory.h" // FIXME: should be bindings/core/ v8 28 #include "core/V8HTMLElementWrapperFactory.h" // FIXME: should be bindings/core/ v8
29 #include "gen/sky/core/HTMLNames.h"
30 #include "sky/engine/bindings/core/v8/ExceptionState.h"
31 #include "sky/engine/core/dom/Document.h"
32 #include "sky/engine/core/dom/ElementTraversal.h"
33 #include "sky/engine/core/dom/ExceptionCode.h"
34 29
35 namespace blink { 30 namespace blink {
36 31
37 using namespace WTF;
38
39 DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(HTMLElement); 32 DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(HTMLElement);
40 33
41 String HTMLElement::contentEditable() const
42 {
43 const AtomicString& value = getAttribute(HTMLNames::contenteditableAttr);
44
45 if (value.isNull())
46 return "inherit";
47 if (value.isEmpty() || equalIgnoringCase(value, "true"))
48 return "true";
49 if (equalIgnoringCase(value, "false"))
50 return "false";
51 if (equalIgnoringCase(value, "plaintext-only"))
52 return "plaintext-only";
53
54 return "inherit";
55 }
56
57 void HTMLElement::setContentEditable(const String& enabled, ExceptionState& exce ptionState)
58 {
59 if (equalIgnoringCase(enabled, "true"))
60 setAttribute(HTMLNames::contenteditableAttr, "true");
61 else if (equalIgnoringCase(enabled, "false"))
62 setAttribute(HTMLNames::contenteditableAttr, "false");
63 else if (equalIgnoringCase(enabled, "plaintext-only"))
64 setAttribute(HTMLNames::contenteditableAttr, "plaintext-only");
65 else if (equalIgnoringCase(enabled, "inherit"))
66 removeAttribute(HTMLNames::contenteditableAttr);
67 else
68 exceptionState.throwDOMException(SyntaxError, "The value provided ('" + enabled + "') is not one of 'true', 'false', 'plaintext-only', or 'inherit'.");
69 }
70
71 bool HTMLElement::spellcheck() const
72 {
73 return isSpellCheckingEnabled();
74 }
75
76 void HTMLElement::setSpellcheck(bool enable)
77 {
78 setAttribute(HTMLNames::spellcheckAttr, enable ? "true" : "false");
79 }
80
81
82 void HTMLElement::click()
83 {
84 dispatchSimulatedClick(0, SendNoEvents);
85 }
86
87 String HTMLElement::title() const
88 {
89 return getAttribute(HTMLNames::titleAttr);
90 }
91
92 short HTMLElement::tabIndex() const
93 {
94 if (supportsFocus())
95 return Element::tabIndex();
96 return -1;
97 }
98
99 // Returns the conforming 'dir' value associated with the state the attribute is in (in its canonical case), if any,
100 // or the empty string if the attribute is in a state that has no associated key word value or if the attribute is
101 // not in a defined state (e.g. the attribute is missing and there is no missing value default).
102 // http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interf aces.html#limited-to-only-known-values
103 static inline const AtomicString& toValidDirValue(const AtomicString& value)
104 {
105 DEFINE_STATIC_LOCAL(const AtomicString, ltrValue, ("ltr", AtomicString::Cons tructFromLiteral));
106 DEFINE_STATIC_LOCAL(const AtomicString, rtlValue, ("rtl", AtomicString::Cons tructFromLiteral));
107 DEFINE_STATIC_LOCAL(const AtomicString, autoValue, ("auto", AtomicString::Co nstructFromLiteral));
108
109 if (equalIgnoringCase(value, ltrValue))
110 return ltrValue;
111 if (equalIgnoringCase(value, rtlValue))
112 return rtlValue;
113 if (equalIgnoringCase(value, autoValue))
114 return autoValue;
115 return nullAtom;
116 }
117
118 const AtomicString& HTMLElement::dir()
119 {
120 return toValidDirValue(getAttribute(HTMLNames::dirAttr));
121 }
122
123 void HTMLElement::setDir(const AtomicString& value)
124 {
125 setAttribute(HTMLNames::dirAttr, value);
126 }
127
128 v8::Handle<v8::Object> HTMLElement::wrap(v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) 34 v8::Handle<v8::Object> HTMLElement::wrap(v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
129 { 35 {
130 return createV8HTMLWrapper(this, creationContext, isolate); 36 return createV8HTMLWrapper(this, creationContext, isolate);
131 } 37 }
132 38
133 } // namespace blink 39 } // namespace blink
OLDNEW
« no previous file with comments | « sky/engine/core/html/HTMLElement.h ('k') | sky/engine/core/html/HTMLElement.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698