summaryrefslogtreecommitdiffstats
path: root/views/accessibility
diff options
context:
space:
mode:
authorctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-14 23:25:49 +0000
committerctguil@chromium.org <ctguil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-14 23:25:49 +0000
commit08a3cacedb78fd367b166dad5fdf7dfb01d36bfb (patch)
treefd9607eb12ba0286eb690b73f6601b05fb5efafb /views/accessibility
parentc40b440c5c8978011baf6349f604fe9b7d29204d (diff)
downloadchromium_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.cc21
-rw-r--r--views/accessibility/view_accessibility.h6
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);