summaryrefslogtreecommitdiff
path: root/vcl/source/helper
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2024-03-01 08:35:53 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2024-03-01 14:47:08 +0100
commit15df1df235cbe199d770d67a03fe923c94aa2dcc (patch)
tree72b089d6c891dbbb5db4fe9a42d7c40b459eabdc /vcl/source/helper
parent37bc6ca4bbdfa355440183f54e9fe35e8d23cae2 (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.cxx193
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;
}