autocomplete_accessibility.h revision 3345a6884c488ff3a535c2c9acdd33d74b37e311
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_ACCESSIBILITY_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_ACCESSIBILITY_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <atlbase.h> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <atlcom.h> 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <oleacc.h> 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h" 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/scoped_comptr_win.h" 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass AutocompleteEditViewWin; 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch//////////////////////////////////////////////////////////////////////////////// 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// AutocompleteAccessibility 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Class implementing the MSAA IAccessible COM interface for 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// AutocompleteEditViewWin, providing accessibility to be used by screen 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// readers and other assistive technology (AT). 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch//////////////////////////////////////////////////////////////////////////////// 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ATL_NO_VTABLE AutocompleteAccessibility 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch : public CComObjectRootEx<CComMultiThreadModel>, 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public IDispatchImpl<IAccessible, &IID_IAccessible, &LIBID_Accessibility> { 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch BEGIN_COM_MAP(AutocompleteAccessibility) 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch COM_INTERFACE_ENTRY2(IDispatch, IAccessible) 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch COM_INTERFACE_ENTRY(IAccessible) 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch END_COM_MAP() 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch AutocompleteAccessibility() {} 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ~AutocompleteAccessibility() {} 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch HRESULT Initialize(const AutocompleteEditViewWin* edit_box); 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Supported IAccessible methods. 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the number of accessible children. 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accChildCount(LONG* child_count); 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves an IDispatch interface pointer for the specified child. 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accChild(VARIANT var_child, IDispatch** disp_child); 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the IDispatch interface of the object's parent. 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accParent(IDispatch** disp_parent); 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Traverses to another UI element and retrieves the object. 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP accNavigate(LONG nav_dir, VARIANT start, VARIANT* end); 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the object that has the keyboard focus. 56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accFocus(VARIANT* focus_child); 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the name of the specified object. 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accName(VARIANT var_id, BSTR* name); 60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the tooltip description. 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accDescription(VARIANT var_id, BSTR* desc); 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the current value of the edit box. 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accValue(VARIANT var_id, BSTR* value); 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the current state of the specified object. 68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accState(VARIANT var_id, VARIANT* state); 69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves information describing the role of the specified object. 71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accRole(VARIANT var_id, VARIANT* role); 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves a string that describes the object's default action. 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accDefaultAction(VARIANT var_id, BSTR* default_action); 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 76c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the specified object's current screen location. 77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP accLocation(LONG* x_left, LONG* y_top, LONG* width, LONG* height, 78c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch VARIANT var_id); 79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the child element or child object at a given point on the screen. 81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP accHitTest(LONG x_left, LONG y_top, VARIANT* child); 82c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Retrieves the specified object's shortcut. 84c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accKeyboardShortcut(VARIANT var_id, BSTR* access_key); 85c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Non-supported IAccessible methods. 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 88c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Out-dated and can be safely said to be very rarely used. 89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP accDoDefaultAction(VARIANT var_id); 90c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 91c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Selections not applicable to views. 92c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accSelection(VARIANT* selected); 93c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP accSelect(LONG flags_sel, VARIANT var_id); 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 95c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Help functions not supported. 96c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accHelp(VARIANT var_id, BSTR* help); 97c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP get_accHelpTopic(BSTR* help_file, VARIANT var_id, 98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch LONG* topic_id); 99c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 100c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Deprecated functions, not implemented here. 101c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP put_accName(VARIANT var_id, BSTR put_name); 102c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch STDMETHODIMP put_accValue(VARIANT var_id, BSTR put_val); 103c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 104c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch protected: 105c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // A pointer containing the Windows' default IAccessible implementation for 106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // this object. Used where it is acceptable to return default MSAA 107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // information. 108c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ScopedComPtr<IAccessible> default_accessibility_server_; 109c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 110c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 111c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const AutocompleteEditViewWin* edit_box_; 112c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(AutocompleteAccessibility); 114c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_ACCESSIBILITY_H_ 117