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/textfield.h" | 5 #include "ui/views/controls/textfield/textfield.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
11 #include "ui/base/accessibility/accessible_view_state.h" | 11 #include "ui/base/accessibility/accessible_view_state.h" |
12 #include "ui/base/ime/text_input_type.h" | 12 #include "ui/base/ime/text_input_type.h" |
13 #include "ui/base/keycodes/keyboard_codes.h" | 13 #include "ui/base/keycodes/keyboard_codes.h" |
14 #include "ui/base/range/range.h" | 14 #include "ui/base/range/range.h" |
15 #include "ui/gfx/insets.h" | 15 #include "ui/gfx/insets.h" |
16 #include "ui/gfx/selection_model.h" | 16 #include "ui/gfx/selection_model.h" |
17 #include "ui/views/controls/native/native_view_host.h" | 17 #include "ui/views/controls/native/native_view_host.h" |
18 #include "ui/views/controls/textfield/native_textfield_wrapper.h" | 18 #include "ui/views/controls/textfield/native_textfield_wrapper.h" |
19 #include "ui/views/controls/textfield/textfield_controller.h" | 19 #include "ui/views/controls/textfield/textfield_controller.h" |
20 #include "ui/views/widget/widget.h" | 20 #include "ui/views/widget/widget.h" |
21 | 21 |
22 #if defined(OS_WIN) | 22 #if defined(OS_WIN) |
23 #include "base/win/win_util.h" | 23 #include "base/win/win_util.h" |
24 // TODO(beng): this should be removed when the OS_WIN hack from | 24 // TODO(beng): this should be removed when the OS_WIN hack from |
25 // ViewHierarchyChanged is removed. | 25 // ViewHierarchyChanged is removed. |
26 #include "ui/views/controls/textfield/native_textfield_views.h" | 26 #include "ui/views/controls/textfield/native_textfield_views.h" |
27 #include "ui/views/controls/textfield/native_textfield_win.h" | 27 #include "ui/views/controls/textfield/native_textfield_win.h" |
28 #endif | 28 #endif |
29 | 29 |
| 30 namespace { |
| 31 |
| 32 // Default placeholder text color. |
| 33 const SkColor kDefaultPlaceholderTextColor = SK_ColorLTGRAY; |
| 34 |
| 35 } // namespace |
| 36 |
30 namespace views { | 37 namespace views { |
31 | 38 |
32 // static | 39 // static |
33 const char Textfield::kViewClassName[] = "views/Textfield"; | 40 const char Textfield::kViewClassName[] = "views/Textfield"; |
34 | 41 |
35 ///////////////////////////////////////////////////////////////////////////// | 42 ///////////////////////////////////////////////////////////////////////////// |
36 // Textfield | 43 // Textfield |
37 | 44 |
38 Textfield::Textfield() | 45 Textfield::Textfield() |
39 : native_wrapper_(NULL), | 46 : native_wrapper_(NULL), |
40 controller_(NULL), | 47 controller_(NULL), |
41 style_(STYLE_DEFAULT), | 48 style_(STYLE_DEFAULT), |
42 read_only_(false), | 49 read_only_(false), |
43 default_width_in_chars_(0), | 50 default_width_in_chars_(0), |
44 draw_border_(true), | 51 draw_border_(true), |
45 text_color_(SK_ColorBLACK), | 52 text_color_(SK_ColorBLACK), |
46 use_default_text_color_(true), | 53 use_default_text_color_(true), |
47 background_color_(SK_ColorWHITE), | 54 background_color_(SK_ColorWHITE), |
48 use_default_background_color_(true), | 55 use_default_background_color_(true), |
49 cursor_color_(SK_ColorBLACK), | 56 cursor_color_(SK_ColorBLACK), |
50 use_default_cursor_color_(true), | 57 use_default_cursor_color_(true), |
51 initialized_(false), | 58 initialized_(false), |
52 horizontal_margins_were_set_(false), | 59 horizontal_margins_were_set_(false), |
53 vertical_margins_were_set_(false), | 60 vertical_margins_were_set_(false), |
| 61 placeholder_text_color_(kDefaultPlaceholderTextColor), |
54 text_input_type_(ui::TEXT_INPUT_TYPE_TEXT) { | 62 text_input_type_(ui::TEXT_INPUT_TYPE_TEXT) { |
55 set_focusable(true); | 63 set_focusable(true); |
56 } | 64 } |
57 | 65 |
58 Textfield::Textfield(StyleFlags style) | 66 Textfield::Textfield(StyleFlags style) |
59 : native_wrapper_(NULL), | 67 : native_wrapper_(NULL), |
60 controller_(NULL), | 68 controller_(NULL), |
61 style_(style), | 69 style_(style), |
62 read_only_(false), | 70 read_only_(false), |
63 default_width_in_chars_(0), | 71 default_width_in_chars_(0), |
64 draw_border_(true), | 72 draw_border_(true), |
65 text_color_(SK_ColorBLACK), | 73 text_color_(SK_ColorBLACK), |
66 use_default_text_color_(true), | 74 use_default_text_color_(true), |
67 background_color_(SK_ColorWHITE), | 75 background_color_(SK_ColorWHITE), |
68 use_default_background_color_(true), | 76 use_default_background_color_(true), |
69 cursor_color_(SK_ColorBLACK), | 77 cursor_color_(SK_ColorBLACK), |
70 use_default_cursor_color_(true), | 78 use_default_cursor_color_(true), |
71 initialized_(false), | 79 initialized_(false), |
72 horizontal_margins_were_set_(false), | 80 horizontal_margins_were_set_(false), |
73 vertical_margins_were_set_(false), | 81 vertical_margins_were_set_(false), |
| 82 placeholder_text_color_(kDefaultPlaceholderTextColor), |
74 text_input_type_(ui::TEXT_INPUT_TYPE_TEXT) { | 83 text_input_type_(ui::TEXT_INPUT_TYPE_TEXT) { |
75 set_focusable(true); | 84 set_focusable(true); |
76 if (IsObscured()) | 85 if (IsObscured()) |
77 SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD); | 86 SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD); |
78 } | 87 } |
79 | 88 |
80 Textfield::~Textfield() { | 89 Textfield::~Textfield() { |
81 } | 90 } |
82 | 91 |
83 void Textfield::SetController(TextfieldController* controller) { | 92 void Textfield::SetController(TextfieldController* controller) { |
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 static_cast<NativeTextfieldWin*>(native_wrapper_)->AttachHack(); | 462 static_cast<NativeTextfieldWin*>(native_wrapper_)->AttachHack(); |
454 #endif | 463 #endif |
455 } | 464 } |
456 } | 465 } |
457 | 466 |
458 std::string Textfield::GetClassName() const { | 467 std::string Textfield::GetClassName() const { |
459 return kViewClassName; | 468 return kViewClassName; |
460 } | 469 } |
461 | 470 |
462 } // namespace views | 471 } // namespace views |
OLD | NEW |