37b72ba454
`AccObjectManagerAgent` was holding an `AccObjectWinManager` object and forwarding everything to that one and the event listeners were holding a pointer to the `AccObjectManagerAgent` object. Drop this `AccObjectManagerAgent` indirection and let all of the classes that were interacting with the `AccObjectManagerAgent` directly interact with the `AccObjectWinManager` instead. The idea of having the agent seems to have been to have an abstraction layer and implement different accessible object managers for all platforms, but the agent already has quite some Windows-/IAccessible-specific code/interface and by now, the Linux VCL plugins and macOS have their own a11y bridges, so the TODO do implement this here for Linux as well seems outdated to me. Even if implementing this for Linux and/or macOS in a similar way, I don't see the need for the agent layer, but one way might be to just have an abstract base class (e.g. `AccObjectManager`) that `AccObjectWinManager` and implementations for other platforms derive from, and have the SalInstance return the platform-specific implementation that the `AccTopWindowListener` would then retrieve and pass on. Given that `AccObjectManagerAgent` was forwarding all calls to `AccObjectWinManager` and the methods and params are mostly the same by now (s.a. the preparatory commits), this change is mostly straightforward. A few notes: * `AccObjectManagerAgent::InsertAccObj` had a default nullptr value for the HWND that `AccObjectWinManager:InsertAccObj` didn't have yet, so add that. * `AccObjectManagerAgent::GetIAccessibleFromResID` had an out param instead of a return value; call sites were adapted to fit `AccObjectWinManager:GetIAccessibleFromResID`. * The `UpdateValue` and `UpdateAccName` methods taking 2 params are called `SetValue` and `SetAccName` in `AccObjectWinManager` instead, so adapt call sites accordingly. * prewin.h and postwin.h includes had to be added around the windows.h include in AccObjectWinManager.hxx (build would otherwise fail) * A few `AccObjectWinManager` methods had to be made virtual to make linking work. Change-Id: I88741bf416d4db25d78e973c0db060a828f27926 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155440 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
81 lines
2.4 KiB
Makefile
81 lines
2.4 KiB
Makefile
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
|
#
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
#
|
|
|
|
$(eval $(call gb_Library_Library,winaccessibility))
|
|
|
|
$(eval $(call gb_Library_use_custom_headers,winaccessibility,winaccessibility/ia2/idl))
|
|
|
|
$(eval $(call gb_Library_set_include,winaccessibility,\
|
|
$$(INCLUDE) \
|
|
-I$(SRCDIR)/winaccessibility/inc \
|
|
$(foreach i,$(ATL_INCLUDE), -I$(i)) \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_sdk_api,winaccessibility))
|
|
|
|
$(eval $(call gb_Library_set_componentfile,winaccessibility,winaccessibility/source/service/winaccessibility,services))
|
|
|
|
$(eval $(call gb_Library_use_common_precompiled_header,winaccessibility))
|
|
|
|
$(eval $(call gb_Library_add_exception_objects,winaccessibility,\
|
|
winaccessibility/source/service/AccObject \
|
|
winaccessibility/source/service/ResIDGenerator \
|
|
winaccessibility/source/service/AccObjectWinManager \
|
|
winaccessibility/source/service/AccEventListener \
|
|
winaccessibility/source/service/AccComponentEventListener \
|
|
winaccessibility/source/service/AccContainerEventListener \
|
|
winaccessibility/source/service/AccDialogEventListener \
|
|
winaccessibility/source/service/AccFrameEventListener \
|
|
winaccessibility/source/service/AccWindowEventListener \
|
|
winaccessibility/source/service/AccMenuEventListener \
|
|
winaccessibility/source/service/AccTextComponentEventListener \
|
|
winaccessibility/source/service/AccObjectContainerEventListener \
|
|
winaccessibility/source/service/AccParagraphEventListener \
|
|
winaccessibility/source/service/AccDescendantManagerEventListener \
|
|
winaccessibility/source/service/AccListEventListener \
|
|
winaccessibility/source/service/AccTableEventListener \
|
|
winaccessibility/source/service/AccTreeEventListener \
|
|
winaccessibility/source/service/AccTopWindowListener \
|
|
winaccessibility/source/service/msaaservice_impl \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_externals,winaccessibility,\
|
|
boost_headers \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_libraries,winaccessibility,\
|
|
UAccCOM \
|
|
comphelper \
|
|
cppu \
|
|
cppuhelper \
|
|
vcl \
|
|
sal \
|
|
tk \
|
|
tl \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_system_win32_libs,winaccessibility,\
|
|
oleacc \
|
|
advapi32 \
|
|
delayimp \
|
|
kernel32 \
|
|
ole32 \
|
|
oleaut32 \
|
|
shlwapi \
|
|
user32 \
|
|
uuid \
|
|
gdi32 \
|
|
shell32 \
|
|
imm32 \
|
|
winspool \
|
|
))
|
|
|
|
# vim:set noet sw=4 ts=4:
|