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