gecko/other-licenses/ia2/IA2CommonTypes.idl
Alexander Surkov 162d6d3e9c Bug 512424 - implement IAccessibleTable2, r=marcoz, davidb, sr=neil
--HG--
rename : accessible/src/atk/nsXULTreeAccessibleWrap.h => accessible/src/atk/nsXULTreeGridAccessibleWrap.h
rename : accessible/src/mac/nsXULTreeAccessibleWrap.h => accessible/src/mac/nsXULTreeGridAccessibleWrap.h
rename : accessible/src/msaa/nsXULTreeAccessibleWrap.cpp => accessible/src/msaa/nsXULTreeGridAccessibleWrap.cpp
rename : accessible/src/msaa/nsXULTreeAccessibleWrap.h => accessible/src/msaa/nsXULTreeGridAccessibleWrap.h
rename : accessible/src/other/nsXULTreeAccessibleWrap.h => accessible/src/other/nsXULTreeGridAccessibleWrap.h
rename : accessible/src/xul/nsXULSelectAccessible.cpp => accessible/src/xul/nsXULListboxAccessible.cpp
rename : accessible/src/xul/nsXULSelectAccessible.h => accessible/src/xul/nsXULListboxAccessible.h
rename : accessible/tests/mochitest/test_relations_table.html => accessible/tests/mochitest/test_table_headers.html
rename : accessible/tests/mochitest/test_nsIAccessibleTable_listboxes.xul => accessible/tests/mochitest/test_table_sels_listbox.xul
rename : accessible/tests/mochitest/test_elm_table.html => accessible/tests/mochitest/test_table_struct.html
2009-09-11 09:07:56 +08:00

165 lines
7.6 KiB
Plaintext

/*************************************************************************
*
* File Name (IA2CommonTypes.idl)
*
* IAccessible2 IDL Specification
*
* Copyright (c) Linux Foundation 2007, 2009
* Copyright (c) IBM Corp. 2006
* Copyright (c) Sun Microsystems, Inc. 2000, 2006
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
************************************************************************/
/** 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;