xref: /aoo41x/main/svx/inc/svx/AccessibleShape.hxx (revision 9b8096d0)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 
25 #ifndef _SVX_ACCESSIBILITY_ACCESSIBLE_SHAPE_HXX
26 #define _SVX_ACCESSIBILITY_ACCESSIBLE_SHAPE_HXX
27 
28 #include <editeng/AccessibleContextBase.hxx>
29 #include <editeng/AccessibleComponentBase.hxx>
30 #include <svx/IAccessibleViewForwarderListener.hxx>
31 #include <com/sun/star/document/XEventListener.hpp>
32 #include <com/sun/star/accessibility/XAccessible.hpp>
33 #include <com/sun/star/accessibility/XAccessibleExtendedComponent.hpp>
34 #include <com/sun/star/accessibility/AccessibleRole.hpp>
35 #include <com/sun/star/drawing/XShape.hpp>
36 #include <com/sun/star/lang/XEventListener.hpp>
37 #include <com/sun/star/lang/XUnoTunnel.hpp>
38 #include <svx/AccessibleTextHelper.hxx>
39 #include "svx/svxdllapi.h"
40 //IAccessibility2 Implementation 2009-----
41 #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLESELECTION_HPP_
42 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
43 #endif
44 #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLETEXT_HPP_
45 #include <com/sun/star/accessibility/XAccessibleText.hpp>
46 #endif
47 #ifndef _COM_SUN_STAR_ACCESSIBILITY_XAccessibleExtendedAttributes_HPP_
48 #include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
49 #endif
50 #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEGROUPPOSITION_HPP_
51 #include <com/sun/star/accessibility/XAccessibleGroupPosition.hpp>
52 #endif
53 #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEHYPERTEXT_HPP_
54 #include <com/sun/star/accessibility/XAccessibleHypertext.hpp>
55 #endif
56 #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEHYPERTEXT_HPP_
57 #include <com/sun/star/accessibility/XAccessibleHypertext.hpp>
58 #endif
59 #ifndef INCLUDED_COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEHYPERLINK_HPP
60 #include <com/sun/star/accessibility/XAccessibleHyperlink.hpp>
61 #endif
62 //-----IAccessibility2 Implementation 2009
63 
64 #include "ChildrenManager.hxx"
65 
66 class SdrObject;
67 
68 namespace accessibility {
69 
70 class AccessibleShapeInfo;
71 class AccessibleShapeTreeInfo;
72 class IAccessibleParent;
73 
74 /**	This base class provides a base implementation for all shapes.  For more
75     detailed documentation about the methods refer to the descriptions of
76     the implemented interfaces.  These are, among others,
77     <type>XAccessible</type>, <type>XAccessibleContext</type>,
78     <type>XAccessibleComponent</type> and
79     <type>XAccessibleExtendedComponent</type>.
80 
81     <p>The children of a shape can stem from two sources which, in case of
82     SVX and SD shapes, are mutually exclusive.  This implementation,
83     however, handles both simultaniously to cope with future extensions or
84     shapes from other projects.
85     <ul>
86         <li>If this shape is a group shape, i.e. a
87         <type>SvxShapeGroup</type> or a <type>Svx3DSceneObject</type>, it
88         can have nested shapes.</li>
89         <li>If this shape is a descendant from <type>SvxShapeText</type>
90         then the text paragraphs are its children.</li>
91     </ul>
92     </p>
93 
94     <p>Accessible shapes do not listen for disposing() calls of the UNO
95     shapes they make accessible.  This is the task of their owner, usually a
96     container, who can then call dispose() at the accessible object.</p>
97 */
98 class SVX_DLLPUBLIC AccessibleShape
99     :	public AccessibleContextBase,
100         public AccessibleComponentBase,
101 		//IAccessibility2 Implementation 2009-----
102         public ::com::sun::star::accessibility::XAccessibleSelection,
103         public ::com::sun::star::accessibility::XAccessibleExtendedAttributes,
104         public ::com::sun::star::accessibility::XAccessibleGroupPosition,
105         public com::sun::star::accessibility::XAccessibleHypertext,
106 		//-----IAccessibility2 Implementation 2009
107         public IAccessibleViewForwarderListener,
108         public ::com::sun::star::document::XEventListener,
109         public ::com::sun::star::lang::XUnoTunnel
110 {
111 public:
112 	//=====  internal  ========================================================
113 
114     /** Create a new accessible object that makes the given shape accessible.
115         @param rShapeInfo
116             This object contains all information specific to the new
117             accessible shape.  That are e.g. the shape to be made accessible
118             and the accessible object that will become the parent of the new
119             object.
120         @param rShapeTreeInfo
121             Bundel of information passed to this shape and all of its desendants.
122         @attention
123             Always call the <member>init</member> method after creating a
124             new accessible shape.  This is one way to overcome the potential
125             problem of registering the new object with e.g. event
126             broadcasters.  That would delete the new object if a broadcaster
127             would not keep a strong reference to the new object.
128     */
129 	AccessibleShape (
130         const AccessibleShapeInfo& rShapeInfo,
131         const AccessibleShapeTreeInfo& rShapeTreeInfo);
132 	//IAccessibility2 Implementation 2009-----
133 	AccessibleShape (
134         const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape>& rxShape, const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>& rxParent, const AccessibleShapeTreeInfo& rShapeTreeInfo, sal_Int32 nIndex = -1);
135 	 //Solution: Overwrite the object's current name.
136     virtual ::rtl::OUString SAL_CALL  	getAccessibleName (void) throw (::com::sun::star::uno::RuntimeException);
137     virtual ::rtl::OUString SAL_CALL  	getAccessibleDescription() throw (::com::sun::star::uno::RuntimeException);
138 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet> SAL_CALL getAccessibleRelationSet (void) throw (::com::sun::star::uno::RuntimeException);
139 //=====  XAccessibleSelection  ============================================
140 
141 	virtual void SAL_CALL selectAccessibleChild(
142 		sal_Int32 nChildIndex )
143 		throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
144 		::com::sun::star::uno::RuntimeException );
145 
146 	virtual sal_Bool SAL_CALL isAccessibleChildSelected(
147 		sal_Int32 nChildIndex )
148 		throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
149 		::com::sun::star::uno::RuntimeException );
150 
151 	virtual void SAL_CALL clearAccessibleSelection(  )
152 		throw ( ::com::sun::star::uno::RuntimeException );
153 
154 	virtual void SAL_CALL selectAllAccessibleChildren(  )
155 		throw ( ::com::sun::star::uno::RuntimeException );
156 
157 	virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount(  )
158 		throw ( ::com::sun::star::uno::RuntimeException );
159 
160 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild(
161 		sal_Int32 nSelectedChildIndex )
162 		throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
163 		::com::sun::star::uno::RuntimeException);
164 
165 	virtual void SAL_CALL deselectAccessibleChild(
166 		sal_Int32 nSelectedChildIndex )
167 		throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
168 		::com::sun::star::uno::RuntimeException );
169 
170 	// ====== XAccessibleExtendedAttributes =====================================
171 	virtual ::com::sun::star::uno::Any SAL_CALL getExtendedAttributes()
172 	throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
173 	///	Return this object's role.
174 	virtual sal_Int16 SAL_CALL getAccessibleRole (void) throw (::com::sun::star::uno::RuntimeException);
175     //=====  XAccessibleGroupPosition  =========================================
176     virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
177         getGroupPosition( const ::com::sun::star::uno::Any& rAny )
178         throw (::com::sun::star::uno::RuntimeException);
179 	virtual ::rtl::OUString SAL_CALL getObjectLink( const ::com::sun::star::uno::Any& accoject )
180         throw (::com::sun::star::uno::RuntimeException);
181 	//-----IAccessibility2 Implementation 2009
182     /** The destructor releases its children manager and text engine if
183         still existent.  These are responsible to send appropriate events.
184     */
185 	virtual ~AccessibleShape (void);
186 
187     /** Initialize a new shape.  See the documentation of the constructor
188         for the reason of this method's existence.
189     */
190     virtual void Init (void);
191 
192     /** Compare two accessible shapes using object identity
193         @param rShape
194             This is the second operand.
195         @return
196             Returns true if both shapes are the same object.
197     */
198     virtual bool operator== (const AccessibleShape& rShape);
199 
200     /** Set the specified state.  If the state is <const>FOCUSED</const>
201         then, additionally to the inherited functionality, the focus
202         listeners registered with the <type>XAccessibleComponent</type>
203         interface are called (if that state really changes).
204 
205         @param aState
206             The state to turn on.
207 
208         @return
209             The returned flag indicates whether the specified state has been
210             changed (<TRUE/>), i.e. it has formerly not been set.
211     */
212     virtual sal_Bool SetState (sal_Int16 aState);
213 
214     /** Reset the specified state.  If the state is <const>FOCUSED</const>
215         then, additionally to the inherited functionality, the focus
216         listeners registered with the <type>XAccessibleComponent</type>
217         interface are called (if that state really changes).
218 
219         @param aState
220             The state to turn off.
221 
222         @return
223             The returned flag indicates whether the specified state has been
224             changed (<TRUE/>), i.e. it has formerly been set.
225     */
226     virtual sal_Bool ResetState (sal_Int16 aState);
227 
228     /** Return the state of the specified state.  Take the
229         <const>FOCUSED</const> state from the accessible edit engine.
230 
231         @param aState
232             The state for which to return its value.
233         @return
234             A value of <TRUE/> indicates that the state is set.  A <FALSE/>
235             value indicates an unset state or the inability to access the
236             entity that manages the state set.
237 
238     */
239     sal_Bool GetState (sal_Int16 aState);
240 
241 
242 	//=====  XAccessibleContext  ==============================================
243 
244     ///	Return the number of currently visible children.
245     virtual sal_Int32 SAL_CALL
246     	getAccessibleChildCount (void)
247         throw (::com::sun::star::uno::RuntimeException);
248 
249     /**	Return the specified child.
250         @param nIndex
251             Index of the requested child.
252         @return
253             Reference of the requested child which is the accessible object
254             of a visible shape.
255         @raises IndexOutOfBoundsException
256             Throws an exception if the index is not valid.
257     */
258     virtual ::com::sun::star::uno::Reference<
259             ::com::sun::star::accessibility::XAccessible> SAL_CALL
260     	getAccessibleChild (sal_Int32 nIndex)
261         throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
262 
263 
264     ///	Return the set of current states.
265 	virtual ::com::sun::star::uno::Reference<
266             ::com::sun::star::accessibility::XAccessibleStateSet> SAL_CALL
267     	getAccessibleStateSet (void)
268         throw (::com::sun::star::uno::RuntimeException);
269 
270 	///	Return this objects index among the parents children.
271 	virtual	sal_Int32 SAL_CALL
272     	getAccessibleIndexInParent (void)
273         throw (::com::sun::star::uno::RuntimeException);
274 
275     //=====  XAccessibleComponent  ============================================
276 
277     virtual ::com::sun::star::uno::Reference<
278         ::com::sun::star::accessibility::XAccessible > SAL_CALL
279         getAccessibleAtPoint (const ::com::sun::star::awt::Point& aPoint)
280         throw (::com::sun::star::uno::RuntimeException);
281 
282     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds (void)
283         throw (::com::sun::star::uno::RuntimeException);
284 
285     virtual ::com::sun::star::awt::Point SAL_CALL getLocation (void)
286         throw (::com::sun::star::uno::RuntimeException);
287 
288     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen (void)
289         throw (::com::sun::star::uno::RuntimeException);
290 
291     virtual ::com::sun::star::awt::Size SAL_CALL getSize (void)
292         throw (::com::sun::star::uno::RuntimeException);
293 
294     virtual sal_Int32 SAL_CALL getForeground (void)
295         throw (::com::sun::star::uno::RuntimeException);
296 
297     virtual sal_Int32 SAL_CALL getBackground (void)
298         throw (::com::sun::star::uno::RuntimeException);
299 
300 
301 
302     //=====  XComponent  ========================================================
303 
304     using WeakComponentImplHelperBase::addEventListener;
305     using WeakComponentImplHelperBase::removeEventListener;
306 
307     //=====  XAccessibleEventBroadcaster  =====================================
308 
309     /** This call is forwarded to a) the base class and b) to the
310         accessible edit engine if it is present.
311 
312         @param rxListener
313             This listener is informed about accessibility events.
314     */
315     virtual void SAL_CALL
316         addEventListener (
317             const ::com::sun::star::uno::Reference<
318             ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener)
319         throw (::com::sun::star::uno::RuntimeException);
320 
321     /** This call is forwarded to a) the base class and b) to the
322         accessible edit engine if it is present.
323 
324         @param rxListener
325             This listener will not be informed about accessibility events
326             anymore.
327     */
328     virtual void SAL_CALL
329         removeEventListener (
330             const ::com::sun::star::uno::Reference<
331             ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener)
332         throw (::com::sun::star::uno::RuntimeException);
333 
334 
335     //=====  XInterface  ======================================================
336 
337     virtual com::sun::star::uno::Any SAL_CALL
338         queryInterface (const com::sun::star::uno::Type & rType)
339         throw (::com::sun::star::uno::RuntimeException);
340 
341     virtual void SAL_CALL
342         acquire (void)
343         throw ();
344 
345     virtual void SAL_CALL
346         release (void)
347         throw ();
348 
349 
350 	//=====  XServiceInfo  ====================================================
351 
352     /**	Returns an identifier for the implementation of this object.
353     */
354 	virtual ::rtl::OUString SAL_CALL
355     	getImplementationName (void)
356 	    throw (::com::sun::star::uno::RuntimeException);
357 
358     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
359         getSupportedServiceNames (void)
360         throw (::com::sun::star::uno::RuntimeException);
361 
362     //=====  XTypeProvider  ===================================================
363 
364     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> SAL_CALL
365         getTypes (void)
366         throw (::com::sun::star::uno::RuntimeException);
367 
368     //=====  IAccessibleViewForwarderListener  ================================
369     virtual void ViewForwarderChanged (ChangeType aChangeType,
370         const IAccessibleViewForwarder* pViewForwarder);
371 
372     //=====  lang::XEventListener  ============================================
373 
374     /** Listen for disposing events of the model.  The accessible shape
375         remains functional when this happens.
376     */
377     virtual void SAL_CALL
378         disposing (const ::com::sun::star::lang::EventObject& Source)
379         throw (::com::sun::star::uno::RuntimeException);
380 
381     //=====  document::XEventListener  ========================================
382 
383     virtual void SAL_CALL
384         notifyEvent (const ::com::sun::star::document::EventObject& rEventObject)
385         throw (::com::sun::star::uno::RuntimeException);
386 
387 
388     //===== XUnoTunnel ========================================================
389 
390     static const ::com::sun::star::uno::Sequence< sal_Int8 >&	getUnoTunnelImplementationId() throw();
391 	static AccessibleShape*										getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxIFace ) throw();
392 	sal_Int64													SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& _rIdentifier ) throw(::com::sun::star::uno::RuntimeException);
393 
394 	//===== XAccessibleHypertext ========================================================
395     virtual sal_Int32 SAL_CALL getHyperLinkCount() 	throw (::com::sun::star::uno::RuntimeException);
396     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleHyperlink >
397 		SAL_CALL getHyperLink( sal_Int32 nLinkIndex )
398 		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
399     virtual sal_Int32 SAL_CALL getHyperLinkIndex( sal_Int32 nCharIndex )
400 		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
401 	//=====  XAccesibleText  ==================================================
402 		virtual sal_Int32 SAL_CALL getCaretPosition(  ) throw (::com::sun::star::uno::RuntimeException);
403 		virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
404 		virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);//Shen Zhen Jie changed sal_Unicode to sal_uInt32; change back to sal_Unicode
405 		virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
406 		virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
407 		virtual sal_Int32 SAL_CALL getCharacterCount(  ) throw (::com::sun::star::uno::RuntimeException);
408 		virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
409 		virtual ::rtl::OUString SAL_CALL getSelectedText(  ) throw (::com::sun::star::uno::RuntimeException);
410 		virtual sal_Int32 SAL_CALL getSelectionStart(  ) throw (::com::sun::star::uno::RuntimeException);
411 		virtual sal_Int32 SAL_CALL getSelectionEnd(  ) throw (::com::sun::star::uno::RuntimeException);
412 		virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
413 		virtual ::rtl::OUString SAL_CALL getText(  ) throw (::com::sun::star::uno::RuntimeException);
414 		virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
415 		virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
416 		virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
417 		virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
418 		virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
419 
420     //===== Misc ========================================================
421 
422     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
423         GetXShape();
424 
425 	/** set the index _nIndex at the accessible shape
426 		@param	_nIndex
427 			The new index in parent.
428 	*/
429 	inline void setIndexInParent(sal_Int32 _nIndex) { m_nIndexInParent = _nIndex; }
430 
431 protected:
432     /// Children manager. May be empty if there are no children.
433     ChildrenManager* mpChildrenManager;
434 
435     /// Reference to the actual shape.
436     ::com::sun::star::uno::Reference<
437         ::com::sun::star::drawing::XShape> mxShape;
438 
439     /** Bundle of information passed to all shapes in a document tree.
440     */
441     AccessibleShapeTreeInfo maShapeTreeInfo;
442 
443     /** Index that is appended to the object's name to disambiguate between
444         different names with the otherwise same name.
445     */
446     long mnIndex;
447 
448 	/** the index in parent.
449 	*/
450 	sal_Int32 m_nIndexInParent;
451 
452     /** The accessible text engine.  May be NULL if it can not be created.
453     */
454     AccessibleTextHelper* mpText;
455 
456     /** This object can be used to modify the child list of our parent.
457     */
458     IAccessibleParent* mpParent;
459 
460 	/** This object can be removed when we have an extra interface to ask if the shape is selected
461 	*/
462 	SdrObject* m_pShape;
463 
464     /** This method is called from the component helper base class while
465         disposing.
466     */
467     virtual void SAL_CALL disposing (void);
468 
469     /**	Create a base name string that contains the accessible name.
470     */
471 	virtual ::rtl::OUString
472     	CreateAccessibleBaseName (void)
473         throw (::com::sun::star::uno::RuntimeException);
474 
475     /**	Create a unique name string that contains the accessible name.  The
476         name consists of the base name and the index.
477     */
478 	virtual ::rtl::OUString
479     	CreateAccessibleName (void)
480         throw (::com::sun::star::uno::RuntimeException);
481 
482     ///	Create a description string that contains the accessible description.
483 	virtual ::rtl::OUString
484     	CreateAccessibleDescription (void)
485         throw (::com::sun::star::uno::RuntimeException);
486 	//IAccessibility2 Implementation 2009-----
487 	virtual ::rtl::OUString
488        GetFullAccessibleName(AccessibleShape *shape)
489        throw (::com::sun::star::uno::RuntimeException);
490     virtual::rtl::OUString GetStyle();
491 	void UpdateDocumentAllSelState(::com::sun::star::uno::Reference<
492 		::com::sun::star::accessibility::XAccessibleStateSet > &xStateSet);
493 	//-----IAccessibility2 Implementation 2009
494     /** Update the <const>OPAQUE</const> and <const>SELECTED</const> state.
495     */
496     virtual void UpdateStates (void);
497 
498 private:
499     /** Don't use the default constructor.  Use the public constructor that
500         takes the original shape and the parent as arguments instead.
501     */
502     SVX_DLLPRIVATE explicit AccessibleShape (void);
503     /// Don't use the copy constructor.  Is there any use for it?
504     SVX_DLLPRIVATE explicit AccessibleShape (const AccessibleShape&);
505     /// Don't use the assignment operator.  Do we need this?
506     SVX_DLLPRIVATE AccessibleShape& operator= (const AccessibleShape&);
507 	//IAccessibility2 Implementation 2009-----
508     //Solution:Old accessible name
509     ::rtl::OUString aAccName;
510 	//-----IAccessibility2 Implementation 2009
511 
512     /** Call this method when the title, name, or description of the mxShape
513         member (may) have been changed.
514         This method adapts the name and description members of the
515         AccessibleContextBase base class.
516     */
517     void UpdateNameAndDescription (void);
518 };
519 
520 } // end of namespace accessibility
521 
522 #endif
523