diff options
author | ctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-14 23:25:49 +0000 |
---|---|---|
committer | ctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-14 23:25:49 +0000 |
commit | 08a3cacedb78fd367b166dad5fdf7dfb01d36bfb (patch) | |
tree | fd9607eb12ba0286eb690b73f6601b05fb5efafb /views/accessibility | |
parent | c40b440c5c8978011baf6349f604fe9b7d29204d (diff) | |
download | chromium_src-08a3cacedb78fd367b166dad5fdf7dfb01d36bfb.zip chromium_src-08a3cacedb78fd367b166dad5fdf7dfb01d36bfb.tar.gz chromium_src-08a3cacedb78fd367b166dad5fdf7dfb01d36bfb.tar.bz2 |
Support accDoDefaultAction for NativeButton in ViewAccessibility.
BUG=none
TEST=Manual
Review URL: http://codereview.chromium.org/6310002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71512 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/accessibility')
-rw-r--r-- | views/accessibility/view_accessibility.cc | 21 | ||||
-rw-r--r-- | views/accessibility/view_accessibility.h | 6 |
2 files changed, 20 insertions, 7 deletions
diff --git a/views/accessibility/view_accessibility.cc b/views/accessibility/view_accessibility.cc index 1364157..c94e779 100644 --- a/views/accessibility/view_accessibility.cc +++ b/views/accessibility/view_accessibility.cc @@ -5,6 +5,7 @@ #include "views/accessibility/view_accessibility.h" #include "app/view_prop.h" +#include "views/controls/button/native_button.h" #include "views/widget/widget.h" #include "views/widget/widget_win.h" @@ -83,6 +84,22 @@ STDMETHODIMP ViewAccessibility::accHitTest( return S_OK; } +HRESULT ViewAccessibility::accDoDefaultAction(VARIANT var_id) { + if (!IsValidId(var_id)) + return E_INVALIDARG; + + if (view_->GetClassName() == views::NativeButton::kViewClassName) { + views::NativeButton* native_button = + static_cast<views::NativeButton*>(view_); + native_button->ButtonPressed(); + return S_OK; + } + + // The object does not support the method. This value is returned for + // controls that do not perform actions, such as edit fields. + return DISP_E_MEMBERNOTFOUND; +} + STDMETHODIMP ViewAccessibility::accLocation( LONG* x_left, LONG* y_top, LONG* width, LONG* height, VARIANT var_id) { if (!IsValidId(var_id) || !x_left || !y_top || !width || !height) @@ -535,10 +552,6 @@ void ViewAccessibility::SetState(VARIANT* msaa_state, views::View* view) { // IAccessible functions not supported. -HRESULT ViewAccessibility::accDoDefaultAction(VARIANT var_id) { - return E_NOTIMPL; -} - STDMETHODIMP ViewAccessibility::get_accSelection(VARIANT* selected) { if (selected) selected->vt = VT_EMPTY; diff --git a/views/accessibility/view_accessibility.h b/views/accessibility/view_accessibility.h index 66df163c..9e2d7b8 100644 --- a/views/accessibility/view_accessibility.h +++ b/views/accessibility/view_accessibility.h @@ -48,6 +48,9 @@ class ATL_NO_VTABLE ViewAccessibility // Retrieves the child element or child object at a given point on the screen. STDMETHODIMP accHitTest(LONG x_left, LONG y_top, VARIANT* child); + // Performs the object's default action. + STDMETHODIMP accDoDefaultAction(VARIANT var_id); + // Retrieves the specified object's current screen location. STDMETHODIMP accLocation(LONG* x_left, LONG* y_top, @@ -93,9 +96,6 @@ class ATL_NO_VTABLE ViewAccessibility // Non-supported IAccessible methods. - // Out-dated and can be safely said to be very rarely used. - STDMETHODIMP accDoDefaultAction(VARIANT var_id); - // Selections not applicable to views. STDMETHODIMP get_accSelection(VARIANT* selected); STDMETHODIMP accSelect(LONG flags_sel, VARIANT var_id); |