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

Side by Side Diff: Source/WebCore/html/shadow/DateTimeFieldElement.cpp

Issue 11548051: Merge 137275 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1312/
Patch Set: Created 8 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 13 matching lines...) Expand all
24 */ 24 */
25 25
26 #include "config.h" 26 #include "config.h"
27 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI) 27 #if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
28 #include "DateTimeFieldElement.h" 28 #include "DateTimeFieldElement.h"
29 29
30 #include "DateComponents.h" 30 #include "DateComponents.h"
31 #include "HTMLNames.h" 31 #include "HTMLNames.h"
32 #include "KeyboardEvent.h" 32 #include "KeyboardEvent.h"
33 #include "LocalizedStrings.h" 33 #include "LocalizedStrings.h"
34 #include "PlatformLocale.h"
34 #include "RenderObject.h" 35 #include "RenderObject.h"
35 #include "Text.h" 36 #include "Text.h"
36 #include <wtf/text/WTFString.h> 37 #include <wtf/text/WTFString.h>
37 38
38 namespace WebCore { 39 namespace WebCore {
39 40
40 using namespace HTMLNames; 41 using namespace HTMLNames;
41 42
42 DateTimeFieldElement::FieldOwner::~FieldOwner() 43 DateTimeFieldElement::FieldOwner::~FieldOwner()
43 { 44 {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 if (keyboardEvent->getModifierState("Alt")) 84 if (keyboardEvent->getModifierState("Alt"))
84 return; 85 return;
85 keyboardEvent->setDefaultHandled(); 86 keyboardEvent->setDefaultHandled();
86 stepDown(); 87 stepDown();
87 return; 88 return;
88 } 89 }
89 90
90 if (keyIdentifier == "Left") { 91 if (keyIdentifier == "Left") {
91 if (!m_fieldOwner) 92 if (!m_fieldOwner)
92 return; 93 return;
93 if (isRTL() ? m_fieldOwner->focusOnNextField(*this) : m_fieldOwner->focu sOnPreviousField(*this)) 94 // FIXME: We'd like to use FocusController::advanceFocus(FocusDirectionL eft, ...)
95 // but it doesn't work for shadow nodes. webkit.org/b/104650
96 if (!localeForOwner().isRTL() && m_fieldOwner->focusOnPreviousField(*thi s))
94 keyboardEvent->setDefaultHandled(); 97 keyboardEvent->setDefaultHandled();
95 return; 98 return;
96 } 99 }
97 100
98 if (keyIdentifier == "Right") { 101 if (keyIdentifier == "Right") {
99 if (!m_fieldOwner) 102 if (!m_fieldOwner)
100 return; 103 return;
101 if (isRTL() ? m_fieldOwner->focusOnPreviousField(*this) : m_fieldOwner-> focusOnNextField(*this)) 104 // FIXME: We'd like to use FocusController::advanceFocus(FocusDirectionR ight, ...)
105 // but it doesn't work for shadow nodes. webkit.org/b/104650
106 if (!localeForOwner().isRTL() && m_fieldOwner->focusOnNextField(*this))
102 keyboardEvent->setDefaultHandled(); 107 keyboardEvent->setDefaultHandled();
103 return; 108 return;
104 } 109 }
105 110
106 if (keyIdentifier == "Up") { 111 if (keyIdentifier == "Up") {
107 keyboardEvent->setDefaultHandled(); 112 keyboardEvent->setDefaultHandled();
108 stepUp(); 113 stepUp();
109 return; 114 return;
110 } 115 }
111 116
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 if (m_fieldOwner && m_fieldOwner->isFieldOwnerDisabledOrReadOnly()) 161 if (m_fieldOwner && m_fieldOwner->isFieldOwnerDisabledOrReadOnly())
157 return false; 162 return false;
158 return HTMLElement::isFocusable(); 163 return HTMLElement::isFocusable();
159 } 164 }
160 165
161 bool DateTimeFieldElement::isReadOnly() const 166 bool DateTimeFieldElement::isReadOnly() const
162 { 167 {
163 return fastHasAttribute(readonlyAttr); 168 return fastHasAttribute(readonlyAttr);
164 } 169 }
165 170
166 bool DateTimeFieldElement::isRTL() const 171 Locale& DateTimeFieldElement::localeForOwner() const
167 { 172 {
168 return renderer() && renderer()->style()->direction() == RTL; 173 return document()->getCachedLocale(localeIdentifier());
169 } 174 }
170 175
171 AtomicString DateTimeFieldElement::localeIdentifier() const 176 AtomicString DateTimeFieldElement::localeIdentifier() const
172 { 177 {
173 return m_fieldOwner ? m_fieldOwner->localeIdentifier() : nullAtom; 178 return m_fieldOwner ? m_fieldOwner->localeIdentifier() : nullAtom;
174 } 179 }
175 180
176 float DateTimeFieldElement::maximumWidth(const Font&) 181 float DateTimeFieldElement::maximumWidth(const Font&)
177 { 182 {
178 const float paddingLeftAndRight = 2; // This should match to html.css. 183 const float paddingLeftAndRight = 2; // This should match to html.css.
(...skipping 25 matching lines...) Expand all
204 setAttribute(aria_valuetextAttr, hasValue() ? newVisibleValue : AXDateTimeFi eldEmptyValueText()); 209 setAttribute(aria_valuetextAttr, hasValue() ? newVisibleValue : AXDateTimeFi eldEmptyValueText());
205 setAttribute(aria_valuenowAttr, newVisibleValue); 210 setAttribute(aria_valuenowAttr, newVisibleValue);
206 211
207 if (eventBehavior == DispatchEvent && m_fieldOwner) 212 if (eventBehavior == DispatchEvent && m_fieldOwner)
208 m_fieldOwner->fieldValueChanged(); 213 m_fieldOwner->fieldValueChanged();
209 } 214 }
210 215
211 } // namespace WebCore 216 } // namespace WebCore
212 217
213 #endif 218 #endif
OLDNEW
« no previous file with comments | « Source/WebCore/html/shadow/DateTimeFieldElement.h ('k') | Source/WebCore/html/shadow/DateTimeNumericFieldElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698