Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include <toolkit/awt/vclxwindows.hxx>
30 : : #include <toolkit/helper/accessiblefactory.hxx>
31 : : #include <svtools/accessiblefactory.hxx>
32 : : #include <accessibility/standard/vclxaccessiblebutton.hxx>
33 : : #include <accessibility/standard/vclxaccessiblecheckbox.hxx>
34 : : #include <accessibility/standard/vclxaccessibledropdowncombobox.hxx>
35 : : #include <accessibility/standard/vclxaccessiblecombobox.hxx>
36 : : #include <accessibility/standard/vclxaccessibledropdownlistbox.hxx>
37 : : #include <accessibility/standard/vclxaccessibleedit.hxx>
38 : : #include <accessibility/standard/vclxaccessiblefixedhyperlink.hxx>
39 : : #include <accessibility/standard/vclxaccessiblefixedtext.hxx>
40 : : #include <accessibility/standard/vclxaccessiblelistbox.hxx>
41 : : #include <accessibility/standard/vclxaccessiblemenu.hxx>
42 : : #include <accessibility/standard/vclxaccessibleradiobutton.hxx>
43 : : #include <accessibility/standard/vclxaccessiblescrollbar.hxx>
44 : : #include <accessibility/standard/vclxaccessibletextcomponent.hxx>
45 : : #include <accessibility/standard/vclxaccessibletoolbox.hxx>
46 : : #include <toolkit/awt/vclxaccessiblecomponent.hxx>
47 : : #include <accessibility/standard/vclxaccessiblestatusbar.hxx>
48 : : #include <accessibility/standard/vclxaccessibletabcontrol.hxx>
49 : : #include <accessibility/standard/vclxaccessibletabpagewindow.hxx>
50 : : #include <accessibility/standard/vclxaccessiblemenubar.hxx>
51 : : #include <accessibility/standard/vclxaccessiblepopupmenu.hxx>
52 : : #include <accessibility/extended/accessibletablistbox.hxx>
53 : : #include <accessibility/extended/AccessibleBrowseBox.hxx>
54 : : #include <accessibility/extended/accessibleiconchoicectrl.hxx>
55 : : #include <accessibility/extended/accessibletabbar.hxx>
56 : : #include <accessibility/extended/accessiblelistbox.hxx>
57 : : #include <accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx>
58 : : #include <accessibility/extended/textwindowaccessibility.hxx>
59 : : #include <accessibility/extended/AccessibleBrowseBoxTableCell.hxx>
60 : : #include <accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx>
61 : : #include <accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx>
62 : : #include <accessibility/extended/accessibleeditbrowseboxcell.hxx>
63 : : #include <accessibility/extended/AccessibleToolPanelDeck.hxx>
64 : : #include <accessibility/extended/AccessibleToolPanelDeckTabBar.hxx>
65 : : #include <accessibility/extended/AccessibleToolPanelDeckTabBarItem.hxx>
66 : : #include <vcl/lstbox.hxx>
67 : : #include <vcl/combobox.hxx>
68 : : #include <accessibility/extended/AccessibleGridControl.hxx>
69 : : #include <svtools/accessibletable.hxx>
70 : : #include <vcl/popupmenuwindow.hxx>
71 : : #include <cppuhelper/implbase1.hxx>
72 : :
73 : : #include "floatingwindowaccessible.hxx"
74 : :
75 : : //........................................................................
76 : : namespace accessibility
77 : : {
78 : :
79 : 45 : inline bool hasFloatingChild(Window *pWindow)
80 : : {
81 : 45 : Window * pChild = pWindow->GetAccessibleChildWindow(0);
82 [ - + ][ - + ]: 45 : if( pChild && WINDOW_FLOATINGWINDOW == pChild->GetType() )
[ + - ]
83 : 0 : return true;
84 : :
85 : 45 : return false;
86 : : }
87 : :
88 : : //........................................................................
89 : :
90 : : using namespace ::com::sun::star::uno;
91 : : using namespace ::com::sun::star::awt;
92 : : using namespace ::com::sun::star::accessibility;
93 : : using namespace ::svt;
94 : : using namespace ::svt::table;
95 : :
96 : : //================================================================
97 : : //= IAccessibleFactory
98 : : //================================================================
99 : : class AccessibleFactory :public ::toolkit::IAccessibleFactory
100 : : ,public ::svt::IAccessibleFactory
101 : : {
102 : : private:
103 : : oslInterlockedCount m_refCount;
104 : :
105 : : public:
106 : : AccessibleFactory();
107 : :
108 : : // IReference
109 : : virtual oslInterlockedCount SAL_CALL acquire();
110 : : virtual oslInterlockedCount SAL_CALL release();
111 : :
112 : : // ::toolkit::IAccessibleFactory
113 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
114 : : createAccessibleContext( VCLXButton* _pXWindow );
115 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
116 : : createAccessibleContext( VCLXCheckBox* _pXWindow );
117 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
118 : : createAccessibleContext( VCLXRadioButton* _pXWindow );
119 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
120 : : createAccessibleContext( VCLXListBox* _pXWindow );
121 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
122 : : createAccessibleContext( VCLXFixedText* _pXWindow );
123 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
124 : : createAccessibleContext( VCLXFixedHyperlink* _pXWindow );
125 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
126 : : createAccessibleContext( VCLXScrollBar* _pXWindow );
127 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
128 : : createAccessibleContext( VCLXEdit* _pXWindow );
129 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
130 : : createAccessibleContext( VCLXComboBox* _pXWindow );
131 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
132 : : createAccessibleContext( VCLXToolBox* _pXWindow );
133 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
134 : : createAccessibleContext( VCLXWindow* _pXWindow );
135 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
136 : : createAccessible( Menu* _pMenu, sal_Bool _bIsMenuBar );
137 : :
138 : : // ::svt::IAccessibleFactory
139 : : virtual IAccessibleTabListBox*
140 : : createAccessibleTabListBox(
141 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
142 : : SvHeaderTabListBox& rBox
143 : : ) const;
144 : :
145 : : virtual IAccessibleBrowseBox*
146 : : createAccessibleBrowseBox(
147 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
148 : : IAccessibleTableProvider& _rBrowseBox
149 : : ) const;
150 : :
151 : : virtual IAccessibleTableControl*
152 : : createAccessibleTableControl(
153 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
154 : : IAccessibleTable& _rTable
155 : : ) const;
156 : :
157 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
158 : : createAccessibleIconChoiceCtrl(
159 : : SvtIconChoiceCtrl& _rIconCtrl,
160 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent
161 : : ) const;
162 : :
163 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
164 : : createAccessibleTabBar(
165 : : TabBar& _rTabBar
166 : : ) const;
167 : :
168 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
169 : : createAccessibleTextWindowContext(
170 : : VCLXWindow* pVclXWindow, TextEngine& rEngine, TextView& rView, bool bCompoundControlChild
171 : : ) const;
172 : :
173 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
174 : : createAccessibleTreeListBox(
175 : : SvTreeListBox& _rListBox,
176 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent
177 : : ) const;
178 : :
179 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
180 : : createAccessibleBrowseBoxHeaderBar(
181 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
182 : : IAccessibleTableProvider& _rOwningTable,
183 : : AccessibleBrowseBoxObjType _eObjType
184 : : ) const;
185 : :
186 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
187 : : createAccessibleBrowseBoxTableCell(
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,
191 : : sal_Int32 _nRowId,
192 : : sal_uInt16 _nColId,
193 : : sal_Int32 _nOffset
194 : : ) const;
195 : :
196 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
197 : : createAccessibleBrowseBoxHeaderCell(
198 : : sal_Int32 _nColumnRowId,
199 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
200 : : IAccessibleTableProvider& _rBrowseBox,
201 : : const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
202 : : AccessibleBrowseBoxObjType _eObjType
203 : : ) const;
204 : :
205 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
206 : : createAccessibleCheckBoxCell(
207 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
208 : : IAccessibleTableProvider& _rBrowseBox,
209 : : const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
210 : : sal_Int32 _nRowPos,
211 : : sal_uInt16 _nColPos,
212 : : const TriState& _eState,
213 : : sal_Bool _bEnabled,
214 : : sal_Bool _bIsTriState
215 : : ) const;
216 : :
217 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
218 : : createEditBrowseBoxTableCellAccess(
219 : : const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxParent,
220 : : const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxControlAccessible,
221 : : const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _rxFocusWindow,
222 : : IAccessibleTableProvider& _rBrowseBox,
223 : : sal_Int32 _nRowPos,
224 : : sal_uInt16 _nColPos
225 : : ) const;
226 : :
227 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
228 : : createAccessibleToolPanelDeck(
229 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& i_rAccessibleParent,
230 : : ::svt::ToolPanelDeck& i_rPanelDeck
231 : : );
232 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
233 : : createAccessibleToolPanelTabBar(
234 : : const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& i_rAccessibleParent,
235 : : ::svt::IToolPanelDeck& i_rPanelDeck,
236 : : ::svt::PanelTabBar& i_rTabBar
237 : : );
238 : :
239 : : protected:
240 : : virtual ~AccessibleFactory();
241 : : };
242 : :
243 : :
244 : : //--------------------------------------------------------------------
245 : 22 : AccessibleFactory::AccessibleFactory()
246 : 22 : :m_refCount( 0 )
247 : : {
248 : 22 : }
249 : :
250 : : //--------------------------------------------------------------------
251 : 0 : AccessibleFactory::~AccessibleFactory()
252 : : {
253 [ # # ]: 0 : }
254 : :
255 : : //--------------------------------------------------------------------
256 : 44 : oslInterlockedCount SAL_CALL AccessibleFactory::acquire()
257 : : {
258 : 44 : return osl_incrementInterlockedCount( &m_refCount );
259 : : }
260 : :
261 : : //--------------------------------------------------------------------
262 : 22 : oslInterlockedCount SAL_CALL AccessibleFactory::release()
263 : : {
264 [ - + ]: 22 : if ( 0 == osl_decrementInterlockedCount( &m_refCount ) )
265 : : {
266 [ # # ]: 0 : delete this;
267 : 0 : return 0;
268 : : }
269 : 22 : return m_refCount;
270 : : }
271 : :
272 : : //--------------------------------------------------------------------
273 : 49 : Reference< XAccessible > AccessibleFactory::createAccessible( Menu* _pMenu, sal_Bool _bIsMenuBar )
274 : : {
275 : : OAccessibleMenuBaseComponent* pAccessible;
276 [ + - ]: 49 : if ( _bIsMenuBar )
277 [ + - ]: 49 : pAccessible = new VCLXAccessibleMenuBar( _pMenu );
278 : : else
279 [ # # ]: 0 : pAccessible = new VCLXAccessiblePopupMenu( _pMenu );
280 : 49 : pAccessible->SetStates();
281 [ + - ]: 49 : return pAccessible;
282 : : }
283 : :
284 : : //--------------------------------------------------------------------
285 : 32 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXButton* _pXWindow )
286 : : {
287 [ + - ][ + - ]: 32 : return new VCLXAccessibleButton( _pXWindow );
288 : : }
289 : :
290 : : //--------------------------------------------------------------------
291 : 0 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXCheckBox* _pXWindow )
292 : : {
293 [ # # ][ # # ]: 0 : return new VCLXAccessibleCheckBox( _pXWindow );
[ # # ]
294 : : }
295 : :
296 : : //--------------------------------------------------------------------
297 : 0 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXRadioButton* _pXWindow )
298 : : {
299 [ # # ][ # # ]: 0 : return new VCLXAccessibleRadioButton( _pXWindow );
[ # # ]
300 : : }
301 : :
302 : : //--------------------------------------------------------------------
303 : 6 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXListBox* _pXWindow )
304 : : {
305 : 6 : sal_Bool bIsDropDownBox = sal_False;
306 : 6 : ListBox* pBox = static_cast< ListBox* >( _pXWindow->GetWindow() );
307 [ + - ]: 6 : if ( pBox )
308 : 6 : bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
309 : :
310 [ + - ]: 6 : if ( bIsDropDownBox )
311 [ + - ][ + - ]: 6 : return new VCLXAccessibleDropDownListBox( _pXWindow );
312 : : else
313 [ # # ][ # # ]: 6 : return new VCLXAccessibleListBox( _pXWindow );
314 : : }
315 : :
316 : : //--------------------------------------------------------------------
317 : 2 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXFixedText* _pXWindow )
318 : : {
319 [ + - ][ + - ]: 2 : return new VCLXAccessibleFixedText( _pXWindow );
[ + - ]
320 : : }
321 : :
322 : : //--------------------------------------------------------------------
323 : 0 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXFixedHyperlink* _pXWindow )
324 : : {
325 [ # # ][ # # ]: 0 : return new VCLXAccessibleFixedHyperlink( _pXWindow );
[ # # ]
326 : : }
327 : :
328 : : //--------------------------------------------------------------------
329 : 32 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXScrollBar* _pXWindow )
330 : : {
331 [ + - ][ + - ]: 32 : return new VCLXAccessibleScrollBar( _pXWindow );
[ + - ]
332 : : }
333 : :
334 : : //--------------------------------------------------------------------
335 : 12 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXEdit* _pXWindow )
336 : : {
337 [ + - ][ + - ]: 12 : return new VCLXAccessibleEdit( _pXWindow );
[ + - ]
338 : : }
339 : :
340 : : //--------------------------------------------------------------------
341 : 10 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXComboBox* _pXWindow )
342 : : {
343 : 10 : sal_Bool bIsDropDownBox = sal_False;
344 : 10 : ComboBox* pBox = static_cast< ComboBox* >( _pXWindow->GetWindow() );
345 [ + - ]: 10 : if ( pBox )
346 : 10 : bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
347 : :
348 [ + - ]: 10 : if ( bIsDropDownBox )
349 [ + - ][ + - ]: 10 : return new VCLXAccessibleDropDownComboBox( _pXWindow );
[ + - ]
350 : : else
351 [ # # ][ # # ]: 10 : return new VCLXAccessibleComboBox( _pXWindow );
[ # # ]
352 : : }
353 : :
354 : : //--------------------------------------------------------------------
355 : 323 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXWindow* _pXWindow )
356 : : {
357 : 323 : Reference< XAccessibleContext > xContext;
358 : :
359 : 323 : Window* pWindow = _pXWindow->GetWindow();
360 [ + - ]: 323 : if ( pWindow )
361 : : {
362 [ + - ]: 323 : WindowType nType = pWindow->GetType();
363 : :
364 [ + - ][ + - ]: 323 : if ( nType == WINDOW_MENUBARWINDOW || pWindow->IsMenuFloatingWindow() || pWindow->IsToolbarFloatingWindow() )
[ + - ][ + - ]
[ - + ][ - + ]
365 : : {
366 [ # # ]: 0 : Reference< XAccessible > xAcc( pWindow->GetAccessible() );
367 [ # # ]: 0 : if ( xAcc.is() )
368 : : {
369 [ # # ][ # # ]: 0 : Reference< XAccessibleContext > xCont( xAcc->getAccessibleContext() );
370 [ # # ]: 0 : if ( pWindow->GetType() == WINDOW_MENUBARWINDOW ||
[ # # # # ]
[ # # ][ # # ]
371 [ # # ][ # # ]: 0 : ( xCont.is() && xCont->getAccessibleRole() == AccessibleRole::POPUP_MENU ) )
372 : : {
373 [ # # ]: 0 : xContext = xCont;
374 : 0 : }
375 : 0 : }
376 : : }
377 [ + + ]: 323 : else if ( nType == WINDOW_STATUSBAR )
378 : : {
379 [ + - ][ + - ]: 2 : xContext = (XAccessibleContext*) new VCLXAccessibleStatusBar( _pXWindow );
[ + - ]
380 : : }
381 [ - + ]: 321 : else if ( nType == WINDOW_TABCONTROL )
382 : : {
383 [ # # ][ # # ]: 0 : xContext = (XAccessibleContext*) new VCLXAccessibleTabControl( _pXWindow );
[ # # ]
384 : : }
385 [ - + ][ # # ]: 321 : else if ( nType == WINDOW_TABPAGE && pWindow->GetAccessibleParentWindow() && pWindow->GetAccessibleParentWindow()->GetType() == WINDOW_TABCONTROL )
[ # # ][ # # ]
[ # # ][ # # ]
[ - + ]
386 : : {
387 [ # # ][ # # ]: 0 : xContext = new VCLXAccessibleTabPageWindow( _pXWindow );
[ # # ]
388 : : }
389 [ - + ]: 321 : else if ( nType == WINDOW_FLOATINGWINDOW )
390 : : {
391 [ # # ][ # # ]: 0 : xContext = new FloatingWindowAccessible( _pXWindow );
[ # # ]
392 : : }
393 [ + + ][ + - ]: 321 : else if ( nType == WINDOW_BORDERWINDOW && hasFloatingChild( pWindow ) )
[ - + ][ - + ]
394 : : {
395 : : PopupMenuFloatingWindow* pChild = dynamic_cast<PopupMenuFloatingWindow*>(
396 [ # # ][ # # ]: 0 : pWindow->GetAccessibleChildWindow(0));
397 [ # # ][ # # ]: 0 : if ( pChild && pChild->IsPopupMenu() )
[ # # ][ # # ]
398 : : {
399 : : // Get the accessible context from the child window.
400 [ # # ]: 0 : Reference<XAccessible> xAccessible = pChild->CreateAccessible();
401 [ # # ]: 0 : if (xAccessible.is())
402 [ # # ][ # # ]: 0 : xContext = xAccessible->getAccessibleContext();
[ # # ]
403 : : }
404 : : else
405 [ # # ][ # # ]: 0 : xContext = new FloatingWindowAccessible( _pXWindow );
[ # # ]
406 : : }
407 [ + - ][ - + ]: 321 : else if ( ( nType == WINDOW_HELPTEXTWINDOW ) || ( nType == WINDOW_FIXEDLINE ) )
408 : : {
409 [ # # ][ # # ]: 0 : xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleFixedText( _pXWindow );
[ # # ]
410 : : }
411 : : else
412 : : {
413 [ + - ][ + - ]: 323 : xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleComponent( _pXWindow );
[ + - ]
414 : : }
415 : : }
416 : :
417 : 323 : return xContext;
418 : : }
419 : :
420 : : //--------------------------------------------------------------------
421 : 30 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXToolBox* _pXWindow )
422 : : {
423 [ + - ][ + - ]: 30 : return new VCLXAccessibleToolBox( _pXWindow );
424 : : }
425 : :
426 : : //--------------------------------------------------------------------
427 : 0 : IAccessibleTabListBox* AccessibleFactory::createAccessibleTabListBox(
428 : : const Reference< XAccessible >& rxParent, SvHeaderTabListBox& rBox ) const
429 : : {
430 [ # # ][ # # ]: 0 : return new AccessibleTabListBox( rxParent, rBox );
431 : : }
432 : :
433 : : //--------------------------------------------------------------------
434 : 0 : IAccessibleBrowseBox* AccessibleFactory::createAccessibleBrowseBox(
435 : : const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox ) const
436 : : {
437 [ # # ][ # # ]: 0 : return new AccessibleBrowseBoxAccess( _rxParent, _rBrowseBox );
438 : : }
439 : :
440 : : //--------------------------------------------------------------------
441 : 0 : IAccessibleTableControl* AccessibleFactory::createAccessibleTableControl(
442 : : const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable ) const
443 : : {
444 [ # # ][ # # ]: 0 : return new AccessibleGridControlAccess( _rxParent, _rTable );
445 : : }
446 : :
447 : : //--------------------------------------------------------------------
448 : 0 : Reference< XAccessible > AccessibleFactory::createAccessibleIconChoiceCtrl(
449 : : SvtIconChoiceCtrl& _rIconCtrl, const Reference< XAccessible >& _xParent ) const
450 : : {
451 [ # # ][ # # ]: 0 : return new AccessibleIconChoiceCtrl( _rIconCtrl, _xParent );
452 : : }
453 : :
454 : : //--------------------------------------------------------------------
455 : 0 : Reference< XAccessible > AccessibleFactory::createAccessibleTabBar( TabBar& _rTabBar ) const
456 : : {
457 [ # # ][ # # ]: 0 : return new AccessibleTabBar( &_rTabBar );
458 : : }
459 : :
460 : : //--------------------------------------------------------------------
461 : 0 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleTextWindowContext(
462 : : VCLXWindow* pVclXWindow, TextEngine& rEngine, TextView& rView, bool bCompoundControlChild ) const
463 : : {
464 [ # # ][ # # ]: 0 : return new Document( pVclXWindow, rEngine, rView, bCompoundControlChild );
465 : : }
466 : :
467 : : //--------------------------------------------------------------------
468 : 6 : Reference< XAccessible > AccessibleFactory::createAccessibleTreeListBox(
469 : : SvTreeListBox& _rListBox, const Reference< XAccessible >& _xParent ) const
470 : : {
471 [ + - ][ + - ]: 6 : return new AccessibleListBox( _rListBox, _xParent );
472 : : }
473 : :
474 : : //--------------------------------------------------------------------
475 : 0 : Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderBar(
476 : : const Reference< XAccessible >& rxParent, IAccessibleTableProvider& _rOwningTable,
477 : : AccessibleBrowseBoxObjType _eObjType ) const
478 : : {
479 [ # # ][ # # ]: 0 : return new AccessibleBrowseBoxHeaderBar( rxParent, _rOwningTable, _eObjType );
480 : : }
481 : :
482 : : //--------------------------------------------------------------------
483 : 0 : Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxTableCell(
484 : : const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
485 : : const Reference< XWindow >& _xFocusWindow, sal_Int32 _nRowId, sal_uInt16 _nColId, sal_Int32 _nOffset ) const
486 : : {
487 : : return new AccessibleBrowseBoxTableCell( _rxParent, _rBrowseBox, _xFocusWindow,
488 [ # # ][ # # ]: 0 : _nRowId, _nColId, _nOffset );
489 : : }
490 : :
491 : : //--------------------------------------------------------------------
492 : 0 : Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderCell(
493 : : sal_Int32 _nColumnRowId, const Reference< XAccessible >& rxParent, IAccessibleTableProvider& _rBrowseBox,
494 : : const Reference< XWindow >& _xFocusWindow, AccessibleBrowseBoxObjType _eObjType ) const
495 : : {
496 : : return new AccessibleBrowseBoxHeaderCell( _nColumnRowId, rxParent, _rBrowseBox,
497 [ # # ][ # # ]: 0 : _xFocusWindow, _eObjType );
498 : : }
499 : :
500 : : //--------------------------------------------------------------------
501 : 0 : Reference< XAccessible > AccessibleFactory::createAccessibleCheckBoxCell(
502 : : const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
503 : : const Reference< XWindow >& _xFocusWindow, sal_Int32 _nRowPos, sal_uInt16 _nColPos,
504 : : const TriState& _eState, sal_Bool _bEnabled, sal_Bool _bIsTriState ) const
505 : : {
506 : : return new AccessibleCheckBoxCell( _rxParent, _rBrowseBox, _xFocusWindow,
507 [ # # ][ # # ]: 0 : _nRowPos, _nColPos, _eState, _bEnabled, _bIsTriState );
508 : : }
509 : :
510 : : //--------------------------------------------------------------------
511 : 0 : Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess(
512 : : const Reference< XAccessible >& _rxParent, const Reference< XAccessible >& _rxControlAccessible,
513 : : const Reference< XWindow >& _rxFocusWindow, IAccessibleTableProvider& _rBrowseBox,
514 : : sal_Int32 _nRowPos, sal_uInt16 _nColPos ) const
515 : : {
516 : : return new EditBrowseBoxTableCellAccess( _rxParent, _rxControlAccessible,
517 [ # # ][ # # ]: 0 : _rxFocusWindow, _rBrowseBox, _nRowPos, _nColPos );
[ # # ]
518 : : }
519 : :
520 : : //--------------------------------------------------------------------
521 : 0 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleToolPanelDeck(
522 : : const Reference< XAccessible >& i_rAccessibleParent, ::svt::ToolPanelDeck& i_rPanelDeck )
523 : : {
524 [ # # ][ # # ]: 0 : return new AccessibleToolPanelDeck( i_rAccessibleParent, i_rPanelDeck );
525 : : }
526 : :
527 : : //--------------------------------------------------------------------
528 : 0 : Reference< XAccessibleContext > AccessibleFactory::createAccessibleToolPanelTabBar(
529 : : const Reference< XAccessible >& i_rAccessibleParent, ::svt::IToolPanelDeck& i_rPanelDeck, ::svt::PanelTabBar& i_rTabBar )
530 : : {
531 [ # # ][ # # ]: 0 : return new AccessibleToolPanelTabBar( i_rAccessibleParent, i_rPanelDeck, i_rTabBar );
532 : : }
533 : :
534 : : //........................................................................
535 : : } // namespace accessibility
536 : : //........................................................................
537 : :
538 : : //========================================================================
539 : :
540 : : /** this is the entry point to retrieve a factory for the toolkit-level Accessible/Contexts supplied
541 : : by this library
542 : :
543 : : This function implements the factory function needed in toolkit
544 : : (of type GetStandardAccComponentFactory).
545 : : */
546 : : extern "C"
547 : : {
548 : 20 : SAL_DLLPUBLIC_EXPORT void* SAL_CALL getStandardAccessibleFactory()
549 : : {
550 : 20 : ::toolkit::IAccessibleFactory* pFactory = new ::accessibility::AccessibleFactory;
551 : 20 : pFactory->acquire();
552 : 20 : return pFactory;
553 : : }
554 : : }
555 : :
556 : : /** this is the entry point to retrieve a factory for the svtools-level Accessible/Contexts supplied
557 : : by this library
558 : :
559 : : This function implements the factory function needed in svtools
560 : : (of type GetSvtAccessibilityComponentFactory).
561 : : */
562 : : extern "C"
563 : : {
564 : 2 : SAL_DLLPUBLIC_EXPORT void* SAL_CALL getSvtAccessibilityComponentFactory()
565 : : {
566 [ + - ]: 2 : ::svt::IAccessibleFactory* pFactory = new ::accessibility::AccessibleFactory;
567 : 2 : pFactory->acquire();
568 : 2 : return pFactory;
569 : : }
570 : : }
571 : :
572 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|