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