1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #if defined(MOZILLA_INTERNAL_API) 8 # error This code is NOT for internal Gecko use! 9 #endif // defined(MOZILLA_INTERNAL_API) 10 11 #ifndef mozilla_a11y_HandlerTextLeaf_h 12 # define mozilla_a11y_HandlerTextLeaf_h 13 14 # include "AccessibleHandler.h" 15 # include "IUnknownImpl.h" 16 # include "mozilla/RefPtr.h" 17 18 namespace mozilla { 19 namespace a11y { 20 21 class HandlerTextLeaf final : public IAccessible2, public IServiceProvider { 22 public: 23 explicit HandlerTextLeaf(IDispatch* aParent, long aIndexInParent, HWND aHwnd, 24 AccChildData& aData); 25 26 DECL_IUNKNOWN 27 28 // IDispatch 29 STDMETHODIMP GetTypeInfoCount(UINT* pctinfo) override; 30 STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, 31 ITypeInfo** ppTInfo) override; 32 STDMETHODIMP GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, 33 LCID lcid, DISPID* rgDispId) override; 34 STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, 35 DISPPARAMS* pDispParams, VARIANT* pVarResult, 36 EXCEPINFO* pExcepInfo, UINT* puArgErr) override; 37 38 // IAccessible 39 STDMETHODIMP get_accParent(IDispatch** ppdispParent) override; 40 STDMETHODIMP get_accChildCount(long* pcountChildren) override; 41 STDMETHODIMP get_accChild(VARIANT varChild, IDispatch** ppdispChild) override; 42 STDMETHODIMP get_accName(VARIANT varChild, BSTR* pszName) override; 43 STDMETHODIMP get_accValue(VARIANT varChild, BSTR* pszValue) override; 44 STDMETHODIMP get_accDescription(VARIANT varChild, 45 BSTR* pszDescription) override; 46 STDMETHODIMP get_accRole(VARIANT varChild, VARIANT* pvarRole) override; 47 STDMETHODIMP get_accState(VARIANT varChild, VARIANT* pvarState) override; 48 STDMETHODIMP get_accHelp(VARIANT varChild, BSTR* pszHelp) override; 49 STDMETHODIMP get_accHelpTopic(BSTR* pszHelpFile, VARIANT varChild, 50 long* pidTopic) override; 51 STDMETHODIMP get_accKeyboardShortcut(VARIANT varChild, 52 BSTR* pszKeyboardShortcut) override; 53 STDMETHODIMP get_accFocus(VARIANT* pvarChild) override; 54 STDMETHODIMP get_accSelection(VARIANT* pvarChildren) override; 55 STDMETHODIMP get_accDefaultAction(VARIANT varChild, 56 BSTR* pszDefaultAction) override; 57 STDMETHODIMP accSelect(long flagsSelect, VARIANT varChild) override; 58 STDMETHODIMP accLocation(long* pxLeft, long* pyTop, long* pcxWidth, 59 long* pcyHeight, VARIANT varChild) override; 60 STDMETHODIMP accNavigate(long navDir, VARIANT varStart, 61 VARIANT* pvarEndUpAt) override; 62 STDMETHODIMP accHitTest(long xLeft, long yTop, VARIANT* pvarChild) override; 63 STDMETHODIMP accDoDefaultAction(VARIANT varChild) override; 64 STDMETHODIMP put_accName(VARIANT varChild, BSTR szName) override; 65 STDMETHODIMP put_accValue(VARIANT varChild, BSTR szValue) override; 66 67 // IAccessible2 68 STDMETHODIMP get_nRelations(long* nRelations) override; 69 STDMETHODIMP get_relation(long relationIndex, 70 IAccessibleRelation** relation) override; 71 STDMETHODIMP get_relations(long maxRelations, IAccessibleRelation** relations, 72 long* nRelations) override; 73 STDMETHODIMP role(long* role) override; 74 STDMETHODIMP scrollTo(IA2ScrollType scrollType) override; 75 STDMETHODIMP scrollToPoint(IA2CoordinateType coordinateType, long x, 76 long y) override; 77 STDMETHODIMP get_groupPosition(long* groupLevel, long* similarItemsInGroup, 78 long* positionInGroup) override; 79 STDMETHODIMP get_states(AccessibleStates* states) override; 80 STDMETHODIMP get_extendedRole(BSTR* extendedRole) override; 81 STDMETHODIMP get_localizedExtendedRole(BSTR* localizedExtendedRole) override; 82 STDMETHODIMP get_nExtendedStates(long* nExtendedStates) override; 83 STDMETHODIMP get_extendedStates(long maxExtendedStates, BSTR** extendedStates, 84 long* nExtendedStates) override; 85 STDMETHODIMP get_localizedExtendedStates( 86 long maxLocalizedExtendedStates, BSTR** localizedExtendedStates, 87 long* nLocalizedExtendedStates) override; 88 STDMETHODIMP get_uniqueID(long* uniqueID) override; 89 STDMETHODIMP get_windowHandle(HWND* windowHandle) override; 90 STDMETHODIMP get_indexInParent(long* indexInParent) override; 91 STDMETHODIMP get_locale(IA2Locale* locale) override; 92 STDMETHODIMP get_attributes(BSTR* attributes) override; 93 94 // IServiceProvider 95 STDMETHODIMP QueryService(REFGUID aServiceId, REFIID aIid, 96 void** aOutInterface) override; 97 98 private: 99 ~HandlerTextLeaf(); 100 101 RefPtr<IDispatch> mParent; 102 long mIndexInParent; 103 HWND mHwnd; 104 AccChildData mData; 105 }; 106 107 } // namespace a11y 108 } // namespace mozilla 109 110 #endif // mozilla_a11y_HandlerTextLeaf_h 111