20#include <config_feature_desktop.h>
21#include <config_wasm_strip.h>
29#include <osl/module.h>
30#include <osl/diagnose.h>
41#ifndef DISABLE_DYNLOADING
42 oslModule s_hAccessibleImplementationModule =
nullptr;
44#if HAVE_FEATURE_DESKTOP
45#if !ENABLE_WASM_STRIP_ACCESSIBILITY
54 class AccessibleDummyFactory:
55 public IAccessibleFactory
58 AccessibleDummyFactory();
59 AccessibleDummyFactory(
const AccessibleDummyFactory&) =
delete;
60 AccessibleDummyFactory& operator=(
const AccessibleDummyFactory&) =
delete;
63 virtual ~AccessibleDummyFactory()
override;
68 createAccessibleTabListBox(
69 const css::uno::Reference< css::accessibility::XAccessible >& ,
76 virtual css::uno::Reference< css::accessibility::XAccessible >
77 createAccessibleTreeListBox(
79 const css::uno::Reference< css::accessibility::XAccessible >&
85 virtual css::uno::Reference< css::accessibility::XAccessible >
86 createAccessibleIconView(
88 const css::uno::Reference< css::accessibility::XAccessible >&
95 createAccessibleBrowseBox(
96 const css::uno::Reference< css::accessibility::XAccessible >& ,
103 virtual table::IAccessibleTableControl*
104 createAccessibleTableControl(
105 const css::uno::Reference< css::accessibility::XAccessible >& ,
106 table::IAccessibleTable&
112 virtual css::uno::Reference< css::accessibility::XAccessible >
113 createAccessibleIconChoiceCtrl(
115 const css::uno::Reference< css::accessibility::XAccessible >&
121 virtual css::uno::Reference< css::accessibility::XAccessible >
122 createAccessibleTabBar(
129 virtual css::uno::Reference< css::accessibility::XAccessibleContext >
130 createAccessibleTextWindowContext(
137 virtual css::uno::Reference< css::accessibility::XAccessible >
138 createAccessibleBrowseBoxHeaderBar(
139 const css::uno::Reference< css::accessibility::XAccessible >& ,
147 virtual css::uno::Reference< css::accessibility::XAccessible >
148 createAccessibleBrowseBoxTableCell(
149 const css::uno::Reference< css::accessibility::XAccessible >& ,
151 const css::uno::Reference< css::awt::XWindow >& ,
160 virtual css::uno::Reference< css::accessibility::XAccessible >
161 createAccessibleBrowseBoxHeaderCell(
163 const css::uno::Reference< css::accessibility::XAccessible >& ,
165 const css::uno::Reference< css::awt::XWindow >& ,
172 virtual css::uno::Reference< css::accessibility::XAccessible >
173 createAccessibleCheckBoxCell(
174 const css::uno::Reference< css::accessibility::XAccessible >& ,
176 const css::uno::Reference< css::awt::XWindow >& ,
186 virtual css::uno::Reference< css::accessibility::XAccessible >
187 createEditBrowseBoxTableCellAccess(
188 const css::uno::Reference< css::accessibility::XAccessible >& ,
189 const css::uno::Reference< css::accessibility::XAccessible >& ,
190 const css::uno::Reference< css::awt::XWindow >& ,
201 AccessibleDummyFactory::AccessibleDummyFactory()
206 AccessibleDummyFactory::~AccessibleDummyFactory()
216 AccessibleFactoryAccess::AccessibleFactoryAccess()
217 :m_bInitialized( false )
221#if !ENABLE_WASM_STRIP_ACCESSIBILITY
222#if HAVE_FEATURE_DESKTOP
223#ifndef DISABLE_DYNLOADING
226 extern "C" void* getSvtAccessibilityComponentFactory();
231 void AccessibleFactoryAccess::ensureInitialized()
233 if ( m_bInitialized )
236 ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
238#if !ENABLE_WASM_STRIP_ACCESSIBILITY
239#if HAVE_FEATURE_DESKTOP
243#ifndef DISABLE_DYNLOADING
244 const OUString sModuleName(
SVLIBRARY(
"acc" ));
245 s_hAccessibleImplementationModule = osl_loadModuleRelative( &
thisModule, sModuleName.pData, 0 );
246 if ( s_hAccessibleImplementationModule !=
nullptr )
248 const OUString sFactoryCreationFunc(
"getSvtAccessibilityComponentFactory" );
250 osl_getFunctionSymbol( s_hAccessibleImplementationModule, sFactoryCreationFunc.pData ));
253 OSL_ENSURE( s_pAccessibleFactoryFunc,
"ac_registerClient: could not load the library, or not retrieve the needed symbol!" );
255 s_pAccessibleFactoryFunc = getSvtAccessibilityComponentFactory;
259 if ( s_pAccessibleFactoryFunc )
261 IAccessibleFactory* pFactory =
static_cast< IAccessibleFactory*
>( (*s_pAccessibleFactoryFunc)() );
264 s_pFactory = pFactory;
275 s_pFactory =
new AccessibleDummyFactory;
277 m_bInitialized =
true;
280 IAccessibleFactory& AccessibleFactoryAccess::getFactory()
283 DBG_ASSERT( s_pFactory.is(),
"AccessibleFactoryAccess::getFactory: at least a dummy factory should have been created!" );
AccessibleBrowseBoxObjType
This enumeration contains a constant for each kind of accessible object of a BrowseBox.
interface for an implementation of a browse box's Accessible component
interface for an implementation of a table control's Accessible component
This abstract class provides methods to implement an accessible table object.
#define DBG_ASSERT(sCon, aError)
void *(* GetSvtAccessibilityComponentFactory)()
a function which is able to create a factory for the standard Accessible/Context components needed fo...