winaccessibility/inc/g_msacc.hxx | 4 + winaccessibility/source/UAccCOM/stdafx.h | 5 - winaccessibility/source/service/AccFrameEventListener.cxx | 13 ---- winaccessibility/source/service/AccTopWindowListener.cxx | 42 ++++---------- winaccessibility/source/service/msaaservice_impl.cxx | 41 +++++++------ 5 files changed, 39 insertions(+), 66 deletions(-)
New commits: commit 9633cdf1b07bf2f56805b4b030ba78bfb845956c Author: Michael Meeks <michael.me...@collabora.com> Date: Mon Nov 18 21:44:36 2013 +0000 uia: more cleanups and debugging output. Change-Id: Ifaaebbc7826ad8421de432cb91030584b807b893 diff --git a/winaccessibility/inc/g_msacc.hxx b/winaccessibility/inc/g_msacc.hxx index df6e4bd..d700249 100644 --- a/winaccessibility/inc/g_msacc.hxx +++ b/winaccessibility/inc/g_msacc.hxx @@ -20,6 +20,10 @@ #ifndef __G_MSACC_HXX #define __G_MSACC_HXX +extern void FreeTopWindowListener(); +extern void handleWindowOpened_impl( long pAcc ); +extern long GetMSComPtr( long hWnd, long lParam, long wParam ); + extern AccTopWindowListener* g_pTop; #endif diff --git a/winaccessibility/source/UAccCOM/stdafx.h b/winaccessibility/source/UAccCOM/stdafx.h index b933b12..6b2ccdd 100644 --- a/winaccessibility/source/UAccCOM/stdafx.h +++ b/winaccessibility/source/UAccCOM/stdafx.h @@ -28,10 +28,6 @@ #pragma once #endif // _MSC_VER > 1000 -//#define STRICT -//#ifndef _WIN32_WINNT -//#define _WIN32_WINNT 0x0400 -//#endif //#define _ATL_APARTMENT_THREADED #include <atlbase.h> @@ -56,6 +52,7 @@ extern CComModule _Module; #include <windows.h> #undef OPAQUE #include "CheckEnableAccessible.h" + //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. diff --git a/winaccessibility/source/service/AccFrameEventListener.cxx b/winaccessibility/source/service/AccFrameEventListener.cxx index a57fc3c..81b81ff 100755 --- a/winaccessibility/source/service/AccFrameEventListener.cxx +++ b/winaccessibility/source/service/AccFrameEventListener.cxx @@ -32,20 +32,7 @@ using namespace com::sun::star::accessibility; #include <vcl/window.hxx> #include <toolkit/awt/Vclxwindow.hxx> - -//#ifndef _SV_SYSDATA_HXX -#if 0 -#if defined( WIN ) || defined( WNT ) || defined( OS2 ) -typedef sal_Int32 HWND; -typedef sal_Int32 HMENU; -typedef sal_Int32 HDC; -typedef void *PVOID; -typedef PVOID HANDLE; -typedef HANDLE HFONT; -#endif -#endif #include <vcl/sysdata.hxx> -//#endif AccFrameEventListener::AccFrameEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent) :AccEventListener(pAcc, Agent) diff --git a/winaccessibility/source/service/AccTopWindowListener.cxx b/winaccessibility/source/service/AccTopWindowListener.cxx index 28d2b79..24cf2a0 100755 --- a/winaccessibility/source/service/AccTopWindowListener.cxx +++ b/winaccessibility/source/service/AccTopWindowListener.cxx @@ -23,17 +23,6 @@ #include <vcl/window.hxx> #include <toolkit/awt/Vclxwindow.hxx> -//#ifndef _SV_SYSDATA_HXX -#if 0 -#if defined( WIN ) || defined( WNT ) || defined( OS2 ) -typedef sal_Int32 HWND; -typedef sal_Int32 HMENU; -typedef sal_Int32 HDC; -typedef void *PVOID; -typedef PVOID HANDLE; -typedef HANDLE HFONT; -#endif -#endif #include <vcl/sysdata.hxx> #include "AccTopWindowListener.hxx" @@ -53,11 +42,9 @@ using namespace com::sun::star::bridge; using namespace com::sun::star::awt; using namespace rtl; using namespace cppu; -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// AccTopWindowListener* g_pTop = NULL; + //when proccess exit, call FreeTopWindowListener() in svmain void FreeTopWindowListener() { @@ -73,7 +60,7 @@ void FreeTopWindowListener() */ void handleWindowOpened_impl(long pAcc) { - if( g_pTop && pAcc != NULL ) + if( g_pTop && pAcc != 0 ) g_pTop->handleWindowOpened( (com::sun::star::accessibility::XAccessible*)((void*)pAcc) ); } @@ -106,7 +93,7 @@ void AccTopWindowListener::handleWindowOpened( com::sun::star::accessibility::XA //Only AccessibleContext exist, add all listeners if(pAccessibleContext != NULL && systemdata != NULL) { - accManagerAgent.SaveTopWindowHandle((long)(HWND)systemdata->hWnd, pAccessible); + accManagerAgent.SaveTopWindowHandle((long)(HWND)systemdata->hWnd, pAccessible); AddAllListeners(pAccessible,NULL,(HWND)systemdata->hWnd); @@ -115,7 +102,6 @@ void AccTopWindowListener::handleWindowOpened( com::sun::star::accessibility::XA short role = pAccessibleContext->getAccessibleRole(); - if (role == com::sun::star::accessibility::AccessibleRole::POPUP_MENU || role == com::sun::star::accessibility::AccessibleRole::MENU ) { @@ -147,20 +133,17 @@ AccTopWindowListener::~AccTopWindowListener() */ void AccTopWindowListener::windowOpened( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException) { + SAL_INFO( "iacc2", "windowOpened triggered" ); + if ( !e.Source.is()) - { return; - } Reference< com::sun::star::accessibility::XAccessible > xAccessible ( e.Source, UNO_QUERY ); com::sun::star::accessibility::XAccessible* pAccessible = xAccessible.get(); - if ( pAccessible == NULL) - { + if ( !pAccessible ) return; - } - - handleWindowOpened(pAccessible); + handleWindowOpened( pAccessible ); } /** @@ -214,7 +197,7 @@ void AccTopWindowListener::AddAllListeners(com::sun::star::accessibility::XAcces com::sun::star::accessibility::XAccessibleContext* mpContext = mxAccessibleContext.get(); if(mpContext != NULL) { - //fprintf(output, "go on add child's children event listener\n"); + SAL_INFO( "iacc2", "add child's children event listener" ); AddAllListeners(mpAccessible,pAccessible,pWND); } } @@ -223,6 +206,7 @@ void AccTopWindowListener::AddAllListeners(com::sun::star::accessibility::XAcces void AccTopWindowListener::windowClosing( const ::com::sun::star::lang::EventObject& ) throw (::com::sun::star::uno::RuntimeException) { + SAL_INFO( "iacc2", "windowClosing triggered" ); } /** @@ -232,17 +216,15 @@ void AccTopWindowListener::windowClosing( const ::com::sun::star::lang::EventObj */ void AccTopWindowListener::windowClosed( const ::com::sun::star::lang::EventObject& e ) throw (::com::sun::star::uno::RuntimeException) { + SAL_INFO( "iacc2", "windowClosed triggered" ); + if ( !e.Source.is()) - { return; - } + Reference< com::sun::star::accessibility::XAccessible > xAccessible ( e.Source, UNO_QUERY ); com::sun::star::accessibility::XAccessible* pAccessible = xAccessible.get(); if ( pAccessible == NULL) - { return; - } - VCLXWindow* pvclwindow = (VCLXWindow*)pAccessible; Window* window = pvclwindow->GetWindow(); diff --git a/winaccessibility/source/service/msaaservice_impl.cxx b/winaccessibility/source/service/msaaservice_impl.cxx index b96a86d..c52ba0a 100755 --- a/winaccessibility/source/service/msaaservice_impl.cxx +++ b/winaccessibility/source/service/msaaservice_impl.cxx @@ -43,11 +43,6 @@ using namespace ::com::sun::star::awt; #include "AccTopWindowListener.hxx" #include "g_msacc.hxx" -extern void FreeTopWindowListener(); -extern long GetMSComPtr(long hWnd, long lParam, long wParam); -extern void handleWindowOpened_impl( long pAcc); - - namespace my_sc_impl { @@ -126,9 +121,10 @@ sal_Int32 MSAAServiceImpl::getAccObjectPtr ( long hWnd, long lParam, long wParam * @param * @return */ -void MSAAServiceImpl::handleWindowOpened( sal_Int32 pAcc) +void MSAAServiceImpl::handleWindowOpened( sal_Int32 nAcc) { - handleWindowOpened_impl( pAcc ); + SAL_INFO( "iacc2", "Window opened " << nAcc ); + handleWindowOpened_impl( nAcc ); } OUString MSAAServiceImpl::getImplementationName() throw (RuntimeException) @@ -157,13 +153,15 @@ Sequence< OUString > MSAAServiceImpl::getSupportedServiceNames() throw (RuntimeE return getSupportedServiceNames_MSAAServiceImpl(); } -void AccessBridgehandleExistingWindow(const Reference< XMSAAService > &xAccMgr, - Window * pWindow, bool bShow) +static void AccessBridgeHandleExistingWindow(const Reference< XMSAAService > &xAccMgr, + Window *pWindow, bool bShow) { if ( pWindow ) { css::uno::Reference< css::accessibility::XAccessible > xAccessible; + SAL_INFO( "iacc2", "Decide whether to register existing window with IAccessible2" ); + // Test for combo box - drop down floating windows first Window * pParentWindow = pWindow->GetParent(); @@ -211,15 +209,19 @@ void AccessBridgehandleExistingWindow(const Reference< XMSAAService > &xAccMgr, if ( ! xAccessible.is() ) xAccessible = pWindow->GetAccessible(); - if ( xAccessible.is() && xAccMgr.is() ) + assert( xAccMgr.is() ); + if ( xAccessible.is() ) + { xAccMgr->handleWindowOpened( (long)xAccessible.get() ); + SAL_INFO( "iacc2", "Decide whether to register existing window with IAccessible2" ); + } } } /* * Setup and notify the OS of Accessible peers for all existing windows. */ -void AccessBridgeUpdateOldTopWindows( const Reference< XMSAAService > &xAccMgr ) +static void AccessBridgeUpdateOldTopWindows( const Reference< XMSAAService > &xAccMgr ) { sal_uInt16 nTopWindowCount = (sal_uInt16)Application::GetTopWindowCount(); @@ -233,8 +235,8 @@ void AccessBridgeUpdateOldTopWindows( const Reference< XMSAAService > &xAccMgr ) if ( xAC.is()) { short role = xAC->getAccessibleRole(); - if ( xAC->getAccessibleName().getLength() > 0 ) - AccessBridgehandleExistingWindow( xAccMgr, pTopWindow, true ); + if ( !xAC->getAccessibleName().isEmpty() ) + AccessBridgeHandleExistingWindow( xAccMgr, pTopWindow, true ); } } } @@ -287,14 +289,15 @@ MSAAServiceImpl::MSAAServiceImpl() Reference< XExtendedToolkit > xToolkit = Reference< XExtendedToolkit >(Application::GetVCLToolkit(), UNO_QUERY); - if(xToolkit.is()) + if( xToolkit.is() ) { - AccTopWindowListener *accListener; - accListener = new AccTopWindowListener(); - g_pTop = accListener; - Reference< XTopWindowListener> x(accListener); - xToolkit->addTopWindowListener(x); + g_pTop = new AccTopWindowListener(); + Reference< XTopWindowListener> xRef( g_pTop ); + xToolkit->addTopWindowListener( xRef ); + SAL_INFO( "iacc2", "successfully connected to the toolkit event hose" ); } + else + SAL_WARN( "iacc2", "No VCL toolkit interface to listen to for events"); } MSAAServiceImpl::~MSAAServiceImpl() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits