Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : : #ifndef _ACCPARA_HXX
29 : : #define _ACCPARA_HXX
30 : :
31 : : #include <acccontext.hxx>
32 : : #include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
33 : : #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
34 : : #include <com/sun/star/accessibility/XAccessibleHypertext.hpp>
35 : : #include <com/sun/star/accessibility/XAccessibleTextMarkup.hpp>
36 : : #include <com/sun/star/accessibility/XAccessibleMultiLineText.hpp>
37 : : #include <com/sun/star/accessibility/XAccessibleTextAttributes.hpp>
38 : : #include <boost/unordered_map.hpp>
39 : : #include <accselectionhelper.hxx>
40 : : #include <calbck.hxx> // #i108125#
41 : :
42 : : class SwTxtFrm;
43 : : class SwTxtNode;
44 : : class SwPaM;
45 : : class SwAccessiblePortionData;
46 : : class SwAccessibleHyperTextData;
47 : : class SwXTextPortion;
48 : : class SwParaChangeTrackingInfo; //#i108125#
49 : :
50 : : namespace rtl { class OUString; }
51 : : namespace com { namespace sun { namespace star {
52 : : namespace i18n { struct Boundary; }
53 : : namespace accessibility { class XAccessibleHyperlink; }
54 : : } } }
55 : :
56 : : typedef ::boost::unordered_map< ::rtl::OUString,
57 : : ::com::sun::star::beans::PropertyValue,
58 : : ::rtl::OUStringHash,
59 : : ::std::equal_to< ::rtl::OUString > > tAccParaPropValMap;
60 : :
61 : : class SwAccessibleParagraph :
62 : : public SwClient, // #i108125#
63 : : public SwAccessibleContext,
64 : : public ::com::sun::star::accessibility::XAccessibleEditableText,
65 : : public com::sun::star::accessibility::XAccessibleSelection,
66 : : public com::sun::star::accessibility::XAccessibleHypertext,
67 : : public com::sun::star::accessibility::XAccessibleTextMarkup,
68 : : public com::sun::star::accessibility::XAccessibleMultiLineText,
69 : : public ::com::sun::star::accessibility::XAccessibleTextAttributes
70 : : {
71 : : friend class SwAccessibleHyperlink;
72 : :
73 : : ::rtl::OUString sDesc; // protected by base classes mutex
74 : :
75 : : /// data for this paragraph's text portions; this contains the
76 : : /// mapping from the core 'model string' to the accessible text
77 : : /// string.
78 : : /// pPortionData may be NULL; it should only be accessed through the
79 : : /// Get/Clear/Has/UpdatePortionData() methods
80 : : SwAccessiblePortionData* pPortionData;
81 : : SwAccessibleHyperTextData *pHyperTextData;
82 : :
83 : : sal_Int32 nOldCaretPos; // The 'old' caret pos. It's only valid as long
84 : : // as the cursor is inside this object (protected by
85 : : // mutex)
86 : :
87 : : sal_Bool bIsHeading; // protected by base classes mutex
88 : :
89 : : // implementation for XAccessibleSelection
90 : : SwAccessibleSelectionHelper aSelectionHelper;
91 : :
92 : : SwParaChangeTrackingInfo* mpParaChangeTrackInfo; // #i108125#
93 : :
94 : : /// get the SwTxtNode (requires frame; check before)
95 : : const SwTxtNode* GetTxtNode() const;
96 : :
97 : : /// get the (accessible) text string (requires frame; check before)
98 : : ::rtl::OUString GetString();
99 : :
100 : : ::rtl::OUString GetDescription();
101 : :
102 : : // get the current care position
103 : : sal_Int32 GetCaretPos();
104 : :
105 : : /// determine the current selection. Fill the values with
106 : : /// -1 if there is no selection in the this paragraph
107 : : sal_Bool GetSelection(sal_Int32& nStart, sal_Int32& nEnd);
108 : :
109 : : // helper for GetSelection and getCaretPosition
110 : : // #i27301# - add parameter <_bForSelection>, which indicates,
111 : : // if the cursor is retrieved for selection or for caret position.
112 : : SwPaM* GetCursor( const bool _bForSelection );
113 : :
114 : : /// for cut/copy/paste: execute a particular slot at the view shell
115 : : void ExecuteAtViewShell( sal_uInt16 nSlot );
116 : :
117 : : /// helper method for get/setAttributes
118 : : /// (for the special case of (nEndIndex==-1) a single character will
119 : : /// be selected)
120 : : SwXTextPortion* CreateUnoPortion( sal_Int32 nStart, sal_Int32 nEnd );
121 : :
122 : :
123 : : // methods for checking the parameter range:
124 : :
125 : : /// does nPos point to a char?
126 : : sal_Bool IsValidChar(sal_Int32 nPos, sal_Int32 nLength);
127 : :
128 : : /// does nPos point to a position? (may be behind the last character)
129 : : sal_Bool IsValidPosition(sal_Int32 nPos, sal_Int32 nLength);
130 : :
131 : : /// is nBegin...nEnd a valid range? (nEnd points past the last character)
132 : : sal_Bool IsValidRange(sal_Int32 nBegin, sal_Int32 nEnd, sal_Int32 nLength);
133 : :
134 : : /// Ensure ordered range (i.e. nBegin is smaller then nEnd)
135 : 0 : inline void OrderRange(sal_Int32& nBegin, sal_Int32& nEnd)
136 : : {
137 [ # # ]: 0 : if( nBegin > nEnd )
138 : : {
139 : 0 : sal_Int32 nTmp = nBegin; nBegin = nEnd; nEnd = nTmp;
140 : : }
141 : 0 : }
142 : :
143 : : // #i63870#
144 : : void _getDefaultAttributesImpl(
145 : : const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes,
146 : : tAccParaPropValMap& rDefAttrSeq,
147 : : const bool bOnlyCharAttrs = false );
148 : : void _getRunAttributesImpl(
149 : : const sal_Int32 nIndex,
150 : : const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes,
151 : : tAccParaPropValMap& rRunAttrSeq );
152 : :
153 : : public:
154 : :
155 : : sal_Bool IsHeading() const;
156 : :
157 : : protected:
158 : :
159 : : // Set states for getAccessibleStateSet.
160 : : // This drived class additinaly sets MULTILINE(1), MULTISELECTABLE(+),
161 : : // FOCUSABLE(+) and FOCUSED(+)
162 : : virtual void GetStates( ::utl::AccessibleStateSetHelper& rStateSet );
163 : :
164 : : virtual void _InvalidateContent( sal_Bool bVisibleDataFired );
165 : :
166 : : virtual void _InvalidateCursorPos();
167 : : virtual void _InvalidateFocus();
168 : :
169 : : virtual ~SwAccessibleParagraph();
170 : :
171 : : //===== handling of data for the text portions ===========================
172 : :
173 : : /// force update of new portion data
174 : : void UpdatePortionData()
175 : : throw( com::sun::star::uno::RuntimeException );
176 : :
177 : : /// remove the current portion data
178 : : void ClearPortionData();
179 : :
180 : : /// get portion data; update if necesary
181 : 306 : SwAccessiblePortionData& GetPortionData()
182 : : throw( com::sun::star::uno::RuntimeException )
183 : : {
184 [ + + ]: 306 : if( pPortionData == NULL )
185 : 55 : UpdatePortionData();
186 : 306 : return *pPortionData;
187 : : }
188 : :
189 : : /// determine if portion data is currently available
190 : : sal_Bool HasPortionData() { return (pPortionData != NULL); }
191 : :
192 : :
193 : : //===== helpers for word boundaries ====================================
194 : :
195 : : sal_Bool GetCharBoundary( com::sun::star::i18n::Boundary& rBound,
196 : : const rtl::OUString& rText,
197 : : sal_Int32 nPos );
198 : : sal_Bool GetWordBoundary( com::sun::star::i18n::Boundary& rBound,
199 : : const rtl::OUString& rText,
200 : : sal_Int32 nPos );
201 : : sal_Bool GetSentenceBoundary( com::sun::star::i18n::Boundary& rBound,
202 : : const rtl::OUString& rText,
203 : : sal_Int32 nPos );
204 : : sal_Bool GetLineBoundary( com::sun::star::i18n::Boundary& rBound,
205 : : const rtl::OUString& rText,
206 : : sal_Int32 nPos );
207 : : sal_Bool GetParagraphBoundary( com::sun::star::i18n::Boundary& rBound,
208 : : const rtl::OUString& rText,
209 : : sal_Int32 nPos );
210 : : sal_Bool GetAttributeBoundary( com::sun::star::i18n::Boundary& rBound,
211 : : const rtl::OUString& rText,
212 : : sal_Int32 nPos );
213 : : sal_Bool GetGlyphBoundary( com::sun::star::i18n::Boundary& rBound,
214 : : const rtl::OUString& rText,
215 : : sal_Int32 nPos );
216 : :
217 : : /// get boundaries of word/sentence/etc. for specified text type
218 : : /// Does all argument checking, and then delegates to helper methods above.
219 : : sal_Bool GetTextBoundary( com::sun::star::i18n::Boundary& rBound,
220 : : const rtl::OUString& rText,
221 : : sal_Int32 nPos,
222 : : sal_Int16 aTextType )
223 : : throw (
224 : : ::com::sun::star::lang::IndexOutOfBoundsException,
225 : : ::com::sun::star::lang::IllegalArgumentException,
226 : : ::com::sun::star::uno::RuntimeException);
227 : :
228 : : virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew);
229 : :
230 : : public:
231 : :
232 : : SwAccessibleParagraph( SwAccessibleMap& rInitMap,
233 : : const SwTxtFrm& rTxtFrm );
234 : :
235 : : inline operator ::com::sun::star::accessibility::XAccessibleText *();
236 : :
237 : : virtual sal_Bool HasCursor(); // required by map to remember that object
238 : :
239 : : //===== XAccessibleContext ==============================================
240 : :
241 : : /// Return this object's description.
242 : : virtual ::rtl::OUString SAL_CALL
243 : : getAccessibleDescription (void)
244 : : throw (com::sun::star::uno::RuntimeException);
245 : :
246 : : /** Return the parents locale or throw exception if this object has no
247 : : parent yet/anymore.
248 : : */
249 : : virtual ::com::sun::star::lang::Locale SAL_CALL
250 : : getLocale (void)
251 : : throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
252 : :
253 : : /** #i27138# - paragraphs are in relation CONTENT_FLOWS_FROM and/or CONTENT_FLOWS_TO */
254 : : virtual ::com::sun::star::uno::Reference<
255 : : ::com::sun::star::accessibility::XAccessibleRelationSet> SAL_CALL
256 : : getAccessibleRelationSet (void)
257 : : throw (::com::sun::star::uno::RuntimeException);
258 : :
259 : : //===== XAccessibleComponent ============================================
260 : :
261 : : virtual void SAL_CALL grabFocus()
262 : : throw (::com::sun::star::uno::RuntimeException);
263 : : // #i71385#
264 : : virtual sal_Int32 SAL_CALL getForeground()
265 : : throw (::com::sun::star::uno::RuntimeException);
266 : : virtual sal_Int32 SAL_CALL getBackground()
267 : : throw (::com::sun::star::uno::RuntimeException);
268 : :
269 : : //===== XServiceInfo ====================================================
270 : :
271 : : /** Returns an identifier for the implementation of this object.
272 : : */
273 : : virtual ::rtl::OUString SAL_CALL
274 : : getImplementationName (void)
275 : : throw (::com::sun::star::uno::RuntimeException);
276 : :
277 : : /** Return whether the specified service is supported by this class.
278 : : */
279 : : virtual sal_Bool SAL_CALL
280 : : supportsService (const ::rtl::OUString& sServiceName)
281 : : throw (::com::sun::star::uno::RuntimeException);
282 : :
283 : : /** Returns a list of all supported services. In this case that is just
284 : : the AccessibleContext service.
285 : : */
286 : : virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
287 : : getSupportedServiceNames (void)
288 : : throw (::com::sun::star::uno::RuntimeException);
289 : :
290 : :
291 : : //===== XInterface ======================================================
292 : :
293 : : // (XInterface methods need to be implemented to disambiguate
294 : : // between those inherited through SwAcessibleContext and
295 : : // XAccessibleEditableText).
296 : :
297 : : virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
298 : : const ::com::sun::star::uno::Type& aType )
299 : : throw (::com::sun::star::uno::RuntimeException);
300 : :
301 : 4574 : virtual void SAL_CALL acquire( ) throw ()
302 : 4574 : { SwAccessibleContext::acquire(); };
303 : :
304 : 4574 : virtual void SAL_CALL release( ) throw ()
305 : 4574 : { SwAccessibleContext::release(); };
306 : :
307 : : //====== XTypeProvider ====================================================
308 : : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
309 : : virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
310 : :
311 : : //===== XAccesibleText ==================================================
312 : : virtual sal_Int32 SAL_CALL getCaretPosition( ) throw (::com::sun::star::uno::RuntimeException);
313 : : virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
314 : : virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
315 : : 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);
316 : : virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
317 : : virtual sal_Int32 SAL_CALL getCharacterCount( ) throw (::com::sun::star::uno::RuntimeException);
318 : : virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
319 : : virtual ::rtl::OUString SAL_CALL getSelectedText( ) throw (::com::sun::star::uno::RuntimeException);
320 : : virtual sal_Int32 SAL_CALL getSelectionStart( ) throw (::com::sun::star::uno::RuntimeException);
321 : : virtual sal_Int32 SAL_CALL getSelectionEnd( ) throw (::com::sun::star::uno::RuntimeException);
322 : : virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
323 : : virtual ::rtl::OUString SAL_CALL getText( ) throw (::com::sun::star::uno::RuntimeException);
324 : : virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
325 : : 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);
326 : : 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);
327 : : 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);
328 : : virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
329 : :
330 : : //===== XAccesibleEditableText ==========================================
331 : : virtual sal_Bool SAL_CALL cutText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
332 : : virtual sal_Bool SAL_CALL pasteText( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
333 : : virtual sal_Bool SAL_CALL deleteText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
334 : : virtual sal_Bool SAL_CALL insertText( const ::rtl::OUString& sText, sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
335 : : 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);
336 : : 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);
337 : : virtual sal_Bool SAL_CALL setText( const ::rtl::OUString& sText ) throw (::com::sun::star::uno::RuntimeException);
338 : :
339 : : //===== XAccessibleSelection ============================================
340 : : virtual void SAL_CALL selectAccessibleChild(
341 : : sal_Int32 nChildIndex )
342 : : throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
343 : : ::com::sun::star::uno::RuntimeException );
344 : :
345 : : virtual sal_Bool SAL_CALL isAccessibleChildSelected(
346 : : sal_Int32 nChildIndex )
347 : : throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
348 : : ::com::sun::star::uno::RuntimeException );
349 : : virtual void SAL_CALL clearAccessibleSelection( )
350 : : throw ( ::com::sun::star::uno::RuntimeException );
351 : : virtual void SAL_CALL selectAllAccessibleChildren( )
352 : : throw ( ::com::sun::star::uno::RuntimeException );
353 : : virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( )
354 : : throw ( ::com::sun::star::uno::RuntimeException );
355 : : virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild(
356 : : sal_Int32 nSelectedChildIndex )
357 : : throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
358 : : ::com::sun::star::uno::RuntimeException);
359 : :
360 : : // index has to be treated as global child index.
361 : : virtual void SAL_CALL deselectAccessibleChild(
362 : : sal_Int32 nChildIndex )
363 : : throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
364 : : ::com::sun::star::uno::RuntimeException );
365 : :
366 : : //===== XAccessibleHypertext ============================================
367 : : virtual sal_Int32 SAL_CALL getHyperLinkCount()
368 : : throw (::com::sun::star::uno::RuntimeException);
369 : : virtual ::com::sun::star::uno::Reference<
370 : : ::com::sun::star::accessibility::XAccessibleHyperlink >
371 : : SAL_CALL getHyperLink( sal_Int32 nLinkIndex )
372 : : throw (::com::sun::star::lang::IndexOutOfBoundsException,
373 : : ::com::sun::star::uno::RuntimeException);
374 : : virtual sal_Int32 SAL_CALL getHyperLinkIndex( sal_Int32 nCharIndex )
375 : : throw (::com::sun::star::lang::IndexOutOfBoundsException,
376 : : ::com::sun::star::uno::RuntimeException);
377 : :
378 : : // #i71360#
379 : : //===== XAccesibleTextMarkup ============================================
380 : : virtual sal_Int32 SAL_CALL getTextMarkupCount( sal_Int32 nTextMarkupType )
381 : : throw (::com::sun::star::lang::IllegalArgumentException,
382 : : ::com::sun::star::uno::RuntimeException);
383 : :
384 : : virtual ::com::sun::star::accessibility::TextSegment SAL_CALL
385 : : getTextMarkup( sal_Int32 nTextMarkupIndex,
386 : : sal_Int32 nTextMarkupType )
387 : : throw (::com::sun::star::lang::IndexOutOfBoundsException,
388 : : ::com::sun::star::lang::IllegalArgumentException,
389 : : ::com::sun::star::uno::RuntimeException);
390 : :
391 : : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::accessibility::TextSegment > SAL_CALL
392 : : getTextMarkupAtIndex( sal_Int32 nCharIndex,
393 : : sal_Int32 nTextMarkupType )
394 : : throw (::com::sun::star::lang::IndexOutOfBoundsException,
395 : : ::com::sun::star::lang::IllegalArgumentException,
396 : : ::com::sun::star::uno::RuntimeException);
397 : :
398 : : // #i89175#
399 : : //===== XAccessibleMultiLineText ========================================
400 : : virtual sal_Int32 SAL_CALL getLineNumberAtIndex( sal_Int32 nIndex )
401 : : throw (::com::sun::star::lang::IndexOutOfBoundsException,
402 : : ::com::sun::star::uno::RuntimeException);
403 : :
404 : : virtual ::com::sun::star::accessibility::TextSegment SAL_CALL
405 : : getTextAtLineNumber( sal_Int32 nLineNo )
406 : : throw (::com::sun::star::lang::IndexOutOfBoundsException,
407 : : ::com::sun::star::uno::RuntimeException);
408 : :
409 : : virtual ::com::sun::star::accessibility::TextSegment SAL_CALL
410 : : getTextAtLineWithCaret()
411 : : throw (::com::sun::star::uno::RuntimeException);
412 : :
413 : : virtual sal_Int32 SAL_CALL getNumberOfLineWithCaret()
414 : : throw (::com::sun::star::uno::RuntimeException);
415 : :
416 : : // #i63870#
417 : : //===== XAccesibleTextAttributes ========================================
418 : : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getDefaultAttributes( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::uno::RuntimeException);
419 : : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getRunAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
420 : : };
421 : :
422 : 6 : inline SwAccessibleParagraph::operator ::com::sun::star::accessibility::XAccessibleText *()
423 : : {
424 : : return static_cast<
425 : 6 : ::com::sun::star::accessibility::XAccessibleEditableText * >( this );
426 : : }
427 : :
428 : : #endif
429 : :
430 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|