1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright IBM Corporation 2010. 6 * Copyright 2000, 2010 Oracle and/or its affiliates. 7 * 8 * OpenOffice.org - a multi-platform office productivity suite 9 * 10 * This file is part of OpenOffice.org. 11 * 12 * OpenOffice.org is free software: you can redistribute it and/or modify 13 * it under the terms of the GNU Lesser General Public License version 3 14 * only, as published by the Free Software Foundation. 15 * 16 * OpenOffice.org is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU Lesser General Public License version 3 for more details 20 * (a copy is included in the LICENSE file that accompanied this code). 21 * 22 * You should have received a copy of the GNU Lesser General Public License 23 * version 3 along with OpenOffice.org. If not, see 24 * <http://www.openoffice.org/license.html> 25 * for a copy of the LGPLv3 License. 26 * 27 ************************************************************************/ 28 29 #ifndef __ACCOBJECTMANAGERAGENT_HXX 30 #define __ACCOBJECTMANAGERAGENT_HXX 31 32 #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_HPP_ 33 #include <com/sun/star/accessibility/XAccessible.hpp> 34 #endif 35 36 struct IMAccessible; 37 struct IAccessible; 38 class AccObjectWinManager; 39 40 /**************************************************************** 41 AccObjectMangerAgent is used for manaing AccObjects,which encapsulates 42 platform differences,and call AccObjectWinManager for Windows platform. To do for 43 Linux platform 44 *****************************************************************/ 45 class AccObjectManagerAgent 46 { 47 private: 48 49 AccObjectWinManager* pWinManager; 50 51 public: 52 53 AccObjectManagerAgent(); 54 virtual ~AccObjectManagerAgent(); 55 56 virtual unsigned char InsertAccObj( com::sun::star::accessibility::XAccessible* pXAcc, 57 com::sun::star::accessibility::XAccessible* pParentXAcc, 58 long pWnd=0); 59 virtual void GetIAccessibleFromResID(long childID,IMAccessible**); 60 virtual unsigned char GetIAccessibleFromXAccessible(com::sun::star::accessibility::XAccessible* pXAcc, IAccessible** ppIA); 61 62 virtual void DeleteAccObj( com::sun::star::accessibility::XAccessible* pXAcc ); 63 virtual IMAccessible* GetIMAccByXAcc(com::sun::star::accessibility::XAccessible* pXAcc); 64 65 unsigned char NotifyAccEvent( short pEvent = 0, com::sun::star::accessibility::XAccessible* pXAcc = 0 ); 66 67 unsigned char InsertChildrenAccObj( com::sun::star::accessibility::XAccessible* pXAcc, 68 long pWnd=0); 69 void DeleteChildrenAccObj( com::sun::star::accessibility::XAccessible* pXAcc ); 70 71 void DecreaseState( com::sun::star::accessibility::XAccessible* pXAcc,unsigned short pState ); 72 void IncreaseState( com::sun::star::accessibility::XAccessible* pXAcc,unsigned short pState ); 73 void UpdateState( com::sun::star::accessibility::XAccessible* pXAcc ); 74 75 void UpdateLocation( com::sun::star::accessibility::XAccessible* pXAcc, 76 long Top = 0,long left = 0,long width = 0,long height = 0 ); 77 void UpdateAction( com::sun::star::accessibility::XAccessible* pXAcc ); 78 79 void UpdateValue( com::sun::star::accessibility::XAccessible* pXAcc ); 80 void UpdateValue( com::sun::star::accessibility::XAccessible* pXAcc, com::sun::star::uno::Any ); 81 82 void UpdateAccName( com::sun::star::accessibility::XAccessible* pXAcc, com::sun::star::uno::Any newName); 83 void UpdateAccName( com::sun::star::accessibility::XAccessible* pXAcc); 84 85 void UpdateDescription( com::sun::star::accessibility::XAccessible* pXAcc, com::sun::star::uno::Any newDesc ); 86 void UpdateDescription( com::sun::star::accessibility::XAccessible* pXAcc ); 87 88 void NotifyDestroy(com::sun::star::accessibility::XAccessible* pXAcc); 89 90 com::sun::star::accessibility::XAccessible* GetParentXAccessible( 91 com::sun::star::accessibility::XAccessible* pXAcc ); 92 short GetParentRole(com::sun::star::accessibility::XAccessible* pXAcc ); 93 unsigned short IsContainer(com::sun::star::accessibility::XAccessible* pXAcc); 94 95 void SaveTopWindowHandle(long hWnd, com::sun::star::accessibility::XAccessible* pXAcc); 96 97 void UpdateChildState(com::sun::star::accessibility::XAccessible* pXAcc); 98 99 bool IsSpecialToolboItem(com::sun::star::accessibility::XAccessible* pXAcc); 100 101 short GetRole(com::sun::star::accessibility::XAccessible* pXAcc); 102 103 com::sun::star::accessibility::XAccessible* GetAccDocByAccTopWin( com::sun::star::accessibility::XAccessible* pXAcc ); 104 bool IsTopWinAcc( com::sun::star::accessibility::XAccessible* pXAcc ); 105 106 bool IsStateManageDescendant(com::sun::star::accessibility::XAccessible* pXAcc); 107 }; 108 109 #endif 110