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