bump product version to 4.1.6.2
[LibreOffice.git] / accessibility / source / helper / acc_factory.cxx
blob93f6bf54912e84aac5912d4879b54291b8b83130
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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 <toolkit/awt/vclxwindows.hxx>
21 #include <toolkit/helper/accessiblefactory.hxx>
22 #include <svtools/accessiblefactory.hxx>
23 #include <accessibility/standard/vclxaccessiblebutton.hxx>
24 #include <accessibility/standard/vclxaccessiblecheckbox.hxx>
25 #include <accessibility/standard/vclxaccessibledropdowncombobox.hxx>
26 #include <accessibility/standard/vclxaccessiblecombobox.hxx>
27 #include <accessibility/standard/vclxaccessibledropdownlistbox.hxx>
28 #include <accessibility/standard/vclxaccessibleedit.hxx>
29 #include <accessibility/standard/vclxaccessiblefixedhyperlink.hxx>
30 #include <accessibility/standard/vclxaccessiblefixedtext.hxx>
31 #include <accessibility/standard/vclxaccessiblelistbox.hxx>
32 #include <accessibility/standard/vclxaccessiblemenu.hxx>
33 #include <accessibility/standard/vclxaccessibleradiobutton.hxx>
34 #include <accessibility/standard/vclxaccessiblescrollbar.hxx>
35 #include <accessibility/standard/vclxaccessibletextcomponent.hxx>
36 #include <accessibility/standard/vclxaccessibletoolbox.hxx>
37 #include <toolkit/awt/vclxaccessiblecomponent.hxx>
38 #include <accessibility/standard/vclxaccessiblestatusbar.hxx>
39 #include <accessibility/standard/vclxaccessibletabcontrol.hxx>
40 #include <accessibility/standard/vclxaccessibletabpagewindow.hxx>
41 #include <accessibility/standard/vclxaccessiblemenubar.hxx>
42 #include <accessibility/standard/vclxaccessiblepopupmenu.hxx>
43 #include <accessibility/extended/accessibletablistbox.hxx>
44 #include <accessibility/extended/AccessibleBrowseBox.hxx>
45 #include <accessibility/extended/accessibleiconchoicectrl.hxx>
46 #include <accessibility/extended/accessibletabbar.hxx>
47 #include <accessibility/extended/accessiblelistbox.hxx>
48 #include <accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx>
49 #include <accessibility/extended/textwindowaccessibility.hxx>
50 #include <accessibility/extended/AccessibleBrowseBoxTableCell.hxx>
51 #include <accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx>
52 #include <accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx>
53 #include <accessibility/extended/accessibleeditbrowseboxcell.hxx>
54 #include <accessibility/extended/AccessibleToolPanelDeck.hxx>
55 #include <accessibility/extended/AccessibleToolPanelDeckTabBar.hxx>
56 #include <accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx>
57 #include <vcl/lstbox.hxx>
58 #include <vcl/combobox.hxx>
59 #include <accessibility/extended/AccessibleGridControl.hxx>
60 #include <svtools/accessibletable.hxx>
61 #include <vcl/popupmenuwindow.hxx>
62 #include <cppuhelper/implbase1.hxx>
64 #include "floatingwindowaccessible.hxx"
66 //........................................................................
67 namespace accessibility
70 inline bool hasFloatingChild(Window *pWindow)
72 Window * pChild = pWindow->GetAccessibleChildWindow(0);
73 if( pChild && WINDOW_FLOATINGWINDOW == pChild->GetType() )
74 return true;
76 return false;
79 //........................................................................
81 using namespace ::com::sun::star::uno;
82 using namespace ::com::sun::star::awt;
83 using namespace ::com::sun::star::accessibility;
84 using namespace ::svt;
85 using namespace ::svt::table;
87 //================================================================
88 //= IAccessibleFactory
89 //================================================================
90 class AccessibleFactory :public ::toolkit::IAccessibleFactory
91 ,public ::svt::IAccessibleFactory
93 private:
94 oslInterlockedCount m_refCount;
96 public:
97 AccessibleFactory();
99 // IReference
100 virtual oslInterlockedCount SAL_CALL acquire();
101 virtual oslInterlockedCount SAL_CALL release();
103 // ::toolkit::IAccessibleFactory
104 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
105 createAccessibleContext( VCLXButton* _pXWindow );
106 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
107 createAccessibleContext( VCLXCheckBox* _pXWindow );
108 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
109 createAccessibleContext( VCLXRadioButton* _pXWindow );
110 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
111 createAccessibleContext( VCLXListBox* _pXWindow );
112 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
113 createAccessibleContext( VCLXFixedText* _pXWindow );
114 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
115 createAccessibleContext( VCLXFixedHyperlink* _pXWindow );
116 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
117 createAccessibleContext( VCLXScrollBar* _pXWindow );
118 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
119 createAccessibleContext( VCLXEdit* _pXWindow );
120 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
121 createAccessibleContext( VCLXComboBox* _pXWindow );
122 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
123 createAccessibleContext( VCLXToolBox* _pXWindow );
124 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
125 createAccessibleContext( VCLXWindow* _pXWindow );
126 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
127 createAccessible( Menu* _pMenu, sal_Bool _bIsMenuBar );
129 // ::svt::IAccessibleFactory
130 virtual IAccessibleTabListBox*
131 createAccessibleTabListBox(
132 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
133 SvHeaderTabListBox& rBox
134 ) const;
136 virtual IAccessibleBrowseBox*
137 createAccessibleBrowseBox(
138 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
139 IAccessibleTableProvider& _rBrowseBox
140 ) const;
142 virtual IAccessibleTableControl*
143 createAccessibleTableControl(
144 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
145 IAccessibleTable& _rTable
146 ) const;
148 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
149 createAccessibleIconChoiceCtrl(
150 SvtIconChoiceCtrl& _rIconCtrl,
151 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent
152 ) const;
154 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
155 createAccessibleTabBar(
156 TabBar& _rTabBar
157 ) const;
159 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
160 createAccessibleTextWindowContext(
161 VCLXWindow* pVclXWindow, TextEngine& rEngine, TextView& rView, bool bCompoundControlChild
162 ) const;
164 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
165 createAccessibleTreeListBox(
166 SvTreeListBox& _rListBox,
167 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent
168 ) const;
170 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
171 createAccessibleBrowseBoxHeaderBar(
172 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
173 IAccessibleTableProvider& _rOwningTable,
174 AccessibleBrowseBoxObjType _eObjType
175 ) const;
177 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
178 createAccessibleBrowseBoxTableCell(
179 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
180 IAccessibleTableProvider& _rBrowseBox,
181 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
182 sal_Int32 _nRowId,
183 sal_uInt16 _nColId,
184 sal_Int32 _nOffset
185 ) const;
187 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
188 createAccessibleBrowseBoxHeaderCell(
189 sal_Int32 _nColumnRowId,
190 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
191 IAccessibleTableProvider& _rBrowseBox,
192 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
193 AccessibleBrowseBoxObjType _eObjType
194 ) const;
196 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
197 createAccessibleCheckBoxCell(
198 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
199 IAccessibleTableProvider& _rBrowseBox,
200 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
201 sal_Int32 _nRowPos,
202 sal_uInt16 _nColPos,
203 const TriState& _eState,
204 sal_Bool _bIsTriState
205 ) const;
207 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
208 createEditBrowseBoxTableCellAccess(
209 const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxParent,
210 const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxControlAccessible,
211 const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _rxFocusWindow,
212 IAccessibleTableProvider& _rBrowseBox,
213 sal_Int32 _nRowPos,
214 sal_uInt16 _nColPos
215 ) const;
217 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
218 createAccessibleToolPanelDeck(
219 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& i_rAccessibleParent,
220 ::svt::ToolPanelDeck& i_rPanelDeck
222 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
223 createAccessibleToolPanelTabBar(
224 const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& i_rAccessibleParent,
225 ::svt::IToolPanelDeck& i_rPanelDeck,
226 ::svt::PanelTabBar& i_rTabBar
229 protected:
230 virtual ~AccessibleFactory();
234 //--------------------------------------------------------------------
235 AccessibleFactory::AccessibleFactory()
236 :m_refCount( 0 )
240 //--------------------------------------------------------------------
241 AccessibleFactory::~AccessibleFactory()
245 //--------------------------------------------------------------------
246 oslInterlockedCount SAL_CALL AccessibleFactory::acquire()
248 return osl_atomic_increment( &m_refCount );
251 //--------------------------------------------------------------------
252 oslInterlockedCount SAL_CALL AccessibleFactory::release()
254 if ( 0 == osl_atomic_decrement( &m_refCount ) )
256 delete this;
257 return 0;
259 return m_refCount;
262 //--------------------------------------------------------------------
263 Reference< XAccessible > AccessibleFactory::createAccessible( Menu* _pMenu, sal_Bool _bIsMenuBar )
265 OAccessibleMenuBaseComponent* pAccessible;
266 if ( _bIsMenuBar )
267 pAccessible = new VCLXAccessibleMenuBar( _pMenu );
268 else
269 pAccessible = new VCLXAccessiblePopupMenu( _pMenu );
270 pAccessible->SetStates();
271 return pAccessible;
274 //--------------------------------------------------------------------
275 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXButton* _pXWindow )
277 return new VCLXAccessibleButton( _pXWindow );
280 //--------------------------------------------------------------------
281 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXCheckBox* _pXWindow )
283 return new VCLXAccessibleCheckBox( _pXWindow );
286 //--------------------------------------------------------------------
287 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXRadioButton* _pXWindow )
289 return new VCLXAccessibleRadioButton( _pXWindow );
292 //--------------------------------------------------------------------
293 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXListBox* _pXWindow )
295 sal_Bool bIsDropDownBox = sal_False;
296 ListBox* pBox = static_cast< ListBox* >( _pXWindow->GetWindow() );
297 if ( pBox )
298 bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
300 if ( bIsDropDownBox )
301 return new VCLXAccessibleDropDownListBox( _pXWindow );
302 else
303 return new VCLXAccessibleListBox( _pXWindow );
306 //--------------------------------------------------------------------
307 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXFixedText* _pXWindow )
309 return new VCLXAccessibleFixedText( _pXWindow );
312 //--------------------------------------------------------------------
313 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXFixedHyperlink* _pXWindow )
315 return new VCLXAccessibleFixedHyperlink( _pXWindow );
318 //--------------------------------------------------------------------
319 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXScrollBar* _pXWindow )
321 return new VCLXAccessibleScrollBar( _pXWindow );
324 //--------------------------------------------------------------------
325 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXEdit* _pXWindow )
327 return new VCLXAccessibleEdit( _pXWindow );
330 //--------------------------------------------------------------------
331 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXComboBox* _pXWindow )
333 sal_Bool bIsDropDownBox = sal_False;
334 ComboBox* pBox = static_cast< ComboBox* >( _pXWindow->GetWindow() );
335 if ( pBox )
336 bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
338 if ( bIsDropDownBox )
339 return new VCLXAccessibleDropDownComboBox( _pXWindow );
340 else
341 return new VCLXAccessibleComboBox( _pXWindow );
344 //--------------------------------------------------------------------
345 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXWindow* _pXWindow )
347 Reference< XAccessibleContext > xContext;
349 Window* pWindow = _pXWindow->GetWindow();
350 if ( pWindow )
352 WindowType nType = pWindow->GetType();
354 if ( nType == WINDOW_MENUBARWINDOW || pWindow->IsMenuFloatingWindow() || pWindow->IsToolbarFloatingWindow() )
356 Reference< XAccessible > xAcc( pWindow->GetAccessible() );
357 if ( xAcc.is() )
359 Reference< XAccessibleContext > xCont( xAcc->getAccessibleContext() );
360 if ( pWindow->GetType() == WINDOW_MENUBARWINDOW ||
361 ( xCont.is() && xCont->getAccessibleRole() == AccessibleRole::POPUP_MENU ) )
363 xContext = xCont;
367 else if ( nType == WINDOW_STATUSBAR )
369 xContext = (XAccessibleContext*) new VCLXAccessibleStatusBar( _pXWindow );
371 else if ( nType == WINDOW_TABCONTROL )
373 xContext = (XAccessibleContext*) new VCLXAccessibleTabControl( _pXWindow );
375 else if ( nType == WINDOW_TABPAGE && pWindow->GetAccessibleParentWindow() && pWindow->GetAccessibleParentWindow()->GetType() == WINDOW_TABCONTROL )
377 xContext = new VCLXAccessibleTabPageWindow( _pXWindow );
379 else if ( nType == WINDOW_FLOATINGWINDOW )
381 xContext = new FloatingWindowAccessible( _pXWindow );
383 else if ( nType == WINDOW_BORDERWINDOW && hasFloatingChild( pWindow ) )
385 // The logic here has to match that of Window::GetAccessibleParentWindow in
386 // vcl/source/window/window.cxx to avoid PopupMenuFloatingWindow
387 // becoming a11y parents of themselves
388 Window* pChild = pWindow->GetAccessibleChildWindow(0);
389 if (PopupMenuFloatingWindow::isPopupMenu(pChild))
391 // Get the accessible context from the child window.
392 Reference<XAccessible> xAccessible = pChild->CreateAccessible();
393 if (xAccessible.is())
394 xContext = xAccessible->getAccessibleContext();
396 else
397 xContext = new FloatingWindowAccessible( _pXWindow );
399 else if ( ( nType == WINDOW_HELPTEXTWINDOW ) || ( nType == WINDOW_FIXEDLINE ) )
401 xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleFixedText( _pXWindow );
403 else
405 xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleComponent( _pXWindow );
409 return xContext;
412 //--------------------------------------------------------------------
413 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXToolBox* _pXWindow )
415 return new VCLXAccessibleToolBox( _pXWindow );
418 //--------------------------------------------------------------------
419 IAccessibleTabListBox* AccessibleFactory::createAccessibleTabListBox(
420 const Reference< XAccessible >& rxParent, SvHeaderTabListBox& rBox ) const
422 return new AccessibleTabListBox( rxParent, rBox );
425 //--------------------------------------------------------------------
426 IAccessibleBrowseBox* AccessibleFactory::createAccessibleBrowseBox(
427 const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox ) const
429 return new AccessibleBrowseBoxAccess( _rxParent, _rBrowseBox );
432 //--------------------------------------------------------------------
433 IAccessibleTableControl* AccessibleFactory::createAccessibleTableControl(
434 const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable ) const
436 return new AccessibleGridControlAccess( _rxParent, _rTable );
439 //--------------------------------------------------------------------
440 Reference< XAccessible > AccessibleFactory::createAccessibleIconChoiceCtrl(
441 SvtIconChoiceCtrl& _rIconCtrl, const Reference< XAccessible >& _xParent ) const
443 return new AccessibleIconChoiceCtrl( _rIconCtrl, _xParent );
446 //--------------------------------------------------------------------
447 Reference< XAccessible > AccessibleFactory::createAccessibleTabBar( TabBar& _rTabBar ) const
449 return new AccessibleTabBar( &_rTabBar );
452 //--------------------------------------------------------------------
453 Reference< XAccessibleContext > AccessibleFactory::createAccessibleTextWindowContext(
454 VCLXWindow* pVclXWindow, TextEngine& rEngine, TextView& rView, bool bCompoundControlChild ) const
456 return new Document( pVclXWindow, rEngine, rView, bCompoundControlChild );
459 //--------------------------------------------------------------------
460 Reference< XAccessible > AccessibleFactory::createAccessibleTreeListBox(
461 SvTreeListBox& _rListBox, const Reference< XAccessible >& _xParent ) const
463 return new AccessibleListBox( _rListBox, _xParent );
466 //--------------------------------------------------------------------
467 Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderBar(
468 const Reference< XAccessible >& rxParent, IAccessibleTableProvider& _rOwningTable,
469 AccessibleBrowseBoxObjType _eObjType ) const
471 return new AccessibleBrowseBoxHeaderBar( rxParent, _rOwningTable, _eObjType );
474 //--------------------------------------------------------------------
475 Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxTableCell(
476 const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
477 const Reference< XWindow >& _xFocusWindow, sal_Int32 _nRowId, sal_uInt16 _nColId, sal_Int32 _nOffset ) const
479 return new AccessibleBrowseBoxTableCell( _rxParent, _rBrowseBox, _xFocusWindow,
480 _nRowId, _nColId, _nOffset );
483 //--------------------------------------------------------------------
484 Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderCell(
485 sal_Int32 _nColumnRowId, const Reference< XAccessible >& rxParent, IAccessibleTableProvider& _rBrowseBox,
486 const Reference< XWindow >& _xFocusWindow, AccessibleBrowseBoxObjType _eObjType ) const
488 return new AccessibleBrowseBoxHeaderCell( _nColumnRowId, rxParent, _rBrowseBox,
489 _xFocusWindow, _eObjType );
492 //--------------------------------------------------------------------
493 Reference< XAccessible > AccessibleFactory::createAccessibleCheckBoxCell(
494 const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
495 const Reference< XWindow >& _xFocusWindow, sal_Int32 _nRowPos, sal_uInt16 _nColPos,
496 const TriState& _eState, sal_Bool _bIsTriState ) const
498 return new AccessibleCheckBoxCell( _rxParent, _rBrowseBox, _xFocusWindow,
499 _nRowPos, _nColPos, _eState, _bIsTriState );
502 //--------------------------------------------------------------------
503 Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess(
504 const Reference< XAccessible >& _rxParent, const Reference< XAccessible >& _rxControlAccessible,
505 const Reference< XWindow >& _rxFocusWindow, IAccessibleTableProvider& _rBrowseBox,
506 sal_Int32 _nRowPos, sal_uInt16 _nColPos ) const
508 return new EditBrowseBoxTableCellAccess( _rxParent, _rxControlAccessible,
509 _rxFocusWindow, _rBrowseBox, _nRowPos, _nColPos );
512 //--------------------------------------------------------------------
513 Reference< XAccessibleContext > AccessibleFactory::createAccessibleToolPanelDeck(
514 const Reference< XAccessible >& i_rAccessibleParent, ::svt::ToolPanelDeck& i_rPanelDeck )
516 return new AccessibleToolPanelDeck( i_rAccessibleParent, i_rPanelDeck );
519 //--------------------------------------------------------------------
520 Reference< XAccessibleContext > AccessibleFactory::createAccessibleToolPanelTabBar(
521 const Reference< XAccessible >& i_rAccessibleParent, ::svt::IToolPanelDeck& i_rPanelDeck, ::svt::PanelTabBar& i_rTabBar )
523 return new AccessibleToolPanelTabBar( i_rAccessibleParent, i_rPanelDeck, i_rTabBar );
526 //........................................................................
527 } // namespace accessibility
528 //........................................................................
530 //========================================================================
532 /** this is the entry point to retrieve a factory for the toolkit-level Accessible/Contexts supplied
533 by this library
535 This function implements the factory function needed in toolkit
536 (of type GetStandardAccComponentFactory).
538 extern "C"
540 SAL_DLLPUBLIC_EXPORT void* SAL_CALL getStandardAccessibleFactory()
542 ::toolkit::IAccessibleFactory* pFactory = new ::accessibility::AccessibleFactory;
543 pFactory->acquire();
544 return pFactory;
548 /** this is the entry point to retrieve a factory for the svtools-level Accessible/Contexts supplied
549 by this library
551 This function implements the factory function needed in svtools
552 (of type GetSvtAccessibilityComponentFactory).
554 extern "C"
556 SAL_DLLPUBLIC_EXPORT void* SAL_CALL getSvtAccessibilityComponentFactory()
558 ::svt::IAccessibleFactory* pFactory = new ::accessibility::AccessibleFactory;
559 pFactory->acquire();
560 return pFactory;
564 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */