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