winaccessibility/source/UAccCOM/MAccessible.cxx | 79 +++++++++--------------- 1 file changed, 31 insertions(+), 48 deletions(-)
New commits: commit 620223ec2b47133db4faddd1f7cbf0294fb72fa4 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Mon Jun 28 10:49:50 2021 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Mon Jun 28 15:33:40 2021 +0200 wina11y: Convert QUERYXINTERFACE macro to template function Change-Id: Ia4ecab7ada4df83b773505561569cededef35612 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118005 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx b/winaccessibility/source/UAccCOM/MAccessible.cxx index f3c0dbf09493..5e0cd681381d 100644 --- a/winaccessibility/source/UAccCOM/MAccessible.cxx +++ b/winaccessibility/source/UAccCOM/MAccessible.cxx @@ -91,6 +91,24 @@ enum XInterfaceIndex { XI_NULL = -1 }; +template <class Interface> +bool queryXInterface(XAccessible* pXAcc, XInterface** ppXI) +{ + if (!pXAcc) + return false; + + Reference<XAccessibleContext> pRContext = pXAcc->getAccessibleContext(); + if (!pRContext.is()) + return false; + + Reference<Interface> pRXI(pRContext, UNO_QUERY); + if (!pRXI.is()) + return false; + + *ppXI = pRXI.get(); + return true; +} + } // IA2 states mapping, and name @@ -145,25 +163,6 @@ short const UNO_STATES[] = using namespace com::sun::star::accessibility::AccessibleRole; - -#define QUERYXINTERFACE(ainterface) \ -{ \ - if(pXAcc == nullptr) \ - return false; \ - pRContext = pXAcc->getAccessibleContext(); \ - if( !pRContext.is() ) \ -{ \ - return false; \ -} \ - Reference<X##ainterface> pRXI(pRContext,UNO_QUERY);\ - if( !pRXI.is() ) \ -{ \ - return false; \ -} \ - *ppXI = pRXI.get(); \ - return true; \ -} - #define ISDESTROY() \ if(m_isDestroy) \ return S_FALSE; @@ -2503,51 +2502,35 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP CMAccessible::Put_ActionDescription( const OLE bool CMAccessible::GetXInterfaceFromXAccessible(XAccessible* pXAcc, XInterface** ppXI, int index) { - Reference< XAccessibleContext > pRContext; - switch(index) { case XI_COMPONENT: - QUERYXINTERFACE(AccessibleComponent) - break; + return queryXInterface<XAccessibleComponent>(pXAcc, ppXI); case XI_TEXT: - QUERYXINTERFACE(AccessibleText) - break; + return queryXInterface<XAccessibleText>(pXAcc, ppXI); case XI_EDITABLETEXT: - QUERYXINTERFACE(AccessibleEditableText) - break; + return queryXInterface<XAccessibleEditableText>(pXAcc, ppXI); case XI_TABLE: - QUERYXINTERFACE(AccessibleTable) - break; + return queryXInterface<XAccessibleTable>(pXAcc, ppXI); case XI_SELECTION: - QUERYXINTERFACE(AccessibleSelection) - break; + return queryXInterface<XAccessibleSelection>(pXAcc, ppXI); case XI_EXTENDEDCOMP: - QUERYXINTERFACE(AccessibleExtendedComponent) - break; + return queryXInterface<XAccessibleExtendedComponent>(pXAcc, ppXI); case XI_KEYBINDING: - QUERYXINTERFACE(AccessibleKeyBinding) - break; + return queryXInterface<XAccessibleKeyBinding>(pXAcc, ppXI); case XI_ACTION: - QUERYXINTERFACE(AccessibleAction) - break; + return queryXInterface<XAccessibleAction>(pXAcc, ppXI); case XI_VALUE: - QUERYXINTERFACE(AccessibleValue) - break; + return queryXInterface<XAccessibleValue>(pXAcc, ppXI); case XI_HYPERTEXT: - QUERYXINTERFACE(AccessibleHypertext) - break; + return queryXInterface<XAccessibleHypertext>(pXAcc, ppXI); case XI_HYPERLINK: - QUERYXINTERFACE(AccessibleHyperlink) - break; + return queryXInterface<XAccessibleHyperlink>(pXAcc, ppXI); case XI_IMAGE: - QUERYXINTERFACE(AccessibleImage) - break; + return queryXInterface<XAccessibleImage>(pXAcc, ppXI); default: - break; + return false; } - - return false; } template<typename T> static HRESULT _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits