diff options
author | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-14 06:56:33 +0000 |
---|---|---|
committer | dmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-14 06:56:33 +0000 |
commit | 79e549faf26611d5ac05bc4f7fefd4a71a23fcb2 (patch) | |
tree | e7c50ebe8d193233ce2b06bbf5751bb9e82115b7 /views/window | |
parent | 36096983abafe5aa7a1df56904db3c0c8fa9ee2e (diff) | |
download | chromium_src-79e549faf26611d5ac05bc4f7fefd4a71a23fcb2.zip chromium_src-79e549faf26611d5ac05bc4f7fefd4a71a23fcb2.tar.gz chromium_src-79e549faf26611d5ac05bc4f7fefd4a71a23fcb2.tar.bz2 |
Re-land: Refactor Views accessibility.
BUG=74988
TEST=none
Review URL: http://codereview.chromium.org/6581010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78006 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/window')
-rw-r--r-- | views/window/client_view.cc | 5 | ||||
-rw-r--r-- | views/window/client_view.h | 2 | ||||
-rw-r--r-- | views/window/dialog_delegate.cc | 4 | ||||
-rw-r--r-- | views/window/dialog_delegate.h | 6 | ||||
-rw-r--r-- | views/window/native_window.h | 6 | ||||
-rw-r--r-- | views/window/non_client_view.cc | 14 | ||||
-rw-r--r-- | views/window/non_client_view.h | 22 | ||||
-rw-r--r-- | views/window/window.cc | 4 | ||||
-rw-r--r-- | views/window/window_delegate.cc | 6 | ||||
-rw-r--r-- | views/window/window_delegate.h | 6 | ||||
-rw-r--r-- | views/window/window_gtk.cc | 4 | ||||
-rw-r--r-- | views/window/window_gtk.h | 4 | ||||
-rw-r--r-- | views/window/window_win.cc | 11 | ||||
-rw-r--r-- | views/window/window_win.h | 4 |
14 files changed, 57 insertions, 41 deletions
diff --git a/views/window/client_view.cc b/views/window/client_view.cc index 6ec3f90..cb52607 100644 --- a/views/window/client_view.cc +++ b/views/window/client_view.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include "base/logging.h" +#include "ui/base/accessibility/accessible_view_state.h" #include "views/window/client_view.h" #if defined(OS_LINUX) #include "views/window/hit_test.h" @@ -69,8 +70,8 @@ void ClientView::OnBoundsChanged(const gfx::Rect& previous_bounds) { // NonClientView::Layout. } -AccessibilityTypes::Role ClientView::GetAccessibleRole() { - return AccessibilityTypes::ROLE_CLIENT; +void ClientView::GetAccessibleState(ui::AccessibleViewState* state) { + state->role = ui::AccessibilityTypes::ROLE_CLIENT; } } // namespace views diff --git a/views/window/client_view.h b/views/window/client_view.h index b50eafa..052037f 100644 --- a/views/window/client_view.h +++ b/views/window/client_view.h @@ -63,7 +63,7 @@ class ClientView : public View { virtual void ViewHierarchyChanged( bool is_add, View* parent, View* child) OVERRIDE; virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; - virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE; + virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; // Accessors for private data members. Window* window() const { return window_; } diff --git a/views/window/dialog_delegate.cc b/views/window/dialog_delegate.cc index 84feb9b..d815a67 100644 --- a/views/window/dialog_delegate.cc +++ b/views/window/dialog_delegate.cc @@ -98,8 +98,8 @@ DialogClientView* DialogDelegate::GetDialogClientView() const { return window()->client_view()->AsDialogClientView(); } -AccessibilityTypes::Role DialogDelegate::accessible_role() const { - return AccessibilityTypes::ROLE_DIALOG; +ui::AccessibilityTypes::Role DialogDelegate::GetAccessibleRole() const { + return ui::AccessibilityTypes::ROLE_DIALOG; } } // namespace views diff --git a/views/window/dialog_delegate.h b/views/window/dialog_delegate.h index 1b8e8a4..f28ea03 100644 --- a/views/window/dialog_delegate.h +++ b/views/window/dialog_delegate.h @@ -6,8 +6,8 @@ #define VIEWS_WINDOW_DIALOG_DELEGATE_H_ #pragma once +#include "ui/base/accessibility/accessibility_types.h" #include "ui/base/message_box_flags.h" -#include "views/accessibility/accessibility_types.h" #include "views/window/dialog_client_view.h" #include "views/window/window_delegate.h" @@ -108,9 +108,9 @@ class DialogDelegate : public WindowDelegate { // delegate's Window. DialogClientView* GetDialogClientView() const; - private: + protected: // Overridden from WindowDelegate: - virtual AccessibilityTypes::Role accessible_role() const; + virtual ui::AccessibilityTypes::Role GetAccessibleRole() const OVERRIDE; }; } // namespace views diff --git a/views/window/native_window.h b/views/window/native_window.h index 9236689..7e4bd6a 100644 --- a/views/window/native_window.h +++ b/views/window/native_window.h @@ -6,8 +6,8 @@ #define VIEWS_WIDGET_NATIVE_WINDOW_H_ #pragma once +#include "ui/base/accessibility/accessibility_types.h" #include "ui/gfx/native_widget_types.h" -#include "views/accessibility/accessibility_types.h" class SkBitmap; @@ -72,8 +72,8 @@ class NativeWindow { // Update native accessibility properties on the native window. virtual void SetAccessibleName(const std::wstring& name) = 0; - virtual void SetAccessibleRole(AccessibilityTypes::Role role) = 0; - virtual void SetAccessibleState(AccessibilityTypes::State state) = 0; + virtual void SetAccessibleRole(ui::AccessibilityTypes::Role role) = 0; + virtual void SetAccessibleState(ui::AccessibilityTypes::State state) = 0; virtual NativeWidget* AsNativeWidget() = 0; virtual const NativeWidget* AsNativeWidget() const = 0; diff --git a/views/window/non_client_view.cc b/views/window/non_client_view.cc index 387a431..021914f 100644 --- a/views/window/non_client_view.cc +++ b/views/window/non_client_view.cc @@ -4,6 +4,7 @@ #include "views/window/non_client_view.h" +#include "ui/base/accessibility/accessible_view_state.h" #include "views/widget/root_view.h" #include "views/widget/widget.h" #include "views/window/client_view.h" @@ -126,6 +127,10 @@ void NonClientView::LayoutFrameView() { frame_view_->Layout(); } +void NonClientView::SetAccessibleName(const string16& name) { + accessible_name_ = name; +} + //////////////////////////////////////////////////////////////////////////////// // NonClientView, View overrides: @@ -179,8 +184,9 @@ views::View* NonClientView::GetEventHandlerForPoint(const gfx::Point& point) { return View::GetEventHandlerForPoint(point); } -AccessibilityTypes::Role NonClientView::GetAccessibleRole() { - return AccessibilityTypes::ROLE_WINDOW; +void NonClientView::GetAccessibleState(ui::AccessibleViewState* state) { + state->role = ui::AccessibilityTypes::ROLE_WINDOW; + state->name = accessible_name_; } //////////////////////////////////////////////////////////////////////////////// @@ -256,8 +262,8 @@ bool NonClientFrameView::ShouldPaintAsActive() const { return GetWindow()->IsActive() || paint_as_active_; } -AccessibilityTypes::Role NonClientFrameView::GetAccessibleRole() { - return AccessibilityTypes::ROLE_WINDOW; +void NonClientFrameView::GetAccessibleState(ui::AccessibleViewState* state) { + state->role = ui::AccessibilityTypes::ROLE_WINDOW; } void NonClientFrameView::OnBoundsChanged(const gfx::Rect& previous_bounds) { diff --git a/views/window/non_client_view.h b/views/window/non_client_view.h index f1420a1..b0b9137 100644 --- a/views/window/non_client_view.h +++ b/views/window/non_client_view.h @@ -71,7 +71,7 @@ class NonClientFrameView : public View { // Overridden from View: virtual bool HitTest(const gfx::Point& l) const OVERRIDE; - virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE; + virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; protected: virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; @@ -209,16 +209,21 @@ class NonClientView : public View { // of a window resize message. void LayoutFrameView(); + // Set the accessible name of this view. + void SetAccessibleName(const string16& name); + // NonClientView, View overrides: - virtual gfx::Size GetPreferredSize(); - virtual gfx::Size GetMinimumSize(); - virtual void Layout(); - virtual AccessibilityTypes::Role GetAccessibleRole(); + virtual gfx::Size GetPreferredSize() OVERRIDE; + virtual gfx::Size GetMinimumSize() OVERRIDE; + virtual void Layout() OVERRIDE; + virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; protected: // NonClientView, View overrides: - virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child); - virtual views::View* GetEventHandlerForPoint(const gfx::Point& point); + virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child) + OVERRIDE; + virtual views::View* GetEventHandlerForPoint(const gfx::Point& point) + OVERRIDE; private: // The frame that hosts this NonClientView. @@ -234,6 +239,9 @@ class NonClientView : public View { // dynamically as the system settings change. scoped_ptr<NonClientFrameView> frame_view_; + // The accessible name of this view. + string16 accessible_name_; + DISALLOW_COPY_AND_ASSIGN(NonClientView); }; diff --git a/views/window/window.cc b/views/window/window.cc index 6ac43f6..f2313ed 100644 --- a/views/window/window.cc +++ b/views/window/window.cc @@ -287,8 +287,8 @@ void Window::OnNativeWindowCreated(const gfx::Rect& bounds) { non_client_view_); UpdateWindowTitle(); - native_window_->SetAccessibleRole(window_delegate_->accessible_role()); - native_window_->SetAccessibleState(window_delegate_->accessible_state()); + native_window_->SetAccessibleRole(window_delegate_->GetAccessibleRole()); + native_window_->SetAccessibleState(window_delegate_->GetAccessibleState()); SetInitialBounds(bounds); } diff --git a/views/window/window_delegate.cc b/views/window/window_delegate.cc index 843fc70..b29b052 100644 --- a/views/window/window_delegate.cc +++ b/views/window/window_delegate.cc @@ -36,11 +36,11 @@ bool WindowDelegate::IsModal() const { return false; } -AccessibilityTypes::Role WindowDelegate::accessible_role() const { - return AccessibilityTypes::ROLE_WINDOW; +ui::AccessibilityTypes::Role WindowDelegate::GetAccessibleRole() const { + return ui::AccessibilityTypes::ROLE_WINDOW; } -AccessibilityTypes::State WindowDelegate::accessible_state() const { +ui::AccessibilityTypes::State WindowDelegate::GetAccessibleState() const { return 0; } diff --git a/views/window/window_delegate.h b/views/window/window_delegate.h index 0e69e30..9888317a 100644 --- a/views/window/window_delegate.h +++ b/views/window/window_delegate.h @@ -9,7 +9,7 @@ #include <string> #include "base/scoped_ptr.h" -#include "views/accessibility/accessibility_types.h" +#include "ui/base/accessibility/accessibility_types.h" class SkBitmap; @@ -53,9 +53,9 @@ class WindowDelegate { // opened it. Only windows with WindowType == DIALOG can be modal. virtual bool IsModal() const; - virtual AccessibilityTypes::Role accessible_role() const; + virtual ui::AccessibilityTypes::Role GetAccessibleRole() const; - virtual AccessibilityTypes::State accessible_state() const; + virtual ui::AccessibilityTypes::State GetAccessibleState() const; // Returns the title to be read with screen readers. virtual std::wstring GetAccessibleWindowTitle() const; diff --git a/views/window/window_gtk.cc b/views/window/window_gtk.cc index cfd393d..28bbd6c 100644 --- a/views/window/window_gtk.cc +++ b/views/window/window_gtk.cc @@ -291,10 +291,10 @@ void WindowGtk::SetWindowIcons(const SkBitmap& window_icon, void WindowGtk::SetAccessibleName(const std::wstring& name) { } -void WindowGtk::SetAccessibleRole(AccessibilityTypes::Role role) { +void WindowGtk::SetAccessibleRole(ui::AccessibilityTypes::Role role) { } -void WindowGtk::SetAccessibleState(AccessibilityTypes::State state) { +void WindowGtk::SetAccessibleState(ui::AccessibilityTypes::State state) { } NativeWidget* WindowGtk::AsNativeWidget() { diff --git a/views/window/window_gtk.h b/views/window/window_gtk.h index 60c9b4b..23d0bce 100644 --- a/views/window/window_gtk.h +++ b/views/window/window_gtk.h @@ -57,8 +57,8 @@ class WindowGtk : public WidgetGtk, public NativeWindow, public Window { virtual void SetWindowIcons(const SkBitmap& window_icon, const SkBitmap& app_icon) OVERRIDE; virtual void SetAccessibleName(const std::wstring& name) OVERRIDE; - virtual void SetAccessibleRole(AccessibilityTypes::Role role) OVERRIDE; - virtual void SetAccessibleState(AccessibilityTypes::State state) OVERRIDE; + virtual void SetAccessibleRole(ui::AccessibilityTypes::Role role) OVERRIDE; + virtual void SetAccessibleState(ui::AccessibilityTypes::State state) OVERRIDE; virtual NativeWidget* AsNativeWidget() OVERRIDE; virtual const NativeWidget* AsNativeWidget() const OVERRIDE; virtual Window* GetWindow() OVERRIDE; diff --git a/views/window/window_win.cc b/views/window/window_win.cc index 863c56a..32583e3 100644 --- a/views/window/window_win.cc +++ b/views/window/window_win.cc @@ -11,6 +11,7 @@ #include "base/win/scoped_gdi_object.h" #include "base/win/win_util.h" #include "base/win/windows_version.h" +#include "ui/base/accessibility/accessibility_types.h" #include "ui/base/keycodes/keyboard_code_conversion_win.h" #include "ui/base/l10n/l10n_util_win.h" #include "ui/base/theme_provider.h" @@ -19,7 +20,7 @@ #include "ui/gfx/font.h" #include "ui/gfx/icon_util.h" #include "ui/gfx/path.h" -#include "views/accessibility/view_accessibility.h" +#include "views/accessibility/native_view_accessibility_win.h" #include "views/widget/root_view.h" #include "views/window/client_view.h" #include "views/window/custom_frame_view.h" @@ -954,7 +955,7 @@ void WindowWin::SetAccessibleName(const std::wstring& name) { } } -void WindowWin::SetAccessibleRole(AccessibilityTypes::Role role) { +void WindowWin::SetAccessibleRole(ui::AccessibilityTypes::Role role) { base::win::ScopedComPtr<IAccPropServices> pAccPropServices; HRESULT hr = CoCreateInstance(CLSID_AccPropServices, NULL, CLSCTX_SERVER, IID_IAccPropServices, reinterpret_cast<void**>(&pAccPropServices)); @@ -962,21 +963,21 @@ void WindowWin::SetAccessibleRole(AccessibilityTypes::Role role) { VARIANT var; if (role) { var.vt = VT_I4; - var.lVal = ViewAccessibility::MSAARole(role); + var.lVal = NativeViewAccessibilityWin::MSAARole(role); hr = pAccPropServices->SetHwndProp(GetNativeView(), OBJID_CLIENT, CHILDID_SELF, PROPID_ACC_ROLE, var); } } } -void WindowWin::SetAccessibleState(AccessibilityTypes::State state) { +void WindowWin::SetAccessibleState(ui::AccessibilityTypes::State state) { base::win::ScopedComPtr<IAccPropServices> pAccPropServices; HRESULT hr = CoCreateInstance(CLSID_AccPropServices, NULL, CLSCTX_SERVER, IID_IAccPropServices, reinterpret_cast<void**>(&pAccPropServices)); if (SUCCEEDED(hr)) { VARIANT var; if (state) { - var.lVal = ViewAccessibility::MSAAState(state); + var.lVal = NativeViewAccessibilityWin::MSAAState(state); hr = pAccPropServices->SetHwndProp(GetNativeView(), OBJID_CLIENT, CHILDID_SELF, PROPID_ACC_STATE, var); } diff --git a/views/window/window_win.h b/views/window/window_win.h index dbe8ad2..222608a 100644 --- a/views/window/window_win.h +++ b/views/window/window_win.h @@ -146,8 +146,8 @@ class WindowWin : public WidgetWin, virtual void SetWindowIcons(const SkBitmap& window_icon, const SkBitmap& app_icon) OVERRIDE; virtual void SetAccessibleName(const std::wstring& name) OVERRIDE; - virtual void SetAccessibleRole(AccessibilityTypes::Role role) OVERRIDE; - virtual void SetAccessibleState(AccessibilityTypes::State state) OVERRIDE; + virtual void SetAccessibleRole(ui::AccessibilityTypes::Role role) OVERRIDE; + virtual void SetAccessibleState(ui::AccessibilityTypes::State state) OVERRIDE; virtual NativeWidget* AsNativeWidget() OVERRIDE; virtual const NativeWidget* AsNativeWidget() const OVERRIDE; virtual void SetWindowBounds(const gfx::Rect& bounds, |