LCOV - code coverage report
Current view: top level - libreoffice/sw/source/core/access - accpara.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 14 0.0 %
Date: 2012-12-27 Functions: 0 5 0.0 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.10