/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __com_sun_star_accessibility_XAccessibleMultiLineText_idl__ #define __com_sun_star_accessibility_XAccessibleMultiLineText_idl__ #ifndef __com_sun_star_accessibility_XAccessibleText_idl__ #include <com/sun/star/accessibility/XAccessibleText.idl> #endif #ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__ #include <com/sun/star/lang/IndexOutOfBoundsException.idl> #endif #ifndef __com_sun_star_beans_PropertyValue_idl__ #include <com/sun/star/beans/PropertyValue.idl> #endif module com { module sun { module star { module accessibility { /** Implement this interface to give provide a mapping between text index and line numbers. <p>This interface is typically used in conjunction with the <type>XAccessibleText</type> interface and extents it with a notion of line numbers</p> @since OpenOffice 3.0 */ /// not yet published interface XAccessibleMultiLineText : ::com::sun::star::accessibility::XAccessibleText { /** Returns the line number at the specified index. <p>For a text object that is spread over multiple lines, this method provides a mapping from a text index to the corresponding line number. </p> @param nIndex Index for which the line number should be returned. The valid range is 0..length. @return Returns the line number of the specified text index. @throws ::com::sun::star::lang::IndexOutOfBoundsException if the index is invalid. */ long getLineNumberAtIndex([in] long nIndex) raises (::com::sun::star::lang::IndexOutOfBoundsException); /** Retuns the text of the specified line. <p>Returns the substring of text that makes up the specified line number.</p> <p>The number of lines can be obtained by calling <member>XAccessibleMultiLineText::getLineNumberAtIndex</member> with the index of the last character. In a loop, the last line has been reached when <member>TextSegment::SegmentEnd</member> of the returned value is equal to the index of the last character of the text.</p> @param nLineNo The number of the line to return the substring from. The valid range is 0..getLineNumberAtIndex(getCharacterCount()). @return Returns the requested text portion. This portion may be empty or invalid when no appropriate text portion is found. @throws ::com::sun::star::lang::IndexOutOfBoundsException if the line number is invalid */ TextSegment getTextAtLineNumber([in] long nLineNo) raises (::com::sun::star::lang::IndexOutOfBoundsException); /** Returns the text of the line in which the caret is located. <p>The substring returned will most of the time be identical to calling <member>XAccessibleText::getTextAtIndex</member> with the index returned by <member>XAccessibleText::getCaretPosition</member> and type <const scope="AccessibleTextType">LINE</type> beside the following special case:</p> <p>Some text implementations place the caret at the end of the current line when the <b>End</b> key gets pressed. Since the index of this position is identical to the one of the first character of the following line, <member>XAccessibleMultiLineText::getLineNumberAtIndex</member> will return the line following the current one in this case.</p> @return Returns the requested text portion. This portion may be empty or invalid if the paragraph object does not have a valid caret position. */ TextSegment getTextAtLineWithCaret(); /** Returns the number of the line in which the caret is located. <p>The line number returned will most of the time be identical to calling <member>XAccessibleMultiLineText::getLineNumberAtIndex</member> with the index returned by <member>XAccessibleText::getCaretPosition</member> beside the following special case:</p> <p>Some text implementations place the caret at the end of the current line when the <b>End</b> key gets pressed. Since the index of this position is identical to the one of the first character of the following line, <member>XAccessibleMultiLineText::getLineNumberAtIndex</member> will return the line following the current one in this case.</p> @return Returns the index of the line in which the caret is located or -1 if the paragraph does not have a valid caret position. */ long getNumberOfLineWithCaret(); }; }; }; }; }; #endif