diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2024-03-01 08:35:53 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2024-03-01 14:47:08 +0100 |
commit | 15df1df235cbe199d770d67a03fe923c94aa2dcc (patch) | |
tree | 72b089d6c891dbbb5db4fe9a42d7c40b459eabdc /vcl/source/helper | |
parent | 37bc6ca4bbdfa355440183f54e9fe35e8d23cae2 (diff) |
add accessibility to --enable-mergedlibs=more
Also
(*) fix the definition of ENABLE_MERGELIBS_MORE in configure.ac
(*) Remove the dummy accessible factory in vcl, it creates
more problems than it solves, because code will break when
trying to use it, and then I get crashes far removed from the
source of the problem (failure to find the acc factory).
Change-Id: I969481d5ad2cfd7104d8240fdd0dce9d285fdb61
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164176
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/source/helper')
-rw-r--r-- | vcl/source/helper/svtaccessiblefactory.cxx | 193 |
1 files changed, 14 insertions, 179 deletions
diff --git a/vcl/source/helper/svtaccessiblefactory.cxx b/vcl/source/helper/svtaccessiblefactory.cxx index fa9e151fcc23..06f482863576 100644 --- a/vcl/source/helper/svtaccessiblefactory.cxx +++ b/vcl/source/helper/svtaccessiblefactory.cxx @@ -19,6 +19,7 @@ #include <config_feature_desktop.h> #include <config_wasm_strip.h> +#include <config_options.h> #include <vcl/svtaccessiblefactory.hxx> #include <vcl/accessiblefactory.hxx> @@ -49,166 +50,6 @@ namespace vcl #endif #endif ::rtl::Reference< IAccessibleFactory > s_pFactory; - - - //= AccessibleDummyFactory - - class AccessibleDummyFactory: - public IAccessibleFactory - { - public: - AccessibleDummyFactory(); - AccessibleDummyFactory(const AccessibleDummyFactory&) = delete; - AccessibleDummyFactory& operator=(const AccessibleDummyFactory&) = delete; - - protected: - virtual ~AccessibleDummyFactory() override; - - public: - // IAccessibleFactory - virtual vcl::IAccessibleTabListBox* - createAccessibleTabListBox( - const css::uno::Reference< css::accessibility::XAccessible >& /*rxParent*/, - SvHeaderTabListBox& /*rBox*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createAccessibleTreeListBox( - SvTreeListBox& /*_rListBox*/, - const css::uno::Reference< css::accessibility::XAccessible >& /*_xParent*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createAccessibleIconView( - SvTreeListBox& /*_rListBox*/, - const css::uno::Reference< css::accessibility::XAccessible >& /*_xParent*/ - ) const override - { - return nullptr; - } - - virtual rtl::Reference<vcl::IAccessibleBrowseBox> - createAccessibleBrowseBox( - const css::uno::Reference< css::accessibility::XAccessible >& /*_rxParent*/, - vcl::IAccessibleTableProvider& /*_rBrowseBox*/ - ) const override - { - return nullptr; - } - - virtual rtl::Reference<table::IAccessibleTableControl> - createAccessibleTableControl( - const css::uno::Reference< css::accessibility::XAccessible >& /*_rxParent*/, - table::IAccessibleTable& /*_rTable*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createAccessibleIconChoiceCtrl( - SvtIconChoiceCtrl& /*_rIconCtrl*/, - const css::uno::Reference< css::accessibility::XAccessible >& /*_xParent*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createAccessibleTabBar( - TabBar& /*_rTabBar*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessibleContext > - createAccessibleTextWindowContext( - VCLXWindow* /*pVclXWindow*/, TextEngine& /*rEngine*/, TextView& /*rView*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createAccessibleBrowseBoxHeaderBar( - const css::uno::Reference< css::accessibility::XAccessible >& /*rxParent*/, - vcl::IAccessibleTableProvider& /*_rOwningTable*/, - AccessibleBrowseBoxObjType /*_eObjType*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createAccessibleBrowseBoxTableCell( - const css::uno::Reference< css::accessibility::XAccessible >& /*_rxParent*/, - vcl::IAccessibleTableProvider& /*_rBrowseBox*/, - const css::uno::Reference< css::awt::XWindow >& /*_xFocusWindow*/, - sal_Int32 /*_nRowId*/, - sal_uInt16 /*_nColId*/, - sal_Int32 /*_nOffset*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createAccessibleBrowseBoxHeaderCell( - sal_Int32 /*_nColumnRowId*/, - const css::uno::Reference< css::accessibility::XAccessible >& /*rxParent*/, - vcl::IAccessibleTableProvider& /*_rBrowseBox*/, - const css::uno::Reference< css::awt::XWindow >& /*_xFocusWindow*/, - AccessibleBrowseBoxObjType /*_eObjType*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createAccessibleCheckBoxCell( - const css::uno::Reference< css::accessibility::XAccessible >& /*_rxParent*/, - vcl::IAccessibleTableProvider& /*_rBrowseBox*/, - const css::uno::Reference< css::awt::XWindow >& /*_xFocusWindow*/, - sal_Int32 /*_nRowPos*/, - sal_uInt16 /*_nColPos*/, - const TriState& /*_eState*/, - bool /*_bIsTriState*/ - ) const override - { - return nullptr; - } - - virtual css::uno::Reference< css::accessibility::XAccessible > - createEditBrowseBoxTableCellAccess( - const css::uno::Reference< css::accessibility::XAccessible >& /*_rxParent*/, - const css::uno::Reference< css::accessibility::XAccessible >& /*_rxControlAccessible*/, - const css::uno::Reference< css::awt::XWindow >& /*_rxFocusWindow*/, - vcl::IAccessibleTableProvider& /*_rBrowseBox*/, - sal_Int32 /*_nRowPos*/, - sal_uInt16 /*_nColPos*/ - ) const override - { - return nullptr; - } - }; - - - AccessibleDummyFactory::AccessibleDummyFactory() - { - } - - - AccessibleDummyFactory::~AccessibleDummyFactory() - { - } - } @@ -243,36 +84,30 @@ namespace vcl if (!s_pFactory) { #ifndef DISABLE_DYNLOADING +#if ENABLE_MERGELIBS_MORE + s_hAccessibleImplementationModule = osl_loadModuleRelative( &thisModule, u"" SVLIBRARY( "merged" ) ""_ustr.pData, 0 ); +#else s_hAccessibleImplementationModule = osl_loadModuleRelative( &thisModule, u"" SVLIBRARY( "acc" ) ""_ustr.pData, 0 ); - if ( s_hAccessibleImplementationModule != nullptr ) - { - s_pAccessibleFactoryFunc = reinterpret_cast<GetSvtAccessibilityComponentFactory>( - osl_getFunctionSymbol( s_hAccessibleImplementationModule, u"getSvtAccessibilityComponentFactory"_ustr.pData )); +#endif + assert(s_hAccessibleImplementationModule); + s_pAccessibleFactoryFunc = reinterpret_cast<GetSvtAccessibilityComponentFactory>( + osl_getFunctionSymbol( s_hAccessibleImplementationModule, u"getSvtAccessibilityComponentFactory"_ustr.pData )); - } - OSL_ENSURE( s_pAccessibleFactoryFunc, "ac_registerClient: could not load the library, or not retrieve the needed symbol!" ); + assert( s_pAccessibleFactoryFunc && "ac_registerClient: could not load the library, or not retrieve the needed symbol!" ); #else s_pAccessibleFactoryFunc = getSvtAccessibilityComponentFactory; #endif // DISABLE_DYNLOADING // get a factory instance - if ( s_pAccessibleFactoryFunc ) - { - IAccessibleFactory* pFactory = static_cast< IAccessibleFactory* >( (*s_pAccessibleFactoryFunc)() ); - if ( pFactory ) - { - s_pFactory = pFactory; - pFactory->release(); - } - } + IAccessibleFactory* pFactory = static_cast< IAccessibleFactory* >( (*s_pAccessibleFactoryFunc)() ); + assert(pFactory); + s_pFactory = pFactory; + pFactory->release(); } #endif // HAVE_FEATURE_DESKTOP #endif // ENABLE_WASM_STRIP_ACCESSIBILITY - if (!s_pFactory) - // the attempt to load the lib, or to create the factory, failed - // -> fall back to a dummy factory - s_pFactory = new AccessibleDummyFactory; + assert(s_pFactory); m_bInitialized = true; } |