class SwTextFrame; class SwPaM; class SwAccessiblePortionData; class SwAccessibleHyperTextData; class SwRangeRedline; class SwXTextPortion; class SwParaChangeTrackingInfo; //#i108125#
using SwAccessibleParagraph_BASE = cppu::ImplInheritanceHelper<SwAccessibleContext,
css::accessibility::XAccessibleEditableText,
css::accessibility::XAccessibleSelection,
css::accessibility::XAccessibleHypertext,
css::accessibility::XAccessibleTextMarkup,
css::accessibility::XAccessibleMultiLineText,
css::accessibility::XAccessibleTextAttributes,
css::accessibility::XAccessibleTextSelection,
css::accessibility::XAccessibleExtendedAttributes>; class SwAccessibleParagraph : public SfxListener, public SwAccessibleParagraph_BASE
{ friendclass SwAccessibleHyperlink;
// data for this paragraph's text portions; this contains the // mapping from the core 'model string' to the accessible text // string. // pPortionData may be NULL; it should only be accessed through the // Get/Clear/Has/UpdatePortionData() methods
std::unique_ptr<SwAccessiblePortionData> m_pPortionData;
std::unique_ptr<SwAccessibleHyperTextData> m_pHyperTextData;
sal_Int32 m_nOldCaretPos; // The 'old' caret pos. It's only valid as long // as the cursor is inside this object (protected by // mutex)
bool m_bIsBlockQuote; bool m_bIsHeading; // protected by base classes mutex
sal_Int32 m_nHeadingLevel;
// implementation for XAccessibleSelection
SwAccessibleSelectionHelper m_aSelectionHelper;
/// get the (accessible) text string (requires frame; check before)
OUString const & GetString();
// get the current caret position
sal_Int32 GetCaretPos();
// determine the current selection. Fill the values with // -1 if there is no selection in the this paragraph // @param pSelection (optional) check only Nth selection in ring bool GetSelectionAtIndex(sal_Int32 * pSelection, sal_Int32& nStart, sal_Int32& nEnd); bool GetSelection(sal_Int32& nStart, sal_Int32& nEnd) { return GetSelectionAtIndex(nullptr, nStart, nEnd);
}
// helper for GetSelection and getCaretPosition // #i27301# - add parameter <_bForSelection>, which indicates, // if the cursor is retrieved for selection or for caret position.
SwPaM* GetCursor( constbool _bForSelection );
// for cut/copy/paste: execute a particular slot at the view shell void ExecuteAtViewShell( sal_uInt16 nSlot );
// helper method for get/setAttributes // (for the special case of (nEndIndex==-1) a single character will // be selected)
rtl::Reference<SwXTextPortion> CreateUnoPortion( sal_Int32 nStart, sal_Int32 nEnd );
// methods for checking the parameter range:
// does nPos point to a char? staticbool IsValidChar(sal_Int32 nPos, sal_Int32 nLength);
// does nPos point to a position? (may be behind the last character) staticbool IsValidPosition(sal_Int32 nPos, sal_Int32 nLength);
// is nBegin...nEnd a valid range? (nEnd points past the last character) staticbool IsValidRange(sal_Int32 nBegin, sal_Int32 nEnd, sal_Int32 nLength);
// Ensure ordered range (i.e. nBegin is smaller then nEnd) staticvoid OrderRange(sal_Int32& nBegin, sal_Int32& nEnd)
{ if( nBegin > nEnd )
std::swap( nBegin, nEnd );
}
// Set states for getAccessibleStateSet. // This derived class additionally sets MULTILINE(1), MULTISELECTABLE(+), // FOCUSABLE(+) and FOCUSED(+) virtualvoid GetStates( sal_Int64& rStateSet ) override;
// get boundaries of word/sentence/etc. for specified text type // Does all argument checking, and then delegates to helper methods above. /// @throws css::lang::IndexOutOfBoundsException /// @throws css::lang::IllegalArgumentException /// @throws css::uno::RuntimeException bool GetTextBoundary( css::i18n::Boundary& rBound, const OUString& rText,
sal_Int32 nPos,
sal_Int16 aTextType );
// Returns an identifier for the implementation of this object. virtual OUString SAL_CALL
getImplementationName() override;
// Returns a list of all supported services. In this case that is just // the AccessibleContext service. virtual css::uno::Sequence< OUString> SAL_CALL
getSupportedServiceNames() override;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.