Update ooo320-m1
[ooovba.git] / svx / source / accessibility / AccessibleEditableTextPara.hxx
blobf78cbd4ad4e9f1a9b60f8c35982ae0a12b29c653
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: AccessibleEditableTextPara.hxx,v $
10 * $Revision: 1.22 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _SVX_ACCESSIBLE_EDITABLE_TEXT_PARA_HXX
32 #define _SVX_ACCESSIBLE_EDITABLE_TEXT_PARA_HXX
34 #include <tools/gen.hxx>
35 #include <tools/string.hxx>
36 #include <cppuhelper/weakref.hxx>
37 #include <cppuhelper/compbase8.hxx>
38 #include <cppuhelper/typeprovider.hxx>
39 #include <cppuhelper/interfacecontainer.hxx>
41 #include <com/sun/star/uno/Reference.hxx>
42 #include <com/sun/star/lang/XServiceInfo.hpp>
43 #include <com/sun/star/accessibility/XAccessible.hpp>
44 #include <com/sun/star/accessibility/XAccessibleContext.hpp>
45 #include <com/sun/star/accessibility/XAccessibleComponent.hpp>
46 #include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
47 #include <com/sun/star/accessibility/XAccessibleTextAttributes.hpp>
48 #include <com/sun/star/accessibility/XAccessibleMultiLineText.hpp>
50 #include <comphelper/accessibletexthelper.hxx>
51 #include <comphelper/broadcasthelper.hxx>
52 #include "AccessibleParaManager.hxx"
53 #include "AccessibleImageBullet.hxx"
54 #include "unoedprx.hxx"
56 namespace accessibility
58 typedef ::cppu::WeakComponentImplHelper8< ::com::sun::star::accessibility::XAccessible,
59 ::com::sun::star::accessibility::XAccessibleContext,
60 ::com::sun::star::accessibility::XAccessibleComponent,
61 ::com::sun::star::accessibility::XAccessibleEditableText,
62 ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
63 ::com::sun::star::accessibility::XAccessibleTextAttributes,
64 ::com::sun::star::accessibility::XAccessibleMultiLineText,
65 ::com::sun::star::lang::XServiceInfo > AccessibleTextParaInterfaceBase;
67 /** This class implements the actual text paragraphs for the EditEngine/Outliner UAA
69 class AccessibleEditableTextPara : public ::comphelper::OBaseMutex, public AccessibleTextParaInterfaceBase, public ::comphelper::OCommonAccessibleText
72 protected:
73 // override OCommonAccessibleText methods
74 virtual ::rtl::OUString implGetText();
75 virtual ::com::sun::star::lang::Locale implGetLocale();
76 virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
77 virtual void implGetParagraphBoundary( ::com::sun::star::i18n::Boundary& rBoundary, sal_Int32 nIndex );
78 virtual void implGetLineBoundary( ::com::sun::star::i18n::Boundary& rBoundary, sal_Int32 nIndex );
80 public:
81 /// Create accessible object for given parent
82 // --> OD 2006-01-11 #i27138#
83 // - add parameter <_pParaManager> (default value NULL)
84 // This has to be the the instance of <AccessibleParaManager>, which
85 // created and manages this accessible paragraph.
86 AccessibleEditableTextPara ( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rParent,
87 const AccessibleParaManager* _pParaManager = NULL );
88 // <--
90 virtual ~AccessibleEditableTextPara ();
92 // XInterface
93 virtual ::com::sun::star::uno::Any SAL_CALL queryInterface (const ::com::sun::star::uno::Type & rType) throw (::com::sun::star::uno::RuntimeException);
95 // XComponent
97 using WeakComponentImplHelperBase::addEventListener;
98 using WeakComponentImplHelperBase::removeEventListener;
100 // XAccessible
101 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
103 // XAccessibleContext
104 virtual sal_Int32 SAL_CALL getAccessibleChildCount() throw (::com::sun::star::uno::RuntimeException);
105 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
106 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent() throw (::com::sun::star::uno::RuntimeException);
107 virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() throw (::com::sun::star::uno::RuntimeException);
108 virtual sal_Int16 SAL_CALL getAccessibleRole() throw (::com::sun::star::uno::RuntimeException);
109 /// Maximal length of text returned by getAccessibleDescription()
110 enum { MaxDescriptionLen = 40 };
111 virtual ::rtl::OUString SAL_CALL getAccessibleDescription() throw (::com::sun::star::uno::RuntimeException);
112 virtual ::rtl::OUString SAL_CALL getAccessibleName() throw (::com::sun::star::uno::RuntimeException);
113 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() throw (::com::sun::star::uno::RuntimeException);
114 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet() throw (::com::sun::star::uno::RuntimeException);
115 virtual ::com::sun::star::lang::Locale SAL_CALL getLocale() throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
117 // XAccessibleEventBroadcaster
118 virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
119 virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
121 // XAccessibleComponent
122 virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
123 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
124 virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException);
125 virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException);
126 virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
127 virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException);
128 virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
129 virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
130 virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
132 // XAccessibleText (this comes implicitely inherited by XAccessibleEditableText AND by XAccessibleMultiLineText)
133 virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
134 virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
135 virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
136 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);
137 virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
138 virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
139 virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
140 virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
141 virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
142 virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
143 virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
144 virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
145 virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
146 /// Does not support AccessibleTextType::SENTENCE (missing feature in EditEngine)
147 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);
148 /// Does not support AccessibleTextType::SENTENCE (missing feature in EditEngine)
149 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);
150 /// Does not support AccessibleTextType::SENTENCE (missing feature in EditEngine)
151 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);
152 virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
154 // XAccessibleEditableText
155 virtual sal_Bool SAL_CALL cutText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
156 virtual sal_Bool SAL_CALL pasteText( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
157 virtual sal_Bool SAL_CALL deleteText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
158 virtual sal_Bool SAL_CALL insertText( const ::rtl::OUString& sText, sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
159 virtual sal_Bool SAL_CALL replaceText( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::rtl::OUString& sReplacement ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
160 virtual sal_Bool SAL_CALL setAttributes( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aAttributeSet ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
161 virtual sal_Bool SAL_CALL setText( const ::rtl::OUString& sText ) throw (::com::sun::star::uno::RuntimeException);
163 // XAccessibleTextAttributes
164 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getDefaultAttributes( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& RequestedAttributes ) throw (::com::sun::star::uno::RuntimeException);
165 virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getRunAttributes( ::sal_Int32 Index, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& RequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
167 // XAccessibleMultiLineText
168 virtual ::sal_Int32 SAL_CALL getLineNumberAtIndex( ::sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
169 virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtLineNumber( ::sal_Int32 nLineNo ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
170 virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtLineWithCaret( ) throw (::com::sun::star::uno::RuntimeException);
171 virtual ::sal_Int32 SAL_CALL getNumberOfLineWithCaret( ) throw (::com::sun::star::uno::RuntimeException);
173 // XServiceInfo
174 virtual ::rtl::OUString SAL_CALL getImplementationName (void) throw (::com::sun::star::uno::RuntimeException);
175 virtual sal_Bool SAL_CALL supportsService (const ::rtl::OUString& sServiceName) throw (::com::sun::star::uno::RuntimeException);
176 virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getSupportedServiceNames (void) throw (::com::sun::star::uno::RuntimeException);
178 // XServiceName
179 virtual ::rtl::OUString SAL_CALL getServiceName (void) throw (::com::sun::star::uno::RuntimeException);
181 /** Set the current index in the accessibility parent
183 @attention This method does not lock the SolarMutex,
184 leaving that to the calling code. This is because only
185 there potential deadlock situations can be resolved. Thus,
186 make sure SolarMutex is locked when calling this.
188 void SetIndexInParent( sal_Int32 nIndex );
190 /** Get the current index in the accessibility parent
192 @attention This method does not lock the SolarMutex,
193 leaving that to the calling code. This is because only
194 there potential deadlock situations can be resolved. Thus,
195 make sure SolarMutex is locked when calling this.
197 sal_Int32 GetIndexInParent() const;
199 /** Set the current paragraph number
201 @attention This method does not lock the SolarMutex,
202 leaving that to the calling code. This is because only
203 there potential deadlock situations can be resolved. Thus,
204 make sure SolarMutex is locked when calling this.
206 void SetParagraphIndex( sal_Int32 nIndex );
208 /** Query the current paragraph number (0 - nParas-1)
210 @attention This method does not lock the SolarMutex,
211 leaving that to the calling code. This is because only
212 there potential deadlock situations can be resolved. Thus,
213 make sure SolarMutex is locked when calling this.
215 sal_Int32 GetParagraphIndex() const SAL_THROW((::com::sun::star::uno::RuntimeException));
217 /** Set the edit engine offset
219 @attention This method does not lock the SolarMutex,
220 leaving that to the calling code. This is because only
221 there potential deadlock situations can be resolved. Thus,
222 make sure SolarMutex is locked when calling this.
224 void SetEEOffset( const Point& rOffset );
226 /** Set the EditEngine offset
228 @attention This method does not lock the SolarMutex,
229 leaving that to the calling code. This is because only
230 there potential deadlock situations can be resolved. Thus,
231 make sure SolarMutex is locked when calling this.
233 void SetEditSource( SvxEditSourceAdapter* pEditSource );
235 /** Dispose this object
237 Notifies and deregisters the listeners, drops all references.
239 void Dispose();
241 /// Calls all Listener objects to tell them the change. Don't hold locks when calling this!
242 virtual void FireEvent(const sal_Int16 nEventId, const ::com::sun::star::uno::Any& rNewValue = ::com::sun::star::uno::Any(), const ::com::sun::star::uno::Any& rOldValue = ::com::sun::star::uno::Any() ) const;
244 /// Queries the given state on the internal state set
245 bool HasState( const sal_Int16 nStateId );
246 /// Sets the given state on the internal state set and fires STATE_CHANGE event. Don't hold locks when calling this!
247 void SetState( const sal_Int16 nStateId );
248 /// Unsets the given state on the internal state set and fires STATE_CHANGE event. Don't hold locks when calling this!
249 void UnSetState( const sal_Int16 nStateId );
251 static Rectangle LogicToPixel( const Rectangle& rRect, const MapMode& rMapMode, SvxViewForwarder& rForwarder );
253 SvxEditSourceAdapter& GetEditSource() const SAL_THROW((::com::sun::star::uno::RuntimeException));
255 /** Query the SvxTextForwarder for EditEngine access.
257 @attention This method does not lock the SolarMutex,
258 leaving that to the calling code. This is because only
259 there potential deadlock situations can be resolved. Thus,
260 make sure SolarMutex is locked when calling this.
262 SvxAccessibleTextAdapter& GetTextForwarder() const SAL_THROW((::com::sun::star::uno::RuntimeException));
264 /** Query the SvxViewForwarder for EditEngine access.
266 @attention This method does not lock the SolarMutex,
267 leaving that to the calling code. This is because only
268 there potential deadlock situations can be resolved. Thus,
269 make sure SolarMutex is locked when calling this.
271 SvxViewForwarder& GetViewForwarder() const SAL_THROW((::com::sun::star::uno::RuntimeException));
273 /** Query whether a GetEditViewForwarder( sal_False ) will return a forwarder
275 @attention This method does not lock the SolarMutex,
276 leaving that to the calling code. This is because only
277 there potential deadlock situations can be resolved. Thus,
278 make sure SolarMutex is locked when calling this.
280 sal_Bool HaveEditView() const;
282 /** Query the SvxEditViewForwarder for EditEngine access.
284 @attention This method does not lock the SolarMutex,
285 leaving that to the calling code. This is because only
286 there potential deadlock situations can be resolved. Thus,
287 make sure SolarMutex is locked when calling this.
289 SvxAccessibleTextEditViewAdapter& GetEditViewForwarder( sal_Bool bCreate = sal_False ) const SAL_THROW((::com::sun::star::uno::RuntimeException));
291 /** Send a TEXT_CHANGED event for this paragraph
293 This method internally caters for calculating text
294 differences, and sends the appropriate Anys in the
295 Accessibility::TEXT_CHANGED event
297 void TextChanged();
299 private:
301 // declared, but not defined
302 AccessibleEditableTextPara( const AccessibleEditableTextPara& );
303 AccessibleEditableTextPara& operator= ( const AccessibleEditableTextPara& );
305 /** Calculate character range of similar attributes
307 @param nStartIndex
308 Therein, the start of the character range with the same attributes is returned
310 @param nEndIndex
311 Therein, the end (exclusively) of the character range with the same attributes is returned
313 @param nIndex
314 The character index at where to look for similar character attributes
316 @return sal_False, if the method was not able to determine the range
318 sal_Bool GetAttributeRun( USHORT& nStartIndex, USHORT& nEndIndex, sal_Int32 nIndex );
320 // syntactic sugar for FireEvent
321 void GotPropertyEvent( const ::com::sun::star::uno::Any& rNewValue, const sal_Int16 nEventId ) const;
322 void LostPropertyEvent( const ::com::sun::star::uno::Any& rOldValue, const sal_Int16 nEventId ) const;
324 /** Query the visibility state
326 @attention This method does not lock the SolarMutex,
327 leaving that to the calling code. This is because only
328 there potential deadlock situations can be resolved. Thus,
329 make sure SolarMutex is locked when calling this.
331 @return the visibility state. Per definition, a defunc object is no longer visible
333 sal_Bool IsVisible() const;
335 int getNotifierClientId() const;
337 // retrieve text interface for given paragraph index
338 ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleText > GetParaInterface( sal_Int32 nIndex );
340 /// Do we have children? This is the case for image bullets
341 sal_Bool HaveChildren();
343 /// Is the underlying object in edit mode
344 sal_Bool IsActive() const SAL_THROW((::com::sun::star::uno::RuntimeException));
346 const Point& GetEEOffset() const;
348 // Get text from forwarder
349 String GetText( sal_Int32 nIndex ) SAL_THROW((::com::sun::star::uno::RuntimeException));
350 String GetTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) SAL_THROW((::com::sun::star::uno::RuntimeException));
351 USHORT GetTextLen() const SAL_THROW((::com::sun::star::uno::RuntimeException));
353 /** Get the current selection of this paragraph
355 @return sal_False, if nothing in this paragraph is selected
357 sal_Bool GetSelection( USHORT& nStartPos, USHORT& nEndPos ) SAL_THROW((::com::sun::star::uno::RuntimeException));
359 /** create selection from Accessible selection.
362 ESelection MakeSelection( sal_Int32 nStartEEIndex, sal_Int32 nEndEEIndex );
363 ESelection MakeSelection( sal_Int32 nEEIndex );
364 ESelection MakeCursor( sal_Int32 nEEIndex );
366 // check whether index value is within permitted range
368 /// Check whether 0<=nIndex<=n-1
369 void CheckIndex( sal_Int32 nIndex ) SAL_THROW((::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException));
370 /// Check whether 0<=nIndex<=n
371 void CheckPosition( sal_Int32 nIndex ) SAL_THROW((::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException));
372 /// Check whether 0<=nStart<=n and 0<=nEnd<=n
373 void CheckRange( sal_Int32 nStart, sal_Int32 nEnd ) SAL_THROW((::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException));
375 // the paragraph index in the edit engine (guarded by solar mutex)
376 sal_Int32 mnParagraphIndex;
378 // our current index in the parent (guarded by solar mutex)
379 sal_Int32 mnIndexInParent;
381 // the current edit source (guarded by solar mutex)
382 SvxEditSourceAdapter* mpEditSource;
384 // the possible child (for image bullets, guarded by solar mutex)
385 typedef WeakCppRef < ::com::sun::star::accessibility::XAccessible, AccessibleImageBullet > WeakBullet;
386 WeakBullet maImageBullet;
388 // the last string used for an Accessibility::TEXT_CHANGED event (guarded by solar mutex)
389 ::rtl::OUString maLastTextString;
391 // the offset of the underlying EditEngine from the shape/cell (guarded by solar mutex)
392 Point maEEOffset;
394 // the current state set (updated from SetState/UnSetState and guarded by solar mutex)
395 ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > mxStateSet;
397 /// The shape we're the accessible for (unguarded)
398 ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxParent;
400 /// Our listeners (guarded by maMutex)
401 int mnNotifierClientId;
403 // --> OD 2006-01-11 #i27138#
404 // the paragraph manager, which created this instance - is NULL, if
405 // instance isn't created by AccessibleParaManager.
406 // Needed for method <getAccessibleRelationSet()> to retrieve predecessor
407 // paragraph and the successor paragraph.
408 const AccessibleParaManager* mpParaManager;
411 } // end of namespace accessibility
413 #endif