| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_ACCESSIBILITY_AX_VIEW_STATE_H_ |
| #define UI_ACCESSIBILITY_AX_VIEW_STATE_H_ |
| |
| #include "base/basictypes.h" |
| #include "base/callback.h" |
| #include "base/strings/string16.h" |
| #include "ui/accessibility/ax_enums.h" |
| #include "ui/accessibility/ax_export.h" |
| |
| namespace ui { |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // |
| // AXViewState |
| // |
| // A cross-platform struct for storing the core accessibility information |
| // that should be provided about any UI view to assistive technology (AT). |
| // |
| //////////////////////////////////////////////////////////////////////////////// |
| struct AX_EXPORT AXViewState { |
| public: |
| AXViewState(); |
| ~AXViewState(); |
| |
| // Set or check bits in |state_|. |
| void AddStateFlag(ui::AXState state); |
| bool HasStateFlag(ui::AXState state) const; |
| |
| // The view's state, a bitmask containing fields such as checked |
| // (for a checkbox) and protected (for a password text box). This "state" |
| // should not be confused with the class's name. |
| uint32 state() { return state_; } |
| |
| // The view's role, like button or list box. |
| AXRole role; |
| |
| // The view's name / label. |
| base::string16 name; |
| |
| // The view's value, for example the text content. |
| base::string16 value; |
| |
| // The name of the default action if the user clicks on this view. |
| base::string16 default_action; |
| |
| // The keyboard shortcut to activate this view, if any. |
| base::string16 keyboard_shortcut; |
| |
| // The selection start and end. Only applies to views with text content, |
| // such as a text box or combo box; start and end should be -1 otherwise. |
| int selection_start; |
| int selection_end; |
| |
| // The selected item's index and the count of the number of items. |
| // Only applies to views with multiple choices like a listbox; both |
| // index and count should be -1 otherwise. |
| int index; |
| int count; |
| |
| // An optional callback that can be used by accessibility clients to |
| // set the string value of this view. This only applies to roles where |
| // setting the value makes sense, like a text box. Not often used by |
| // screen readers, but often used by automation software to script |
| // things like logging into portals or filling forms. |
| // |
| // This callback is only valid for the lifetime of the view, and should |
| // be a safe no-op if the view is deleted. Typically, accessible views |
| // should use a WeakPtr when binding the callback. |
| base::Callback<void(const base::string16&)> set_value_callback; |
| |
| private: |
| uint32 state_; |
| }; |
| |
| } // namespace ui |
| |
| #endif // UI_ACCESSIBILITY_AX_VIEW_STATE_H_ |