Index: chrome/browser/browser_accessibility.h |
=================================================================== |
--- chrome/browser/browser_accessibility.h (revision 0) |
+++ chrome/browser/browser_accessibility.h (revision 0) |
@@ -0,0 +1,169 @@ |
+// Copyright (c) 2006-2008 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 CHROME_BROWSER_BROWSER_ACCESSIBILITY_H_ |
+#define CHROME_BROWSER_BROWSER_ACCESSIBILITY_H_ |
+ |
+#include <atlbase.h> |
+#include <atlcom.h> |
+ |
+#include <oleacc.h> |
+ |
+#include "chrome/common/render_messages.h" |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// |
+// BrowserAccessibility |
+// |
+// Class implementing the MSAA IAccessible COM interface for the |
+// Browser-Renderer communication of MSAA information, providing accessibility |
+// to be used by screen readers and other assistive technology (AT). |
+// |
+//////////////////////////////////////////////////////////////////////////////// |
+class ATL_NO_VTABLE BrowserAccessibility |
+ : public CComObjectRootEx<CComMultiThreadModel>, |
+ public IDispatchImpl<IAccessible, &IID_IAccessible, &LIBID_Accessibility> { |
+ public: |
+ BEGIN_COM_MAP(BrowserAccessibility) |
+ COM_INTERFACE_ENTRY2(IDispatch, IAccessible) |
+ COM_INTERFACE_ENTRY(IAccessible) |
+ END_COM_MAP() |
+ |
+ BrowserAccessibility(); |
+ ~BrowserAccessibility() {} |
+ |
+ // Supported IAccessible methods. |
+ |
+ // Performs the default action on a given object. |
+ STDMETHODIMP accDoDefaultAction(VARIANT var_id); |
+ |
+ // Retrieves the child element or child object at a given point on the screen. |
+ STDMETHODIMP accHitTest(LONG x_left, LONG y_top, VARIANT* child); |
+ |
+ // Retrieves the specified object's current screen location. |
+ STDMETHODIMP accLocation(LONG* x_left, |
+ LONG* y_top, |
+ LONG* width, |
+ LONG* height, |
+ VARIANT var_id); |
+ |
+ // Traverses to another UI element and retrieves the object. |
+ STDMETHODIMP accNavigate(LONG nav_dir, VARIANT start, VARIANT* end); |
+ |
+ // Retrieves an IDispatch interface pointer for the specified child. |
+ STDMETHODIMP get_accChild(VARIANT var_child, IDispatch** disp_child); |
+ |
+ // Retrieves the number of accessible children. |
+ STDMETHODIMP get_accChildCount(LONG* child_count); |
+ |
+ // Retrieves a string that describes the object's default action. |
+ STDMETHODIMP get_accDefaultAction(VARIANT var_id, BSTR* default_action); |
+ |
+ // Retrieves the object's description. |
+ STDMETHODIMP get_accDescription(VARIANT var_id, BSTR* desc); |
+ |
+ // Retrieves the object that has the keyboard focus. |
+ STDMETHODIMP get_accFocus(VARIANT* focus_child); |
+ |
+ // Retrieves the help information associated with the object. |
+ STDMETHODIMP get_accHelp(VARIANT var_id, BSTR* help); |
+ |
+ // Retrieves the specified object's shortcut. |
+ STDMETHODIMP get_accKeyboardShortcut(VARIANT var_id, BSTR* access_key); |
+ |
+ // Retrieves the name of the specified object. |
+ STDMETHODIMP get_accName(VARIANT var_id, BSTR* name); |
+ |
+ // Retrieves the IDispatch interface of the object's parent. |
+ STDMETHODIMP get_accParent(IDispatch** disp_parent); |
+ |
+ // Retrieves information describing the role of the specified object. |
+ STDMETHODIMP get_accRole(VARIANT var_id, VARIANT* role); |
+ |
+ // Retrieves the current state of the specified object. |
+ STDMETHODIMP get_accState(VARIANT var_id, VARIANT* state); |
+ |
+ // Returns the value associated with the object. |
+ STDMETHODIMP get_accValue(VARIANT var_id, BSTR* value); |
+ |
+ // Non-supported (by WebKit) IAccessible methods. |
+ STDMETHODIMP accSelect(LONG flags_sel, VARIANT var_id); |
+ |
+ STDMETHODIMP get_accHelpTopic(BSTR* help_file, |
+ VARIANT var_id, |
+ LONG* topic_id); |
+ |
+ STDMETHODIMP get_accSelection(VARIANT* selected); |
+ |
+ // Deprecated functions, not implemented here. |
+ STDMETHODIMP put_accName(VARIANT var_id, BSTR put_name); |
+ STDMETHODIMP put_accValue(VARIANT var_id, BSTR put_val); |
+ |
+ // Modify/retrieve the unique id of this IAccessible instance. |
+ void set_iaccessible_id(int iaccessible_id) { |
+ iaccessible_id_ = iaccessible_id; |
+ } |
+ int iaccessible_id() const { return iaccessible_id_; } |
+ |
+ // Modify/retrieve the unique id of this IAccessible's routing variables. |
+ void set_instance_id(int instance_id) { |
+ instance_id_ = instance_id; |
+ } |
+ int instance_id() const { return instance_id_; } |
+ |
+ // Modify/retrieve the state (active/inactive) of this instance. |
+ void set_instance_active(bool instance_active) { |
+ instance_active_ = instance_active; |
+ } |
+ int instance_active() const { return instance_active_; } |
+ |
+ private: |
+ // Creates an empty VARIANT. Used as the equivalent of a NULL (unused) input |
+ // parameter. |
+ VARIANT EmptyVariant() const { |
+ VARIANT empty; |
+ empty.vt = VT_EMPTY; |
+ return empty; |
+ } |
+ |
+ // Wrapper functions, calling through to singleton instance of |
+ // BrowserAccessibilityManager. |
+ |
+ // Creates an instance of BrowserAccessibility, initializes it and sets the |
+ // |iaccessible_id| and |parent_id|. |
+ STDMETHODIMP CreateInstance(REFIID iid, |
+ int iaccessible_id, |
+ void** interface_ptr); |
+ |
+ // Composes and sends a message for requesting needed accessibility |
+ // information. Unused LONG input parameters should be NULL, and the VARIANT |
+ // an empty, valid instance. |
+ bool RequestAccessibilityInfo(int iaccessible_func_id, |
+ VARIANT var_id, |
+ LONG input1, LONG input2); |
+ |
+ // Accessors. |
+ ViewHostMsg_Accessibility_Out_Params response(); |
+ HWND parent_hwnd(); |
+ |
+ // Id to uniquely distinguish this instance in the render-side caching, |
+ // mapping it to the correct IAccessible on that side. Initialized to -1. |
+ int iaccessible_id_; |
+ |
+ // The unique id of this IAccessible instance. Used to help |
+ // BrowserAccessibilityManager instance retrieve the correct member |
+ // variables for this process. |
+ int instance_id_; |
+ |
+ // The instance should only be active if there is a non-terminated |
+ // RenderProcessHost associated with it. The BrowserAccessibilityManager keeps |
+ // track of this state, and sets it to false to disable all calls into the |
+ // renderer from this instance of BroweserAccessibility, and have all |
+ // IAccessible functions return E_FAIL. |
+ bool instance_active_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(BrowserAccessibility); |
+}; |
+#endif // CHROME_BROWSER_BROWSER_ACCESSIBILITY_H_ |
+ |
Property changes on: chrome\browser\browser_accessibility.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |