| /************************************************************************* |
| * |
| * File Name (IA2CommonTypes.idl) |
| * |
| * IAccessible2 IDL Specification |
| * |
| * Copyright (c) 2007, 2010 Linux Foundation |
| * Copyright (c) 2006 IBM Corporation |
| * Copyright (c) 2000, 2006 Sun Microsystems, Inc. |
| * All rights reserved. |
| * |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * |
| * 2. Redistributions in binary form must reproduce the above |
| * copyright notice, this list of conditions and the following |
| * disclaimer in the documentation and/or other materials |
| * provided with the distribution. |
| * |
| * 3. Neither the name of the Linux Foundation nor the names of its |
| * contributors may be used to endorse or promote products |
| * derived from this software without specific prior written |
| * permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND |
| * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, |
| * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR |
| * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
| * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
| * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
| * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| * |
| * This BSD License conforms to the Open Source Initiative "Simplified |
| * BSD License" as published at: |
| * http://www.opensource.org/licenses/bsd-license.php |
| * |
| * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2 |
| * mark may be used in accordance with the Linux Foundation Trademark |
| * Policy to indicate compliance with the IAccessible2 specification. |
| * |
| ************************************************************************/ |
| |
| /** These constants control the scrolling of an object or substring into a window. |
| |
| This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo. |
| */ |
| enum IA2ScrollType { |
| |
| /** Scroll the top left corner of the object or substring such that the top left |
| corner (and as much as possible of the rest of the object or substring) is within |
| the top level window. In cases where the entire object or substring fits within |
| the top level window, the placement of the object or substring is dependent on |
| the application. For example, the object or substring may be scrolled to the |
| closest edge, the furthest edge, or midway between those two edges. In cases |
| where there is a hierarchy of nested scrollable controls, more than one control |
| may have to be scrolled. |
| */ |
| IA2_SCROLL_TYPE_TOP_LEFT, |
| |
| /** Scroll the bottom right corner of the object or substring such that the bottom right |
| corner (and as much as possible of the rest of the object or substring) is within |
| the top level window. In cases where the entire object or substring fits within |
| the top level window, the placement of the object or substring is dependent on |
| the application. For example, the object or substring may be scrolled to the |
| closest edge, the furthest edge, or midway between those two edges. In cases |
| where there is a hierarchy of nested scrollable controls, more than one control |
| may have to be scrolled. |
| */ |
| IA2_SCROLL_TYPE_BOTTOM_RIGHT, |
| |
| /** Scroll the top edge of the object or substring such that the top edge |
| (and as much as possible of the rest of the object or substring) is within the |
| top level window. In cases where the entire object or substring fits within |
| the top level window, the placement of the object or substring is dependent on |
| the application. For example, the object or substring may be scrolled to the |
| closest edge, the furthest edge, or midway between those two edges. In cases |
| where there is a hierarchy of nested scrollable controls, more than one control |
| may have to be scrolled. |
| */ |
| IA2_SCROLL_TYPE_TOP_EDGE, |
| |
| /** Scroll the bottom edge of the object or substring such that the bottom edge |
| (and as much as possible of the rest of the object or substring) is within the |
| top level window. In cases where the entire object or substring fits within |
| the top level window, the placement of the object or substring is dependent on |
| the application. For example, the object or substring may be scrolled to the |
| closest edge, the furthest edge, or midway between those two edges. In cases |
| where there is a hierarchy of nested scrollable controls, more than one control |
| may have to be scrolled. |
| */ |
| IA2_SCROLL_TYPE_BOTTOM_EDGE, |
| |
| /** Scroll the left edge of the object or substring such that the left edge |
| (and as much as possible of the rest of the object or substring) is within the |
| top level window. In cases where the entire object or substring fits within |
| the top level window, the placement of the object or substring is dependent on |
| the application. For example, the object or substring may be scrolled to the |
| closest edge, the furthest edge, or midway between those two edges. In cases |
| where there is a hierarchy of nested scrollable controls, more than one control |
| may have to be scrolled. |
| */ |
| IA2_SCROLL_TYPE_LEFT_EDGE, |
| |
| /** Scroll the right edge of the object or substring such that the right edge |
| (and as much as possible of the rest of the object or substring) is within the |
| top level window. In cases where the entire object or substring fits within |
| the top level window, the placement of the object or substring is dependent on |
| the application. For example, the object or substring may be scrolled to the |
| closest edge, the furthest edge, or midway between those two edges. In cases |
| where there is a hierarchy of nested scrollable controls, more than one control |
| may have to be scrolled. |
| */ |
| IA2_SCROLL_TYPE_RIGHT_EDGE, |
| |
| /** Scroll the object or substring such that as much as possible of the |
| object or substring is within the top level window. The placement of |
| the object is dependent on the application. For example, the object or |
| substring may be scrolled to to closest edge, the furthest edge, or midway |
| between those two edges. |
| */ |
| IA2_SCROLL_TYPE_ANYWHERE |
| }; |
| |
| /** These constants define which coordinate system a point is located in. |
| |
| This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition, |
| IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and |
| IAccessibleText::scrollSubstringToPoint. |
| */ |
| enum IA2CoordinateType { |
| |
| /// The coordinates are relative to the screen. |
| IA2_COORDTYPE_SCREEN_RELATIVE, |
| |
| /** The coordinates are relative to the upper left corner of the bounding box |
| of the immediate parent. |
| */ |
| IA2_COORDTYPE_PARENT_RELATIVE |
| |
| }; |
| |
| /** Special offsets for use in IAccessibleText and IAccessibleEditableText methods |
| |
| Refer to @ref _specialOffsets |
| "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods" |
| for more information. |
| */ |
| enum IA2TextSpecialOffsets { |
| IA2_TEXT_OFFSET_LENGTH = -1, /**< This offset is equivalent to the length of the string. It eliminates |
| the need to call IAccessibleText::nCharacters. */ |
| IA2_TEXT_OFFSET_CARET = -2 /**< This offset signifies that the text related to the physical location |
| of the caret should be used. */ |
| }; |
| |
| /** These constants specify the kind of change made to a table. |
| |
| This enum is used in the IA2TableModelChange struct which in turn is used by |
| IAccessibleTable::modelChange and IAccessibleTable2::modelChange. |
| */ |
| enum IA2TableModelChangeType { |
| IA2_TABLE_MODEL_CHANGE_INSERT, // = 0; |
| IA2_TABLE_MODEL_CHANGE_DELETE, |
| IA2_TABLE_MODEL_CHANGE_UPDATE |
| }; |
| |
| /** A structure defining the type of and extents of changes made to a table |
| |
| IAccessibleTable::modelChange and IAccessibleTable2::modelChange return this struct. |
| In the case of an insertion or change the row and column offsets define the boundaries |
| of the inserted or changed subtable after the operation. In the case of a deletion |
| the row and column offsets define the boundaries of the subtable being removed before |
| the removal. |
| */ |
| typedef struct IA2TableModelChange { |
| enum IA2TableModelChangeType type; // insert, delete, update |
| long firstRow; ///< 0 based, inclusive |
| long lastRow; ///< 0 based, inclusive |
| long firstColumn; ///< 0 based, inclusive |
| long lastColumn; ///< 0 based, inclusive |
| } IA2TableModelChange; |