1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <config_features.h>
22 #include <toolkit/awt/vclxwindows.hxx>
23 #include <toolkit/helper/accessiblefactory.hxx>
24 #include <svtools/accessiblefactory.hxx>
25 #include <accessibility/standard/vclxaccessiblebutton.hxx>
26 #include <accessibility/standard/vclxaccessiblecheckbox.hxx>
27 #include <accessibility/standard/vclxaccessibledropdowncombobox.hxx>
28 #include <accessibility/standard/vclxaccessiblecombobox.hxx>
29 #include <accessibility/standard/vclxaccessibledropdownlistbox.hxx>
30 #include <accessibility/standard/vclxaccessibleedit.hxx>
31 #include <accessibility/standard/vclxaccessiblefixedhyperlink.hxx>
32 #include <accessibility/standard/vclxaccessiblefixedtext.hxx>
33 #include <accessibility/standard/vclxaccessiblelistbox.hxx>
34 #include <accessibility/standard/vclxaccessiblemenu.hxx>
35 #include <accessibility/standard/vclxaccessibleradiobutton.hxx>
36 #include <accessibility/standard/vclxaccessiblescrollbar.hxx>
37 #include <accessibility/standard/vclxaccessibletextcomponent.hxx>
38 #include <accessibility/standard/vclxaccessibletoolbox.hxx>
39 #include <toolkit/awt/vclxaccessiblecomponent.hxx>
40 #include <accessibility/standard/vclxaccessiblestatusbar.hxx>
41 #include <accessibility/standard/vclxaccessibletabcontrol.hxx>
42 #include <accessibility/standard/vclxaccessibletabpagewindow.hxx>
43 #include <accessibility/standard/vclxaccessiblemenubar.hxx>
44 #include <accessibility/standard/vclxaccessiblepopupmenu.hxx>
45 #include <accessibility/extended/accessibletablistbox.hxx>
46 #include <accessibility/extended/AccessibleBrowseBox.hxx>
47 #include <accessibility/extended/accessibleiconchoicectrl.hxx>
48 #include <accessibility/extended/accessibletabbar.hxx>
49 #include <accessibility/extended/accessiblelistbox.hxx>
50 #include <accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx>
51 #include <accessibility/extended/textwindowaccessibility.hxx>
52 #include <accessibility/extended/AccessibleBrowseBoxTableCell.hxx>
53 #include <accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx>
54 #include <accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx>
55 #include <accessibility/extended/accessibleeditbrowseboxcell.hxx>
56 #include <accessibility/extended/AccessibleToolPanelDeck.hxx>
57 #include <accessibility/extended/AccessibleToolPanelDeckTabBar.hxx>
58 #include <accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx>
59 #include <vcl/lstbox.hxx>
60 #include <vcl/combobox.hxx>
61 #include <accessibility/extended/AccessibleGridControl.hxx>
62 #include <svtools/accessibletable.hxx>
63 #include <vcl/popupmenuwindow.hxx>
64 #include <cppuhelper/implbase1.hxx>
66 #include "floatingwindowaccessible.hxx"
68 using namespace ::accessibility
;
69 using namespace ::com::sun::star::uno
;
70 using namespace ::com::sun::star::awt
;
71 using namespace ::com::sun::star::accessibility
;
72 using namespace ::svt
;
73 using namespace ::svt::table
;
77 inline bool hasFloatingChild(vcl::Window
*pWindow
)
79 vcl::Window
* pChild
= pWindow
->GetAccessibleChildWindow(0);
80 if( pChild
&& WINDOW_FLOATINGWINDOW
== pChild
->GetType() )
87 class AccessibleFactory
:public ::toolkit::IAccessibleFactory
88 ,public ::svt::IAccessibleFactory
93 // ::toolkit::IAccessibleFactory
94 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
95 createAccessibleContext( VCLXButton
* _pXWindow
) SAL_OVERRIDE
;
96 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
97 createAccessibleContext( VCLXCheckBox
* _pXWindow
) SAL_OVERRIDE
;
98 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
99 createAccessibleContext( VCLXRadioButton
* _pXWindow
) SAL_OVERRIDE
;
100 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
101 createAccessibleContext( VCLXListBox
* _pXWindow
) SAL_OVERRIDE
;
102 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
103 createAccessibleContext( VCLXFixedText
* _pXWindow
) SAL_OVERRIDE
;
104 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
105 createAccessibleContext( VCLXFixedHyperlink
* _pXWindow
) SAL_OVERRIDE
;
106 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
107 createAccessibleContext( VCLXScrollBar
* _pXWindow
) SAL_OVERRIDE
;
108 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
109 createAccessibleContext( VCLXEdit
* _pXWindow
) SAL_OVERRIDE
;
110 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
111 createAccessibleContext( VCLXComboBox
* _pXWindow
) SAL_OVERRIDE
;
112 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
113 createAccessibleContext( VCLXToolBox
* _pXWindow
) SAL_OVERRIDE
;
114 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
115 createAccessibleContext( VCLXWindow
* _pXWindow
) SAL_OVERRIDE
;
116 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
117 createAccessible( Menu
* _pMenu
, bool _bIsMenuBar
) SAL_OVERRIDE
;
119 // ::svt::IAccessibleFactory
120 virtual IAccessibleTabListBox
*
121 createAccessibleTabListBox(
122 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& rxParent
,
123 SvHeaderTabListBox
& rBox
124 ) const SAL_OVERRIDE
;
126 virtual IAccessibleBrowseBox
*
127 createAccessibleBrowseBox(
128 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& _rxParent
,
129 IAccessibleTableProvider
& _rBrowseBox
130 ) const SAL_OVERRIDE
;
132 virtual IAccessibleTableControl
*
133 createAccessibleTableControl(
134 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& _rxParent
,
135 IAccessibleTable
& _rTable
136 ) const SAL_OVERRIDE
;
138 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
139 createAccessibleIconChoiceCtrl(
140 SvtIconChoiceCtrl
& _rIconCtrl
,
141 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& _xParent
142 ) const SAL_OVERRIDE
;
144 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
145 createAccessibleTabBar(
147 ) const SAL_OVERRIDE
;
149 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
150 createAccessibleTextWindowContext(
151 VCLXWindow
* pVclXWindow
, TextEngine
& rEngine
, TextView
& rView
152 ) const SAL_OVERRIDE
;
154 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
155 createAccessibleTreeListBox(
156 SvTreeListBox
& _rListBox
,
157 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& _xParent
158 ) const SAL_OVERRIDE
;
160 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
161 createAccessibleBrowseBoxHeaderBar(
162 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& rxParent
,
163 IAccessibleTableProvider
& _rOwningTable
,
164 AccessibleBrowseBoxObjType _eObjType
165 ) const SAL_OVERRIDE
;
167 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
168 createAccessibleBrowseBoxTableCell(
169 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& _rxParent
,
170 IAccessibleTableProvider
& _rBrowseBox
,
171 const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XWindow
>& _xFocusWindow
,
175 ) const SAL_OVERRIDE
;
177 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
178 createAccessibleBrowseBoxHeaderCell(
179 sal_Int32 _nColumnRowId
,
180 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& rxParent
,
181 IAccessibleTableProvider
& _rBrowseBox
,
182 const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XWindow
>& _xFocusWindow
,
183 AccessibleBrowseBoxObjType _eObjType
184 ) const SAL_OVERRIDE
;
186 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
187 createAccessibleCheckBoxCell(
188 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& _rxParent
,
189 IAccessibleTableProvider
& _rBrowseBox
,
190 const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XWindow
>& _xFocusWindow
,
193 const TriState
& _eState
,
195 ) const SAL_OVERRIDE
;
197 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>
198 createEditBrowseBoxTableCellAccess(
199 const ::com::sun::star::uno::Reference
< com::sun::star::accessibility::XAccessible
>& _rxParent
,
200 const ::com::sun::star::uno::Reference
< com::sun::star::accessibility::XAccessible
>& _rxControlAccessible
,
201 const ::com::sun::star::uno::Reference
< ::com::sun::star::awt::XWindow
>& _rxFocusWindow
,
202 IAccessibleTableProvider
& _rBrowseBox
,
205 ) const SAL_OVERRIDE
;
207 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
208 createAccessibleToolPanelDeck(
209 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& i_rAccessibleParent
,
210 ::svt::ToolPanelDeck
& i_rPanelDeck
212 virtual ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessibleContext
>
213 createAccessibleToolPanelTabBar(
214 const ::com::sun::star::uno::Reference
< ::com::sun::star::accessibility::XAccessible
>& i_rAccessibleParent
,
215 ::svt::IToolPanelDeck
& i_rPanelDeck
,
216 ::svt::PanelTabBar
& i_rTabBar
220 virtual ~AccessibleFactory();
223 AccessibleFactory::AccessibleFactory()
227 AccessibleFactory::~AccessibleFactory()
231 Reference
< XAccessible
> AccessibleFactory::createAccessible( Menu
* _pMenu
, bool _bIsMenuBar
)
233 OAccessibleMenuBaseComponent
* pAccessible
;
235 pAccessible
= new VCLXAccessibleMenuBar( _pMenu
);
237 pAccessible
= new VCLXAccessiblePopupMenu( _pMenu
);
238 pAccessible
->SetStates();
242 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXButton
* _pXWindow
)
244 return new VCLXAccessibleButton( _pXWindow
);
247 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXCheckBox
* _pXWindow
)
249 return new VCLXAccessibleCheckBox( _pXWindow
);
252 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXRadioButton
* _pXWindow
)
254 return new VCLXAccessibleRadioButton( _pXWindow
);
257 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXListBox
* _pXWindow
)
259 bool bIsDropDownBox
= false;
260 VclPtr
< ListBox
> pBox
= _pXWindow
->GetAs
< ListBox
>();
262 bIsDropDownBox
= ( ( pBox
->GetStyle() & WB_DROPDOWN
) == WB_DROPDOWN
);
264 if ( bIsDropDownBox
)
265 return new VCLXAccessibleDropDownListBox( _pXWindow
);
267 return new VCLXAccessibleListBox( _pXWindow
);
270 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXFixedText
* _pXWindow
)
272 return new VCLXAccessibleFixedText( _pXWindow
);
275 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXFixedHyperlink
* _pXWindow
)
277 return new VCLXAccessibleFixedHyperlink( _pXWindow
);
280 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXScrollBar
* _pXWindow
)
282 return new VCLXAccessibleScrollBar( _pXWindow
);
285 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXEdit
* _pXWindow
)
287 return new VCLXAccessibleEdit( _pXWindow
);
290 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXComboBox
* _pXWindow
)
292 bool bIsDropDownBox
= false;
293 VclPtr
< ComboBox
> pBox
= _pXWindow
->GetAs
< ComboBox
>();
295 bIsDropDownBox
= ( ( pBox
->GetStyle() & WB_DROPDOWN
) == WB_DROPDOWN
);
297 if ( bIsDropDownBox
)
298 return new VCLXAccessibleDropDownComboBox( _pXWindow
);
300 return new VCLXAccessibleComboBox( _pXWindow
);
303 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXWindow
* _pXWindow
)
305 Reference
< XAccessibleContext
> xContext
;
307 vcl::Window
* pWindow
= _pXWindow
->GetWindow();
310 WindowType nType
= pWindow
->GetType();
312 if ( nType
== WINDOW_MENUBARWINDOW
|| pWindow
->IsMenuFloatingWindow() || pWindow
->IsToolbarFloatingWindow() )
314 Reference
< XAccessible
> xAcc( pWindow
->GetAccessible() );
317 Reference
< XAccessibleContext
> xCont( xAcc
->getAccessibleContext() );
318 if ( pWindow
->GetType() == WINDOW_MENUBARWINDOW
||
319 ( xCont
.is() && xCont
->getAccessibleRole() == AccessibleRole::POPUP_MENU
) )
326 else if ( nType
== WINDOW_STATUSBAR
)
328 xContext
= (XAccessibleContext
*) new VCLXAccessibleStatusBar( _pXWindow
);
331 else if ( nType
== WINDOW_TABCONTROL
)
333 xContext
= (XAccessibleContext
*) new VCLXAccessibleTabControl( _pXWindow
);
336 else if ( nType
== WINDOW_TABPAGE
&& pWindow
->GetAccessibleParentWindow() && pWindow
->GetAccessibleParentWindow()->GetType() == WINDOW_TABCONTROL
)
338 xContext
= new VCLXAccessibleTabPageWindow( _pXWindow
);
341 else if ( nType
== WINDOW_FLOATINGWINDOW
)
343 xContext
= new FloatingWindowAccessible( _pXWindow
);
346 else if ( nType
== WINDOW_BORDERWINDOW
&& hasFloatingChild( pWindow
) )
348 // The logic here has to match that of Window::GetAccessibleParentWindow in
349 // vcl/source/window/window.cxx to avoid PopupMenuFloatingWindow
350 // becoming a11y parents of themselves
351 vcl::Window
* pChild
= pWindow
->GetAccessibleChildWindow(0);
352 if (PopupMenuFloatingWindow::isPopupMenu(pChild
))
354 // Get the accessible context from the child window.
355 Reference
<XAccessible
> xAccessible
= pChild
->CreateAccessible();
356 if (xAccessible
.is())
357 xContext
= xAccessible
->getAccessibleContext();
360 xContext
= new FloatingWindowAccessible( _pXWindow
);
363 else if ( ( nType
== WINDOW_HELPTEXTWINDOW
) || ( nType
== WINDOW_FIXEDLINE
) )
365 xContext
= (XAccessibleContext
*) new VCLXAccessibleFixedText( _pXWindow
);
369 xContext
= (XAccessibleContext
*) new VCLXAccessibleComponent( _pXWindow
);
375 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleContext( VCLXToolBox
* _pXWindow
)
377 return new VCLXAccessibleToolBox( _pXWindow
);
380 IAccessibleTabListBox
* AccessibleFactory::createAccessibleTabListBox(
381 const Reference
< XAccessible
>& rxParent
, SvHeaderTabListBox
& rBox
) const
383 return new AccessibleTabListBox( rxParent
, rBox
);
386 IAccessibleBrowseBox
* AccessibleFactory::createAccessibleBrowseBox(
387 const Reference
< XAccessible
>& _rxParent
, IAccessibleTableProvider
& _rBrowseBox
) const
389 return new AccessibleBrowseBoxAccess( _rxParent
, _rBrowseBox
);
392 IAccessibleTableControl
* AccessibleFactory::createAccessibleTableControl(
393 const Reference
< XAccessible
>& _rxParent
, IAccessibleTable
& _rTable
) const
395 return new AccessibleGridControlAccess( _rxParent
, _rTable
);
398 Reference
< XAccessible
> AccessibleFactory::createAccessibleIconChoiceCtrl(
399 SvtIconChoiceCtrl
& _rIconCtrl
, const Reference
< XAccessible
>& _xParent
) const
401 return new AccessibleIconChoiceCtrl( _rIconCtrl
, _xParent
);
404 Reference
< XAccessible
> AccessibleFactory::createAccessibleTabBar( TabBar
& _rTabBar
) const
406 return new AccessibleTabBar( &_rTabBar
);
409 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleTextWindowContext(
410 VCLXWindow
* pVclXWindow
, TextEngine
& rEngine
, TextView
& rView
) const
412 return new Document( pVclXWindow
, rEngine
, rView
);
415 Reference
< XAccessible
> AccessibleFactory::createAccessibleTreeListBox(
416 SvTreeListBox
& _rListBox
, const Reference
< XAccessible
>& _xParent
) const
418 return new AccessibleListBox( _rListBox
, _xParent
);
421 Reference
< XAccessible
> AccessibleFactory::createAccessibleBrowseBoxHeaderBar(
422 const Reference
< XAccessible
>& rxParent
, IAccessibleTableProvider
& _rOwningTable
,
423 AccessibleBrowseBoxObjType _eObjType
) const
425 return new AccessibleBrowseBoxHeaderBar( rxParent
, _rOwningTable
, _eObjType
);
428 Reference
< XAccessible
> AccessibleFactory::createAccessibleBrowseBoxTableCell(
429 const Reference
< XAccessible
>& _rxParent
, IAccessibleTableProvider
& _rBrowseBox
,
430 const Reference
< XWindow
>& _xFocusWindow
, sal_Int32 _nRowId
, sal_uInt16 _nColId
, sal_Int32 _nOffset
) const
432 return new AccessibleBrowseBoxTableCell( _rxParent
, _rBrowseBox
, _xFocusWindow
,
433 _nRowId
, _nColId
, _nOffset
);
436 Reference
< XAccessible
> AccessibleFactory::createAccessibleBrowseBoxHeaderCell(
437 sal_Int32 _nColumnRowId
, const Reference
< XAccessible
>& rxParent
, IAccessibleTableProvider
& _rBrowseBox
,
438 const Reference
< XWindow
>& _xFocusWindow
, AccessibleBrowseBoxObjType _eObjType
) const
440 return new AccessibleBrowseBoxHeaderCell( _nColumnRowId
, rxParent
, _rBrowseBox
,
441 _xFocusWindow
, _eObjType
);
444 Reference
< XAccessible
> AccessibleFactory::createAccessibleCheckBoxCell(
445 const Reference
< XAccessible
>& _rxParent
, IAccessibleTableProvider
& _rBrowseBox
,
446 const Reference
< XWindow
>& _xFocusWindow
, sal_Int32 _nRowPos
, sal_uInt16 _nColPos
,
447 const TriState
& _eState
, bool _bIsTriState
) const
449 return new AccessibleCheckBoxCell( _rxParent
, _rBrowseBox
, _xFocusWindow
,
450 _nRowPos
, _nColPos
, _eState
, _bIsTriState
);
453 Reference
< XAccessible
> AccessibleFactory::createEditBrowseBoxTableCellAccess(
454 const Reference
< XAccessible
>& _rxParent
, const Reference
< XAccessible
>& _rxControlAccessible
,
455 const Reference
< XWindow
>& _rxFocusWindow
, IAccessibleTableProvider
& _rBrowseBox
,
456 sal_Int32 _nRowPos
, sal_uInt16 _nColPos
) const
458 return new EditBrowseBoxTableCellAccess( _rxParent
, _rxControlAccessible
,
459 _rxFocusWindow
, _rBrowseBox
, _nRowPos
, _nColPos
);
462 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleToolPanelDeck(
463 const Reference
< XAccessible
>& i_rAccessibleParent
, ::svt::ToolPanelDeck
& i_rPanelDeck
)
465 return new AccessibleToolPanelDeck( i_rAccessibleParent
, i_rPanelDeck
);
468 Reference
< XAccessibleContext
> AccessibleFactory::createAccessibleToolPanelTabBar(
469 const Reference
< XAccessible
>& i_rAccessibleParent
, ::svt::IToolPanelDeck
& i_rPanelDeck
, ::svt::PanelTabBar
& i_rTabBar
)
471 return new AccessibleToolPanelTabBar( i_rAccessibleParent
, i_rPanelDeck
, i_rTabBar
);
474 } // anonymous namespace
476 #if HAVE_FEATURE_DESKTOP
477 /* this is the entry point to retrieve a factory for the toolkit-level Accessible/Contexts supplied
480 This function implements the factory function needed in toolkit
481 (of type GetStandardAccComponentFactory).
485 SAL_DLLPUBLIC_EXPORT
void* SAL_CALL
getStandardAccessibleFactory()
487 ::toolkit::IAccessibleFactory
* pFactory
= new AccessibleFactory
;
493 /** this is the entry point to retrieve a factory for the svtools-level Accessible/Contexts supplied
496 This function implements the factory function needed in svtools
497 (of type GetSvtAccessibilityComponentFactory).
501 SAL_DLLPUBLIC_EXPORT
void* SAL_CALL
getSvtAccessibilityComponentFactory()
503 ::svt::IAccessibleFactory
* pFactory
= new AccessibleFactory
;
508 #endif // HAVE_FEATURE_DESKTOP
510 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */