xref: /trunk/main/svx/source/inc/svxrectctaccessiblecontext.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 
29 #ifndef _SVXRECTACCESSIBLECONTEXT_HXX
30 #define _SVXRECTACCESSIBLECONTEXT_HXX
31 
32 #include <com/sun/star/accessibility/XAccessible.hpp>
33 #include <com/sun/star/accessibility/XAccessibleComponent.hpp>
34 #include <com/sun/star/accessibility/XAccessibleContext.hpp>
35 #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
36 #include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp>
37 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
38 #include <com/sun/star/accessibility/XAccessibleValue.hpp>
39 #include <com/sun/star/beans/XPropertyChangeListener.hpp>
40 #include <com/sun/star/uno/Reference.hxx>
41 #include <cppuhelper/weak.hxx>
42 #include <com/sun/star/lang/XServiceInfo.hpp>
43 #include <com/sun/star/lang/XTypeProvider.hpp>
44 #include <com/sun/star/lang/XServiceName.hpp>
45 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
46 #include <com/sun/star/lang/DisposedException.hpp>
47 #include <vos/mutex.hxx>
48 #include <cppuhelper/interfacecontainer.h>
49 #include <cppuhelper/compbase6.hxx>
50 //#ifndef _CPPUHELPER_COMPBASE7_HXX_
51 //#include <cppuhelper/compbase7.hxx>
52 //#endif
53 #include <comphelper/broadcasthelper.hxx>
54 #include <cppuhelper/implbase6.hxx>
55 #include <comphelper/servicehelper.hxx>
56 #include <svx/rectenum.hxx>
57 
58 namespace com { namespace sun { namespace star { namespace awt {
59     struct Point;
60     struct Rectangle;
61     struct Size;
62     class XFocusListener;
63 } } } }
64 
65 class Rectangle;
66 class SvxRectCtl;
67 class SvxRectCtlChildAccessibleContext;
68 class Window;
69 
70 
71 typedef ::cppu::WeakAggComponentImplHelper6<
72             ::com::sun::star::accessibility::XAccessible,
73             ::com::sun::star::accessibility::XAccessibleComponent,
74             ::com::sun::star::accessibility::XAccessibleContext,
75             ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
76             ::com::sun::star::accessibility::XAccessibleSelection,
77             ::com::sun::star::lang::XServiceInfo >
78             SvxRectCtlAccessibleContext_Base;
79 
80 class SvxRectCtlAccessibleContext : public ::comphelper::OBaseMutex, public SvxRectCtlAccessibleContext_Base
81 {
82 public:
83     //=====  internal  ========================================================
84     SvxRectCtlAccessibleContext(
85         const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>& rxParent,
86         SvxRectCtl&             rRepresentation,
87         const ::rtl::OUString*  pName = NULL,
88         const ::rtl::OUString*  pDescription = NULL );
89 protected:
90     virtual ~SvxRectCtlAccessibleContext();
91 public:
92     //=====  XAccessible  =====================================================
93 
94     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL
95         getAccessibleContext( void ) throw( ::com::sun::star::uno::RuntimeException );
96 
97     //=====  XAccessibleComponent  ============================================
98 
99     virtual sal_Bool SAL_CALL
100         containsPoint( const ::com::sun::star::awt::Point& rPoint ) throw( ::com::sun::star::uno::RuntimeException );
101 
102     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
103         getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint ) throw( ::com::sun::star::uno::RuntimeException );
104 
105     virtual ::com::sun::star::awt::Rectangle SAL_CALL
106         getBounds() throw( ::com::sun::star::uno::RuntimeException );
107 
108     virtual ::com::sun::star::awt::Point SAL_CALL
109         getLocation() throw( ::com::sun::star::uno::RuntimeException );
110 
111     virtual ::com::sun::star::awt::Point SAL_CALL
112         getLocationOnScreen() throw( ::com::sun::star::uno::RuntimeException );
113 
114     virtual ::com::sun::star::awt::Size SAL_CALL
115         getSize() throw( ::com::sun::star::uno::RuntimeException );
116 
117     virtual sal_Bool SAL_CALL
118         isShowing() throw( ::com::sun::star::uno::RuntimeException );
119 
120     virtual sal_Bool SAL_CALL
121         isVisible() throw( ::com::sun::star::uno::RuntimeException );
122 
123     virtual sal_Bool SAL_CALL
124         isFocusTraversable() throw( ::com::sun::star::uno::RuntimeException );
125 
126     virtual void SAL_CALL
127         addFocusListener(
128             const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener )
129             throw( ::com::sun::star::uno::RuntimeException );
130 
131     virtual void SAL_CALL
132         removeFocusListener(
133             const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener )
134             throw( ::com::sun::star::uno::RuntimeException );
135 
136     virtual void SAL_CALL
137         grabFocus() throw( ::com::sun::star::uno::RuntimeException );
138 
139     virtual ::com::sun::star::uno::Any SAL_CALL
140         getAccessibleKeyBinding() throw( ::com::sun::star::uno::RuntimeException );
141     virtual sal_Int32 SAL_CALL
142         getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
143     virtual sal_Int32 SAL_CALL
144         getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
145 
146     //=====  XAccessibleContext  ==============================================
147 
148     virtual sal_Int32 SAL_CALL
149         getAccessibleChildCount( void ) throw( ::com::sun::star::uno::RuntimeException );
150 
151     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
152         getAccessibleChild( sal_Int32 nIndex )
153             throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IndexOutOfBoundsException );
154 
155     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
156         getAccessibleParent( void ) throw( ::com::sun::star::uno::RuntimeException );
157 
158     virtual sal_Int32 SAL_CALL
159         getAccessibleIndexInParent( void ) throw( ::com::sun::star::uno::RuntimeException );
160 
161     virtual sal_Int16 SAL_CALL
162         getAccessibleRole( void ) throw( ::com::sun::star::uno::RuntimeException );
163 
164     virtual ::rtl::OUString SAL_CALL
165         getAccessibleDescription( void ) throw (::com::sun::star::uno::RuntimeException);
166 
167     virtual ::rtl::OUString SAL_CALL
168         getAccessibleName( void ) throw (::com::sun::star::uno::RuntimeException);
169 
170     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL
171         getAccessibleRelationSet( void ) throw( ::com::sun::star::uno::RuntimeException );
172 
173     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL
174         getAccessibleStateSet( void ) throw( ::com::sun::star::uno::RuntimeException );
175 
176     virtual ::com::sun::star::lang::Locale SAL_CALL
177         getLocale( void )
178             throw(  ::com::sun::star::uno::RuntimeException,
179                     ::com::sun::star::accessibility::IllegalAccessibleComponentStateException );
180 
181     //=====  XComponent  =====================================================
182 
183     using ::cppu::WeakAggComponentImplHelperBase::addEventListener;
184     using ::cppu::WeakAggComponentImplHelperBase::removeEventListener;
185 
186     //=====  XAccessibleEventBroadcaster  =====================================
187 
188     virtual void SAL_CALL
189         addEventListener(
190             const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener )
191             throw( com::sun::star::uno::RuntimeException );
192 
193     virtual void SAL_CALL
194         removeEventListener(
195             const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener )
196             throw( com::sun::star::uno::RuntimeException );
197 
198     //=====  XServiceInfo  ====================================================
199 
200     virtual ::rtl::OUString SAL_CALL
201         getImplementationName( void ) throw( ::com::sun::star::uno::RuntimeException );
202 
203     virtual sal_Bool SAL_CALL
204         supportsService( const ::rtl::OUString& sServiceName ) throw( ::com::sun::star::uno::RuntimeException );
205 
206     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
207         getSupportedServiceNames( void ) throw( ::com::sun::star::uno::RuntimeException );
208 
209     //=====  XTypeProvider  ===================================================
210 
211     virtual ::com::sun::star::uno::Sequence<sal_Int8> SAL_CALL
212         getImplementationId( void ) throw( ::com::sun::star::uno::RuntimeException );
213 
214     //=====  XAccessibleSelection =============================================
215 
216     virtual void SAL_CALL
217         selectAccessibleChild( sal_Int32 nChildIndex )
218             throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException );
219 
220     virtual sal_Bool SAL_CALL
221         isAccessibleChildSelected( sal_Int32 nChildIndex )
222             throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException );
223 
224     virtual void SAL_CALL
225         clearAccessibleSelection() throw( ::com::sun::star::uno::RuntimeException );
226 
227     virtual void SAL_CALL
228         selectAllAccessibleChildren() throw( ::com::sun::star::uno::RuntimeException );
229 
230     virtual sal_Int32 SAL_CALL
231         getSelectedAccessibleChildCount() throw( ::com::sun::star::uno::RuntimeException );
232 
233     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
234         getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
235             throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException );
236 
237     virtual void SAL_CALL
238         deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
239             throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException );
240 
241 
242 protected:
243     //=====  internals ========================================================
244 
245     void checkChildIndex( long nIndexOfChild ) throw( ::com::sun::star::lang::IndexOutOfBoundsException );
246 
247     void checkChildIndexOnSelection( long nIndexOfChild ) throw( ::com::sun::star::lang::IndexOutOfBoundsException );
248 
249     /** Selects a new child by index.
250 
251         <p>If the child was not selected before, the state of the child will
252         be updated. If the index is invalid, the index will internaly set to NOCHILDSELECTED</p>
253 
254         @param nIndexOfChild
255             Index of the new child which should be selected.
256     */
257     void selectChild( long nIndexOfChild );
258 
259 public:
260     /** Selects a new child by point.
261 
262         <p>If the child was not selected before, the state of the child will
263         be updated. If the point is not invalid, the index will internaly set to NOCHILDSELECTED</p>
264 
265         @param eButton
266             Button which belongs to the child which should be selected.
267     */
268     void selectChild( RECT_POINT ePoint );
269 
270     /// Sets the name
271     void setName( const ::rtl::OUString& rName );
272 
273     /// Sets the description
274     void setDescription( const ::rtl::OUString& rDescr );
275 private:
276     static ::com::sun::star::uno::Sequence< sal_Int8 > getUniqueId( void );
277 protected:
278 
279     /// @Return the object's current bounding box relative to the desktop.
280     virtual Rectangle GetBoundingBoxOnScreen( void ) throw( ::com::sun::star::uno::RuntimeException );
281 
282     /// @Return the object's current bounding box relative to the parent object.
283     virtual Rectangle GetBoundingBox( void ) throw( ::com::sun::star::uno::RuntimeException );
284 
285     /// Calls all Listener to tell they the change.
286     void CommitChange( const com::sun::star::accessibility::AccessibleEventObject& rEvent );
287 
288     virtual void SAL_CALL disposing();
289 
290     /// @returns true if it's disposed or in disposing
291     inline sal_Bool IsAlive( void ) const;
292 
293     /// @returns true if it's not disposed and no in disposing
294     inline sal_Bool IsNotAlive( void ) const;
295 
296     /// throws the exception DisposedException if it's not alive
297     void ThrowExceptionIfNotAlive( void ) throw( ::com::sun::star::lang::DisposedException );
298 
299 private:
300     /** Description of this object.  This is not a constant because it can
301         be set from the outside.
302     */
303     ::rtl::OUString                     msDescription;
304 
305     /** Name of this object.
306     */
307     ::rtl::OUString                     msName;
308 
309     /// Reference to the parent object.
310     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
311                                         mxParent;
312 
313     /// pointer to internal representation
314     SvxRectCtl*                         mpRepr;
315 
316     /// array for all possible childs
317     SvxRectCtlChildAccessibleContext**  mpChilds;
318 
319     /// client id in the AccessibleEventNotifier queue
320     sal_uInt32 mnClientId;
321 
322     /// actual selected child
323     long                                mnSelectedChild;
324 
325     /// mode of control (true -> 8 points, false -> 9 points)
326     sal_Bool                            mbAngleMode;
327 };
328 
329 inline sal_Bool SvxRectCtlAccessibleContext::IsAlive( void ) const
330 {
331     return !rBHelper.bDisposed && !rBHelper.bInDispose;
332 }
333 
334 inline sal_Bool SvxRectCtlAccessibleContext::IsNotAlive( void ) const
335 {
336     return rBHelper.bDisposed || rBHelper.bInDispose;
337 }
338 
339 
340 typedef ::cppu::WeakAggComponentImplHelper6<
341             ::com::sun::star::accessibility::XAccessible,
342             ::com::sun::star::accessibility::XAccessibleComponent,
343             ::com::sun::star::accessibility::XAccessibleContext,
344             ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
345             ::com::sun::star::accessibility::XAccessibleValue,
346             ::com::sun::star::lang::XServiceInfo >
347             SvxRectCtlChildAccessibleContext_Base;
348 
349 
350 class SvxRectCtlChildAccessibleContext : public SvxRectCtlChildAccessibleContext_Base
351 {
352 public:
353     SvxRectCtlChildAccessibleContext(
354         const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>& rxParent,
355         const Window& rParentWindow,
356         const ::rtl::OUString& rName, const ::rtl::OUString& rDescription,
357         const Rectangle& rBoundingBox,
358         long nIndexInParent );
359 protected:
360     virtual ~SvxRectCtlChildAccessibleContext();
361 public:
362     //=====  XAccessible  =====================================================
363 
364     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL
365         getAccessibleContext( void ) throw( ::com::sun::star::uno::RuntimeException );
366 
367     //=====  XAccessibleComponent  ============================================
368 
369     virtual sal_Bool SAL_CALL
370         containsPoint( const ::com::sun::star::awt::Point& rPoint ) throw( ::com::sun::star::uno::RuntimeException );
371 
372     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
373         getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint ) throw( ::com::sun::star::uno::RuntimeException );
374 
375     virtual ::com::sun::star::awt::Rectangle SAL_CALL
376         getBounds() throw( ::com::sun::star::uno::RuntimeException );
377 
378     virtual ::com::sun::star::awt::Point SAL_CALL
379         getLocation() throw( ::com::sun::star::uno::RuntimeException );
380 
381     virtual ::com::sun::star::awt::Point SAL_CALL
382         getLocationOnScreen() throw( ::com::sun::star::uno::RuntimeException );
383 
384     virtual ::com::sun::star::awt::Size SAL_CALL
385         getSize() throw( ::com::sun::star::uno::RuntimeException );
386 
387     virtual sal_Bool SAL_CALL
388         isShowing() throw( ::com::sun::star::uno::RuntimeException );
389 
390     virtual sal_Bool SAL_CALL
391         isVisible() throw( ::com::sun::star::uno::RuntimeException );
392 
393     virtual sal_Bool SAL_CALL
394         isFocusTraversable() throw( ::com::sun::star::uno::RuntimeException );
395 
396     virtual void SAL_CALL
397         addFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener )
398             throw( ::com::sun::star::uno::RuntimeException );
399 
400     virtual void SAL_CALL
401         removeFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener )
402             throw (::com::sun::star::uno::RuntimeException);
403 
404     virtual void SAL_CALL
405         grabFocus() throw( ::com::sun::star::uno::RuntimeException );
406 
407     virtual ::com::sun::star::uno::Any SAL_CALL
408         getAccessibleKeyBinding() throw( ::com::sun::star::uno::RuntimeException );
409     virtual sal_Int32 SAL_CALL
410         getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
411     virtual sal_Int32 SAL_CALL
412         getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
413 
414     //=====  XAccessibleContext  ==============================================
415 
416     virtual sal_Int32 SAL_CALL
417         getAccessibleChildCount( void ) throw( ::com::sun::star::uno::RuntimeException );
418 
419     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
420         getAccessibleChild( sal_Int32 nIndex )
421             throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IndexOutOfBoundsException );
422 
423     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
424         getAccessibleParent( void ) throw( ::com::sun::star::uno::RuntimeException );
425 
426     virtual sal_Int32 SAL_CALL
427         getAccessibleIndexInParent( void ) throw( ::com::sun::star::uno::RuntimeException );
428 
429     virtual sal_Int16 SAL_CALL
430         getAccessibleRole( void ) throw( ::com::sun::star::uno::RuntimeException );
431 
432     virtual ::rtl::OUString SAL_CALL
433         getAccessibleDescription( void ) throw( ::com::sun::star::uno::RuntimeException );
434 
435     virtual ::rtl::OUString SAL_CALL
436         getAccessibleName( void ) throw( ::com::sun::star::uno::RuntimeException );
437 
438     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL
439         getAccessibleRelationSet( void ) throw( ::com::sun::star::uno::RuntimeException );
440 
441     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL
442         getAccessibleStateSet( void ) throw( ::com::sun::star::uno::RuntimeException );
443 
444     virtual ::com::sun::star::lang::Locale SAL_CALL
445         getLocale( void )
446             throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::accessibility::IllegalAccessibleComponentStateException );
447 
448     //=====  XComponent  =====================================================
449 
450     using ::cppu::WeakAggComponentImplHelperBase::addEventListener;
451     using ::cppu::WeakAggComponentImplHelperBase::removeEventListener;
452 
453     //=====  XAccessibleEventBroadcaster  =====================================
454 
455     virtual void SAL_CALL
456         addEventListener(
457             const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener )
458             throw( ::com::sun::star::uno::RuntimeException );
459 
460     virtual void SAL_CALL
461         removeEventListener(
462             const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener )
463             throw( com::sun::star::uno::RuntimeException );
464 
465     //=====  XAccessibleValue  ================================================
466 
467     virtual ::com::sun::star::uno::Any SAL_CALL
468         getCurrentValue() throw( ::com::sun::star::uno::RuntimeException );
469 
470     virtual sal_Bool SAL_CALL
471         setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw( ::com::sun::star::uno::RuntimeException );
472 
473     virtual ::com::sun::star::uno::Any SAL_CALL
474         getMaximumValue() throw( ::com::sun::star::uno::RuntimeException );
475 
476     virtual ::com::sun::star::uno::Any SAL_CALL
477         getMinimumValue() throw( ::com::sun::star::uno::RuntimeException );
478 
479     //=====  XServiceInfo  ====================================================
480 
481     virtual ::rtl::OUString SAL_CALL
482         getImplementationName( void ) throw( ::com::sun::star::uno::RuntimeException );
483 
484     virtual sal_Bool SAL_CALL
485         supportsService( const ::rtl::OUString& sServiceName ) throw( ::com::sun::star::uno::RuntimeException );
486 
487     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
488         getSupportedServiceNames( void ) throw( ::com::sun::star::uno::RuntimeException );
489 
490 
491     //=====  XTypeProvider  ===================================================
492 
493     virtual ::com::sun::star::uno::Sequence<sal_Int8> SAL_CALL
494         getImplementationId( void ) throw( ::com::sun::star::uno::RuntimeException );
495 
496     //===== internal ==========================================================
497 
498     /// Sets the checked status
499     void setStateChecked( sal_Bool bChecked );
500 
501 protected:
502     virtual Rectangle GetBoundingBoxOnScreen( void ) throw( ::com::sun::star::uno::RuntimeException );
503 
504     virtual Rectangle GetBoundingBox( void ) throw( ::com::sun::star::uno::RuntimeException );
505 
506     void CommitChange( const com::sun::star::accessibility::AccessibleEventObject& rEvent );
507 
508     virtual void SAL_CALL disposing();
509 
510     /// @returns true if it's disposed or in disposing
511     inline sal_Bool IsAlive( void ) const;
512 
513     /// @returns true if it's not disposed and no in disposing
514     inline sal_Bool IsNotAlive( void ) const;
515 
516     /// throws the exception DisposedException if it's not alive
517     void ThrowExceptionIfNotAlive( void ) throw( ::com::sun::star::lang::DisposedException );
518 
519     /// Mutex guarding this object.
520     ::osl::Mutex                        maMutex;
521 
522 private:
523 
524     /** Description of this object.  This is not a constant because it can
525         be set from the outside.  Furthermore, it changes according the the
526         draw page's display mode.
527     */
528     ::rtl::OUString                     msDescription;
529 
530     /** Name of this object.  It changes according the the draw page's
531         display mode.
532     */
533     ::rtl::OUString                     msName;
534 
535     /// Reference to the parent object.
536     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
537                                         mxParent;
538 
539     /// Bounding box
540     Rectangle*                          mpBoundingBox;
541 
542     /// window of parent
543     const Window&                       mrParentWindow;
544 
545     /// client id in the AccessibleEventNotifier queue
546     sal_uInt32                          mnClientId;
547 
548     /// index of child in parent
549     long                                mnIndexInParent;
550 
551     /// Indicates, if object is checked
552     sal_Bool                            mbIsChecked;
553 };
554 
555 inline sal_Bool SvxRectCtlChildAccessibleContext::IsAlive( void ) const
556 {
557     return !rBHelper.bDisposed && !rBHelper.bInDispose;
558 }
559 
560 inline sal_Bool SvxRectCtlChildAccessibleContext::IsNotAlive( void ) const
561 {
562     return rBHelper.bDisposed || rBHelper.bInDispose;
563 }
564 
565 
566 #endif
567