1*5fdc4257SSteve Yin /************************************************************************* 2*5fdc4257SSteve Yin * 3*5fdc4257SSteve Yin * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*5fdc4257SSteve Yin * 5*5fdc4257SSteve Yin * Copyright IBM Corporation 2010. 6*5fdc4257SSteve Yin * Copyright 2000, 2010 Oracle and/or its affiliates. 7*5fdc4257SSteve Yin * 8*5fdc4257SSteve Yin * OpenOffice.org - a multi-platform office productivity suite 9*5fdc4257SSteve Yin * 10*5fdc4257SSteve Yin * This file is part of OpenOffice.org. 11*5fdc4257SSteve Yin * 12*5fdc4257SSteve Yin * OpenOffice.org is free software: you can redistribute it and/or modify 13*5fdc4257SSteve Yin * it under the terms of the GNU Lesser General Public License version 3 14*5fdc4257SSteve Yin * only, as published by the Free Software Foundation. 15*5fdc4257SSteve Yin * 16*5fdc4257SSteve Yin * OpenOffice.org is distributed in the hope that it will be useful, 17*5fdc4257SSteve Yin * but WITHOUT ANY WARRANTY; without even the implied warranty of 18*5fdc4257SSteve Yin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*5fdc4257SSteve Yin * GNU Lesser General Public License version 3 for more details 20*5fdc4257SSteve Yin * (a copy is included in the LICENSE file that accompanied this code). 21*5fdc4257SSteve Yin * 22*5fdc4257SSteve Yin * You should have received a copy of the GNU Lesser General Public License 23*5fdc4257SSteve Yin * version 3 along with OpenOffice.org. If not, see 24*5fdc4257SSteve Yin * <http://www.openoffice.org/license.html> 25*5fdc4257SSteve Yin * for a copy of the LGPLv3 License. 26*5fdc4257SSteve Yin * 27*5fdc4257SSteve Yin ************************************************************************/ 28*5fdc4257SSteve Yin 29*5fdc4257SSteve Yin #include "AccObjectManagerAgent.hxx" 30*5fdc4257SSteve Yin #include "AccObjectWinManager.hxx" 31*5fdc4257SSteve Yin 32*5fdc4257SSteve Yin #include "UAccCOM2.h" 33*5fdc4257SSteve Yin 34*5fdc4257SSteve Yin using namespace com::sun::star::uno; 35*5fdc4257SSteve Yin using namespace com::sun::star::accessibility; 36*5fdc4257SSteve Yin 37*5fdc4257SSteve Yin /** 38*5fdc4257SSteve Yin * Construction/Destruction. 39*5fdc4257SSteve Yin * @param 40*5fdc4257SSteve Yin * @return 41*5fdc4257SSteve Yin */ 42*5fdc4257SSteve Yin AccObjectManagerAgent::AccObjectManagerAgent(): 43*5fdc4257SSteve Yin pWinManager(NULL) 44*5fdc4257SSteve Yin { 45*5fdc4257SSteve Yin if( pWinManager == NULL ) 46*5fdc4257SSteve Yin { 47*5fdc4257SSteve Yin pWinManager = AccObjectWinManager::CreateAccObjectWinManagerInstance(this); 48*5fdc4257SSteve Yin } 49*5fdc4257SSteve Yin } 50*5fdc4257SSteve Yin 51*5fdc4257SSteve Yin AccObjectManagerAgent::~AccObjectManagerAgent() 52*5fdc4257SSteve Yin { 53*5fdc4257SSteve Yin delete pWinManager; 54*5fdc4257SSteve Yin pWinManager = NULL; 55*5fdc4257SSteve Yin } 56*5fdc4257SSteve Yin 57*5fdc4257SSteve Yin /** 58*5fdc4257SSteve Yin * Interface of updating MSAA name when UNO name_changed event occurs. 59*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 60*5fdc4257SSteve Yin * @return 61*5fdc4257SSteve Yin */ 62*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateAccName( XAccessible* pXAcc ) 63*5fdc4257SSteve Yin { 64*5fdc4257SSteve Yin if( pWinManager ) 65*5fdc4257SSteve Yin pWinManager->UpdateAccName( pXAcc ); 66*5fdc4257SSteve Yin } 67*5fdc4257SSteve Yin 68*5fdc4257SSteve Yin /** 69*5fdc4257SSteve Yin * Interface of updating MSAA name when UNO action changed event occurs. 70*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 71*5fdc4257SSteve Yin * @return 72*5fdc4257SSteve Yin */ 73*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateAction( XAccessible* pXAcc ) 74*5fdc4257SSteve Yin { 75*5fdc4257SSteve Yin if( pWinManager ) 76*5fdc4257SSteve Yin pWinManager->UpdateAction( pXAcc ); 77*5fdc4257SSteve Yin } 78*5fdc4257SSteve Yin 79*5fdc4257SSteve Yin /** 80*5fdc4257SSteve Yin * Interface of updating MSAA value when UNO value_changed event occurs. 81*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 82*5fdc4257SSteve Yin * @param pAny New value. 83*5fdc4257SSteve Yin * @return 84*5fdc4257SSteve Yin */ 85*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateValue( XAccessible* pXAcc, Any pAny ) 86*5fdc4257SSteve Yin { 87*5fdc4257SSteve Yin if( pWinManager ) 88*5fdc4257SSteve Yin pWinManager->SetValue( pXAcc, pAny ); 89*5fdc4257SSteve Yin } 90*5fdc4257SSteve Yin 91*5fdc4257SSteve Yin /** 92*5fdc4257SSteve Yin * Interface of updating MSAA value when UNO value_changed event occurs.If we can not 93*5fdc4257SSteve Yin * find new value,we'll get new value from pXAcc to update com value. 94*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 95*5fdc4257SSteve Yin * @return 96*5fdc4257SSteve Yin */ 97*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateValue( XAccessible* pXAcc ) 98*5fdc4257SSteve Yin { 99*5fdc4257SSteve Yin if( pWinManager ) 100*5fdc4257SSteve Yin pWinManager->UpdateValue( pXAcc ); 101*5fdc4257SSteve Yin } 102*5fdc4257SSteve Yin 103*5fdc4257SSteve Yin /** 104*5fdc4257SSteve Yin * Interface of updating MSAA name when UNO name_changed event occurs. 105*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 106*5fdc4257SSteve Yin * @param newName New UNO accessible name. 107*5fdc4257SSteve Yin * @return 108*5fdc4257SSteve Yin */ 109*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateAccName( XAccessible* pXAcc, Any newName) 110*5fdc4257SSteve Yin { 111*5fdc4257SSteve Yin if( pWinManager ) 112*5fdc4257SSteve Yin pWinManager->SetAccName( pXAcc, newName ); 113*5fdc4257SSteve Yin } 114*5fdc4257SSteve Yin 115*5fdc4257SSteve Yin 116*5fdc4257SSteve Yin /** 117*5fdc4257SSteve Yin * Interface of updating MSAA location when UNO location_changed event occurs. 118*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 119*5fdc4257SSteve Yin * @param pXAcc Uno The top position of new location. 120*5fdc4257SSteve Yin * @param pXAcc Uno The left position of new location. 121*5fdc4257SSteve Yin * @param pXAcc Uno The width of new location. 122*5fdc4257SSteve Yin * @param pXAcc Uno The width of new location. 123*5fdc4257SSteve Yin * @return 124*5fdc4257SSteve Yin */ 125*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateLocation( XAccessible* /* pXAcc */, long /*top*/, long /*left*/, long /*width*/, long /*height*/ ) 126*5fdc4257SSteve Yin { 127*5fdc4257SSteve Yin #ifdef _IMPL_WIN 128*5fdc4257SSteve Yin if( pWinManager ) 129*5fdc4257SSteve Yin pWinManager->SetLocation( pXAcc, top, left, width, height ); 130*5fdc4257SSteve Yin #endif 131*5fdc4257SSteve Yin } 132*5fdc4257SSteve Yin 133*5fdc4257SSteve Yin /** 134*5fdc4257SSteve Yin * Interface of updating MSAA name when UNO description_changed event occurs. 135*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 136*5fdc4257SSteve Yin * @param newDesc New UNO accessible description. 137*5fdc4257SSteve Yin * @return 138*5fdc4257SSteve Yin */ 139*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateDescription( XAccessible* pXAcc, Any newDesc ) 140*5fdc4257SSteve Yin { 141*5fdc4257SSteve Yin if( pWinManager ) 142*5fdc4257SSteve Yin pWinManager->SetDescription( pXAcc, newDesc ); 143*5fdc4257SSteve Yin } 144*5fdc4257SSteve Yin 145*5fdc4257SSteve Yin /** 146*5fdc4257SSteve Yin * When a new UNO XAccessible object is found by listener,we'll create a corresponding 147*5fdc4257SSteve Yin * com object and insert it to our manager list. 148*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 149*5fdc4257SSteve Yin * @param pWnd The top window handle containing control. 150*5fdc4257SSteve Yin * @return If the method is correctly processed. 151*5fdc4257SSteve Yin */ 152*5fdc4257SSteve Yin unsigned char AccObjectManagerAgent::InsertAccObj( XAccessible* pXAcc,XAccessible* pParentXAcc,long pWnd) 153*5fdc4257SSteve Yin { 154*5fdc4257SSteve Yin if( pWinManager ) 155*5fdc4257SSteve Yin return (unsigned char)pWinManager->InsertAccObj( pXAcc, pParentXAcc,HWND((void*)pWnd) ); 156*5fdc4257SSteve Yin 157*5fdc4257SSteve Yin return sal_False; 158*5fdc4257SSteve Yin } 159*5fdc4257SSteve Yin 160*5fdc4257SSteve Yin /** 161*5fdc4257SSteve Yin * save the pair <topwindowhandle, XAccessible> 162*5fdc4257SSteve Yin * @param hWnd, top window handle 163*5fdc4257SSteve Yin * @param pXAcc XAccessible interface for top window 164*5fdc4257SSteve Yin * @return void 165*5fdc4257SSteve Yin */ 166*5fdc4257SSteve Yin void AccObjectManagerAgent::SaveTopWindowHandle(long hWnd, com::sun::star::accessibility::XAccessible* pXAcc) 167*5fdc4257SSteve Yin { 168*5fdc4257SSteve Yin if( pWinManager ) 169*5fdc4257SSteve Yin pWinManager->SaveTopWindowHandle( HWND((void*)hWnd), pXAcc ); 170*5fdc4257SSteve Yin } 171*5fdc4257SSteve Yin 172*5fdc4257SSteve Yin 173*5fdc4257SSteve Yin /** 174*5fdc4257SSteve Yin * When a UNO XAccessible object's new children are found by listener,we'll create 175*5fdc4257SSteve Yin * corresponding com objects and insert them to our manager list. 176*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 177*5fdc4257SSteve Yin * @param pWnd The top window handle containing control. 178*5fdc4257SSteve Yin * @return If the method is correctly processed. 179*5fdc4257SSteve Yin */ 180*5fdc4257SSteve Yin unsigned char AccObjectManagerAgent::InsertChildrenAccObj( XAccessible* pXAcc, 181*5fdc4257SSteve Yin long pWnd) 182*5fdc4257SSteve Yin { 183*5fdc4257SSteve Yin if( pWinManager ) 184*5fdc4257SSteve Yin return (unsigned char)pWinManager->InsertChildrenAccObj( pXAcc, HWND((void*)pWnd) ); 185*5fdc4257SSteve Yin 186*5fdc4257SSteve Yin return sal_False; 187*5fdc4257SSteve Yin } 188*5fdc4257SSteve Yin 189*5fdc4257SSteve Yin /** 190*5fdc4257SSteve Yin * When a new UNO XAccessible object is destroied,we'll delete its corresponding 191*5fdc4257SSteve Yin * com object and remove it from our manager list. 192*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 193*5fdc4257SSteve Yin * @return 194*5fdc4257SSteve Yin */ 195*5fdc4257SSteve Yin void AccObjectManagerAgent::DeleteAccObj( XAccessible* pXAcc ) 196*5fdc4257SSteve Yin { 197*5fdc4257SSteve Yin if( pWinManager ) 198*5fdc4257SSteve Yin pWinManager->DeleteAccObj( pXAcc ); 199*5fdc4257SSteve Yin } 200*5fdc4257SSteve Yin 201*5fdc4257SSteve Yin /** 202*5fdc4257SSteve Yin * When new UNO children XAccessible objects are destroyed,we'll delete their 203*5fdc4257SSteve Yin * corresponding com objects and remove them from our manager list. 204*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 205*5fdc4257SSteve Yin * @return 206*5fdc4257SSteve Yin */ 207*5fdc4257SSteve Yin void AccObjectManagerAgent::DeleteChildrenAccObj( XAccessible* pXAcc ) 208*5fdc4257SSteve Yin { 209*5fdc4257SSteve Yin if( pWinManager ) 210*5fdc4257SSteve Yin pWinManager->DeleteChildrenAccObj( pXAcc ); 211*5fdc4257SSteve Yin } 212*5fdc4257SSteve Yin 213*5fdc4257SSteve Yin /** 214*5fdc4257SSteve Yin * Interface of decreasing MSAA state when some UNO state is decreased. 215*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 216*5fdc4257SSteve Yin * @param pState The lost state of control. 217*5fdc4257SSteve Yin * @return 218*5fdc4257SSteve Yin */ 219*5fdc4257SSteve Yin void AccObjectManagerAgent::DecreaseState( XAccessible* pXAcc,unsigned short pState ) 220*5fdc4257SSteve Yin { 221*5fdc4257SSteve Yin if(pWinManager) 222*5fdc4257SSteve Yin { 223*5fdc4257SSteve Yin pWinManager->DecreaseState( pXAcc, pState ); 224*5fdc4257SSteve Yin } 225*5fdc4257SSteve Yin } 226*5fdc4257SSteve Yin 227*5fdc4257SSteve Yin /** 228*5fdc4257SSteve Yin * Interface of increasing MSAA name when some UNO state is increased. 229*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 230*5fdc4257SSteve Yin * @param pState The new state of control. 231*5fdc4257SSteve Yin * @return 232*5fdc4257SSteve Yin */ 233*5fdc4257SSteve Yin void AccObjectManagerAgent::IncreaseState( XAccessible* pXAcc,unsigned short pState ) 234*5fdc4257SSteve Yin { 235*5fdc4257SSteve Yin if(pWinManager) 236*5fdc4257SSteve Yin { 237*5fdc4257SSteve Yin pWinManager->IncreaseState( pXAcc, pState ); 238*5fdc4257SSteve Yin } 239*5fdc4257SSteve Yin } 240*5fdc4257SSteve Yin 241*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateState( com::sun::star::accessibility::XAccessible* pXAcc ) 242*5fdc4257SSteve Yin { 243*5fdc4257SSteve Yin if(pWinManager) 244*5fdc4257SSteve Yin pWinManager->UpdateState(pXAcc); 245*5fdc4257SSteve Yin } 246*5fdc4257SSteve Yin 247*5fdc4257SSteve Yin /** 248*5fdc4257SSteve Yin * Interface of notify MSAA event when some UNO event occured. 249*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 250*5fdc4257SSteve Yin * @param pEvent UNO event ID. 251*5fdc4257SSteve Yin * @return If the method is correctly processed. 252*5fdc4257SSteve Yin */ 253*5fdc4257SSteve Yin unsigned char AccObjectManagerAgent::NotifyAccEvent( short pEvent,XAccessible* pXAcc ) 254*5fdc4257SSteve Yin { 255*5fdc4257SSteve Yin if(pWinManager) 256*5fdc4257SSteve Yin return (unsigned char)pWinManager->NotifyAccEvent(pXAcc,pEvent); 257*5fdc4257SSteve Yin 258*5fdc4257SSteve Yin return sal_False; 259*5fdc4257SSteve Yin } 260*5fdc4257SSteve Yin 261*5fdc4257SSteve Yin /** 262*5fdc4257SSteve Yin * Judge whether a XAccessible object is a container object. 263*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 264*5fdc4257SSteve Yin * @return If the method is correctly processed. 265*5fdc4257SSteve Yin */ 266*5fdc4257SSteve Yin unsigned short AccObjectManagerAgent::IsContainer( XAccessible* pXAcc ) 267*5fdc4257SSteve Yin { 268*5fdc4257SSteve Yin if(pWinManager) 269*5fdc4257SSteve Yin return (unsigned char)pWinManager->IsContainer(pXAcc); 270*5fdc4257SSteve Yin 271*5fdc4257SSteve Yin return sal_False; 272*5fdc4257SSteve Yin } 273*5fdc4257SSteve Yin 274*5fdc4257SSteve Yin /** 275*5fdc4257SSteve Yin * Return com object interface by querying XAccessible interface. 276*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 277*5fdc4257SSteve Yin * @return Com interface. 278*5fdc4257SSteve Yin */ 279*5fdc4257SSteve Yin IMAccessible* AccObjectManagerAgent::GetIMAccByXAcc(XAccessible* pXAcc) 280*5fdc4257SSteve Yin { 281*5fdc4257SSteve Yin if(pWinManager) 282*5fdc4257SSteve Yin return pWinManager->GetIMAccByXAcc(pXAcc); 283*5fdc4257SSteve Yin 284*5fdc4257SSteve Yin return NULL; 285*5fdc4257SSteve Yin } 286*5fdc4257SSteve Yin 287*5fdc4257SSteve Yin /** 288*5fdc4257SSteve Yin * Notify manger when a XAccessible object is destroying. 289*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 290*5fdc4257SSteve Yin * @return. 291*5fdc4257SSteve Yin */ 292*5fdc4257SSteve Yin void AccObjectManagerAgent::NotifyDestroy(XAccessible* pXAcc) 293*5fdc4257SSteve Yin { 294*5fdc4257SSteve Yin if(pWinManager) 295*5fdc4257SSteve Yin pWinManager->NotifyDestroy(pXAcc); 296*5fdc4257SSteve Yin } 297*5fdc4257SSteve Yin 298*5fdc4257SSteve Yin /** 299*5fdc4257SSteve Yin * Return com object interface by querying child id. 300*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 301*5fdc4257SSteve Yin * @return Com interface. 302*5fdc4257SSteve Yin */ 303*5fdc4257SSteve Yin void AccObjectManagerAgent::GetIAccessibleFromResID(long childID,IMAccessible** pIMAcc) 304*5fdc4257SSteve Yin { 305*5fdc4257SSteve Yin if(pWinManager) 306*5fdc4257SSteve Yin *pIMAcc = pWinManager->GetIAccessibleFromResID(childID); 307*5fdc4257SSteve Yin } 308*5fdc4257SSteve Yin 309*5fdc4257SSteve Yin /** 310*5fdc4257SSteve Yin * Return object interface by querying interface. 311*5fdc4257SSteve Yin * @param pXAcc Uno XAccessible interface of control. 312*5fdc4257SSteve Yin * @return Com interface. 313*5fdc4257SSteve Yin */ 314*5fdc4257SSteve Yin unsigned char AccObjectManagerAgent::GetIAccessibleFromXAccessible(XAccessible* pXAcc, IAccessible** ppXI) 315*5fdc4257SSteve Yin { 316*5fdc4257SSteve Yin if(pWinManager) 317*5fdc4257SSteve Yin { 318*5fdc4257SSteve Yin *ppXI = (IAccessible*)pWinManager->GetIMAccByXAcc(pXAcc); 319*5fdc4257SSteve Yin if(*ppXI) 320*5fdc4257SSteve Yin return sal_True; 321*5fdc4257SSteve Yin } 322*5fdc4257SSteve Yin return sal_False; 323*5fdc4257SSteve Yin } 324*5fdc4257SSteve Yin 325*5fdc4257SSteve Yin XAccessible* AccObjectManagerAgent::GetParentXAccessible( XAccessible* pXAcc ) 326*5fdc4257SSteve Yin { 327*5fdc4257SSteve Yin if(pWinManager) 328*5fdc4257SSteve Yin return pWinManager->GetParentXAccessible( pXAcc ); 329*5fdc4257SSteve Yin 330*5fdc4257SSteve Yin return NULL; 331*5fdc4257SSteve Yin } 332*5fdc4257SSteve Yin 333*5fdc4257SSteve Yin short AccObjectManagerAgent::GetParentRole( XAccessible* pXAcc ) 334*5fdc4257SSteve Yin { 335*5fdc4257SSteve Yin if(pWinManager) 336*5fdc4257SSteve Yin return pWinManager->GetParentRole( pXAcc ); 337*5fdc4257SSteve Yin 338*5fdc4257SSteve Yin return -1; 339*5fdc4257SSteve Yin } 340*5fdc4257SSteve Yin 341*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateDescription( XAccessible* pXAcc ) 342*5fdc4257SSteve Yin { 343*5fdc4257SSteve Yin if(pWinManager) 344*5fdc4257SSteve Yin pWinManager->UpdateDescription( pXAcc ); 345*5fdc4257SSteve Yin } 346*5fdc4257SSteve Yin 347*5fdc4257SSteve Yin void AccObjectManagerAgent::UpdateChildState(com::sun::star::accessibility::XAccessible* pXAcc) 348*5fdc4257SSteve Yin { 349*5fdc4257SSteve Yin if(pWinManager) 350*5fdc4257SSteve Yin pWinManager->UpdateChildState( pXAcc ); 351*5fdc4257SSteve Yin } 352*5fdc4257SSteve Yin 353*5fdc4257SSteve Yin 354*5fdc4257SSteve Yin bool AccObjectManagerAgent::IsSpecialToolboItem(com::sun::star::accessibility::XAccessible* pXAcc) 355*5fdc4257SSteve Yin { 356*5fdc4257SSteve Yin if(pWinManager) 357*5fdc4257SSteve Yin return pWinManager->IsSpecialToolboItem( pXAcc ); 358*5fdc4257SSteve Yin 359*5fdc4257SSteve Yin return false; 360*5fdc4257SSteve Yin } 361*5fdc4257SSteve Yin 362*5fdc4257SSteve Yin short AccObjectManagerAgent::GetRole(com::sun::star::accessibility::XAccessible* pXAcc) 363*5fdc4257SSteve Yin { 364*5fdc4257SSteve Yin if(pWinManager) 365*5fdc4257SSteve Yin return pWinManager->GetRole( pXAcc ); 366*5fdc4257SSteve Yin 367*5fdc4257SSteve Yin return -1; 368*5fdc4257SSteve Yin } 369*5fdc4257SSteve Yin 370*5fdc4257SSteve Yin XAccessible* AccObjectManagerAgent::GetAccDocByAccTopWin( XAccessible* pXAcc ) 371*5fdc4257SSteve Yin { 372*5fdc4257SSteve Yin if (pWinManager) 373*5fdc4257SSteve Yin { 374*5fdc4257SSteve Yin return pWinManager->GetAccDocByAccTopWin( pXAcc ); 375*5fdc4257SSteve Yin } 376*5fdc4257SSteve Yin return NULL; 377*5fdc4257SSteve Yin } 378*5fdc4257SSteve Yin bool AccObjectManagerAgent::IsTopWinAcc( com::sun::star::accessibility::XAccessible* pXAcc ) 379*5fdc4257SSteve Yin { 380*5fdc4257SSteve Yin if (pWinManager) 381*5fdc4257SSteve Yin { 382*5fdc4257SSteve Yin return pWinManager->IsTopWinAcc( pXAcc ); 383*5fdc4257SSteve Yin } 384*5fdc4257SSteve Yin return NULL; 385*5fdc4257SSteve Yin } 386*5fdc4257SSteve Yin 387*5fdc4257SSteve Yin bool AccObjectManagerAgent::IsStateManageDescendant(com::sun::star::accessibility::XAccessible* pXAcc) 388*5fdc4257SSteve Yin { 389*5fdc4257SSteve Yin if(pWinManager) 390*5fdc4257SSteve Yin return pWinManager->IsStateManageDescendant( pXAcc ); 391*5fdc4257SSteve Yin 392*5fdc4257SSteve Yin return sal_False; 393*5fdc4257SSteve Yin } 394