Blame other-licenses/ia2/IA2CommonTypes.idl

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;