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

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

Issue 23441024: Implement put_accvalue for textfields and location bar. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix rebase error Created 7 years, 3 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
« no previous file with comments | « ui/views/controls/textfield/textfield.h ('k') | ui/views/views.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 default_width_in_chars_(0), 78 default_width_in_chars_(0),
79 draw_border_(true), 79 draw_border_(true),
80 text_color_(SK_ColorBLACK), 80 text_color_(SK_ColorBLACK),
81 use_default_text_color_(true), 81 use_default_text_color_(true),
82 background_color_(SK_ColorWHITE), 82 background_color_(SK_ColorWHITE),
83 use_default_background_color_(true), 83 use_default_background_color_(true),
84 horizontal_margins_were_set_(false), 84 horizontal_margins_were_set_(false),
85 vertical_margins_were_set_(false), 85 vertical_margins_were_set_(false),
86 vertical_alignment_(gfx::ALIGN_VCENTER), 86 vertical_alignment_(gfx::ALIGN_VCENTER),
87 placeholder_text_color_(kDefaultPlaceholderTextColor), 87 placeholder_text_color_(kDefaultPlaceholderTextColor),
88 text_input_type_(ui::TEXT_INPUT_TYPE_TEXT) { 88 text_input_type_(ui::TEXT_INPUT_TYPE_TEXT),
89 weak_ptr_factory_(this) {
89 set_focusable(true); 90 set_focusable(true);
90 91
91 if (ViewsDelegate::views_delegate) { 92 if (ViewsDelegate::views_delegate) {
92 obscured_reveal_duration_ = ViewsDelegate::views_delegate-> 93 obscured_reveal_duration_ = ViewsDelegate::views_delegate->
93 GetDefaultTextfieldObscuredRevealDuration(); 94 GetDefaultTextfieldObscuredRevealDuration();
94 } 95 }
95 } 96 }
96 97
97 Textfield::Textfield(StyleFlags style) 98 Textfield::Textfield(StyleFlags style)
98 : native_wrapper_(NULL), 99 : native_wrapper_(NULL),
99 controller_(NULL), 100 controller_(NULL),
100 style_(style), 101 style_(style),
101 font_list_(GetDefaultFontList()), 102 font_list_(GetDefaultFontList()),
102 read_only_(false), 103 read_only_(false),
103 default_width_in_chars_(0), 104 default_width_in_chars_(0),
104 draw_border_(true), 105 draw_border_(true),
105 text_color_(SK_ColorBLACK), 106 text_color_(SK_ColorBLACK),
106 use_default_text_color_(true), 107 use_default_text_color_(true),
107 background_color_(SK_ColorWHITE), 108 background_color_(SK_ColorWHITE),
108 use_default_background_color_(true), 109 use_default_background_color_(true),
109 horizontal_margins_were_set_(false), 110 horizontal_margins_were_set_(false),
110 vertical_margins_were_set_(false), 111 vertical_margins_were_set_(false),
111 vertical_alignment_(gfx::ALIGN_VCENTER), 112 vertical_alignment_(gfx::ALIGN_VCENTER),
112 placeholder_text_color_(kDefaultPlaceholderTextColor), 113 placeholder_text_color_(kDefaultPlaceholderTextColor),
113 text_input_type_(ui::TEXT_INPUT_TYPE_TEXT) { 114 text_input_type_(ui::TEXT_INPUT_TYPE_TEXT),
115 weak_ptr_factory_(this) {
114 set_focusable(true); 116 set_focusable(true);
115 if (IsObscured()) 117 if (IsObscured())
116 SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD); 118 SetTextInputType(ui::TEXT_INPUT_TYPE_PASSWORD);
117 119
118 if (ViewsDelegate::views_delegate) { 120 if (ViewsDelegate::views_delegate) {
119 obscured_reveal_duration_ = ViewsDelegate::views_delegate-> 121 obscured_reveal_duration_ = ViewsDelegate::views_delegate->
120 GetDefaultTextfieldObscuredRevealDuration(); 122 GetDefaultTextfieldObscuredRevealDuration();
121 } 123 }
122 } 124 }
123 125
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 state->name = accessible_name_; 497 state->name = accessible_name_;
496 if (read_only()) 498 if (read_only())
497 state->state |= ui::AccessibilityTypes::STATE_READONLY; 499 state->state |= ui::AccessibilityTypes::STATE_READONLY;
498 if (IsObscured()) 500 if (IsObscured())
499 state->state |= ui::AccessibilityTypes::STATE_PROTECTED; 501 state->state |= ui::AccessibilityTypes::STATE_PROTECTED;
500 state->value = text_; 502 state->value = text_;
501 503
502 const ui::Range range = native_wrapper_->GetSelectedRange(); 504 const ui::Range range = native_wrapper_->GetSelectedRange();
503 state->selection_start = range.start(); 505 state->selection_start = range.start();
504 state->selection_end = range.end(); 506 state->selection_end = range.end();
507
508 if (!read_only()) {
509 state->set_value_callback =
510 base::Bind(&Textfield::AccessibilitySetValue,
511 weak_ptr_factory_.GetWeakPtr());
512 }
505 } 513 }
506 514
507 ui::TextInputClient* Textfield::GetTextInputClient() { 515 ui::TextInputClient* Textfield::GetTextInputClient() {
508 return native_wrapper_ ? native_wrapper_->GetTextInputClient() : NULL; 516 return native_wrapper_ ? native_wrapper_->GetTextInputClient() : NULL;
509 } 517 }
510 518
511 void Textfield::OnEnabledChanged() { 519 void Textfield::OnEnabledChanged() {
512 View::OnEnabledChanged(); 520 View::OnEnabledChanged();
513 if (native_wrapper_) 521 if (native_wrapper_)
514 native_wrapper_->UpdateEnabled(); 522 native_wrapper_->UpdateEnabled();
(...skipping 21 matching lines...) Expand all
536 if (!IsViewsTextfieldEnabled()) 544 if (!IsViewsTextfieldEnabled())
537 static_cast<NativeTextfieldWin*>(native_wrapper_)->AttachHack(); 545 static_cast<NativeTextfieldWin*>(native_wrapper_)->AttachHack();
538 #endif 546 #endif
539 } 547 }
540 } 548 }
541 549
542 const char* Textfield::GetClassName() const { 550 const char* Textfield::GetClassName() const {
543 return kViewClassName; 551 return kViewClassName;
544 } 552 }
545 553
554 ////////////////////////////////////////////////////////////////////////////////
555 // Textfield, private:
556
546 gfx::Insets Textfield::GetTextInsets() const { 557 gfx::Insets Textfield::GetTextInsets() const {
547 gfx::Insets insets = GetInsets(); 558 gfx::Insets insets = GetInsets();
548 if (draw_border_ && native_wrapper_) 559 if (draw_border_ && native_wrapper_)
549 insets += native_wrapper_->CalculateInsets(); 560 insets += native_wrapper_->CalculateInsets();
550 return insets; 561 return insets;
551 } 562 }
552 563
564 void Textfield::AccessibilitySetValue(const string16& new_value) {
565 if (!read_only()) {
566 SetText(new_value);
567 ClearSelection();
568 }
569 }
570
553 //////////////////////////////////////////////////////////////////////////////// 571 ////////////////////////////////////////////////////////////////////////////////
554 // NativeTextfieldWrapper, public: 572 // NativeTextfieldWrapper, public:
555 573
556 // static 574 // static
557 NativeTextfieldWrapper* NativeTextfieldWrapper::CreateWrapper( 575 NativeTextfieldWrapper* NativeTextfieldWrapper::CreateWrapper(
558 Textfield* field) { 576 Textfield* field) {
559 #if defined(OS_WIN) && !defined(USE_AURA) 577 #if defined(OS_WIN) && !defined(USE_AURA)
560 if (!Textfield::IsViewsTextfieldEnabled()) 578 if (!Textfield::IsViewsTextfieldEnabled())
561 return new NativeTextfieldWin(field); 579 return new NativeTextfieldWin(field);
562 #endif 580 #endif
563 return new NativeTextfieldViews(field); 581 return new NativeTextfieldViews(field);
564 } 582 }
565 583
566 } // namespace views 584 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/textfield/textfield.h ('k') | ui/views/views.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698