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

Side by Side Diff: ui/views/controls/textfield/textfield.cc

Issue 2027133002: Modify ui::TextInputClient to use ui::TextEditCommand enum in place of resource ids. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@refactor4_up_down_mac
Patch Set: Created 4 years, 6 months 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 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/controls/textfield/textfield.h" 5 #include "ui/views/controls/textfield/textfield.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 #include "ui/events/linux/text_edit_key_bindings_delegate_auralinux.h" 55 #include "ui/events/linux/text_edit_key_bindings_delegate_auralinux.h"
56 #endif 56 #endif
57 57
58 namespace views { 58 namespace views {
59 59
60 namespace { 60 namespace {
61 61
62 // Default placeholder text color. 62 // Default placeholder text color.
63 const SkColor kDefaultPlaceholderTextColor = SK_ColorLTGRAY; 63 const SkColor kDefaultPlaceholderTextColor = SK_ColorLTGRAY;
64 64
65 const int kNoCommand = 0;
66
67 void ConvertRectToScreen(const View* src, gfx::Rect* r) { 65 void ConvertRectToScreen(const View* src, gfx::Rect* r) {
68 DCHECK(src); 66 DCHECK(src);
69 67
70 gfx::Point new_origin = r->origin(); 68 gfx::Point new_origin = r->origin();
71 View::ConvertPointToScreen(src, &new_origin); 69 View::ConvertPointToScreen(src, &new_origin);
72 r->set_origin(new_origin); 70 r->set_origin(new_origin);
73 } 71 }
74 72
75 // Get the drag selection timer delay, respecting animation scaling for testing. 73 // Get the drag selection timer delay, respecting animation scaling for testing.
76 int GetDragSelectionDelay() { 74 int GetDragSelectionDelay() {
77 switch (ui::ScopedAnimationDurationScaleMode::duration_scale_mode()) { 75 switch (ui::ScopedAnimationDurationScaleMode::duration_scale_mode()) {
78 case ui::ScopedAnimationDurationScaleMode::NORMAL_DURATION: return 100; 76 case ui::ScopedAnimationDurationScaleMode::NORMAL_DURATION: return 100;
79 case ui::ScopedAnimationDurationScaleMode::FAST_DURATION: return 25; 77 case ui::ScopedAnimationDurationScaleMode::FAST_DURATION: return 25;
80 case ui::ScopedAnimationDurationScaleMode::SLOW_DURATION: return 400; 78 case ui::ScopedAnimationDurationScaleMode::SLOW_DURATION: return 400;
81 case ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION: return 1; 79 case ui::ScopedAnimationDurationScaleMode::NON_ZERO_DURATION: return 1;
82 case ui::ScopedAnimationDurationScaleMode::ZERO_DURATION: return 0; 80 case ui::ScopedAnimationDurationScaleMode::ZERO_DURATION: return 0;
83 } 81 }
84 return 100; 82 return 100;
85 } 83 }
86 84
87 // Get the default command for a given key |event|. 85 // Get the default command for a given key |event|.
88 int GetCommandForKeyEvent(const ui::KeyEvent& event) { 86 ui::TextEditCommand GetCommandForKeyEvent(const ui::KeyEvent& event) {
89 if (event.type() != ui::ET_KEY_PRESSED || event.IsUnicodeKeyCode()) 87 if (event.type() != ui::ET_KEY_PRESSED || event.IsUnicodeKeyCode())
90 return kNoCommand; 88 return ui::TextEditCommand::INVALID_COMMAND;
91 89
92 const bool shift = event.IsShiftDown(); 90 const bool shift = event.IsShiftDown();
93 const bool control = event.IsControlDown(); 91 const bool control = event.IsControlDown();
94 const bool alt = event.IsAltDown() || event.IsAltGrDown(); 92 const bool alt = event.IsAltDown() || event.IsAltGrDown();
95 switch (event.key_code()) { 93 switch (event.key_code()) {
96 case ui::VKEY_Z: 94 case ui::VKEY_Z:
97 if (control && !shift && !alt) 95 if (control && !shift && !alt)
98 return IDS_APP_UNDO; 96 return ui::TextEditCommand::UNDO;
99 return (control && shift && !alt) ? IDS_APP_REDO : kNoCommand; 97 return (control && shift && !alt) ? ui::TextEditCommand::REDO
98 : ui::TextEditCommand::INVALID_COMMAND;
100 case ui::VKEY_Y: 99 case ui::VKEY_Y:
101 return (control && !alt) ? IDS_APP_REDO : kNoCommand; 100 return (control && !alt) ? ui::TextEditCommand::REDO
101 : ui::TextEditCommand::INVALID_COMMAND;
102 case ui::VKEY_A: 102 case ui::VKEY_A:
103 return (control && !alt) ? IDS_APP_SELECT_ALL : kNoCommand; 103 return (control && !alt) ? ui::TextEditCommand::SELECT_ALL
104 : ui::TextEditCommand::INVALID_COMMAND;
104 case ui::VKEY_X: 105 case ui::VKEY_X:
105 return (control && !alt) ? IDS_APP_CUT : kNoCommand; 106 return (control && !alt) ? ui::TextEditCommand::CUT
107 : ui::TextEditCommand::INVALID_COMMAND;
106 case ui::VKEY_C: 108 case ui::VKEY_C:
107 return (control && !alt) ? IDS_APP_COPY : kNoCommand; 109 return (control && !alt) ? ui::TextEditCommand::COPY
110 : ui::TextEditCommand::INVALID_COMMAND;
108 case ui::VKEY_V: 111 case ui::VKEY_V:
109 return (control && !alt) ? IDS_APP_PASTE : kNoCommand; 112 return (control && !alt) ? ui::TextEditCommand::PASTE
113 : ui::TextEditCommand::INVALID_COMMAND;
110 case ui::VKEY_RIGHT: 114 case ui::VKEY_RIGHT:
111 // Ignore alt+right, which may be a browser navigation shortcut. 115 // Ignore alt+right, which may be a browser navigation shortcut.
112 if (alt) 116 if (alt)
113 return kNoCommand; 117 return ui::TextEditCommand::INVALID_COMMAND;
114 if (!shift) 118 if (!shift)
115 return control ? IDS_MOVE_WORD_RIGHT : IDS_MOVE_RIGHT; 119 return control ? ui::TextEditCommand::MOVE_WORD_RIGHT
116 return control ? IDS_MOVE_WORD_RIGHT_AND_MODIFY_SELECTION : 120 : ui::TextEditCommand::MOVE_RIGHT;
117 IDS_MOVE_RIGHT_AND_MODIFY_SELECTION; 121 return control ? ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION
122 : ui::TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION;
118 case ui::VKEY_LEFT: 123 case ui::VKEY_LEFT:
119 // Ignore alt+left, which may be a browser navigation shortcut. 124 // Ignore alt+left, which may be a browser navigation shortcut.
120 if (alt) 125 if (alt)
121 return kNoCommand; 126 return ui::TextEditCommand::INVALID_COMMAND;
122 if (!shift) 127 if (!shift)
123 return control ? IDS_MOVE_WORD_LEFT : IDS_MOVE_LEFT; 128 return control ? ui::TextEditCommand::MOVE_WORD_LEFT
124 return control ? IDS_MOVE_WORD_LEFT_AND_MODIFY_SELECTION : 129 : ui::TextEditCommand::MOVE_LEFT;
125 IDS_MOVE_LEFT_AND_MODIFY_SELECTION; 130 return control ? ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION
131 : ui::TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION;
126 case ui::VKEY_HOME: 132 case ui::VKEY_HOME:
127 return shift ? IDS_MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION : 133 return shift ? ui::TextEditCommand::
128 IDS_MOVE_TO_BEGINNING_OF_LINE; 134 MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION
135 : ui::TextEditCommand::MOVE_TO_BEGINNING_OF_LINE;
129 case ui::VKEY_END: 136 case ui::VKEY_END:
130 return shift ? IDS_MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION : 137 return shift
131 IDS_MOVE_TO_END_OF_LINE; 138 ? ui::TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION
139 : ui::TextEditCommand::MOVE_TO_END_OF_LINE;
132 case ui::VKEY_BACK: 140 case ui::VKEY_BACK:
133 if (!control) 141 if (!control)
134 return IDS_DELETE_BACKWARD; 142 return ui::TextEditCommand::DELETE_BACKWARD;
135 #if defined(OS_LINUX) 143 #if defined(OS_LINUX)
136 // Only erase by line break on Linux and ChromeOS. 144 // Only erase by line break on Linux and ChromeOS.
137 if (shift) 145 if (shift)
138 return IDS_DELETE_TO_BEGINNING_OF_LINE; 146 return ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE;
139 #endif 147 #endif
140 return IDS_DELETE_WORD_BACKWARD; 148 return ui::TextEditCommand::DELETE_WORD_BACKWARD;
141 case ui::VKEY_DELETE: 149 case ui::VKEY_DELETE:
142 #if defined(OS_LINUX) 150 #if defined(OS_LINUX)
143 // Only erase by line break on Linux and ChromeOS. 151 // Only erase by line break on Linux and ChromeOS.
144 if (shift && control) 152 if (shift && control)
145 return IDS_DELETE_TO_END_OF_LINE; 153 return ui::TextEditCommand::DELETE_TO_END_OF_LINE;
146 #endif 154 #endif
147 if (control) 155 if (control)
148 return IDS_DELETE_WORD_FORWARD; 156 return ui::TextEditCommand::DELETE_WORD_FORWARD;
149 return shift ? IDS_APP_CUT : IDS_DELETE_FORWARD; 157 return shift ? ui::TextEditCommand::CUT
158 : ui::TextEditCommand::DELETE_FORWARD;
150 case ui::VKEY_INSERT: 159 case ui::VKEY_INSERT:
151 if (control && !shift) 160 if (control && !shift)
152 return IDS_APP_COPY; 161 return ui::TextEditCommand::COPY;
153 return (shift && !control) ? IDS_APP_PASTE : kNoCommand; 162 return (shift && !control) ? ui::TextEditCommand::PASTE
163 : ui::TextEditCommand::INVALID_COMMAND;
154 default: 164 default:
155 return kNoCommand; 165 return ui::TextEditCommand::INVALID_COMMAND;
156 } 166 }
157 } 167 }
158 168
159 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 169 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
160 // Convert a custom text edit |command| to the equivalent views command ID. 170 // Convert a custom text edit |command| to the equivalent views command ID.
161 int GetViewsCommand(const ui::TextEditCommandAuraLinux& command, bool rtl) { 171 ui::TextEditCommand GetViewsCommand(const ui::TextEditCommandAuraLinux& command,
172 bool rtl) {
162 const bool select = command.extend_selection(); 173 const bool select = command.extend_selection();
163 switch (command.command_id()) { 174 switch (command.command_id()) {
164 case ui::TextEditCommandAuraLinux::COPY: 175 case ui::TextEditCommandAuraLinux::COPY:
165 return IDS_APP_COPY; 176 return ui::TextEditCommand::COPY;
166 case ui::TextEditCommandAuraLinux::CUT: 177 case ui::TextEditCommandAuraLinux::CUT:
167 return IDS_APP_CUT; 178 return ui::TextEditCommand::CUT;
168 case ui::TextEditCommandAuraLinux::DELETE_BACKWARD: 179 case ui::TextEditCommandAuraLinux::DELETE_BACKWARD:
169 return IDS_DELETE_BACKWARD; 180 return ui::TextEditCommand::DELETE_BACKWARD;
170 case ui::TextEditCommandAuraLinux::DELETE_FORWARD: 181 case ui::TextEditCommandAuraLinux::DELETE_FORWARD:
171 return IDS_DELETE_FORWARD; 182 return ui::TextEditCommand::DELETE_FORWARD;
172 case ui::TextEditCommandAuraLinux::DELETE_TO_BEGINING_OF_LINE: 183 case ui::TextEditCommandAuraLinux::DELETE_TO_BEGINING_OF_LINE:
173 case ui::TextEditCommandAuraLinux::DELETE_TO_BEGINING_OF_PARAGRAPH: 184 case ui::TextEditCommandAuraLinux::DELETE_TO_BEGINING_OF_PARAGRAPH:
174 return IDS_DELETE_TO_BEGINNING_OF_LINE; 185 return ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE;
175 case ui::TextEditCommandAuraLinux::DELETE_TO_END_OF_LINE: 186 case ui::TextEditCommandAuraLinux::DELETE_TO_END_OF_LINE:
176 case ui::TextEditCommandAuraLinux::DELETE_TO_END_OF_PARAGRAPH: 187 case ui::TextEditCommandAuraLinux::DELETE_TO_END_OF_PARAGRAPH:
177 return IDS_DELETE_TO_END_OF_LINE; 188 return ui::TextEditCommand::DELETE_TO_END_OF_LINE;
178 case ui::TextEditCommandAuraLinux::DELETE_WORD_BACKWARD: 189 case ui::TextEditCommandAuraLinux::DELETE_WORD_BACKWARD:
179 return IDS_DELETE_WORD_BACKWARD; 190 return ui::TextEditCommand::DELETE_WORD_BACKWARD;
180 case ui::TextEditCommandAuraLinux::DELETE_WORD_FORWARD: 191 case ui::TextEditCommandAuraLinux::DELETE_WORD_FORWARD:
181 return IDS_DELETE_WORD_FORWARD; 192 return ui::TextEditCommand::DELETE_WORD_FORWARD;
182 case ui::TextEditCommandAuraLinux::INSERT_TEXT: 193 case ui::TextEditCommandAuraLinux::INSERT_TEXT:
183 return kNoCommand; 194 return ui::TextEditCommand::INVALID_COMMAND;
184 case ui::TextEditCommandAuraLinux::MOVE_BACKWARD: 195 case ui::TextEditCommandAuraLinux::MOVE_BACKWARD:
185 if (rtl) 196 if (rtl)
186 return select ? IDS_MOVE_RIGHT_AND_MODIFY_SELECTION : IDS_MOVE_RIGHT; 197 return select ? ui::TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION
187 return select ? IDS_MOVE_LEFT_AND_MODIFY_SELECTION : IDS_MOVE_LEFT; 198 : ui::TextEditCommand::MOVE_RIGHT;
199 return select ? ui::TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION
200 : ui::TextEditCommand::MOVE_LEFT;
188 case ui::TextEditCommandAuraLinux::MOVE_DOWN: 201 case ui::TextEditCommandAuraLinux::MOVE_DOWN:
189 return IDS_MOVE_DOWN; 202 return ui::TextEditCommand::MOVE_DOWN;
190 case ui::TextEditCommandAuraLinux::MOVE_FORWARD: 203 case ui::TextEditCommandAuraLinux::MOVE_FORWARD:
191 if (rtl) 204 if (rtl)
192 return select ? IDS_MOVE_LEFT_AND_MODIFY_SELECTION : IDS_MOVE_LEFT; 205 return select ? ui::TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION
193 return select ? IDS_MOVE_RIGHT_AND_MODIFY_SELECTION : IDS_MOVE_RIGHT; 206 : ui::TextEditCommand::MOVE_LEFT;
207 return select ? ui::TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION
208 : ui::TextEditCommand::MOVE_RIGHT;
194 case ui::TextEditCommandAuraLinux::MOVE_LEFT: 209 case ui::TextEditCommandAuraLinux::MOVE_LEFT:
195 return select ? IDS_MOVE_LEFT_AND_MODIFY_SELECTION : IDS_MOVE_LEFT; 210 return select ? ui::TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION
211 : ui::TextEditCommand::MOVE_LEFT;
196 // Todo why are these not mapped-- for omnibox? 212 // Todo why are these not mapped-- for omnibox?
197 case ui::TextEditCommandAuraLinux::MOVE_PAGE_DOWN: 213 case ui::TextEditCommandAuraLinux::MOVE_PAGE_DOWN:
198 case ui::TextEditCommandAuraLinux::MOVE_PAGE_UP: 214 case ui::TextEditCommandAuraLinux::MOVE_PAGE_UP:
199 return kNoCommand; 215 return ui::TextEditCommand::INVALID_COMMAND;
200 case ui::TextEditCommandAuraLinux::MOVE_RIGHT: 216 case ui::TextEditCommandAuraLinux::MOVE_RIGHT:
201 return select ? IDS_MOVE_RIGHT_AND_MODIFY_SELECTION : IDS_MOVE_RIGHT; 217 return select ? ui::TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION
218 : ui::TextEditCommand::MOVE_RIGHT;
202 case ui::TextEditCommandAuraLinux::MOVE_TO_BEGINING_OF_DOCUMENT: 219 case ui::TextEditCommandAuraLinux::MOVE_TO_BEGINING_OF_DOCUMENT:
203 case ui::TextEditCommandAuraLinux::MOVE_TO_BEGINING_OF_LINE: 220 case ui::TextEditCommandAuraLinux::MOVE_TO_BEGINING_OF_LINE:
204 case ui::TextEditCommandAuraLinux::MOVE_TO_BEGINING_OF_PARAGRAPH: 221 case ui::TextEditCommandAuraLinux::MOVE_TO_BEGINING_OF_PARAGRAPH:
205 return select ? IDS_MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION : 222 return select ? ui::TextEditCommand::
206 IDS_MOVE_TO_BEGINNING_OF_LINE; 223 MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION
224 : ui::TextEditCommand::MOVE_TO_BEGINNING_OF_LINE;
207 case ui::TextEditCommandAuraLinux::MOVE_TO_END_OF_DOCUMENT: 225 case ui::TextEditCommandAuraLinux::MOVE_TO_END_OF_DOCUMENT:
208 case ui::TextEditCommandAuraLinux::MOVE_TO_END_OF_LINE: 226 case ui::TextEditCommandAuraLinux::MOVE_TO_END_OF_LINE:
209 case ui::TextEditCommandAuraLinux::MOVE_TO_END_OF_PARAGRAPH: 227 case ui::TextEditCommandAuraLinux::MOVE_TO_END_OF_PARAGRAPH:
210 return select ? IDS_MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION : 228 return select
211 IDS_MOVE_TO_END_OF_LINE; 229 ? ui::TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION
230 : ui::TextEditCommand::MOVE_TO_END_OF_LINE;
212 case ui::TextEditCommandAuraLinux::MOVE_UP: 231 case ui::TextEditCommandAuraLinux::MOVE_UP:
213 return IDS_MOVE_UP; 232 return ui::TextEditCommand::MOVE_UP;
214 case ui::TextEditCommandAuraLinux::MOVE_WORD_BACKWARD: 233 case ui::TextEditCommandAuraLinux::MOVE_WORD_BACKWARD:
215 if (rtl) { 234 if (rtl) {
216 return select ? IDS_MOVE_WORD_RIGHT_AND_MODIFY_SELECTION : 235 return select
217 IDS_MOVE_WORD_RIGHT; 236 ? ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION
237 : ui::TextEditCommand::MOVE_WORD_RIGHT;
218 } 238 }
219 return select ? IDS_MOVE_WORD_LEFT_AND_MODIFY_SELECTION : 239 return select ? ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION
220 IDS_MOVE_WORD_LEFT; 240 : ui::TextEditCommand::MOVE_WORD_LEFT;
221 case ui::TextEditCommandAuraLinux::MOVE_WORD_FORWARD: 241 case ui::TextEditCommandAuraLinux::MOVE_WORD_FORWARD:
222 if (rtl) { 242 if (rtl) {
223 return select ? IDS_MOVE_WORD_LEFT_AND_MODIFY_SELECTION : 243 return select ? ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION
224 IDS_MOVE_WORD_LEFT; 244 : ui::TextEditCommand::MOVE_WORD_LEFT;
225 } 245 }
226 return select ? IDS_MOVE_WORD_RIGHT_AND_MODIFY_SELECTION : 246 return select ? ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION
227 IDS_MOVE_WORD_RIGHT; 247 : ui::TextEditCommand::MOVE_WORD_RIGHT;
228 case ui::TextEditCommandAuraLinux::MOVE_WORD_LEFT: 248 case ui::TextEditCommandAuraLinux::MOVE_WORD_LEFT:
229 return select ? IDS_MOVE_WORD_LEFT_AND_MODIFY_SELECTION : 249 return select ? ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION
230 IDS_MOVE_WORD_LEFT; 250 : ui::TextEditCommand::MOVE_WORD_LEFT;
231 case ui::TextEditCommandAuraLinux::MOVE_WORD_RIGHT: 251 case ui::TextEditCommandAuraLinux::MOVE_WORD_RIGHT:
232 return select ? IDS_MOVE_WORD_RIGHT_AND_MODIFY_SELECTION : 252 return select ? ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION
233 IDS_MOVE_WORD_RIGHT; 253 : ui::TextEditCommand::MOVE_WORD_RIGHT;
234 case ui::TextEditCommandAuraLinux::PASTE: 254 case ui::TextEditCommandAuraLinux::PASTE:
235 return IDS_APP_PASTE; 255 return ui::TextEditCommand::PASTE;
236 case ui::TextEditCommandAuraLinux::SELECT_ALL: 256 case ui::TextEditCommandAuraLinux::SELECT_ALL:
237 return IDS_APP_SELECT_ALL; 257 return ui::TextEditCommand::SELECT_ALL;
238 case ui::TextEditCommandAuraLinux::SET_MARK: 258 case ui::TextEditCommandAuraLinux::SET_MARK:
239 case ui::TextEditCommandAuraLinux::UNSELECT: 259 case ui::TextEditCommandAuraLinux::UNSELECT:
240 case ui::TextEditCommandAuraLinux::INVALID_COMMAND: 260 case ui::TextEditCommandAuraLinux::INVALID_COMMAND:
241 return kNoCommand; 261 return ui::TextEditCommand::INVALID_COMMAND;
242 } 262 }
243 return kNoCommand; 263 return ui::TextEditCommand::INVALID_COMMAND;
244 } 264 }
245 #endif 265 #endif
246 266
247 const gfx::FontList& GetDefaultFontList() { 267 const gfx::FontList& GetDefaultFontList() {
248 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 268 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
249 return rb.GetFontListWithDelta(ui::kLabelFontSizeDelta); 269 return rb.GetFontListWithDelta(ui::kLabelFontSizeDelta);
250 } 270 }
251 271
252 // Returns true if |command_id| is a menu action installed by this textfield. 272 // Returns ui::TextEditCommand corresponding to |command_id| menu action. Keep
253 // Keep in sync with UpdateContextMenu. 273 // in sync with UpdateContextMenu.
254 bool IsMenuCommand(int command_id) { 274 ui::TextEditCommand GetTextEditCommandFromMenuCommand(int command_id) {
255 switch (command_id) { 275 switch (command_id) {
256 case IDS_APP_UNDO: 276 case IDS_APP_UNDO:
277 return ui::TextEditCommand::UNDO;
257 case IDS_APP_CUT: 278 case IDS_APP_CUT:
279 return ui::TextEditCommand::CUT;
258 case IDS_APP_COPY: 280 case IDS_APP_COPY:
281 return ui::TextEditCommand::COPY;
259 case IDS_APP_PASTE: 282 case IDS_APP_PASTE:
283 return ui::TextEditCommand::PASTE;
260 case IDS_APP_DELETE: 284 case IDS_APP_DELETE:
285 return ui::TextEditCommand::DELETE_SELECTION;
261 case IDS_APP_SELECT_ALL: 286 case IDS_APP_SELECT_ALL:
262 return true; 287 return ui::TextEditCommand::SELECT_ALL;
288 default:
289 return ui::TextEditCommand::INVALID_COMMAND;
263 } 290 }
264 return false;
265 } 291 }
266 292
267 } // namespace 293 } // namespace
268 294
269 // static 295 // static
270 const char Textfield::kViewClassName[] = "Textfield"; 296 const char Textfield::kViewClassName[] = "Textfield";
271 const int Textfield::kTextPadding = 3; 297 const int Textfield::kTextPadding = 3;
272 298
273 // static 299 // static
274 size_t Textfield::GetCaretBlinkMs() { 300 size_t Textfield::GetCaretBlinkMs() {
275 static const size_t default_value = 500; 301 static const size_t default_value = 500;
276 #if defined(OS_WIN) 302 #if defined(OS_WIN)
277 static const size_t system_value = ::GetCaretBlinkTime(); 303 static const size_t system_value = ::GetCaretBlinkTime();
278 if (system_value != 0) 304 if (system_value != 0)
279 return (system_value == INFINITE) ? 0 : system_value; 305 return (system_value == INFINITE) ? 0 : system_value;
280 #endif 306 #endif
281 return default_value; 307 return default_value;
282 } 308 }
283 309
284 Textfield::Textfield() 310 Textfield::Textfield()
285 : model_(new TextfieldModel(this)), 311 : model_(new TextfieldModel(this)),
286 controller_(NULL), 312 controller_(NULL),
287 scheduled_edit_command_(kNoCommand), 313 scheduled_edit_command_(ui::TextEditCommand::INVALID_COMMAND),
288 read_only_(false), 314 read_only_(false),
289 default_width_in_chars_(0), 315 default_width_in_chars_(0),
290 use_default_text_color_(true), 316 use_default_text_color_(true),
291 use_default_background_color_(true), 317 use_default_background_color_(true),
292 use_default_selection_text_color_(true), 318 use_default_selection_text_color_(true),
293 use_default_selection_background_color_(true), 319 use_default_selection_background_color_(true),
294 text_color_(SK_ColorBLACK), 320 text_color_(SK_ColorBLACK),
295 background_color_(SK_ColorWHITE), 321 background_color_(SK_ColorWHITE),
296 selection_text_color_(SK_ColorWHITE), 322 selection_text_color_(SK_ColorWHITE),
297 selection_background_color_(SK_ColorBLUE), 323 selection_background_color_(SK_ColorBLUE),
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 drag_selection_timer_.Stop(); 728 drag_selection_timer_.Stop();
703 // Cancel suspected drag initiations, the user was clicking in the selection. 729 // Cancel suspected drag initiations, the user was clicking in the selection.
704 if (initiating_drag_) 730 if (initiating_drag_)
705 MoveCursorTo(event.location(), false); 731 MoveCursorTo(event.location(), false);
706 initiating_drag_ = false; 732 initiating_drag_ = false;
707 UpdateSelectionClipboard(); 733 UpdateSelectionClipboard();
708 OnAfterUserAction(); 734 OnAfterUserAction();
709 } 735 }
710 736
711 bool Textfield::OnKeyPressed(const ui::KeyEvent& event) { 737 bool Textfield::OnKeyPressed(const ui::KeyEvent& event) {
712 int edit_command = scheduled_edit_command_; 738 ui::TextEditCommand edit_command = scheduled_edit_command_;
713 scheduled_edit_command_ = kNoCommand; 739 scheduled_edit_command_ = ui::TextEditCommand::INVALID_COMMAND;
714 740
715 // Since HandleKeyEvent() might destroy |this|, get a weak pointer and verify 741 // Since HandleKeyEvent() might destroy |this|, get a weak pointer and verify
716 // it isn't null before proceeding. 742 // it isn't null before proceeding.
717 base::WeakPtr<Textfield> textfield(weak_ptr_factory_.GetWeakPtr()); 743 base::WeakPtr<Textfield> textfield(weak_ptr_factory_.GetWeakPtr());
718 744
719 bool handled = controller_ && controller_->HandleKeyEvent(this, event); 745 bool handled = controller_ && controller_->HandleKeyEvent(this, event);
720 746
721 if (!textfield) 747 if (!textfield)
722 return handled; 748 return handled;
723 749
724 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 750 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
725 ui::TextEditKeyBindingsDelegateAuraLinux* delegate = 751 ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
726 ui::GetTextEditKeyBindingsDelegate(); 752 ui::GetTextEditKeyBindingsDelegate();
727 std::vector<ui::TextEditCommandAuraLinux> commands; 753 std::vector<ui::TextEditCommandAuraLinux> commands;
728 if (!handled && delegate && delegate->MatchEvent(event, &commands)) { 754 if (!handled && delegate && delegate->MatchEvent(event, &commands)) {
729 const bool rtl = GetTextDirection() == base::i18n::RIGHT_TO_LEFT; 755 const bool rtl = GetTextDirection() == base::i18n::RIGHT_TO_LEFT;
730 for (size_t i = 0; i < commands.size(); ++i) { 756 for (size_t i = 0; i < commands.size(); ++i) {
731 const int command = GetViewsCommand(commands[i], rtl); 757 const ui::TextEditCommand command = GetViewsCommand(commands[i], rtl);
732 if (IsEditCommandEnabled(command)) { 758 if (IsEditCommandEnabled(command)) {
733 ExecuteEditCommand(command); 759 ExecuteEditCommand(command);
734 handled = true; 760 handled = true;
735 } 761 }
736 } 762 }
737 return handled; 763 return handled;
738 } 764 }
739 #endif 765 #endif
740 766
741 if (edit_command == kNoCommand) 767 if (edit_command == ui::TextEditCommand::INVALID_COMMAND)
742 edit_command = GetCommandForKeyEvent(event); 768 edit_command = GetCommandForKeyEvent(event);
743 769
744 if (!handled && IsEditCommandEnabled(edit_command)) { 770 if (!handled && IsEditCommandEnabled(edit_command)) {
745 ExecuteEditCommand(edit_command); 771 ExecuteEditCommand(edit_command);
746 handled = true; 772 handled = true;
747 } 773 }
748 return handled; 774 return handled;
749 } 775 }
750 776
751 void Textfield::OnGestureEvent(ui::GestureEvent* event) { 777 void Textfield::OnGestureEvent(ui::GestureEvent* event) {
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
1233 } 1259 }
1234 1260
1235 //////////////////////////////////////////////////////////////////////////////// 1261 ////////////////////////////////////////////////////////////////////////////////
1236 // Textfield, ui::SimpleMenuModel::Delegate overrides: 1262 // Textfield, ui::SimpleMenuModel::Delegate overrides:
1237 1263
1238 bool Textfield::IsCommandIdChecked(int command_id) const { 1264 bool Textfield::IsCommandIdChecked(int command_id) const {
1239 return true; 1265 return true;
1240 } 1266 }
1241 1267
1242 bool Textfield::IsCommandIdEnabled(int command_id) const { 1268 bool Textfield::IsCommandIdEnabled(int command_id) const {
1243 return IsMenuCommand(command_id) && 1269 return Textfield::IsEditCommandEnabled(
1244 Textfield::IsEditCommandEnabled(command_id); 1270 GetTextEditCommandFromMenuCommand(command_id));
1245 } 1271 }
1246 1272
1247 bool Textfield::GetAcceleratorForCommandId(int command_id, 1273 bool Textfield::GetAcceleratorForCommandId(int command_id,
1248 ui::Accelerator* accelerator) { 1274 ui::Accelerator* accelerator) {
1249 switch (command_id) { 1275 switch (command_id) {
1250 case IDS_APP_UNDO: 1276 case IDS_APP_UNDO:
1251 *accelerator = ui::Accelerator(ui::VKEY_Z, ui::EF_CONTROL_DOWN); 1277 *accelerator = ui::Accelerator(ui::VKEY_Z, ui::EF_CONTROL_DOWN);
1252 return true; 1278 return true;
1253 1279
1254 case IDS_APP_CUT: 1280 case IDS_APP_CUT:
(...skipping 11 matching lines...) Expand all
1266 case IDS_APP_SELECT_ALL: 1292 case IDS_APP_SELECT_ALL:
1267 *accelerator = ui::Accelerator(ui::VKEY_A, ui::EF_CONTROL_DOWN); 1293 *accelerator = ui::Accelerator(ui::VKEY_A, ui::EF_CONTROL_DOWN);
1268 return true; 1294 return true;
1269 1295
1270 default: 1296 default:
1271 return false; 1297 return false;
1272 } 1298 }
1273 } 1299 }
1274 1300
1275 void Textfield::ExecuteCommand(int command_id, int event_flags) { 1301 void Textfield::ExecuteCommand(int command_id, int event_flags) {
1276 if (!Textfield::IsCommandIdEnabled(command_id)) 1302 Textfield::ExecuteEditCommand(GetTextEditCommandFromMenuCommand(command_id));
1277 return;
1278 Textfield::ExecuteEditCommand(command_id);
1279 } 1303 }
1280 1304
1281 //////////////////////////////////////////////////////////////////////////////// 1305 ////////////////////////////////////////////////////////////////////////////////
1282 // Textfield, ui::TextInputClient overrides: 1306 // Textfield, ui::TextInputClient overrides:
1283 1307
1284 void Textfield::SetCompositionText(const ui::CompositionText& composition) { 1308 void Textfield::SetCompositionText(const ui::CompositionText& composition) {
1285 if (GetTextInputType() == ui::TEXT_INPUT_TYPE_NONE) 1309 if (GetTextInputType() == ui::TEXT_INPUT_TYPE_NONE)
1286 return; 1310 return;
1287 1311
1288 OnBeforeUserAction(); 1312 OnBeforeUserAction();
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1490 1514
1491 range.set_start(range.start() - before); 1515 range.set_start(range.start() - before);
1492 range.set_end(range.end() + after); 1516 range.set_end(range.end() + after);
1493 gfx::Range text_range; 1517 gfx::Range text_range;
1494 if (GetTextRange(&text_range) && text_range.Contains(range)) 1518 if (GetTextRange(&text_range) && text_range.Contains(range))
1495 DeleteRange(range); 1519 DeleteRange(range);
1496 } 1520 }
1497 1521
1498 void Textfield::EnsureCaretInRect(const gfx::Rect& rect) {} 1522 void Textfield::EnsureCaretInRect(const gfx::Rect& rect) {}
1499 1523
1500 bool Textfield::IsEditCommandEnabled(int command_id) const { 1524 bool Textfield::IsEditCommandEnabled(ui::TextEditCommand command) const {
1501 base::string16 result; 1525 base::string16 result;
1502 bool editable = !read_only(); 1526 bool editable = !read_only();
1503 bool readable = text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD; 1527 bool readable = text_input_type_ != ui::TEXT_INPUT_TYPE_PASSWORD;
1504 switch (command_id) { 1528 switch (command) {
1505 case IDS_APP_UNDO: 1529 case ui::TextEditCommand::INVALID_COMMAND:
1530 return false;
1531 case ui::TextEditCommand::UNDO:
1506 return editable && model_->CanUndo(); 1532 return editable && model_->CanUndo();
1507 case IDS_APP_REDO: 1533 case ui::TextEditCommand::REDO:
1508 return editable && model_->CanRedo(); 1534 return editable && model_->CanRedo();
1509 case IDS_APP_CUT: 1535 case ui::TextEditCommand::CUT:
1510 return editable && readable && model_->HasSelection(); 1536 return editable && readable && model_->HasSelection();
1511 case IDS_APP_COPY: 1537 case ui::TextEditCommand::COPY:
1512 return readable && model_->HasSelection(); 1538 return readable && model_->HasSelection();
1513 case IDS_APP_PASTE: 1539 case ui::TextEditCommand::PASTE:
1514 ui::Clipboard::GetForCurrentThread()->ReadText( 1540 ui::Clipboard::GetForCurrentThread()->ReadText(
1515 ui::CLIPBOARD_TYPE_COPY_PASTE, &result); 1541 ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
1516 return editable && !result.empty(); 1542 return editable && !result.empty();
1517 case IDS_APP_DELETE: 1543 case ui::TextEditCommand::DELETE_SELECTION:
1518 return editable && model_->HasSelection(); 1544 return editable && model_->HasSelection();
1519 case IDS_APP_SELECT_ALL: 1545 case ui::TextEditCommand::SELECT_ALL:
1520 return !text().empty(); 1546 return !text().empty();
1521 case IDS_DELETE_FORWARD: 1547 case ui::TextEditCommand::DELETE_FORWARD:
1522 case IDS_DELETE_BACKWARD: 1548 case ui::TextEditCommand::DELETE_BACKWARD:
1523 case IDS_DELETE_TO_BEGINNING_OF_LINE: 1549 case ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE:
1524 case IDS_DELETE_TO_END_OF_LINE: 1550 case ui::TextEditCommand::DELETE_TO_END_OF_LINE:
1525 case IDS_DELETE_WORD_BACKWARD: 1551 case ui::TextEditCommand::DELETE_WORD_BACKWARD:
1526 case IDS_DELETE_WORD_FORWARD: 1552 case ui::TextEditCommand::DELETE_WORD_FORWARD:
1527 return editable; 1553 return editable;
1528 case IDS_MOVE_LEFT: 1554 case ui::TextEditCommand::MOVE_LEFT:
1529 case IDS_MOVE_LEFT_AND_MODIFY_SELECTION: 1555 case ui::TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION:
1530 case IDS_MOVE_RIGHT: 1556 case ui::TextEditCommand::MOVE_RIGHT:
1531 case IDS_MOVE_RIGHT_AND_MODIFY_SELECTION: 1557 case ui::TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION:
1532 case IDS_MOVE_WORD_LEFT: 1558 case ui::TextEditCommand::MOVE_WORD_LEFT:
1533 case IDS_MOVE_WORD_LEFT_AND_MODIFY_SELECTION: 1559 case ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION:
1534 case IDS_MOVE_WORD_RIGHT: 1560 case ui::TextEditCommand::MOVE_WORD_RIGHT:
1535 case IDS_MOVE_WORD_RIGHT_AND_MODIFY_SELECTION: 1561 case ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION:
1536 case IDS_MOVE_TO_BEGINNING_OF_LINE: 1562 case ui::TextEditCommand::MOVE_TO_BEGINNING_OF_LINE:
1537 case IDS_MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION: 1563 case ui::TextEditCommand::MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION:
1538 case IDS_MOVE_TO_END_OF_LINE: 1564 case ui::TextEditCommand::MOVE_TO_END_OF_LINE:
1539 case IDS_MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION: 1565 case ui::TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION:
1540 return true; 1566 return true;
1541 default: 1567 case ui::TextEditCommand::MOVE_UP:
1568 case ui::TextEditCommand::MOVE_DOWN:
1542 return false; 1569 return false;
1543 } 1570 }
1571 return false;
tapted 2016/06/06 07:48:02 NOTREACHED() before this?
karandeepb 2016/06/08 03:11:58 Done.
1544 } 1572 }
1545 1573
1546 void Textfield::SetEditCommandForNextKeyEvent(int command_id) { 1574 void Textfield::SetEditCommandForNextKeyEvent(ui::TextEditCommand command) {
1547 DCHECK_EQ(kNoCommand, scheduled_edit_command_); 1575 DCHECK(scheduled_edit_command_ == ui::TextEditCommand::INVALID_COMMAND);
1548 scheduled_edit_command_ = command_id; 1576 scheduled_edit_command_ = command;
1549 } 1577 }
1550 1578
1551 //////////////////////////////////////////////////////////////////////////////// 1579 ////////////////////////////////////////////////////////////////////////////////
1552 // Textfield, protected: 1580 // Textfield, protected:
1553 1581
1554 void Textfield::DoInsertChar(base::char16 ch) { 1582 void Textfield::DoInsertChar(base::char16 ch) {
1555 OnBeforeUserAction(); 1583 OnBeforeUserAction();
1556 skip_input_method_cancel_composition_ = true; 1584 skip_input_method_cancel_composition_ = true;
1557 if (GetRenderText()->insert_mode()) 1585 if (GetRenderText()->insert_mode())
1558 model_->InsertChar(ch); 1586 model_->InsertChar(ch);
1559 else 1587 else
1560 model_->ReplaceChar(ch); 1588 model_->ReplaceChar(ch);
1561 skip_input_method_cancel_composition_ = false; 1589 skip_input_method_cancel_composition_ = false;
1562 1590
1563 UpdateAfterChange(true, true); 1591 UpdateAfterChange(true, true);
1564 OnAfterUserAction(); 1592 OnAfterUserAction();
1565 } 1593 }
1566 1594
1567 gfx::RenderText* Textfield::GetRenderText() const { 1595 gfx::RenderText* Textfield::GetRenderText() const {
1568 return model_->render_text(); 1596 return model_->render_text();
1569 } 1597 }
1570 1598
1571 base::string16 Textfield::GetSelectionClipboardText() const { 1599 base::string16 Textfield::GetSelectionClipboardText() const {
1572 base::string16 selection_clipboard_text; 1600 base::string16 selection_clipboard_text;
1573 ui::Clipboard::GetForCurrentThread()->ReadText( 1601 ui::Clipboard::GetForCurrentThread()->ReadText(
1574 ui::CLIPBOARD_TYPE_SELECTION, &selection_clipboard_text); 1602 ui::CLIPBOARD_TYPE_SELECTION, &selection_clipboard_text);
1575 return selection_clipboard_text; 1603 return selection_clipboard_text;
1576 } 1604 }
1577 1605
1578 void Textfield::ExecuteEditCommand(int command_id) { 1606 void Textfield::ExecuteEditCommand(ui::TextEditCommand command) {
1579 if (!Textfield::IsEditCommandEnabled(command_id)) 1607 if (!Textfield::IsEditCommandEnabled(command))
1580 return; 1608 return;
1581 1609
1582 DestroyTouchSelection(); 1610 DestroyTouchSelection();
1583 1611
1584 // Some codepaths may bypass GetCommandForKeyEvent, so any selection-dependent 1612 // Some codepaths may bypass GetCommandForKeyEvent, so any selection-dependent
1585 // modifications of the command should happen here. 1613 // modifications of the command should happen here.
1586 if (HasSelection()) { 1614 if (HasSelection()) {
1587 switch (command_id) { 1615 switch (command) {
1588 case IDS_DELETE_WORD_BACKWARD: 1616 case ui::TextEditCommand::DELETE_WORD_BACKWARD:
1589 case IDS_DELETE_TO_BEGINNING_OF_LINE: 1617 case ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE:
1590 command_id = IDS_DELETE_BACKWARD; 1618 command = ui::TextEditCommand::DELETE_BACKWARD;
1591 break; 1619 break;
1592 case IDS_DELETE_WORD_FORWARD: 1620 case ui::TextEditCommand::DELETE_WORD_FORWARD:
1593 case IDS_DELETE_TO_END_OF_LINE: 1621 case ui::TextEditCommand::DELETE_TO_END_OF_LINE:
1594 command_id = IDS_DELETE_FORWARD; 1622 command = ui::TextEditCommand::DELETE_FORWARD;
1623 break;
1624 default:
1595 break; 1625 break;
1596 } 1626 }
1597 } 1627 }
1598 1628
1599 bool text_changed = false; 1629 bool text_changed = false;
1600 bool cursor_changed = false; 1630 bool cursor_changed = false;
1601 bool rtl = GetTextDirection() == base::i18n::RIGHT_TO_LEFT; 1631 bool rtl = GetTextDirection() == base::i18n::RIGHT_TO_LEFT;
1602 gfx::VisualCursorDirection begin = rtl ? gfx::CURSOR_RIGHT : gfx::CURSOR_LEFT; 1632 gfx::VisualCursorDirection begin = rtl ? gfx::CURSOR_RIGHT : gfx::CURSOR_LEFT;
1603 gfx::VisualCursorDirection end = rtl ? gfx::CURSOR_LEFT : gfx::CURSOR_RIGHT; 1633 gfx::VisualCursorDirection end = rtl ? gfx::CURSOR_LEFT : gfx::CURSOR_RIGHT;
1604 gfx::SelectionModel selection_model = GetSelectionModel(); 1634 gfx::SelectionModel selection_model = GetSelectionModel();
1605 1635
1606 OnBeforeUserAction(); 1636 OnBeforeUserAction();
1607 switch (command_id) { 1637 switch (command) {
1608 case IDS_APP_UNDO: 1638 case ui::TextEditCommand::UNDO:
1609 text_changed = cursor_changed = model_->Undo(); 1639 text_changed = cursor_changed = model_->Undo();
1610 break; 1640 break;
1611 case IDS_APP_REDO: 1641 case ui::TextEditCommand::REDO:
1612 text_changed = cursor_changed = model_->Redo(); 1642 text_changed = cursor_changed = model_->Redo();
1613 break; 1643 break;
1614 case IDS_APP_CUT: 1644 case ui::TextEditCommand::CUT:
1615 text_changed = cursor_changed = Cut(); 1645 text_changed = cursor_changed = Cut();
1616 break; 1646 break;
1617 case IDS_APP_COPY: 1647 case ui::TextEditCommand::COPY:
1618 Copy(); 1648 Copy();
1619 break; 1649 break;
1620 case IDS_APP_PASTE: 1650 case ui::TextEditCommand::PASTE:
1621 text_changed = cursor_changed = Paste(); 1651 text_changed = cursor_changed = Paste();
1622 break; 1652 break;
1623 case IDS_APP_DELETE: 1653 case ui::TextEditCommand::DELETE_SELECTION:
1624 text_changed = cursor_changed = model_->Delete(); 1654 text_changed = cursor_changed = model_->Delete();
1625 break; 1655 break;
1626 case IDS_APP_SELECT_ALL: 1656 case ui::TextEditCommand::SELECT_ALL:
1627 SelectAll(false); 1657 SelectAll(false);
1628 break; 1658 break;
1629 case IDS_DELETE_BACKWARD: 1659 case ui::TextEditCommand::DELETE_BACKWARD:
1630 text_changed = cursor_changed = model_->Backspace(); 1660 text_changed = cursor_changed = model_->Backspace();
1631 break; 1661 break;
1632 case IDS_DELETE_FORWARD: 1662 case ui::TextEditCommand::DELETE_FORWARD:
1633 text_changed = cursor_changed = model_->Delete(); 1663 text_changed = cursor_changed = model_->Delete();
1634 break; 1664 break;
1635 case IDS_DELETE_TO_END_OF_LINE: 1665 case ui::TextEditCommand::DELETE_TO_END_OF_LINE:
1636 model_->MoveCursor(gfx::LINE_BREAK, end, true); 1666 model_->MoveCursor(gfx::LINE_BREAK, end, true);
1637 text_changed = cursor_changed = model_->Delete(); 1667 text_changed = cursor_changed = model_->Delete();
1638 break; 1668 break;
1639 case IDS_DELETE_TO_BEGINNING_OF_LINE: 1669 case ui::TextEditCommand::DELETE_TO_BEGINNING_OF_LINE:
1640 model_->MoveCursor(gfx::LINE_BREAK, begin, true); 1670 model_->MoveCursor(gfx::LINE_BREAK, begin, true);
1641 text_changed = cursor_changed = model_->Backspace(); 1671 text_changed = cursor_changed = model_->Backspace();
1642 break; 1672 break;
1643 case IDS_DELETE_WORD_BACKWARD: 1673 case ui::TextEditCommand::DELETE_WORD_BACKWARD:
1644 model_->MoveCursor(gfx::WORD_BREAK, begin, true); 1674 model_->MoveCursor(gfx::WORD_BREAK, begin, true);
1645 text_changed = cursor_changed = model_->Backspace(); 1675 text_changed = cursor_changed = model_->Backspace();
1646 break; 1676 break;
1647 case IDS_DELETE_WORD_FORWARD: 1677 case ui::TextEditCommand::DELETE_WORD_FORWARD:
1648 model_->MoveCursor(gfx::WORD_BREAK, end, true); 1678 model_->MoveCursor(gfx::WORD_BREAK, end, true);
1649 text_changed = cursor_changed = model_->Delete(); 1679 text_changed = cursor_changed = model_->Delete();
1650 break; 1680 break;
1651 case IDS_MOVE_LEFT: 1681 case ui::TextEditCommand::MOVE_LEFT:
1652 model_->MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, false); 1682 model_->MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, false);
1653 break; 1683 break;
1654 case IDS_MOVE_LEFT_AND_MODIFY_SELECTION: 1684 case ui::TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION:
1655 model_->MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true); 1685 model_->MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_LEFT, true);
1656 break; 1686 break;
1657 case IDS_MOVE_RIGHT: 1687 case ui::TextEditCommand::MOVE_RIGHT:
1658 model_->MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, false); 1688 model_->MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, false);
1659 break; 1689 break;
1660 case IDS_MOVE_RIGHT_AND_MODIFY_SELECTION: 1690 case ui::TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION:
1661 model_->MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true); 1691 model_->MoveCursor(gfx::CHARACTER_BREAK, gfx::CURSOR_RIGHT, true);
1662 break; 1692 break;
1663 case IDS_MOVE_WORD_LEFT: 1693 case ui::TextEditCommand::MOVE_WORD_LEFT:
1664 model_->MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, false); 1694 model_->MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, false);
1665 break; 1695 break;
1666 case IDS_MOVE_WORD_LEFT_AND_MODIFY_SELECTION: 1696 case ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION:
1667 model_->MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true); 1697 model_->MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_LEFT, true);
1668 break; 1698 break;
1669 case IDS_MOVE_WORD_RIGHT: 1699 case ui::TextEditCommand::MOVE_WORD_RIGHT:
1670 model_->MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_RIGHT, false); 1700 model_->MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_RIGHT, false);
1671 break; 1701 break;
1672 case IDS_MOVE_WORD_RIGHT_AND_MODIFY_SELECTION: 1702 case ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION:
1673 model_->MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_RIGHT, true); 1703 model_->MoveCursor(gfx::WORD_BREAK, gfx::CURSOR_RIGHT, true);
1674 break; 1704 break;
1675 case IDS_MOVE_TO_BEGINNING_OF_LINE: 1705 case ui::TextEditCommand::MOVE_TO_BEGINNING_OF_LINE:
1676 model_->MoveCursor(gfx::LINE_BREAK, begin, false); 1706 model_->MoveCursor(gfx::LINE_BREAK, begin, false);
1677 break; 1707 break;
1678 case IDS_MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION: 1708 case ui::TextEditCommand::MOVE_TO_BEGINNING_OF_LINE_AND_MODIFY_SELECTION:
1679 model_->MoveCursor(gfx::LINE_BREAK, begin, true); 1709 model_->MoveCursor(gfx::LINE_BREAK, begin, true);
1680 break; 1710 break;
1681 case IDS_MOVE_TO_END_OF_LINE: 1711 case ui::TextEditCommand::MOVE_TO_END_OF_LINE:
1682 model_->MoveCursor(gfx::LINE_BREAK, end, false); 1712 model_->MoveCursor(gfx::LINE_BREAK, end, false);
1683 break; 1713 break;
1684 case IDS_MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION: 1714 case ui::TextEditCommand::MOVE_TO_END_OF_LINE_AND_MODIFY_SELECTION:
1685 model_->MoveCursor(gfx::LINE_BREAK, end, true); 1715 model_->MoveCursor(gfx::LINE_BREAK, end, true);
1686 break; 1716 break;
1687 default: 1717 case ui::TextEditCommand::MOVE_UP:
1718 case ui::TextEditCommand::MOVE_DOWN:
1719 case ui::TextEditCommand::INVALID_COMMAND:
1688 NOTREACHED(); 1720 NOTREACHED();
1689 break; 1721 break;
1690 } 1722 }
1691 1723
1692 cursor_changed |= GetSelectionModel() != selection_model; 1724 cursor_changed |= GetSelectionModel() != selection_model;
1693 if (cursor_changed) 1725 if (cursor_changed)
1694 UpdateSelectionClipboard(); 1726 UpdateSelectionClipboard();
1695 UpdateAfterChange(text_changed, cursor_changed); 1727 UpdateAfterChange(text_changed, cursor_changed);
1696 OnAfterUserAction(); 1728 OnAfterUserAction();
1697 } 1729 }
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
1948 RequestFocus(); 1980 RequestFocus();
1949 model_->MoveCursorTo(mouse); 1981 model_->MoveCursorTo(mouse);
1950 if (!selection_clipboard_text.empty()) { 1982 if (!selection_clipboard_text.empty()) {
1951 model_->InsertText(selection_clipboard_text); 1983 model_->InsertText(selection_clipboard_text);
1952 UpdateAfterChange(true, true); 1984 UpdateAfterChange(true, true);
1953 } 1985 }
1954 OnAfterUserAction(); 1986 OnAfterUserAction();
1955 } 1987 }
1956 1988
1957 } // namespace views 1989 } // namespace views
OLDNEW
« ui/events/text_edit_commands.h ('K') | « ui/views/controls/textfield/textfield.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698