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

Unified Diff: ui/views/controls/textfield/textfield.cc

Issue 2477463003: Replace ui::AXViewState with AXNodeData and AXActionData (Closed)
Patch Set: Full patch including mechanical changes Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: ui/views/controls/textfield/textfield.cc
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
index 2ab27564ee4b4354f377bcfe825d7b0d4949d4b7..989e9435c77b999b78a2a30e74855ac4f25aa613 100644
--- a/ui/views/controls/textfield/textfield.cc
+++ b/ui/views/controls/textfield/textfield.cc
@@ -7,9 +7,11 @@
#include <string>
#include <utility>
+#include "base/strings/utf_string_conversions.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
-#include "ui/accessibility/ax_view_state.h"
+#include "ui/accessibility/ax_action_data.h"
+#include "ui/accessibility/ax_node_data.h"
#include "ui/base/clipboard/scoped_clipboard_writer.h"
#include "ui/base/cursor/cursor.h"
#include "ui/base/default_style.h"
@@ -872,29 +874,41 @@ void Textfield::OnDragDone() {
drop_cursor_visible_ = false;
}
-void Textfield::GetAccessibleState(ui::AXViewState* state) {
- state->role = ui::AX_ROLE_TEXT_FIELD;
- state->name = accessible_name_;
+void Textfield::GetAccessibleNodeData(ui::AXNodeData* node_data) {
+ node_data->role = ui::AX_ROLE_TEXT_FIELD;
+ node_data->SetName(accessible_name_);
if (read_only())
- state->AddStateFlag(ui::AX_STATE_READ_ONLY);
+ node_data->AddStateFlag(ui::AX_STATE_READ_ONLY);
else
- state->AddStateFlag(ui::AX_STATE_EDITABLE);
+ node_data->AddStateFlag(ui::AX_STATE_EDITABLE);
if (text_input_type_ == ui::TEXT_INPUT_TYPE_PASSWORD) {
- state->AddStateFlag(ui::AX_STATE_PROTECTED);
- state->value = base::string16(text().size(), '*');
+ node_data->AddStateFlag(ui::AX_STATE_PROTECTED);
+ node_data->SetValue(base::string16(text().size(), '*'));
} else {
- state->value = text();
+ node_data->SetValue(text());
}
- state->placeholder = GetPlaceholderText();
+ node_data->AddStringAttribute(ui::AX_ATTR_PLACEHOLDER,
+ base::UTF16ToUTF8(GetPlaceholderText()));
const gfx::Range range = GetSelectedRange();
- state->selection_start = range.start();
- state->selection_end = range.end();
+ node_data->AddIntAttribute(ui::AX_ATTR_TEXT_SEL_START, range.start());
+ node_data->AddIntAttribute(ui::AX_ATTR_TEXT_SEL_END, range.end());
+}
+
+void Textfield::HandleAccessibleAction(const ui::AXActionData& action_data) {
+ if (read_only()) {
+ View::HandleAccessibleAction(action_data);
+ return;
+ }
- if (!read_only()) {
- state->set_value_callback =
- base::Bind(&Textfield::AccessibilitySetValue,
- weak_ptr_factory_.GetWeakPtr());
+ if (action_data.action == ui::AX_ACTION_SET_VALUE) {
+ SetText(action_data.value);
+ ClearSelection();
+ } else if (action_data.action == ui::AX_ACTION_REPLACE_SELECTED_TEXT) {
+ InsertOrReplaceText(action_data.value);
+ ClearSelection();
+ } else {
+ View::HandleAccessibleAction(action_data);
}
}
@@ -1824,17 +1838,6 @@ void Textfield::UpdateSelectionClipboard() {
#endif
}
-void Textfield::AccessibilitySetValue(const base::string16& new_value,
- bool clear_first) {
- if (read_only())
- return;
- if (!clear_first)
- InsertOrReplaceText(new_value);
- else
- SetText(new_value);
- ClearSelection();
-}
-
void Textfield::UpdateBackgroundColor() {
const SkColor color = GetBackgroundColor();
if (ui::MaterialDesignController::IsSecondaryUiMaterial()) {

Powered by Google App Engine
This is Rietveld 408576698