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 : :
30 : : #ifndef ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXBASE_HXX
31 : : #define ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXBASE_HXX
32 : :
33 : : #include <svtools/AccessibleBrowseBoxObjType.hxx>
34 : : #include <rtl/ustring.hxx>
35 : : #include <tools/gen.hxx>
36 : : #include <vcl/svapp.hxx>
37 : : #include <cppuhelper/compbase5.hxx>
38 : : #include <comphelper/broadcasthelper.hxx>
39 : : #include <unotools/accessiblestatesethelper.hxx>
40 : : #include <toolkit/helper/convert.hxx>
41 : : #include <com/sun/star/lang/XServiceInfo.hpp>
42 : : #include <com/sun/star/lang/DisposedException.hpp>
43 : : #include <com/sun/star/awt/XWindow.hpp>
44 : : #include <com/sun/star/accessibility/XAccessible.hpp>
45 : : #include <com/sun/star/accessibility/XAccessibleContext.hpp>
46 : : #include <com/sun/star/accessibility/XAccessibleComponent.hpp>
47 : : #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
48 : : #include <com/sun/star/accessibility/AccessibleRole.hpp>
49 : : #include <com/sun/star/accessibility/AccessibleStateType.hpp>
50 : : #include <com/sun/star/awt/XFocusListener.hpp>
51 : : #include <comphelper/accessibleeventnotifier.hxx>
52 : : #include <comphelper/uno3.hxx>
53 : :
54 : : // ============================================================================
55 : :
56 : : class Window;
57 : :
58 : : namespace utl {
59 : : class AccessibleStateSetHelper;
60 : : }
61 : :
62 : : namespace svt {
63 : : class IAccessibleTableProvider;
64 : : }
65 : :
66 : : // ============================================================================
67 : :
68 : : namespace accessibility {
69 : :
70 : : // ============================================================================
71 : :
72 : : typedef ::cppu::WeakAggComponentImplHelper5<
73 : : ::com::sun::star::accessibility::XAccessibleContext,
74 : : ::com::sun::star::accessibility::XAccessibleComponent,
75 : : ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
76 : : ::com::sun::star::awt::XFocusListener,
77 : : ::com::sun::star::lang::XServiceInfo >
78 : : AccessibleBrowseBoxImplHelper;
79 : :
80 : : /** The BrowseBox accessible objects inherit from this base class. It
81 : : implements basic functionality for various Accessibility interfaces and
82 : : the event broadcaster and contains the ::osl::Mutex. */
83 : : class AccessibleBrowseBoxBase :
84 : : public ::comphelper::OBaseMutex,
85 : : public AccessibleBrowseBoxImplHelper
86 : : {
87 : : public:
88 : : /** Constructor sets specified name and description. If the constant of a
89 : : text is BBTEXT_NONE, the derived class has to set the text via
90 : : implSetName() and implSetDescription() (in Ctor) or later via
91 : : setAccessibleName() and setAccessibleDescription() (these methods
92 : : notify the listeners about the change).
93 : : @param rxParent XAccessible interface of the parent object.
94 : : @param rBrowseBox The BrowseBox control.
95 : : @param eNameText The constant for the name text.
96 : : @param eDescrText The constant for the description text. */
97 : : AccessibleBrowseBoxBase(
98 : : const ::com::sun::star::uno::Reference<
99 : : ::com::sun::star::accessibility::XAccessible >& rxParent,
100 : : ::svt::IAccessibleTableProvider& rBrowseBox,
101 : : const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
102 : : ::svt::AccessibleBrowseBoxObjType eObjType );
103 : :
104 : : /** Constructor sets specified name and description.
105 : : @param rxParent XAccessible interface of the parent object.
106 : : @param rBrowseBox The BrowseBox control.
107 : : @param rName The name of this object.
108 : : @param rDescription The description text of this object. */
109 : : AccessibleBrowseBoxBase(
110 : : const ::com::sun::star::uno::Reference<
111 : : ::com::sun::star::accessibility::XAccessible >& rxParent,
112 : : ::svt::IAccessibleTableProvider& rBrowseBox,
113 : : const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
114 : : ::svt::AccessibleBrowseBoxObjType eObjType,
115 : : const ::rtl::OUString& rName,
116 : : const ::rtl::OUString& rDescription );
117 : :
118 : : protected:
119 : : virtual ~AccessibleBrowseBoxBase();
120 : :
121 : : /** Commits DeFunc event to listeners and cleans up members. */
122 : : virtual void SAL_CALL disposing();
123 : :
124 : : public:
125 : : // XAccessibleContext -----------------------------------------------------
126 : :
127 : : /** @return A reference to the parent accessible object. */
128 : : virtual ::com::sun::star::uno::Reference<
129 : : ::com::sun::star::accessibility::XAccessible > SAL_CALL
130 : : getAccessibleParent()
131 : : throw ( ::com::sun::star::uno::RuntimeException );
132 : :
133 : : /** @return The index of this object among the parent's children. */
134 : : virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
135 : : throw ( ::com::sun::star::uno::RuntimeException );
136 : :
137 : : /** @return
138 : : The description of this object.
139 : : */
140 : : virtual ::rtl::OUString SAL_CALL getAccessibleDescription()
141 : : throw ( ::com::sun::star::uno::RuntimeException );
142 : :
143 : : /** @return
144 : : The name of this object.
145 : : */
146 : : virtual ::rtl::OUString SAL_CALL getAccessibleName()
147 : : throw ( ::com::sun::star::uno::RuntimeException );
148 : :
149 : : /** @return
150 : : The relation set (the BrowseBox does not have one).
151 : : */
152 : : virtual ::com::sun::star::uno::Reference<
153 : : ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL
154 : : getAccessibleRelationSet()
155 : : throw ( ::com::sun::star::uno::RuntimeException );
156 : :
157 : : /** @return The set of current states. */
158 : : virtual ::com::sun::star::uno::Reference<
159 : : ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL
160 : : getAccessibleStateSet()
161 : : throw ( ::com::sun::star::uno::RuntimeException );
162 : :
163 : : /** @return The parent's locale. */
164 : : virtual ::com::sun::star::lang::Locale SAL_CALL getLocale()
165 : : throw ( ::com::sun::star::accessibility::IllegalAccessibleComponentStateException,
166 : : ::com::sun::star::uno::RuntimeException );
167 : :
168 : : /** @return
169 : : The role of this object. Panel, ROWHEADER, COLUMNHEADER, TABLE, TABLE_CELL are supported.
170 : : */
171 : : virtual sal_Int16 SAL_CALL getAccessibleRole()
172 : : throw ( ::com::sun::star::uno::RuntimeException );
173 : :
174 : : /* Derived classes have to implement:
175 : : - getAccessibleChildCount,
176 : : - getAccessibleChild,
177 : : - getAccessibleRole.
178 : : Derived classes may overwrite getAccessibleIndexInParent to increase
179 : : performance. */
180 : :
181 : : // XAccessibleComponent ---------------------------------------------------
182 : :
183 : : /** @return
184 : : <TRUE/>, if the point lies within the bounding box of this object. */
185 : : virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& rPoint )
186 : : throw ( ::com::sun::star::uno::RuntimeException );
187 : :
188 : : /** @return The bounding box of this object. */
189 : : virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds()
190 : : throw ( ::com::sun::star::uno::RuntimeException );
191 : :
192 : : /** @return
193 : : The upper left corner of the bounding box relative to the parent. */
194 : : virtual ::com::sun::star::awt::Point SAL_CALL getLocation()
195 : : throw ( ::com::sun::star::uno::RuntimeException );
196 : :
197 : : /** @return
198 : : The upper left corner of the bounding box in screen coordinates. */
199 : : virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen()
200 : : throw ( ::com::sun::star::uno::RuntimeException );
201 : :
202 : : /** @return The size of the bounding box. */
203 : : virtual ::com::sun::star::awt::Size SAL_CALL getSize()
204 : : throw ( ::com::sun::star::uno::RuntimeException );
205 : :
206 : : /** @return <TRUE/>, if the object is showing. */
207 : : virtual sal_Bool SAL_CALL isShowing()
208 : : throw ( ::com::sun::star::uno::RuntimeException );
209 : :
210 : : /** @return <TRUE/>, if the object is visible. */
211 : : virtual sal_Bool SAL_CALL isVisible()
212 : : throw ( ::com::sun::star::uno::RuntimeException );
213 : :
214 : : /** @return <TRUE/>, if the object can accept the focus. */
215 : : virtual sal_Bool SAL_CALL isFocusTraversable()
216 : : throw ( ::com::sun::star::uno::RuntimeException );
217 : :
218 : : virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
219 : : virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
220 : :
221 : : // XFocusListener
222 : : virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
223 : : virtual void SAL_CALL focusGained( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException);
224 : : virtual void SAL_CALL focusLost( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException);
225 : :
226 : : /* Derived classes have to implement:
227 : : - getAccessibleAt,
228 : : - grabFocus,
229 : : - getAccessibleKeyBinding. */
230 : :
231 : : /** @return
232 : : No key bindings supported by default.
233 : : */
234 : : virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
235 : : throw ( ::com::sun::star::uno::RuntimeException );
236 : : /** @return
237 : : The accessible child rendered under the given point.
238 : : */
239 : : virtual ::com::sun::star::uno::Reference<
240 : : ::com::sun::star::accessibility::XAccessible > SAL_CALL
241 : : getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
242 : : throw ( ::com::sun::star::uno::RuntimeException );
243 : :
244 : : // XAccessibleEventBroadcaster --------------------------------------------
245 : :
246 : : /** Adds a new event listener */
247 : : using cppu::WeakAggComponentImplHelperBase::addEventListener;
248 : : virtual void SAL_CALL addEventListener(
249 : : const ::com::sun::star::uno::Reference<
250 : : ::com::sun::star::accessibility::XAccessibleEventListener>& rxListener )
251 : : throw ( ::com::sun::star::uno::RuntimeException );
252 : :
253 : : /** Removes an event listener. */
254 : : using cppu::WeakAggComponentImplHelperBase::removeEventListener;
255 : : virtual void SAL_CALL removeEventListener(
256 : : const ::com::sun::star::uno::Reference<
257 : : ::com::sun::star::accessibility::XAccessibleEventListener>& rxListener )
258 : : throw ( ::com::sun::star::uno::RuntimeException );
259 : :
260 : : // XTypeProvider ----------------------------------------------------------
261 : :
262 : : /** @return An unique implementation ID. */
263 : : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
264 : : throw ( ::com::sun::star::uno::RuntimeException );
265 : :
266 : : // XServiceInfo -----------------------------------------------------------
267 : :
268 : : /** @return Whether the specified service is supported by this class. */
269 : : virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName )
270 : : throw ( ::com::sun::star::uno::RuntimeException );
271 : :
272 : : /** @return A list of all supported services. */
273 : : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
274 : : getSupportedServiceNames()
275 : : throw ( ::com::sun::star::uno::RuntimeException );
276 : :
277 : : /* Derived classes have to implement:
278 : : - getImplementationName. */
279 : :
280 : : // helper methods ---------------------------------------------------------
281 : :
282 : : /** @return The BrowseBox object type. */
283 : : inline ::svt::AccessibleBrowseBoxObjType getType() const;
284 : :
285 : : /** Changes the name of the object and notifies listeners. */
286 : : void setAccessibleName( const ::rtl::OUString& rName );
287 : : /** Changes the description of the object and notifies listeners. */
288 : : void setAccessibleDescription( const ::rtl::OUString& rDescription );
289 : :
290 : : /** Commits an event to all listeners. */
291 : : void commitEvent(
292 : : sal_Int16 nEventId,
293 : : const ::com::sun::star::uno::Any& rNewValue,
294 : :
295 : : const ::com::sun::star::uno::Any& rOldValue );
296 : : /** @return <TRUE/>, if the object is not disposed or disposing. */
297 : : sal_Bool isAlive() const;
298 : :
299 : : protected:
300 : : // internal virtual methods -----------------------------------------------
301 : :
302 : : /** Determines whether the BrowseBox control is really showing inside of
303 : : its parent accessible window. Derived classes may implement different
304 : : behaviour.
305 : : @attention This method requires locked mutex's and a living object.
306 : : @return <TRUE/>, if the object is really showing. */
307 : : virtual sal_Bool implIsShowing();
308 : :
309 : : /** Derived classes return the bounding box relative to the parent window.
310 : : @attention This method requires locked mutex's and a living object.
311 : : @return The bounding box (VCL rect.) relative to the parent window. */
312 : : virtual Rectangle implGetBoundingBox() = 0;
313 : : /** Derived classes return the bounding box in screen coordinates.
314 : : @attention This method requires locked mutex's and a living object.
315 : : @return The bounding box (VCL rect.) in screen coordinates. */
316 : : virtual Rectangle implGetBoundingBoxOnScreen() = 0;
317 : :
318 : : /** Creates a new AccessibleStateSetHelper and fills it with states of the
319 : : current object. This method calls FillStateSet at the BrowseBox which
320 : : fills it with more states depending on the object type. Derived classes
321 : : may overwrite this method and add more states.
322 : : @attention This method requires locked mutex's.
323 : : @return A filled AccessibleStateSetHelper. */
324 : : virtual ::utl::AccessibleStateSetHelper* implCreateStateSetHelper();
325 : :
326 : : // internal helper methods ------------------------------------------------
327 : :
328 : : /** @throws <type>DisposedException</type> If the object is not alive. */
329 : : void ensureIsAlive() const
330 : : throw ( ::com::sun::star::lang::DisposedException );
331 : :
332 : : /** @return The ::osl::Mutex member provided by the class OBaseMutex. */
333 : : inline ::osl::Mutex& getOslMutex();
334 : : /** @return Pointer to the global ::osl::Mutex. */
335 : : static inline ::osl::Mutex* getOslGlobalMutex();
336 : :
337 : : /** Changes the name of the object (flat assignment, no notify).
338 : : @attention This method requires a locked mutex. */
339 : : inline void implSetName( const ::rtl::OUString& rName );
340 : : /** Changes the description of the object (flat assignment, no notify).
341 : : @attention This method requires a locked mutex. */
342 : : inline void implSetDescription( const ::rtl::OUString& rDescription );
343 : :
344 : : /** Locks all mutex's and calculates the bounding box relative to the
345 : : parent window.
346 : : @return The bounding box (VCL rect.) relative to the parent object. */
347 : : Rectangle getBoundingBox()
348 : : throw ( ::com::sun::star::lang::DisposedException );
349 : : /** Locks all mutex's and calculates the bounding box in screen
350 : : coordinates.
351 : : @return The bounding box (VCL rect.) in screen coordinates. */
352 : : Rectangle getBoundingBoxOnScreen()
353 : : throw ( ::com::sun::star::lang::DisposedException );
354 : :
355 : 0 : ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; }
356 : 0 : void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; }
357 : :
358 : : public:
359 : : // public versions of internal helper methods, with access control
360 : 0 : struct AccessControl { friend class SolarMethodGuard; private: AccessControl() { } };
361 : :
362 : 0 : inline ::osl::Mutex& getMutex( const AccessControl& ) { return getOslMutex(); }
363 : 0 : inline void ensureIsAlive( const AccessControl& ) { ensureIsAlive(); }
364 : :
365 : : protected:
366 : : // members ----------------------------------------------------------------
367 : :
368 : : /** The parent accessible object. */
369 : : ::com::sun::star::uno::Reference<
370 : : ::com::sun::star::accessibility::XAccessible > mxParent;
371 : : /** The VCL BrowseBox control. */
372 : : ::svt::IAccessibleTableProvider* mpBrowseBox;
373 : :
374 : : /** This is the window which get all the nice focus events
375 : : */
376 : : ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xFocusWindow;
377 : :
378 : : private:
379 : : /** Localized name. */
380 : : ::rtl::OUString maName;
381 : : /** Localized description text. */
382 : : ::rtl::OUString maDescription;
383 : :
384 : : /** The type of this object (for names, descriptions, state sets, ...). */
385 : : ::svt::AccessibleBrowseBoxObjType meObjType;
386 : :
387 : : ::comphelper::AccessibleEventNotifier::TClientId m_aClientId;
388 : : };
389 : :
390 : : // ============================================================================
391 : : // a version of AccessibleBrowseBoxBase which implements not only the XAccessibleContext,
392 : : // but also the XAccessible
393 : :
394 : : typedef ::cppu::ImplHelper1 < ::com::sun::star::accessibility::XAccessible
395 : : > BrowseBoxAccessibleElement_Base;
396 : :
397 : : class BrowseBoxAccessibleElement
398 : : :public AccessibleBrowseBoxBase
399 : : ,public BrowseBoxAccessibleElement_Base
400 : : {
401 : : protected:
402 : : /** Constructor sets specified name and description. If the constant of a
403 : : text is BBTEXT_NONE, the derived class has to set the text via
404 : : implSetName() and implSetDescription() (in Ctor) or later via
405 : : setAccessibleName() and setAccessibleDescription() (these methods
406 : : notify the listeners about the change).
407 : :
408 : : @param rxParent XAccessible interface of the parent object.
409 : : @param rBrowseBox The BrowseBox control.
410 : : @param eNameText The constant for the name text.
411 : : @param eDescrText The constant for the description text.
412 : : */
413 : : BrowseBoxAccessibleElement(
414 : : const ::com::sun::star::uno::Reference<
415 : : ::com::sun::star::accessibility::XAccessible >& rxParent,
416 : : ::svt::IAccessibleTableProvider& rBrowseBox,
417 : : const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
418 : : ::svt::AccessibleBrowseBoxObjType eObjType );
419 : :
420 : : /** Constructor sets specified name and description.
421 : :
422 : : @param rxParent XAccessible interface of the parent object.
423 : : @param rBrowseBox The BrowseBox control.
424 : : @param rName The name of this object.
425 : : @param rDescription The description text of this object.
426 : : */
427 : : BrowseBoxAccessibleElement(
428 : : const ::com::sun::star::uno::Reference<
429 : : ::com::sun::star::accessibility::XAccessible >& rxParent,
430 : : ::svt::IAccessibleTableProvider& rBrowseBox,
431 : : const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
432 : : ::svt::AccessibleBrowseBoxObjType eObjType,
433 : : const ::rtl::OUString& rName,
434 : : const ::rtl::OUString& rDescription );
435 : :
436 : : public:
437 : : // XInterface
438 : : DECLARE_XINTERFACE( )
439 : : // XTypeProvider
440 : : DECLARE_XTYPEPROVIDER( )
441 : :
442 : : protected:
443 : : virtual ~BrowseBoxAccessibleElement();
444 : :
445 : : protected:
446 : : // XAccessible ------------------------------------------------------------
447 : :
448 : : /** @return The XAccessibleContext interface of this object. */
449 : : virtual ::com::sun::star::uno::Reference<
450 : : ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
451 : : getAccessibleContext()
452 : : throw ( ::com::sun::star::uno::RuntimeException );
453 : :
454 : : private:
455 : : BrowseBoxAccessibleElement(); // never implemented
456 : : BrowseBoxAccessibleElement( const BrowseBoxAccessibleElement& ); // never implemented
457 : : BrowseBoxAccessibleElement& operator=( const BrowseBoxAccessibleElement& ); // never implemented
458 : : };
459 : :
460 : : // ============================================================================
461 : : // a helper class for protecting methods which need to lock the solar mutex in addition to the own mutex
462 : :
463 : : typedef ::osl::MutexGuard OslMutexGuard;
464 : :
465 [ # # ]: 0 : class SolarMethodGuard : public SolarMutexGuard, public OslMutexGuard
466 : : {
467 : : public:
468 : 0 : inline SolarMethodGuard( AccessibleBrowseBoxBase& _rOwner, bool _bEnsureAlive = true )
469 : : :SolarMutexGuard( )
470 [ # # ][ # # ]: 0 : ,OslMutexGuard( _rOwner.getMutex( AccessibleBrowseBoxBase::AccessControl() ) )
471 : : {
472 [ # # ]: 0 : if ( _bEnsureAlive )
473 [ # # ]: 0 : _rOwner.ensureIsAlive( AccessibleBrowseBoxBase::AccessControl() );
474 : 0 : }
475 : : };
476 : :
477 : : // inlines --------------------------------------------------------------------
478 : :
479 : 0 : inline ::svt::AccessibleBrowseBoxObjType AccessibleBrowseBoxBase::getType() const
480 : : {
481 : 0 : return meObjType;
482 : : }
483 : :
484 : 0 : inline ::osl::Mutex& AccessibleBrowseBoxBase::getOslMutex()
485 : : {
486 : 0 : return m_aMutex;
487 : : }
488 : :
489 : : inline ::osl::Mutex* AccessibleBrowseBoxBase::getOslGlobalMutex()
490 : : {
491 : : return ::osl::Mutex::getGlobalMutex();
492 : : }
493 : :
494 : 0 : inline void AccessibleBrowseBoxBase::implSetName(
495 : : const ::rtl::OUString& rName )
496 : : {
497 : 0 : maName = rName;
498 : 0 : }
499 : :
500 : : inline void AccessibleBrowseBoxBase::implSetDescription(
501 : : const ::rtl::OUString& rDescription )
502 : : {
503 : : maDescription = rDescription;
504 : : }
505 : :
506 : : // ============================================================================
507 : :
508 : : } // namespace accessibility
509 : :
510 : : // ============================================================================
511 : :
512 : : #endif
513 : :
514 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|