| /************************************************************** |
| * |
| * 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 |