OLD | NEW |
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/native_textfield_views.h" | 5 #include "ui/views/controls/textfield/native_textfield_views.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 : textfield_(parent), | 63 : textfield_(parent), |
64 ALLOW_THIS_IN_INITIALIZER_LIST(model_(new TextfieldViewsModel(this))), | 64 ALLOW_THIS_IN_INITIALIZER_LIST(model_(new TextfieldViewsModel(this))), |
65 text_border_(new FocusableBorder()), | 65 text_border_(new FocusableBorder()), |
66 is_cursor_visible_(false), | 66 is_cursor_visible_(false), |
67 is_drop_cursor_visible_(false), | 67 is_drop_cursor_visible_(false), |
68 skip_input_method_cancel_composition_(false), | 68 skip_input_method_cancel_composition_(false), |
69 initiating_drag_(false), | 69 initiating_drag_(false), |
70 ALLOW_THIS_IN_INITIALIZER_LIST(cursor_timer_(this)), | 70 ALLOW_THIS_IN_INITIALIZER_LIST(cursor_timer_(this)), |
71 aggregated_clicks_(0), | 71 aggregated_clicks_(0), |
72 ALLOW_THIS_IN_INITIALIZER_LIST(touch_selection_controller_( | 72 ALLOW_THIS_IN_INITIALIZER_LIST(touch_selection_controller_( |
73 TouchSelectionController::create(this))) { | 73 ui::TouchSelectionController::create(this))) { |
74 set_border(text_border_); | 74 set_border(text_border_); |
75 | 75 |
76 #if defined(OS_CHROMEOS) | 76 #if defined(OS_CHROMEOS) |
77 GetRenderText()->SetFontList(gfx::FontList(l10n_util::GetStringUTF8( | 77 GetRenderText()->SetFontList(gfx::FontList(l10n_util::GetStringUTF8( |
78 IDS_UI_FONT_FAMILY_CROS))); | 78 IDS_UI_FONT_FAMILY_CROS))); |
79 #else | 79 #else |
80 GetRenderText()->SetFont(textfield_->font()); | 80 GetRenderText()->SetFont(textfield_->font()); |
81 #endif | 81 #endif |
82 | 82 |
83 UpdateColorsFromTheme(GetNativeTheme()); | 83 UpdateColorsFromTheme(GetNativeTheme()); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 case ui::ET_GESTURE_SCROLL_UPDATE: | 165 case ui::ET_GESTURE_SCROLL_UPDATE: |
166 OnBeforeUserAction(); | 166 OnBeforeUserAction(); |
167 if (MoveCursorTo(event->location(), true)) | 167 if (MoveCursorTo(event->location(), true)) |
168 SchedulePaint(); | 168 SchedulePaint(); |
169 OnAfterUserAction(); | 169 OnAfterUserAction(); |
170 event->SetHandled(); | 170 event->SetHandled(); |
171 return; | 171 return; |
172 default: | 172 default: |
173 break; | 173 break; |
174 } | 174 } |
175 TouchSelectionClientView::OnGestureEvent(event); | 175 View::OnGestureEvent(event); |
176 } | 176 } |
177 | 177 |
178 bool NativeTextfieldViews::OnKeyPressed(const ui::KeyEvent& event) { | 178 bool NativeTextfieldViews::OnKeyPressed(const ui::KeyEvent& event) { |
179 // OnKeyPressed/OnKeyReleased/OnFocus/OnBlur will never be invoked on | 179 // OnKeyPressed/OnKeyReleased/OnFocus/OnBlur will never be invoked on |
180 // NativeTextfieldViews as it will never gain focus. | 180 // NativeTextfieldViews as it will never gain focus. |
181 NOTREACHED(); | 181 NOTREACHED(); |
182 return false; | 182 return false; |
183 } | 183 } |
184 | 184 |
185 bool NativeTextfieldViews::OnKeyReleased(const ui::KeyEvent& event) { | 185 bool NativeTextfieldViews::OnKeyReleased(const ui::KeyEvent& event) { |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 ui::Range(start_caret.caret_pos(), end_caret.caret_pos()), | 304 ui::Range(start_caret.caret_pos(), end_caret.caret_pos()), |
305 end_caret.caret_affinity()); | 305 end_caret.caret_affinity()); |
306 | 306 |
307 OnBeforeUserAction(); | 307 OnBeforeUserAction(); |
308 model_->SelectSelectionModel(selection); | 308 model_->SelectSelectionModel(selection); |
309 OnCaretBoundsChanged(); | 309 OnCaretBoundsChanged(); |
310 SchedulePaint(); | 310 SchedulePaint(); |
311 OnAfterUserAction(); | 311 OnAfterUserAction(); |
312 } | 312 } |
313 | 313 |
| 314 const gfx::Rect& NativeTextfieldViews::GetBounds() { |
| 315 return bounds(); |
| 316 } |
| 317 |
| 318 gfx::NativeView NativeTextfieldViews::GetNativeView() { |
| 319 return GetWidget()->GetNativeView(); |
| 320 } |
| 321 |
| 322 void NativeTextfieldViews::ConvertPointToScreen(gfx::Point* point) { |
| 323 View::ConvertPointToScreen(this, point); |
| 324 } |
| 325 |
| 326 void NativeTextfieldViews::ConvertPointFromScreen(gfx::Point* point) { |
| 327 View::ConvertPointFromScreen(this, point); |
| 328 } |
| 329 |
314 gfx::NativeCursor NativeTextfieldViews::GetCursor(const ui::MouseEvent& event) { | 330 gfx::NativeCursor NativeTextfieldViews::GetCursor(const ui::MouseEvent& event) { |
315 bool in_selection = GetRenderText()->IsPointInSelection(event.location()); | 331 bool in_selection = GetRenderText()->IsPointInSelection(event.location()); |
316 bool drag_event = event.type() == ui::ET_MOUSE_DRAGGED; | 332 bool drag_event = event.type() == ui::ET_MOUSE_DRAGGED; |
317 bool text_cursor = !initiating_drag_ && (drag_event || !in_selection); | 333 bool text_cursor = !initiating_drag_ && (drag_event || !in_selection); |
318 #if defined(USE_AURA) | 334 #if defined(USE_AURA) |
319 return text_cursor ? ui::kCursorIBeam : ui::kCursorNull; | 335 return text_cursor ? ui::kCursorIBeam : ui::kCursorNull; |
320 #elif defined(OS_WIN) | 336 #elif defined(OS_WIN) |
321 static HCURSOR ibeam = LoadCursor(NULL, IDC_IBEAM); | 337 static HCURSOR ibeam = LoadCursor(NULL, IDC_IBEAM); |
322 static HCURSOR arrow = LoadCursor(NULL, IDC_ARROW); | 338 static HCURSOR arrow = LoadCursor(NULL, IDC_ARROW); |
323 return text_cursor ? ibeam : arrow; | 339 return text_cursor ? ibeam : arrow; |
(...skipping 971 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1295 // Filter out all control characters, including tab and new line characters, | 1311 // Filter out all control characters, including tab and new line characters, |
1296 // and all characters with Alt modifier. But we need to allow characters with | 1312 // and all characters with Alt modifier. But we need to allow characters with |
1297 // AltGr modifier. | 1313 // AltGr modifier. |
1298 // On Windows AltGr is represented by Alt+Ctrl, and on Linux it's a different | 1314 // On Windows AltGr is represented by Alt+Ctrl, and on Linux it's a different |
1299 // flag that we don't care about. | 1315 // flag that we don't care about. |
1300 return ((ch >= 0x20 && ch < 0x7F) || ch > 0x9F) && | 1316 return ((ch >= 0x20 && ch < 0x7F) || ch > 0x9F) && |
1301 (flags & ~(ui::EF_SHIFT_DOWN | ui::EF_CAPS_LOCK_DOWN)) != ui::EF_ALT_DOWN; | 1317 (flags & ~(ui::EF_SHIFT_DOWN | ui::EF_CAPS_LOCK_DOWN)) != ui::EF_ALT_DOWN; |
1302 } | 1318 } |
1303 | 1319 |
1304 } // namespace views | 1320 } // namespace views |
OLD | NEW |