Kaydet (Commit) fd2877ee authored tarafından Michael Stahl's avatar Michael Stahl

winaccessibility: CMAccessible needs only one member for XAccessible

Merge aliases pUNOInterface and pRef; also pAchorUNOInterface is never
used.

Change-Id: I1b3841a9aca9d2438b25c66c7f67d09ce13b41f9
üst b3c2cf2a
...@@ -208,8 +208,7 @@ m_pszDescription(NULL), ...@@ -208,8 +208,7 @@ m_pszDescription(NULL),
m_isDestroy(FALSE), m_isDestroy(FALSE),
m_pszActionDescription(NULL), m_pszActionDescription(NULL),
m_pXAction(NULL), m_pXAction(NULL),
m_bRequiresSave(FALSE), m_bRequiresSave(FALSE)
pUNOInterface(NULL)
{ {
m_sLocation.m_dLeft=0; m_sLocation.m_dLeft=0;
m_sLocation.m_dTop = 0; m_sLocation.m_dTop = 0;
...@@ -247,7 +246,6 @@ CMAccessible::~CMAccessible() ...@@ -247,7 +246,6 @@ CMAccessible::~CMAccessible()
m_pIParent->Release(); m_pIParent->Release();
m_pIParent=NULL; m_pIParent=NULL;
} }
pRef = NULL;
m_pEnumVar->Release(); m_pEnumVar->Release();
m_containedObjects.clear(); m_containedObjects.clear();
pRContext = NULL; pRContext = NULL;
...@@ -310,10 +308,11 @@ STDMETHODIMP CMAccessible::get_accChildCount(long *pcountChildren) ...@@ -310,10 +308,11 @@ STDMETHODIMP CMAccessible::get_accChildCount(long *pcountChildren)
return E_INVALIDARG; return E_INVALIDARG;
} }
if(!pUNOInterface) if (!m_xAccessible.is())
return S_FALSE; return S_FALSE;
Reference< XAccessibleContext > pRContext = pUNOInterface->getAccessibleContext(); Reference<XAccessibleContext> const pRContext =
m_xAccessible->getAccessibleContext();
if( pRContext.is() ) if( pRContext.is() )
{ {
*pcountChildren = pRContext->getAccessibleChildCount(); *pcountChildren = pRContext->getAccessibleChildCount();
...@@ -556,9 +555,10 @@ STDMETHODIMP CMAccessible::get_accState(VARIANT varChild, VARIANT *pvarState) ...@@ -556,9 +555,10 @@ STDMETHODIMP CMAccessible::get_accState(VARIANT varChild, VARIANT *pvarState)
{ {
if(varChild.lVal == CHILDID_SELF) if(varChild.lVal == CHILDID_SELF)
{ {
if(pUNOInterface) if (m_xAccessible.is())
{ {
Reference< XAccessibleContext > pContext = pUNOInterface->getAccessibleContext(); Reference<XAccessibleContext> const pContext =
m_xAccessible->getAccessibleContext();
if(pContext.is()) if(pContext.is())
{ {
// add the STATE_SYSTEM_LINKED state // add the STATE_SYSTEM_LINKED state
...@@ -661,9 +661,10 @@ STDMETHODIMP CMAccessible::get_accKeyboardShortcut(VARIANT varChild, BSTR *pszKe ...@@ -661,9 +661,10 @@ STDMETHODIMP CMAccessible::get_accKeyboardShortcut(VARIANT varChild, BSTR *pszKe
{ {
if(varChild.lVal == CHILDID_SELF) if(varChild.lVal == CHILDID_SELF)
{ {
if( pUNOInterface ) if (m_xAccessible.is())
{ {
Reference<XAccessibleContext> pRContext = pUNOInterface->getAccessibleContext(); Reference<XAccessibleContext> const pRContext =
m_xAccessible->getAccessibleContext();
if( !pRContext.is() ) if( !pRContext.is() )
return S_FALSE; return S_FALSE;
...@@ -748,7 +749,7 @@ STDMETHODIMP CMAccessible::get_accKeyboardShortcut(VARIANT varChild, BSTR *pszKe ...@@ -748,7 +749,7 @@ STDMETHODIMP CMAccessible::get_accKeyboardShortcut(VARIANT varChild, BSTR *pszKe
{ {
xTargets = paccRelation->TargetSet; xTargets = paccRelation->TargetSet;
pRAcc = xTargets[0]; pRAcc = xTargets[0];
if(pUNOInterface != (XAccessible*)pRAcc.get()) if (m_xAccessible.get() != (XAccessible*)pRAcc.get())
return S_FALSE; return S_FALSE;
} }
...@@ -903,9 +904,10 @@ STDMETHODIMP CMAccessible::accLocation(long *pxLeft, long *pyTop, long *pcxWidth ...@@ -903,9 +904,10 @@ STDMETHODIMP CMAccessible::accLocation(long *pxLeft, long *pyTop, long *pcxWidth
if(varChild.lVal==CHILDID_SELF) if(varChild.lVal==CHILDID_SELF)
{ {
if(pUNOInterface) if (m_xAccessible.is())
{ {
Reference< XAccessibleContext > pRContext = pUNOInterface->getAccessibleContext(); Reference<XAccessibleContext> const pRContext =
m_xAccessible->getAccessibleContext();
if( !pRContext.is() ) if( !pRContext.is() )
return S_FALSE; return S_FALSE;
Reference< XAccessibleComponent > pRComponent(pRContext,UNO_QUERY); Reference< XAccessibleComponent > pRComponent(pRContext,UNO_QUERY);
...@@ -1006,7 +1008,7 @@ STDMETHODIMP CMAccessible::accHitTest(long xLeft, long yTop, VARIANT *pvarChild) ...@@ -1006,7 +1008,7 @@ STDMETHODIMP CMAccessible::accHitTest(long xLeft, long yTop, VARIANT *pvarChild)
{ {
int i, nCount; int i, nCount;
pvarChild->vt = VT_EMPTY; pvarChild->vt = VT_EMPTY;
Reference< XAccessibleContext > pRContext = GetContextByXAcc(pUNOInterface); Reference< XAccessibleContext > pRContext = GetContextByXAcc(m_xAccessible.get());
nCount = pRContext->getAccessibleChildCount(); nCount = pRContext->getAccessibleChildCount();
if(nCount > 256) if(nCount > 256)
return E_FAIL; return E_FAIL;
...@@ -1344,7 +1346,7 @@ STDMETHODIMP CMAccessible::Put_XAccAgent(hyper pAgent) ...@@ -1344,7 +1346,7 @@ STDMETHODIMP CMAccessible::Put_XAccAgent(hyper pAgent)
/** /**
* When a UNO control disposing, it disposes its listeners, * When a UNO control disposing, it disposes its listeners,
* then notify AccObject in bridge management, then notify * then notify AccObject in bridge management, then notify
* COM that the XAccessible is invalid,so set pUNOInterface as NULL * COM that the XAccessible is invalid,so set m_xAccessible as NULL
* @param isDestroy, true is it need to be destroyed. * @param isDestroy, true is it need to be destroyed.
* @return S_OK if successful and E_FAIL if failure. * @return S_OK if successful and E_FAIL if failure.
*/ */
...@@ -1352,7 +1354,7 @@ STDMETHODIMP CMAccessible::NotifyDestroy(BOOL isDestroy) ...@@ -1352,7 +1354,7 @@ STDMETHODIMP CMAccessible::NotifyDestroy(BOOL isDestroy)
{ {
m_isDestroy = isDestroy; m_isDestroy = isDestroy;
pUNOInterface = NULL; m_xAccessible.clear();
return S_OK; return S_OK;
} }
...@@ -1381,7 +1383,8 @@ IMAccessible* CMAccessible::GetChildInterface(long dChildID)//for test ...@@ -1381,7 +1383,8 @@ IMAccessible* CMAccessible::GetChildInterface(long dChildID)//for test
} }
else else
{ {
Reference< XAccessibleContext > pRContext = pUNOInterface->getAccessibleContext(); Reference<XAccessibleContext> const pRContext =
m_xAccessible->getAccessibleContext();
if( !pRContext.is() ) if( !pRContext.is() )
return NULL; return NULL;
...@@ -1394,7 +1397,7 @@ IMAccessible* CMAccessible::GetChildInterface(long dChildID)//for test ...@@ -1394,7 +1397,7 @@ IMAccessible* CMAccessible::GetChildInterface(long dChildID)//for test
if(!isGet) if(!isGet)
{ {
g_pAgent->InsertAccObj(pXChild.get(), pUNOInterface, g_pAgent->InsertAccObj(pXChild.get(), m_xAccessible.get(),
reinterpret_cast<sal_Int64>(m_hwnd)); reinterpret_cast<sal_Int64>(m_hwnd));
isGet = get_IAccessibleFromXAccessible(pXChild.get(), &pChild); isGet = get_IAccessibleFromXAccessible(pXChild.get(), &pChild);
} }
...@@ -1429,7 +1432,7 @@ BOOL CMAccessible::IsDecendantManage() ...@@ -1429,7 +1432,7 @@ BOOL CMAccessible::IsDecendantManage()
IMAccessible* CMAccessible::GetNavigateChildForDM(VARIANT varCur, short flags) IMAccessible* CMAccessible::GetNavigateChildForDM(VARIANT varCur, short flags)
{ {
XAccessibleContext* pXContext = GetContextByXAcc(pUNOInterface); XAccessibleContext* pXContext = GetContextByXAcc(m_xAccessible.get());
if(pXContext==NULL) if(pXContext==NULL)
{ {
return NULL; return NULL;
...@@ -1490,7 +1493,7 @@ IMAccessible* CMAccessible::GetNavigateChildForDM(VARIANT varCur, short flags) ...@@ -1490,7 +1493,7 @@ IMAccessible* CMAccessible::GetNavigateChildForDM(VARIANT varCur, short flags)
return NULL; return NULL;
} }
pChildXAcc = pRChildXAcc.get(); pChildXAcc = pRChildXAcc.get();
g_pAgent->InsertAccObj(pChildXAcc,pUNOInterface); g_pAgent->InsertAccObj(pChildXAcc, m_xAccessible.get());
return g_pAgent->GetIMAccByXAcc(pChildXAcc); return g_pAgent->GetIMAccByXAcc(pChildXAcc);
} }
...@@ -1589,7 +1592,8 @@ HRESULT CMAccessible::GetNextSibling(VARIANT varStart,VARIANT* pvarEndUpAt) ...@@ -1589,7 +1592,8 @@ HRESULT CMAccessible::GetNextSibling(VARIANT varStart,VARIANT* pvarEndUpAt)
return E_INVALIDARG; return E_INVALIDARG;
} }
Reference< XAccessibleContext > pRContext = GetContextByXAcc(pUNOInterface); Reference<XAccessibleContext> const pRContext =
GetContextByXAcc(m_xAccessible.get());
if(pRContext.is()) if(pRContext.is())
{ {
varStart.iVal = sal_Int16(pRContext->getAccessibleIndexInParent() + 2); varStart.iVal = sal_Int16(pRContext->getAccessibleIndexInParent() + 2);
...@@ -1628,7 +1632,8 @@ HRESULT CMAccessible::GetPreSibling(VARIANT varStart,VARIANT* pvarEndUpAt) ...@@ -1628,7 +1632,8 @@ HRESULT CMAccessible::GetPreSibling(VARIANT varStart,VARIANT* pvarEndUpAt)
return E_INVALIDARG; return E_INVALIDARG;
} }
Reference< XAccessibleContext > pRContext = GetContextByXAcc(pUNOInterface); Reference<XAccessibleContext> const pRContext =
GetContextByXAcc(m_xAccessible.get());
if(pRContext.is()) if(pRContext.is())
{ {
varStart.iVal = sal_Int16(pRContext->getAccessibleIndexInParent()); varStart.iVal = sal_Int16(pRContext->getAccessibleIndexInParent());
...@@ -1902,7 +1907,8 @@ STDMETHODIMP CMAccessible:: get_groupPosition(long __RPC_FAR *groupLevel,long __ ...@@ -1902,7 +1907,8 @@ STDMETHODIMP CMAccessible:: get_groupPosition(long __RPC_FAR *groupLevel,long __
return E_INVALIDARG; return E_INVALIDARG;
} }
Reference<XAccessibleContext> pRContext = pUNOInterface->getAccessibleContext(); Reference<XAccessibleContext> const pRContext =
m_xAccessible->getAccessibleContext();
if(!pRContext.is()) if(!pRContext.is())
return E_FAIL; return E_FAIL;
long Role = pRContext->getAccessibleRole(); long Role = pRContext->getAccessibleRole();
...@@ -1960,7 +1966,7 @@ STDMETHODIMP CMAccessible:: get_groupPosition(long __RPC_FAR *groupLevel,long __ ...@@ -1960,7 +1966,7 @@ STDMETHODIMP CMAccessible:: get_groupPosition(long __RPC_FAR *groupLevel,long __
== (XAccessible*)pRAcc.get() && == (XAccessible*)pRAcc.get() &&
pRParentContext->getAccessibleChild(j)->getAccessibleContext()->getAccessibleRole() == RADIO_BUTTON) pRParentContext->getAccessibleChild(j)->getAccessibleContext()->getAccessibleRole() == RADIO_BUTTON)
number++; number++;
if(pRParentContext->getAccessibleChild(j).get() == pUNOInterface) if (pRParentContext->getAccessibleChild(j).get() == m_xAccessible.get())
index = number; index = number;
} }
} }
...@@ -2152,9 +2158,10 @@ XAccessibleContext* CMAccessible::GetContextByXAcc( XAccessible* pXAcc ) ...@@ -2152,9 +2158,10 @@ XAccessibleContext* CMAccessible::GetContextByXAcc( XAccessible* pXAcc )
*/ */
Reference< XAccessibleSelection > CMAccessible::GetSelection() Reference< XAccessibleSelection > CMAccessible::GetSelection()
{ {
if( pUNOInterface == NULL ) if (!m_xAccessible.is())
return NULL; return NULL;
Reference< XAccessibleContext > pRContext = pUNOInterface->getAccessibleContext(); Reference<XAccessibleContext> const pRContext =
m_xAccessible->getAccessibleContext();
if(pRContext.is()) if(pRContext.is())
{ {
Reference< XAccessibleSelection > pRSelection(pRContext,UNO_QUERY); Reference< XAccessibleSelection > pRSelection(pRContext,UNO_QUERY);
...@@ -2173,7 +2180,7 @@ HRESULT CMAccessible::SelectChild(XAccessible* pItem) ...@@ -2173,7 +2180,7 @@ HRESULT CMAccessible::SelectChild(XAccessible* pItem)
ENTER_PROTECTED_BLOCK ENTER_PROTECTED_BLOCK
ISDESTROY() ISDESTROY()
XAccessibleContext* pParentContext = GetContextByXAcc( pUNOInterface ); XAccessibleContext* pParentContext = GetContextByXAcc(m_xAccessible.get());
XAccessibleContext* pContext = GetContextByXAcc( pItem ); XAccessibleContext* pContext = GetContextByXAcc( pItem );
if( pParentContext == NULL || pContext == NULL ) if( pParentContext == NULL || pContext == NULL )
return E_FAIL; return E_FAIL;
...@@ -2198,7 +2205,7 @@ HRESULT CMAccessible::DeSelectChild(XAccessible* pItem) ...@@ -2198,7 +2205,7 @@ HRESULT CMAccessible::DeSelectChild(XAccessible* pItem)
ENTER_PROTECTED_BLOCK ENTER_PROTECTED_BLOCK
ISDESTROY() ISDESTROY()
XAccessibleContext* pParentContext = GetContextByXAcc( pUNOInterface ); XAccessibleContext* pParentContext = GetContextByXAcc(m_xAccessible.get());
; ;
XAccessibleContext* pContext = GetContextByXAcc( pItem ); XAccessibleContext* pContext = GetContextByXAcc( pItem );
if( pParentContext == NULL || pContext == NULL ) if( pParentContext == NULL || pContext == NULL )
...@@ -2273,12 +2280,11 @@ HRESULT CMAccessible::DeSelectMutipleChildren( XAccessible** pItem,int size ) ...@@ -2273,12 +2280,11 @@ HRESULT CMAccessible::DeSelectMutipleChildren( XAccessible** pItem,int size )
*/ */
STDMETHODIMP CMAccessible::SetXAccessible(hyper pXAcc) STDMETHODIMP CMAccessible::SetXAccessible(hyper pXAcc)
{ {
pUNOInterface = reinterpret_cast<XAccessible*>(pXAcc); m_xAccessible = reinterpret_cast<XAccessible*>(pXAcc);
pRef = pUNOInterface;
m_pEnumVar->PutSelection(/*XAccessibleSelection*/ m_pEnumVar->PutSelection(/*XAccessibleSelection*/
reinterpret_cast<hyper>(pUNOInterface)); reinterpret_cast<hyper>(m_xAccessible.get()));
pRContext = pUNOInterface->getAccessibleContext(); pRContext = m_xAccessible->getAccessibleContext();
pRContextInterface = (XAccessibleContext*)pRContext.is(); pRContextInterface = (XAccessibleContext*)pRContext.is();
return S_OK; return S_OK;
...@@ -2393,7 +2399,7 @@ STDMETHODIMP CMAccessible::GetUNOInterface(hyper * pXAcc) ...@@ -2393,7 +2399,7 @@ STDMETHODIMP CMAccessible::GetUNOInterface(hyper * pXAcc)
if(pXAcc == NULL) if(pXAcc == NULL)
return E_INVALIDARG; return E_INVALIDARG;
*pXAcc = reinterpret_cast<hyper>(pUNOInterface); *pXAcc = reinterpret_cast<hyper>(m_xAccessible.get());
return S_OK; return S_OK;
} }
...@@ -2571,7 +2577,8 @@ HRESULT WINAPI CMAccessible::SmartQI(void* pv, REFIID iid, void** ppvObject) ...@@ -2571,7 +2577,8 @@ HRESULT WINAPI CMAccessible::SmartQI(void* pv, REFIID iid, void** ppvObject)
if(ImplIsEqualGUID(iid, *pMap->piid)) if(ImplIsEqualGUID(iid, *pMap->piid))
{ {
XInterface* pXI = NULL; XInterface* pXI = NULL;
BOOL bFound = GetXInterfaceFromXAccessible(pUNOInterface,&pXI,pMap->XIFIndex); BOOL bFound = GetXInterfaceFromXAccessible(m_xAccessible.get(),
&pXI, pMap->XIFIndex);
if(!bFound) if(!bFound)
{ {
return E_FAIL; return E_FAIL;
...@@ -2595,7 +2602,7 @@ HRESULT WINAPI CMAccessible::SmartQI(void* pv, REFIID iid, void** ppvObject) ...@@ -2595,7 +2602,7 @@ HRESULT WINAPI CMAccessible::SmartQI(void* pv, REFIID iid, void** ppvObject)
if(wrapper) if(wrapper)
{ {
wrapper->put_XInterface( wrapper->put_XInterface(
reinterpret_cast<hyper>(pUNOInterface)); reinterpret_cast<hyper>(m_xAccessible.get()));
wrapper->Release(); wrapper->Release();
} }
return S_OK; return S_OK;
...@@ -3246,7 +3253,7 @@ STDMETHODIMP CMAccessible:: get_toolkitVersion(BSTR __RPC_FAR *version) ...@@ -3246,7 +3253,7 @@ STDMETHODIMP CMAccessible:: get_toolkitVersion(BSTR __RPC_FAR *version)
STDMETHODIMP CMAccessible::get_attributes(/*[out]*/ BSTR *pAttr) STDMETHODIMP CMAccessible::get_attributes(/*[out]*/ BSTR *pAttr)
{ {
CHECK_ENABLE_INF CHECK_ENABLE_INF
Reference<XAccessibleContext> pRContext = pUNOInterface->getAccessibleContext(); Reference<XAccessibleContext> pRContext = m_xAccessible->getAccessibleContext();
if( !pRContext.is() ) if( !pRContext.is() )
{ {
return E_FAIL; return E_FAIL;
......
...@@ -228,9 +228,7 @@ private: ...@@ -228,9 +228,7 @@ private:
// specify if the XAccessible is invalid // specify if the XAccessible is invalid
BOOL m_isDestroy; BOOL m_isDestroy;
css::accessibility::XAccessible * pUNOInterface; css::uno::Reference<css::accessibility::XAccessible> m_xAccessible;
css::uno::Reference<css::accessibility::XAccessible> pRef;
css::accessibility::XAccessible * pAchorUNOInterface;
css::accessibility::XAccessibleAction * m_pXAction; css::accessibility::XAccessibleAction * m_pXAction;
css::accessibility::XAccessibleContext * pRContextInterface; css::accessibility::XAccessibleContext * pRContextInterface;
css::uno::Reference<css::accessibility::XAccessibleContext> pRContext; css::uno::Reference<css::accessibility::XAccessibleContext> pRContext;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment