|
|
/*
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */
/*
* Header file for packages of paramaters passed between Java Accessibility * and native Assistive Technologies */
#ifndef __AccessBridgePackages_H__
#define __AccessBridgePackages_H__
#include <jni.h>
#include <windows.h>
#ifdef __cplusplus
extern "C" { #endif
#ifdef ACCESSBRIDGE_ARCH_LEGACY
typedef jobject JOBJECT64; typedef HWND ABHWND64; #define ABHandleToLong
#define ABLongToHandle
#else
typedef jlong JOBJECT64; typedef long ABHWND64; #define ABHandleToLong HandleToLong
#define ABLongToHandle LongToHandle
#endif
#define MAX_BUFFER_SIZE 10240
#define MAX_STRING_SIZE 1024
#define SHORT_STRING_SIZE 256
// object types
typedef JOBJECT64 AccessibleContext; typedef JOBJECT64 AccessibleText; typedef JOBJECT64 AccessibleValue; typedef JOBJECT64 AccessibleSelection; typedef JOBJECT64 Java_Object; typedef JOBJECT64 PropertyChangeEvent; typedef JOBJECT64 FocusEvent; typedef JOBJECT64 CaretEvent; typedef JOBJECT64 MouseEvent; typedef JOBJECT64 MenuEvent; typedef JOBJECT64 AccessibleTable; typedef JOBJECT64 AccessibleHyperlink; typedef JOBJECT64 AccessibleHypertext;
/**
****************************************************** * Java event types ****************************************************** */
#define cPropertyChangeEvent (jlong) 1 // 1
#define cFocusGainedEvent (jlong) 2 // 2
#define cFocusLostEvent (jlong) 4 // 4
#define cCaretUpdateEvent (jlong) 8 // 8
#define cMouseClickedEvent (jlong) 16 // 10
#define cMouseEnteredEvent (jlong) 32 // 20
#define cMouseExitedEvent (jlong) 64 // 40
#define cMousePressedEvent (jlong) 128 // 80
#define cMouseReleasedEvent (jlong) 256 // 100
#define cMenuCanceledEvent (jlong) 512 // 200
#define cMenuDeselectedEvent (jlong) 1024 // 400
#define cMenuSelectedEvent (jlong) 2048 // 800
#define cPopupMenuCanceledEvent (jlong) 4096 // 1000
#define cPopupMenuWillBecomeInvisibleEvent (jlong) 8192 // 2000
#define cPopupMenuWillBecomeVisibleEvent (jlong) 16384 // 4000
#define cJavaShutdownEvent (jlong) 32768 // 8000
/**
****************************************************** * Accessible Roles * Defines all AccessibleRoles in Local.US ****************************************************** */
/**
* Object is used to alert the user about something. */ #define ACCESSIBLE_ALERT L"alert"
/**
* The header for a column of data. */ #define ACCESSIBLE_COLUMN_HEADER L"column header"
/**
* Object that can be drawn into and is used to trap * events. * see ACCESSIBLE_FRAME * see ACCESSIBLE_GLASS_PANE * see ACCESSIBLE_LAYERED_PANE */ #define ACCESSIBLE_CANVAS L"canvas"
/**
* A list of choices the user can select from. Also optionally * allows the user to enter a choice of their own. */ #define ACCESSIBLE_COMBO_BOX L"combo box"
/**
* An iconified internal frame in a DESKTOP_PANE. * see ACCESSIBLE_DESKTOP_PANE * see ACCESSIBLE_INTERNAL_FRAME */ #define ACCESSIBLE_DESKTOP_ICON L"desktop icon"
/**
* A frame-like object that is clipped by a desktop pane. The * desktop pane, internal frame, and desktop icon objects are * often used to create multiple document interfaces within an * application. * see ACCESSIBLE_DESKTOP_ICON * see ACCESSIBLE_DESKTOP_PANE * see ACCESSIBLE_FRAME */ #define ACCESSIBLE_INTERNAL_FRAME L"internal frame"
/**
* A pane that supports internal frames and * iconified versions of those internal frames. * see ACCESSIBLE_DESKTOP_ICON * see ACCESSIBLE_INTERNAL_FRAME */ #define ACCESSIBLE_DESKTOP_PANE L"desktop pane"
/**
* A specialized pane whose primary use is inside a DIALOG * see ACCESSIBLE_DIALOG */ #define ACCESSIBLE_OPTION_PANE L"option pane"
/**
* A top level window with no title or border. * see ACCESSIBLE_FRAME * see ACCESSIBLE_DIALOG */ #define ACCESSIBLE_WINDOW L"window"
/**
* A top level window with a title bar, border, menu bar, etc. It is * often used as the primary window for an application. * see ACCESSIBLE_DIALOG * see ACCESSIBLE_CANVAS * see ACCESSIBLE_WINDOW */ #define ACCESSIBLE_FRAME L"frame"
/**
* A top level window with title bar and a border. A dialog is similar * to a frame, but it has fewer properties and is often used as a * secondary window for an application. * see ACCESSIBLE_FRAME * see ACCESSIBLE_WINDOW */ #define ACCESSIBLE_DIALOG L"dialog"
/**
* A specialized dialog that lets the user choose a color. */ #define ACCESSIBLE_COLOR_CHOOSER L"color chooser"
/**
* A pane that allows the user to navigate through * and select the contents of a directory. May be used * by a file chooser. * see ACCESSIBLE_FILE_CHOOSER */ #define ACCESSIBLE_DIRECTORY_PANE L"directory pane"
/**
* A specialized dialog that displays the files in the directory * and lets the user select a file, browse a different directory, * or specify a filename. May use the directory pane to show the * contents of a directory. * see ACCESSIBLE_DIRECTORY_PANE */ #define ACCESSIBLE_FILE_CHOOSER L"file chooser"
/**
* An object that fills up space in a user interface. It is often * used in interfaces to tweak the spacing between components, * but serves no other purpose. */ #define ACCESSIBLE_FILLER L"filler"
/**
* A hypertext anchor */ #define ACCESSIBLE_HYPERLINK L"hyperlink"
/**
* A small fixed size picture, typically used to decorate components. */ #define ACCESSIBLE_ICON L"icon"
/**
* An object used to present an icon or short string in an interface. */ #define ACCESSIBLE_LABEL L"label"
/**
* A specialized pane that has a glass pane and a layered pane as its * children. * see ACCESSIBLE_GLASS_PANE * see ACCESSIBLE_LAYERED_PANE */ #define ACCESSIBLE_ROOT_PANE L"root pane"
/**
* A pane that is guaranteed to be painted on top * of all panes beneath it. * see ACCESSIBLE_ROOT_PANE * see ACCESSIBLE_CANVAS */ #define ACCESSIBLE_GLASS_PANE L"glass pane"
/**
* A specialized pane that allows its children to be drawn in layers, * providing a form of stacking order. This is usually the pane that * holds the menu bar as well as the pane that contains most of the * visual components in a window. * see ACCESSIBLE_GLASS_PANE * see ACCESSIBLE_ROOT_PANE */ #define ACCESSIBLE_LAYERED_PANE L"layered pane"
/**
* An object that presents a list of objects to the user and allows the * user to select one or more of them. A list is usually contained * within a scroll pane. * see ACCESSIBLE_SCROLL_PANE * see ACCESSIBLE_LIST_ITEM */ #define ACCESSIBLE_LIST L"list"
/**
* An object that presents an element in a list. A list is usually * contained within a scroll pane. * see ACCESSIBLE_SCROLL_PANE * see ACCESSIBLE_LIST */ #define ACCESSIBLE_LIST_ITEM L"list item"
/**
* An object usually drawn at the top of the primary dialog box of * an application that contains a list of menus the user can choose * from. For example, a menu bar might contain menus for "File," * "Edit," and "Help." * see ACCESSIBLE_MENU * see ACCESSIBLE_POPUP_MENU * see ACCESSIBLE_LAYERED_PANE */ #define ACCESSIBLE_MENU_BAR L"menu bar"
/**
* A temporary window that is usually used to offer the user a * list of choices, and then hides when the user selects one of * those choices. * see ACCESSIBLE_MENU * see ACCESSIBLE_MENU_ITEM */ #define ACCESSIBLE_POPUP_MENU L"popup menu"
/**
* An object usually found inside a menu bar that contains a list * of actions the user can choose from. A menu can have any object * as its children, but most often they are menu items, other menus, * or rudimentary objects such as radio buttons, check boxes, or * separators. For example, an application may have an "Edit" menu * that contains menu items for "Cut" and "Paste." * see ACCESSIBLE_MENU_BAR * see ACCESSIBLE_MENU_ITEM * see ACCESSIBLE_SEPARATOR * see ACCESSIBLE_RADIO_BUTTON * see ACCESSIBLE_CHECK_BOX * see ACCESSIBLE_POPUP_MENU */ #define ACCESSIBLE_MENU L"menu"
/**
* An object usually contained in a menu that presents an action * the user can choose. For example, the "Cut" menu item in an * "Edit" menu would be an action the user can select to cut the * selected area of text in a document. * see ACCESSIBLE_MENU_BAR * see ACCESSIBLE_SEPARATOR * see ACCESSIBLE_POPUP_MENU */ #define ACCESSIBLE_MENU_ITEM L"menu item"
/**
* An object usually contained in a menu to provide a visual * and logical separation of the contents in a menu. For example, * the "File" menu of an application might contain menu items for * "Open," "Close," and "Exit," and will place a separator between * "Close" and "Exit" menu items. * see ACCESSIBLE_MENU * see ACCESSIBLE_MENU_ITEM */ #define ACCESSIBLE_SEPARATOR L"separator"
/**
* An object that presents a series of panels (or page tabs), one at a * time, through some mechanism provided by the object. The most common * mechanism is a list of tabs at the top of the panel. The children of * a page tab list are all page tabs. * see ACCESSIBLE_PAGE_TAB */ #define ACCESSIBLE_PAGE_TAB_LIST L"page tab list"
/**
* An object that is a child of a page tab list. Its sole child is * the panel that is to be presented to the user when the user * selects the page tab from the list of tabs in the page tab list. * see ACCESSIBLE_PAGE_TAB_LIST */ #define ACCESSIBLE_PAGE_TAB L"page tab"
/**
* A generic container that is often used to group objects. */ #define ACCESSIBLE_PANEL L"panel"
/**
* An object used to indicate how much of a task has been completed. */ #define ACCESSIBLE_PROGRESS_BAR L"progress bar"
/**
* A text object used for passwords, or other places where the * text contents is not shown visibly to the user */ #define ACCESSIBLE_PASSWORD_TEXT L"password text"
/**
* An object the user can manipulate to tell the application to do * something. * see ACCESSIBLE_CHECK_BOX * see ACCESSIBLE_TOGGLE_BUTTON * see ACCESSIBLE_RADIO_BUTTON */ #define ACCESSIBLE_PUSH_BUTTON L"push button"
/**
* A specialized push button that can be checked or unchecked, but * does not provide a separate indicator for the current state. * see ACCESSIBLE_PUSH_BUTTON * see ACCESSIBLE_CHECK_BOX * see ACCESSIBLE_RADIO_BUTTON */ #define ACCESSIBLE_TOGGLE_BUTTON L"toggle button"
/**
* A choice that can be checked or unchecked and provides a * separate indicator for the current state. * see ACCESSIBLE_PUSH_BUTTON * see ACCESSIBLE_TOGGLE_BUTTON * see ACCESSIBLE_RADIO_BUTTON */ #define ACCESSIBLE_CHECK_BOX L"check box"
/**
* A specialized check box that will cause other radio buttons in the * same group to become unchecked when this one is checked. * see ACCESSIBLE_PUSH_BUTTON * see ACCESSIBLE_TOGGLE_BUTTON * see ACCESSIBLE_CHECK_BOX */ #define ACCESSIBLE_RADIO_BUTTON L"radio button"
/**
* The header for a row of data. */ #define ACCESSIBLE_ROW_HEADER L"row header"
/**
* An object that allows a user to incrementally view a large amount * of information. Its children can include scroll bars and a viewport. * see ACCESSIBLE_SCROLL_BAR * see ACCESSIBLE_VIEWPORT */ #define ACCESSIBLE_SCROLL_PANE L"scroll pane"
/**
* An object usually used to allow a user to incrementally view a * large amount of data. Usually used only by a scroll pane. * see ACCESSIBLE_SCROLL_PANE */ #define ACCESSIBLE_SCROLL_BAR L"scroll bar"
/**
* An object usually used in a scroll pane. It represents the portion * of the entire data that the user can see. As the user manipulates * the scroll bars, the contents of the viewport can change. * see ACCESSIBLE_SCROLL_PANE */ #define ACCESSIBLE_VIEWPORT L"viewport"
/**
* An object that allows the user to select from a bounded range. For * example, a slider might be used to select a number between 0 and 100. */ #define ACCESSIBLE_SLIDER L"slider"
/**
* A specialized panel that presents two other panels at the same time. * Between the two panels is a divider the user can manipulate to make * one panel larger and the other panel smaller. */ #define ACCESSIBLE_SPLIT_PANE L"split pane"
/**
* An object used to present information in terms of rows and columns. * An example might include a spreadsheet application. */ #define ACCESSIBLE_TABLE L"table"
/**
* An object that presents text to the user. The text is usually * editable by the user as opposed to a label. * see ACCESSIBLE_LABEL */ #define ACCESSIBLE_TEXT L"text"
/**
* An object used to present hierarchical information to the user. * The individual nodes in the tree can be collapsed and expanded * to provide selective disclosure of the tree's contents. */ #define ACCESSIBLE_TREE L"tree"
/**
* A bar or palette usually composed of push buttons or toggle buttons. * It is often used to provide the most frequently used functions for an * application. */ #define ACCESSIBLE_TOOL_BAR L"tool bar"
/**
* An object that provides information about another object. The * accessibleDescription property of the tool tip is often displayed * to the user in a small L"help bubble" when the user causes the * mouse to hover over the object associated with the tool tip. */ #define ACCESSIBLE_TOOL_TIP L"tool tip"
/**
* An AWT component, but nothing else is known about it. * see ACCESSIBLE_SWING_COMPONENT * see ACCESSIBLE_UNKNOWN */ #define ACCESSIBLE_AWT_COMPONENT L"awt component"
/**
* A Swing component, but nothing else is known about it. * see ACCESSIBLE_AWT_COMPONENT * see ACCESSIBLE_UNKNOWN */ #define ACCESSIBLE_SWING_COMPONENT L"swing component"
/**
* The object contains some Accessible information, but its role is * not known. * see ACCESSIBLE_AWT_COMPONENT * see ACCESSIBLE_SWING_COMPONENT */ #define ACCESSIBLE_UNKNOWN L"unknown"
/**
* A STATUS_BAR is an simple component that can contain * multiple labels of status information to the user. */ #define ACCESSIBLE_STATUS_BAR L"status bar"
/**
* A DATE_EDITOR is a component that allows users to edit * java.util.Date and java.util.Time objects */ #define ACCESSIBLE_DATE_EDITOR L"date editor"
/**
* A SPIN_BOX is a simple spinner component and its main use * is for simple numbers. */ #define ACCESSIBLE_SPIN_BOX L"spin box"
/**
* A FONT_CHOOSER is a component that lets the user pick various * attributes for fonts. */ #define ACCESSIBLE_FONT_CHOOSER L"font chooser"
/**
* A GROUP_BOX is a simple container that contains a border * around it and contains components inside it. */ #define ACCESSIBLE_GROUP_BOX L"group box"
/**
* A text header */ #define ACCESSIBLE_HEADER L"header"
/**
* A text footer */ #define ACCESSIBLE_FOOTER L"footer"
/**
* A text paragraph */ #define ACCESSIBLE_PARAGRAPH L"paragraph"
/**
* A ruler is an object used to measure distance */ #define ACCESSIBLE_RULER L"ruler"
/**
* A role indicating the object acts as a formula for * calculating a value. An example is a formula in * a spreadsheet cell. */ #define ACCESSIBLE_EDITBAR L"editbar"
/**
* A role indicating the object monitors the progress * of some operation. */ #define PROGRESS_MONITOR L"progress monitor"
/**
****************************************************** * Accessibility event types ****************************************************** */
#define cPropertyNameChangeEvent (jlong) 1 // 1
#define cPropertyDescriptionChangeEvent (jlong) 2 // 2
#define cPropertyStateChangeEvent (jlong) 4 // 4
#define cPropertyValueChangeEvent (jlong) 8 // 8
#define cPropertySelectionChangeEvent (jlong) 16 // 10
#define cPropertyTextChangeEvent (jlong) 32 // 20
#define cPropertyCaretChangeEvent (jlong) 64 // 40
#define cPropertyVisibleDataChangeEvent (jlong) 128 // 80
#define cPropertyChildChangeEvent (jlong) 256 // 100
#define cPropertyActiveDescendentChangeEvent (jlong) 512 // 200
#define cPropertyTableModelChangeEvent (jlong) 1024 // 400
/**
****************************************************** * optional AccessibleContext interfaces * * This version of the bridge reuses the accessibleValue * field in the AccessibleContextInfo struct to represent * additional optional interfaces that are supported by * the Java AccessibleContext. This is backwardly compatable * because the old accessibleValue was set to the BOOL * value TRUE (i.e., 1) if the AccessibleValue interface is * supported. ****************************************************** */
#define cAccessibleValueInterface (jlong) 1 // 1 << 1 (TRUE)
#define cAccessibleActionInterface (jlong) 2 // 1 << 2
#define cAccessibleComponentInterface (jlong) 4 // 1 << 3
#define cAccessibleSelectionInterface (jlong) 8 // 1 << 4
#define cAccessibleTableInterface (jlong) 16 // 1 << 5
#define cAccessibleTextInterface (jlong) 32 // 1 << 6
#define cAccessibleHypertextInterface (jlong) 64 // 1 << 7
/**
****************************************************** * Accessibility information bundles ****************************************************** */
typedef struct AccessBridgeVersionInfoTag { wchar_t VMversion[SHORT_STRING_SIZE]; // output of "java -version"
wchar_t bridgeJavaClassVersion[SHORT_STRING_SIZE]; // version of the AccessBridge.class
wchar_t bridgeJavaDLLVersion[SHORT_STRING_SIZE]; // version of JavaAccessBridge.dll
wchar_t bridgeWinDLLVersion[SHORT_STRING_SIZE]; // version of WindowsAccessBridge.dll
} AccessBridgeVersionInfo;
typedef struct AccessibleContextInfoTag { wchar_t name[MAX_STRING_SIZE]; // the AccessibleName of the object
wchar_t description[MAX_STRING_SIZE]; // the AccessibleDescription of the object
wchar_t role[SHORT_STRING_SIZE]; // localized AccesibleRole string
wchar_t role_en_US[SHORT_STRING_SIZE]; // AccesibleRole string in the en_US locale
wchar_t states[SHORT_STRING_SIZE]; // localized AccesibleStateSet string (comma separated)
wchar_t states_en_US[SHORT_STRING_SIZE]; // AccesibleStateSet string in the en_US locale (comma separated)
jint indexInParent; // index of object in parent
jint childrenCount; // # of children, if any
jint x; // screen coords in pixels
jint y; // "
jint width; // pixel width of object
jint height; // pixel height of object
BOOL accessibleComponent; // flags for various additional
BOOL accessibleAction; // Java Accessibility interfaces
BOOL accessibleSelection; // FALSE if this object doesn't
BOOL accessibleText; // implement the additional interface
// in question
// BOOL accessibleValue; // old BOOL indicating whether AccessibleValue is supported
BOOL accessibleInterfaces; // new bitfield containing additional interface flags
} AccessibleContextInfo;
// AccessibleText packages
typedef struct AccessibleTextInfoTag { jint charCount; // # of characters in this text object
jint caretIndex; // index of caret
jint indexAtPoint; // index at the passsed in point
} AccessibleTextInfo;
typedef struct AccessibleTextItemsInfoTag { wchar_t letter; wchar_t word[SHORT_STRING_SIZE]; wchar_t sentence[MAX_STRING_SIZE]; } AccessibleTextItemsInfo;
typedef struct AccessibleTextSelectionInfoTag { jint selectionStartIndex; jint selectionEndIndex; wchar_t selectedText[MAX_STRING_SIZE]; } AccessibleTextSelectionInfo;
typedef struct AccessibleTextRectInfoTag { jint x; // bounding rect of char at index
jint y; // "
jint width; // "
jint height; // "
} AccessibleTextRectInfo;
// standard attributes for text; note: tabstops are not supported
typedef struct AccessibleTextAttributesInfoTag { BOOL bold; BOOL italic; BOOL underline; BOOL strikethrough; BOOL superscript; BOOL subscript;
wchar_t backgroundColor[SHORT_STRING_SIZE]; wchar_t foregroundColor[SHORT_STRING_SIZE]; wchar_t fontFamily[SHORT_STRING_SIZE]; jint fontSize;
jint alignment; jint bidiLevel;
jfloat firstLineIndent; jfloat leftIndent; jfloat rightIndent; jfloat lineSpacing; jfloat spaceAbove; jfloat spaceBelow;
wchar_t fullAttributesString[MAX_STRING_SIZE]; } AccessibleTextAttributesInfo;
/**
****************************************************** * IPC management typedefs ****************************************************** */
#define cMemoryMappedNameSize 255
/**
* sent by the WindowsDLL -> the memory-mapped file is setup * */ typedef struct MemoryMappedFileCreatedPackageTag { // HWND bridgeWindow; // redundant, but easier to get to here...
ABHWND64 bridgeWindow; // redundant, but easier to get to here...
char filename[cMemoryMappedNameSize]; } MemoryMappedFileCreatedPackage;
/**
* sent when a new JavaVM attaches to the Bridge * */ typedef struct JavaVMCreatedPackageTag { ABHWND64 bridgeWindow; long vmID; } JavaVMCreatedPackage;
/**
* sent when a JavaVM detatches from the Bridge * */ typedef struct JavaVMDestroyedPackageTag { ABHWND64 bridgeWindow; } JavaVMDestroyedPackage;
/**
* sent when a new AT attaches to the Bridge * */ typedef struct WindowsATCreatedPackageTag { ABHWND64 bridgeWindow; } WindowsATCreatedPackage;
/**
* sent when an AT detatches from the Bridge * */ typedef struct WindowsATDestroyedPackageTag { ABHWND64 bridgeWindow; } WindowsATDestroyedPackage;
/**
* sent by JVM Bridges in response to a WindowsATCreate * message; saying "howdy, welcome to the neighborhood" * */ typedef struct JavaVMPresentNotificationPackageTag { ABHWND64 bridgeWindow; long vmID; } JavaVMPresentNotificationPackage;
/**
* sent by AT Bridges in response to a JavaVMCreate * message; saying "howdy, welcome to the neighborhood" * */ typedef struct WindowsATPresentNotificationPackageTag { ABHWND64 bridgeWindow; } WindowsATPresentNotificationPackage;
/**
****************************************************** * Core packages ****************************************************** */
typedef struct ReleaseJavaObjectPackageTag { long vmID; JOBJECT64 object; } ReleaseJavaObjectPackage;
typedef struct GetAccessBridgeVersionPackageTag { long vmID; // can't get VM info w/out a VM!
AccessBridgeVersionInfo rVersionInfo; } GetAccessBridgeVersionPackage;
typedef struct IsSameObjectPackageTag { long vmID; JOBJECT64 obj1; JOBJECT64 obj2; jboolean rResult; } IsSameObjectPackage;
/**
****************************************************** * Windows packages ****************************************************** */
typedef struct IsJavaWindowPackageTag { jint window; jboolean rResult; } IsJavaWindowPackage;
typedef struct GetAccessibleContextFromHWNDPackageTag { jint window; long rVMID; JOBJECT64 rAccessibleContext; } GetAccessibleContextFromHWNDPackage;
typedef struct GetHWNDFromAccessibleContextPackageTag { JOBJECT64 accessibleContext; ABHWND64 rHWND; } GetHWNDFromAccessibleContextPackage;
/**
****************************************************** * AccessibleContext packages ****************************************************** */
typedef struct GetAccessibleContextAtPackageTag { jint x; jint y; long vmID; JOBJECT64 AccessibleContext; // look within this AC
JOBJECT64 rAccessibleContext; } GetAccessibleContextAtPackage;
typedef struct GetAccessibleContextWithFocusPackageTag { long rVMID; JOBJECT64 rAccessibleContext; } GetAccessibleContextWithFocusPackage;
typedef struct GetAccessibleContextInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; AccessibleContextInfo rAccessibleContextInfo; } GetAccessibleContextInfoPackage;
typedef struct GetAccessibleChildFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint childIndex; JOBJECT64 rAccessibleContext; } GetAccessibleChildFromContextPackage;
typedef struct GetAccessibleParentFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; JOBJECT64 rAccessibleContext; } GetAccessibleParentFromContextPackage;
/**
****************************************************** * AccessibleTable packages ****************************************************** */
#define MAX_TABLE_SELECTIONS 64
// table information
typedef struct AccessibleTableInfoTag { JOBJECT64 caption; // AccesibleContext
JOBJECT64 summary; // AccessibleContext
jint rowCount; jint columnCount; JOBJECT64 accessibleContext; JOBJECT64 accessibleTable; } AccessibleTableInfo;
typedef struct GetAccessibleTableInfoPackageTag { long vmID; JOBJECT64 accessibleContext; AccessibleTableInfo rTableInfo; } GetAccessibleTableInfoPackage;
// table cell information
typedef struct AccessibleTableCellInfoTag { JOBJECT64 accessibleContext; jint index; jint row; jint column; jint rowExtent; jint columnExtent; jboolean isSelected; } AccessibleTableCellInfo;
typedef struct GetAccessibleTableCellInfoPackageTag { long vmID; JOBJECT64 accessibleTable; jint row; jint column; AccessibleTableCellInfo rTableCellInfo; } GetAccessibleTableCellInfoPackage;
typedef struct GetAccessibleTableRowHeaderPackageTag { long vmID; JOBJECT64 accessibleContext; AccessibleTableInfo rTableInfo; } GetAccessibleTableRowHeaderPackage;
typedef struct GetAccessibleTableColumnHeaderPackageTag { long vmID; JOBJECT64 accessibleContext; AccessibleTableInfo rTableInfo; } GetAccessibleTableColumnHeaderPackage;
typedef struct GetAccessibleTableRowDescriptionPackageTag { long vmID; JOBJECT64 accessibleContext; jint row; JOBJECT64 rAccessibleContext; } GetAccessibleTableRowDescriptionPackage;
typedef struct GetAccessibleTableColumnDescriptionPackageTag { long vmID; JOBJECT64 accessibleContext; jint column; JOBJECT64 rAccessibleContext; } GetAccessibleTableColumnDescriptionPackage;
typedef struct GetAccessibleTableRowSelectionCountPackageTag { long vmID; JOBJECT64 accessibleTable; jint rCount; } GetAccessibleTableRowSelectionCountPackage;
typedef struct IsAccessibleTableRowSelectedPackageTag { long vmID; JOBJECT64 accessibleTable; jint row; jboolean rResult; } IsAccessibleTableRowSelectedPackage;
typedef struct GetAccessibleTableRowSelectionsPackageTag { long vmID; JOBJECT64 accessibleTable; jint count; jint rSelections[MAX_TABLE_SELECTIONS]; } GetAccessibleTableRowSelectionsPackage;
typedef struct GetAccessibleTableColumnSelectionCountPackageTag { long vmID; JOBJECT64 accessibleTable; jint rCount; } GetAccessibleTableColumnSelectionCountPackage;
typedef struct IsAccessibleTableColumnSelectedPackageTag { long vmID; JOBJECT64 accessibleTable; jint column; jboolean rResult; } IsAccessibleTableColumnSelectedPackage;
typedef struct GetAccessibleTableColumnSelectionsPackageTag { long vmID; JOBJECT64 accessibleTable; jint count; jint rSelections[MAX_TABLE_SELECTIONS]; } GetAccessibleTableColumnSelectionsPackage;
typedef struct GetAccessibleTableRowPackageTag { long vmID; JOBJECT64 accessibleTable; jint index; jint rRow; } GetAccessibleTableRowPackage;
typedef struct GetAccessibleTableColumnPackageTag { long vmID; JOBJECT64 accessibleTable; jint index; jint rColumn; } GetAccessibleTableColumnPackage;
typedef struct GetAccessibleTableIndexPackageTag { long vmID; JOBJECT64 accessibleTable; jint row; jint column; jint rIndex; } GetAccessibleTableIndexPackage;
/**
****************************************************** * AccessibleRelationSet packages ****************************************************** */
#define MAX_RELATION_TARGETS 25
#define MAX_RELATIONS 5
typedef struct AccessibleRelationInfoTag { wchar_t key[SHORT_STRING_SIZE]; jint targetCount; JOBJECT64 targets[MAX_RELATION_TARGETS]; // AccessibleContexts
} AccessibleRelationInfo;
typedef struct AccessibleRelationSetInfoTag { jint relationCount; AccessibleRelationInfo relations[MAX_RELATIONS]; } AccessibleRelationSetInfo;
typedef struct GetAccessibleRelationSetPackageTag { long vmID; JOBJECT64 accessibleContext; AccessibleRelationSetInfo rAccessibleRelationSetInfo; } GetAccessibleRelationSetPackage;
/**
****************************************************** * AccessibleHypertext packagess ****************************************************** */
#define MAX_HYPERLINKS 64 // maximum number of hyperlinks returned
// hyperlink information
typedef struct AccessibleHyperlinkInfoTag { wchar_t text[SHORT_STRING_SIZE]; // the hyperlink text
jint startIndex; //index in the hypertext document where the link begins
jint endIndex; //index in the hypertext document where the link ends
JOBJECT64 accessibleHyperlink; // AccessibleHyperlink object
} AccessibleHyperlinkInfo;
// hypertext information
typedef struct AccessibleHypertextInfoTag { jint linkCount; // number of hyperlinks
AccessibleHyperlinkInfo links[MAX_HYPERLINKS]; // the hyperlinks
JOBJECT64 accessibleHypertext; // AccessibleHypertext object
} AccessibleHypertextInfo;
// struct for sending a message to get the hypertext for an AccessibleContext
typedef struct GetAccessibleHypertextPackageTag { long vmID; // the virtual machine ID
JOBJECT64 accessibleContext; // AccessibleContext with hypertext
AccessibleHypertextInfo rAccessibleHypertextInfo; // returned hypertext
} GetAccessibleHypertextPackage;
// struct for sending an message to activate a hyperlink
typedef struct ActivateAccessibleHyperlinkPackageTag { long vmID; // the virtual machine ID
JOBJECT64 accessibleContext; // AccessibleContext containing the link
JOBJECT64 accessibleHyperlink; // the link to activate
BOOL rResult; // hyperlink activation return value
} ActivateAccessibleHyperlinkPackage;
// struct for sending a message to get the number of hyperlinks in a component
typedef struct GetAccessibleHyperlinkCountPackageTag { long vmID; // the virtual machine ID
JOBJECT64 accessibleContext; // AccessibleContext containing AccessibleHypertext
jint rLinkCount; // link count return value
} GetAccessibleHyperlinkCountPackage;
// struct for sending a message to get the hypertext for an AccessibleContext
// starting at a specified index in the document
typedef struct GetAccessibleHypertextExtPackageTag { long vmID; // the virtual machine ID
JOBJECT64 accessibleContext; // AccessibleContext with hypertext
jint startIndex; // start index in document
AccessibleHypertextInfo rAccessibleHypertextInfo; // returned hypertext
BOOL rSuccess; // whether call succeeded
} GetAccessibleHypertextExtPackage;
// struct for sending a message to get the nth hyperlink in a document;
// maps to AccessibleHypertext.getLink
typedef struct GetAccessibleHyperlinkPackageTag { long vmID; // the virtual machine ID
JOBJECT64 hypertext; // AccessibleHypertext
jint linkIndex; // hyperlink index
AccessibleHyperlinkInfo rAccessibleHyperlinkInfo; // returned hyperlink
} GetAccessibleHyperlinkPackage;
// struct for sending a message to get the index into an array
// of hyperlinks that is associated with a character index in a
// document; maps to AccessibleHypertext.getLinkIndex
typedef struct GetAccessibleHypertextLinkIndexPackageTag { long vmID; // the virtual machine ID
JOBJECT64 hypertext; // AccessibleHypertext
jint charIndex; // character index in document
jint rLinkIndex; // returned hyperlink index
} GetAccessibleHypertextLinkIndexPackage;
/**
****************************************************** * Accessible Key Bindings packages ****************************************************** */
#define MAX_KEY_BINDINGS 10
// keyboard character modifiers
#define ACCESSIBLE_SHIFT_KEYSTROKE 1
#define ACCESSIBLE_CONTROL_KEYSTROKE 2
#define ACCESSIBLE_META_KEYSTROKE 4
#define ACCESSIBLE_ALT_KEYSTROKE 8
#define ACCESSIBLE_ALT_GRAPH_KEYSTROKE 16
#define ACCESSIBLE_BUTTON1_KEYSTROKE 32
#define ACCESSIBLE_BUTTON2_KEYSTROKE 64
#define ACCESSIBLE_BUTTON3_KEYSTROKE 128
#define ACCESSIBLE_FKEY_KEYSTROKE 256 // F key pressed, character contains 1-24
#define ACCESSIBLE_CONTROLCODE_KEYSTROKE 512 // Control code key pressed, character contains control code.
// The supported control code keys are:
#define ACCESSIBLE_VK_BACK_SPACE 8
#define ACCESSIBLE_VK_DELETE 127
#define ACCESSIBLE_VK_DOWN 40
#define ACCESSIBLE_VK_END 35
#define ACCESSIBLE_VK_HOME 36
#define ACCESSIBLE_VK_INSERT 155
#define ACCESSIBLE_VK_KP_DOWN 225
#define ACCESSIBLE_VK_KP_LEFT 226
#define ACCESSIBLE_VK_KP_RIGHT 227
#define ACCESSIBLE_VK_KP_UP 224
#define ACCESSIBLE_VK_LEFT 37
#define ACCESSIBLE_VK_PAGE_DOWN 34
#define ACCESSIBLE_VK_PAGE_UP 33
#define ACCESSIBLE_VK_RIGHT 39
#define ACCESSIBLE_VK_UP 38
// a key binding associates with a component
typedef struct AccessibleKeyBindingInfoTag { jchar character; // the key character
jint modifiers; // the key modifiers
} AccessibleKeyBindingInfo;
// all of the key bindings associated with a component
typedef struct AccessibleKeyBindingsTag { int keyBindingsCount; // number of key bindings
AccessibleKeyBindingInfo keyBindingInfo[MAX_KEY_BINDINGS]; } AccessibleKeyBindings;
// struct to get the key bindings associated with a component
typedef struct GetAccessibleKeyBindingsPackageTag { long vmID; // the virtual machine id
JOBJECT64 accessibleContext; // the component
AccessibleKeyBindings rAccessibleKeyBindings; // the key bindings
} GetAccessibleKeyBindingsPackage;
/**
****************************************************** * AccessibleIcon packages ****************************************************** */ #define MAX_ICON_INFO 8
// an icon assocated with a component
typedef struct AccessibleIconInfoTag { wchar_t description[SHORT_STRING_SIZE]; // icon description
jint height; // icon height
jint width; // icon width
} AccessibleIconInfo;
// all of the icons associated with a component
typedef struct AccessibleIconsTag { jint iconsCount; // number of icons
AccessibleIconInfo iconInfo[MAX_ICON_INFO]; // the icons
} AccessibleIcons;
// struct to get the icons associated with a component
typedef struct GetAccessibleIconsPackageTag { long vmID; // the virtual machine id
JOBJECT64 accessibleContext; // the component
AccessibleIcons rAccessibleIcons; // the icons
} GetAccessibleIconsPackage;
/**
****************************************************** * AccessibleAction packages ****************************************************** */ #define MAX_ACTION_INFO 256
#define MAX_ACTIONS_TO_DO 32
// an action assocated with a component
typedef struct AccessibleActionInfoTag { wchar_t name[SHORT_STRING_SIZE]; // action name
} AccessibleActionInfo;
// all of the actions associated with a component
typedef struct AccessibleActionsTag { jint actionsCount; // number of actions
AccessibleActionInfo actionInfo[MAX_ACTION_INFO]; // the action information
} AccessibleActions;
// struct for requesting the actions associated with a component
typedef struct GetAccessibleActionsPackageTag { long vmID; JOBJECT64 accessibleContext; // the component
AccessibleActions rAccessibleActions; // the actions
} GetAccessibleActionsPackage;
// list of AccessibleActions to do
typedef struct AccessibleActionsToDoTag { jint actionsCount; // number of actions to do
AccessibleActionInfo actions[MAX_ACTIONS_TO_DO];// the accessible actions to do
} AccessibleActionsToDo;
// struct for sending an message to do one or more actions
typedef struct DoAccessibleActionsPackageTag { long vmID; // the virtual machine ID
JOBJECT64 accessibleContext; // component to do the action
AccessibleActionsToDo actionsToDo; // the accessible actions to do
BOOL rResult; // action return value
jint failure; // index of action that failed if rResult is FALSE
} DoAccessibleActionsPackage;
/**
****************************************************** * AccessibleText packages ****************************************************** */
typedef struct GetAccessibleTextInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; jint x; jint y; AccessibleTextInfo rTextInfo; } GetAccessibleTextInfoPackage;
typedef struct GetAccessibleTextItemsPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; AccessibleTextItemsInfo rTextItemsInfo; } GetAccessibleTextItemsPackage;
typedef struct GetAccessibleTextSelectionInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; AccessibleTextSelectionInfo rTextSelectionItemsInfo; } GetAccessibleTextSelectionInfoPackage;
typedef struct GetAccessibleTextAttributeInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; AccessibleTextAttributesInfo rAttributeInfo; } GetAccessibleTextAttributeInfoPackage;
typedef struct GetAccessibleTextRectInfoPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; AccessibleTextRectInfo rTextRectInfo; } GetAccessibleTextRectInfoPackage;
typedef struct GetCaretLocationPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; AccessibleTextRectInfo rTextRectInfo; } GetCaretLocationPackage;
typedef struct GetAccessibleTextLineBoundsPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; jint rLineStart; jint rLineEnd; } GetAccessibleTextLineBoundsPackage;
typedef struct GetAccessibleTextRangePackageTag { long vmID; JOBJECT64 AccessibleContext; jint start; jint end; wchar_t rText[MAX_BUFFER_SIZE]; } GetAccessibleTextRangePackage;
/**
****************************************************** * * Utility method packages ****************************************************** */
typedef struct SetTextContentsPackageTag { long vmID; JOBJECT64 accessibleContext; // the text field
wchar_t text[MAX_STRING_SIZE]; // the text
BOOL rResult; } SetTextContentsPackage;
typedef struct GetParentWithRolePackageTag { long vmID; JOBJECT64 accessibleContext; wchar_t role[SHORT_STRING_SIZE]; // one of Accessible Roles above
JOBJECT64 rAccessibleContext; } GetParentWithRolePackage;
typedef struct GetTopLevelObjectPackageTag { long vmID; JOBJECT64 accessibleContext; JOBJECT64 rAccessibleContext; } GetTopLevelObjectPackage;
typedef struct GetParentWithRoleElseRootPackageTag { long vmID; JOBJECT64 accessibleContext; wchar_t role[SHORT_STRING_SIZE]; // one of Accessible Roles above
JOBJECT64 rAccessibleContext; } GetParentWithRoleElseRootPackage;
typedef struct GetObjectDepthPackageTag { long vmID; JOBJECT64 accessibleContext; jint rResult; } GetObjectDepthPackage;
typedef struct GetActiveDescendentPackageTag { long vmID; JOBJECT64 accessibleContext; JOBJECT64 rAccessibleContext; } GetActiveDescendentPackage;
/**
****************************************************** * AccessibleValue packages ****************************************************** */
typedef struct GetCurrentAccessibleValueFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; wchar_t rValue[SHORT_STRING_SIZE]; } GetCurrentAccessibleValueFromContextPackage;
typedef struct GetMaximumAccessibleValueFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; wchar_t rValue[SHORT_STRING_SIZE]; } GetMaximumAccessibleValueFromContextPackage;
typedef struct GetMinimumAccessibleValueFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; wchar_t rValue[SHORT_STRING_SIZE]; } GetMinimumAccessibleValueFromContextPackage;
/**
****************************************************** * AccessibleSelection packages ****************************************************** */
typedef struct AddAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; } AddAccessibleSelectionFromContextPackage;
typedef struct ClearAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; } ClearAccessibleSelectionFromContextPackage;
typedef struct GetAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; JOBJECT64 rAccessibleContext; } GetAccessibleSelectionFromContextPackage;
typedef struct GetAccessibleSelectionCountFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint rCount; } GetAccessibleSelectionCountFromContextPackage;
typedef struct IsAccessibleChildSelectedFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; jboolean rResult; } IsAccessibleChildSelectedFromContextPackage;
typedef struct RemoveAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; jint index; } RemoveAccessibleSelectionFromContextPackage;
typedef struct SelectAllAccessibleSelectionFromContextPackageTag { long vmID; JOBJECT64 AccessibleContext; } SelectAllAccessibleSelectionFromContextPackage;
/**
****************************************************** * Java Event Notification Registration packages ****************************************************** */
typedef struct AddJavaEventNotificationPackageTag { jlong type; //HWND DLLwindow;
ABHWND64 DLLwindow; } AddJavaEventNotificationPackage;
typedef struct RemoveJavaEventNotificationPackageTag { jlong type; //HWND DLLwindow;
ABHWND64 DLLwindow; } RemoveJavaEventNotificationPackage;
/**
****************************************************** * Accessibility Event Notification Registration packages ****************************************************** */
typedef struct AddAccessibilityEventNotificationPackageTag { jlong type; //HWND DLLwindow;
ABHWND64 DLLwindow; } AddAccessibilityEventNotificationPackage;
typedef struct RemoveAccessibilityEventNotificationPackageTag { jlong type; //HWND DLLwindow;
ABHWND64 DLLwindow; } RemoveAccessibilityEventNotificationPackage;
/**
****************************************************** * Accessibility Property Change Event packages ****************************************************** */
typedef struct PropertyCaretChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; jint oldPosition; jint newPosition; } PropertyCaretChangePackage;
typedef struct PropertyDescriptionChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldDescription[SHORT_STRING_SIZE]; wchar_t newDescription[SHORT_STRING_SIZE]; } PropertyDescriptionChangePackage;
typedef struct PropertyNameChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldName[SHORT_STRING_SIZE]; wchar_t newName[SHORT_STRING_SIZE]; } PropertyNameChangePackage;
typedef struct PropertySelectionChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PropertySelectionChangePackage;
typedef struct PropertyStateChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldState[SHORT_STRING_SIZE]; wchar_t newState[SHORT_STRING_SIZE]; } PropertyStateChangePackage;
typedef struct PropertyTextChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PropertyTextChangePackage;
typedef struct PropertyValueChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldValue[SHORT_STRING_SIZE]; wchar_t newValue[SHORT_STRING_SIZE]; } PropertyValueChangePackage;
typedef struct PropertyVisibleDataChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PropertyVisibleDataChangePackage;
typedef struct PropertyChildChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; JOBJECT64 oldChildAccessibleContext; JOBJECT64 newChildAccessibleContext; } PropertyChildChangePackage;
typedef struct PropertyActiveDescendentChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; JOBJECT64 oldActiveDescendentAccessibleContext; JOBJECT64 newActiveDescendentAccessibleContext; } PropertyActiveDescendentChangePackage;
// String format for newValue is:
// "type" one of "INSERT", "UPDATE" or "DELETE"
// "firstRow"
// "lastRow"
// "firstColumn"
// "lastColumn"
//
// oldValue is currently unused
//
typedef struct PropertyTableModelChangePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; wchar_t oldValue[SHORT_STRING_SIZE]; wchar_t newValue[SHORT_STRING_SIZE]; } PropertyTableModelChangePackage;
/**
****************************************************** * Property Change Event packages ****************************************************** */
/*
typedef struct PropertyChangePackageTag { long vmID; jobject Event; jobject AccessibleContextSource; char propertyName[SHORT_STRING_SIZE]; char oldValue[SHORT_STRING_SIZE]; // PropertyChangeEvent().getOldValue().toString()
char newValue[SHORT_STRING_SIZE]; // PropertyChangeEvent().getNewValue().toString()
} PropertyChangePackage; */
/*
* Java shutdown event package */ typedef struct JavaShutdownPackageTag { long vmID; } JavaShutdownPackage;
/**
****************************************************** * Focus Event packages ****************************************************** */
typedef struct FocusGainedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } FocusGainedPackage;
typedef struct FocusLostPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } FocusLostPackage;
/**
****************************************************** * Caret Event packages ****************************************************** */
typedef struct CaretUpdatePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } CaretUpdatePackage;
/**
****************************************************** * Mouse Event packages ****************************************************** */
typedef struct MouseClickedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MouseClickedPackage;
typedef struct MouseEnteredPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MouseEnteredPackage;
typedef struct MouseExitedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MouseExitedPackage;
typedef struct MousePressedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MousePressedPackage;
typedef struct MouseReleasedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MouseReleasedPackage;
/**
****************************************************** * Menu/PopupMenu Event packages ****************************************************** */
typedef struct MenuCanceledPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MenuCanceledPackage;
typedef struct MenuDeselectedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MenuDeselectedPackage;
typedef struct MenuSelectedPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } MenuSelectedPackage;
typedef struct PopupMenuCanceledPackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PopupMenuCanceledPackage;
typedef struct PopupMenuWillBecomeInvisiblePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PopupMenuWillBecomeInvisiblePackage;
typedef struct PopupMenuWillBecomeVisiblePackageTag { long vmID; JOBJECT64 Event; JOBJECT64 AccessibleContextSource; } PopupMenuWillBecomeVisiblePackage;
/**
****************************************************** * Additional methods for Teton ****************************************************** */
/**
* Gets the AccessibleName for a component based upon the JAWS algorithm. Returns * whether successful. * * Bug ID 4916682 - Implement JAWS AccessibleName policy */ typedef struct GetVirtualAccessibleNamePackageTag { long vmID; AccessibleContext accessibleContext; wchar_t rName[MAX_STRING_SIZE]; int len; } GetVirtualAccessibleNamePackage;
/**
* Request focus for a component. Returns whether successful; * * Bug ID 4944757 - requestFocus method needed */ typedef struct RequestFocusPackageTag { long vmID; AccessibleContext accessibleContext; } RequestFocusPackage;
/**
* Selects text between two indices. Selection includes the text at the start index * and the text at the end index. Returns whether successful; * * Bug ID 4944758 - selectTextRange method needed */ typedef struct SelectTextRangePackageTag { long vmID; AccessibleContext accessibleContext; jint startIndex; jint endIndex; } SelectTextRangePackage;
/**
* Gets the number of contiguous characters with the same attributes. * * Bug ID 4944761 - getTextAttributes between two indices method needed */ typedef struct GetTextAttributesInRangePackageTag { long vmID; AccessibleContext accessibleContext; jint startIndex; // start index (inclusive)
jint endIndex; // end index (inclusive)
AccessibleTextAttributesInfo attributes; // character attributes to match
short rLength; // number of contiguous characters with matching attributes
} GetTextAttributesInRangePackage;
#define MAX_VISIBLE_CHILDREN 256
// visible children information
typedef struct VisibleChildenInfoTag { int returnedChildrenCount; // number of children returned
AccessibleContext children[MAX_VISIBLE_CHILDREN]; // the visible children
} VisibleChildrenInfo;
// struct for sending a message to get the number of visible children
typedef struct GetVisibleChildrenCountPackageTag { long vmID; // the virtual machine ID
JOBJECT64 accessibleContext; // AccessibleContext of parent component
jint rChildrenCount; // visible children count return value
} GetVisibleChildrenCountPackage;
// struct for sending a message to get the hypertext for an AccessibleContext
// starting at a specified index in the document
typedef struct GetVisibleChildrenPackageTag { long vmID; // the virtual machine ID
JOBJECT64 accessibleContext; // AccessibleContext of parent component
jint startIndex; // start index for retrieving children
VisibleChildrenInfo rVisibleChildrenInfo; // returned info
BOOL rSuccess; // whether call succeeded
} GetVisibleChildrenPackage;
/**
* Set the caret to a text position. Returns whether successful; * * Bug ID 4944770 - setCaretPosition method needed */ typedef struct SetCaretPositionPackageTag { long vmID; AccessibleContext accessibleContext; jint position; } SetCaretPositionPackage;
/**
****************************************************** * Wrapping up all of the packages ****************************************************** */
/**
* What is the type of this package */ typedef enum PackageType {
cMemoryMappedFileCreatedPackage = 0x11000,
// many of these will go away...
cJavaVMCreatedPackage = 0x10000, cJavaVMDestroyedPackage, cWindowsATCreatedPackage, cWindowsATDestroyedPackage, cJavaVMPresentNotificationPackage, cWindowsATPresentNotificationPackage,
cReleaseJavaObjectPackage = 1, cGetAccessBridgeVersionPackage = 2,
cGetAccessibleContextFromHWNDPackage = 0x10, cIsJavaWindowPackage, cGetHWNDFromAccessibleContextPackage,
cGetAccessibleContextAtPackage = 0x100, cGetAccessibleContextWithFocusPackage, cGetAccessibleContextInfoPackage, cGetAccessibleChildFromContextPackage, cGetAccessibleParentFromContextPackage, cIsSameObjectPackage,
cGetAccessibleTextInfoPackage = 0x200, cGetAccessibleTextItemsPackage, cGetAccessibleTextSelectionInfoPackage, cGetAccessibleTextAttributeInfoPackage, cGetAccessibleTextRectInfoPackage, cGetAccessibleTextLineBoundsPackage, cGetAccessibleTextRangePackage,
cGetCurrentAccessibleValueFromContextPackage = 0x300, cGetMaximumAccessibleValueFromContextPackage, cGetMinimumAccessibleValueFromContextPackage,
cAddAccessibleSelectionFromContextPackage = 0x400, cClearAccessibleSelectionFromContextPackage, cGetAccessibleSelectionFromContextPackage, cGetAccessibleSelectionCountFromContextPackage, cIsAccessibleChildSelectedFromContextPackage, cRemoveAccessibleSelectionFromContextPackage, cSelectAllAccessibleSelectionFromContextPackage,
cAddJavaEventNotificationPackage = 0x900, cRemoveJavaEventNotificationPackage, cAddAccessibilityEventNotificationPackage, cRemoveAccessibilityEventNotificationPackage,
cPropertyChangePackage = 0x1000,
cJavaShutdownPackage = 0x1010, cFocusGainedPackage, cFocusLostPackage,
cCaretUpdatePackage = 0x1020,
cMouseClickedPackage = 0x1030, cMouseEnteredPackage, cMouseExitedPackage, cMousePressedPackage, cMouseReleasedPackage,
cMenuCanceledPackage = 0x1040, cMenuDeselectedPackage, cMenuSelectedPackage, cPopupMenuCanceledPackage, cPopupMenuWillBecomeInvisiblePackage, cPopupMenuWillBecomeVisiblePackage,
cPropertyCaretChangePackage = 0x1100, cPropertyDescriptionChangePackage, cPropertyNameChangePackage, cPropertySelectionChangePackage, cPropertyStateChangePackage, cPropertyTextChangePackage, cPropertyValueChangePackage, cPropertyVisibleDataChangePackage, cPropertyChildChangePackage, cPropertyActiveDescendentChangePackage,
// AccessibleTable
cGetAccessibleTableInfoPackage = 0x1200, cGetAccessibleTableCellInfoPackage,
cGetAccessibleTableRowHeaderPackage, cGetAccessibleTableColumnHeaderPackage,
cGetAccessibleTableRowDescriptionPackage, cGetAccessibleTableColumnDescriptionPackage,
cGetAccessibleTableRowSelectionCountPackage, cIsAccessibleTableRowSelectedPackage, cGetAccessibleTableRowSelectionsPackage,
cGetAccessibleTableColumnSelectionCountPackage, cIsAccessibleTableColumnSelectedPackage, cGetAccessibleTableColumnSelectionsPackage,
cGetAccessibleTableRowPackage, cGetAccessibleTableColumnPackage, cGetAccessibleTableIndexPackage,
cPropertyTableModelChangePackage,
// AccessibleRelationSet
cGetAccessibleRelationSetPackage = 0x1300,
// AccessibleHypertext
cGetAccessibleHypertextPackage = 0x1400, cActivateAccessibleHyperlinkPackage, cGetAccessibleHyperlinkCountPackage, cGetAccessibleHypertextExtPackage, cGetAccessibleHypertextLinkIndexPackage, cGetAccessibleHyperlinkPackage,
// Accessible KeyBinding, Icon and Action
cGetAccessibleKeyBindingsPackage = 0x1500, cGetAccessibleIconsPackage, cGetAccessibleActionsPackage, cDoAccessibleActionsPackage,
// Utility methods
cSetTextContentsPackage = 0x1600, cGetParentWithRolePackage, cGetTopLevelObjectPackage, cGetParentWithRoleElseRootPackage, cGetObjectDepthPackage, cGetActiveDescendentPackage,
// Additional methods for Teton
cGetVirtualAccessibleNamePackage = 0x1700, cRequestFocusPackage, cSelectTextRangePackage, cGetTextAttributesInRangePackage, cGetSameTextAttributesInRangePackage, cGetVisibleChildrenCountPackage, cGetVisibleChildrenPackage, cSetCaretPositionPackage, cGetCaretLocationPackage
} PackageType;
/**
* Union of all package contents */ typedef union AllPackagesTag {
// Initial Rendezvous packages
MemoryMappedFileCreatedPackage memoryMappedFileCreatedPackage;
JavaVMCreatedPackage javaVMCreatedPackage; JavaVMDestroyedPackage javaVMDestroyedPackage; WindowsATCreatedPackage windowsATCreatedPackage; WindowsATDestroyedPackage windowsATDestroyedPackage; JavaVMPresentNotificationPackage javaVMPresentNotificationPackage; WindowsATPresentNotificationPackage windowsATPresentNotificationPackage;
// Core packages
ReleaseJavaObjectPackage releaseJavaObject; GetAccessBridgeVersionPackage getAccessBridgeVersion;
// Window packages
GetAccessibleContextFromHWNDPackage getAccessibleContextFromHWND; GetHWNDFromAccessibleContextPackage getHWNDFromAccessibleContext;
// AccessibleContext packages
GetAccessibleContextAtPackage getAccessibleContextAt; GetAccessibleContextWithFocusPackage getAccessibleContextWithFocus; GetAccessibleContextInfoPackage getAccessibleContextInfo; GetAccessibleChildFromContextPackage getAccessibleChildFromContext; GetAccessibleParentFromContextPackage getAccessibleParentFromContext;
// AccessibleText packages
GetAccessibleTextInfoPackage getAccessibleTextInfo; GetAccessibleTextItemsPackage getAccessibleTextItems; GetAccessibleTextSelectionInfoPackage getAccessibleTextSelectionInfo; GetAccessibleTextAttributeInfoPackage getAccessibleTextAttributeInfo; GetAccessibleTextRectInfoPackage getAccessibleTextRectInfo; GetAccessibleTextLineBoundsPackage getAccessibleTextLineBounds; GetAccessibleTextRangePackage getAccessibleTextRange;
// AccessibleValue packages
GetCurrentAccessibleValueFromContextPackage getCurrentAccessibleValueFromContext; GetMaximumAccessibleValueFromContextPackage getMaximumAccessibleValueFromContext; GetMinimumAccessibleValueFromContextPackage getMinimumAccessibleValueFromContext;
// AccessibleSelection packages
AddAccessibleSelectionFromContextPackage addAccessibleSelectionFromContext; ClearAccessibleSelectionFromContextPackage clearAccessibleSelectionFromContext; GetAccessibleSelectionFromContextPackage getAccessibleSelectionFromContext; GetAccessibleSelectionCountFromContextPackage getAccessibleSelectionCountFromContext; IsAccessibleChildSelectedFromContextPackage isAccessibleChildSelectedFromContext; RemoveAccessibleSelectionFromContextPackage removeAccessibleSelectionFromContext; SelectAllAccessibleSelectionFromContextPackage selectAllAccessibleSelectionFromContext;
// Event Notification Registration packages
AddJavaEventNotificationPackage addJavaEventNotification; RemoveJavaEventNotificationPackage removeJavaEventNotification; AddAccessibilityEventNotificationPackage addAccessibilityEventNotification; RemoveAccessibilityEventNotificationPackage removeAccessibilityEventNotification;
// Event contents packages
// PropertyChangePackage propertyChange;
PropertyCaretChangePackage propertyCaretChangePackage; PropertyDescriptionChangePackage propertyDescriptionChangePackage; PropertyNameChangePackage propertyNameChangePackage; PropertySelectionChangePackage propertySelectionChangePackage; PropertyStateChangePackage propertyStateChangePackage; PropertyTextChangePackage propertyTextChangePackage; PropertyValueChangePackage propertyValueChangePackage; PropertyVisibleDataChangePackage propertyVisibleDataChangePackage; PropertyChildChangePackage propertyChildChangePackage; PropertyActiveDescendentChangePackage propertyActiveDescendentChangePackage;
PropertyTableModelChangePackage propertyTableModelChangePackage;
JavaShutdownPackage JavaShutdown; FocusGainedPackage focusGained; FocusLostPackage focusLost;
CaretUpdatePackage caretUpdate;
MouseClickedPackage mouseClicked; MouseEnteredPackage mouseEntered; MouseExitedPackage mouseExited; MousePressedPackage mousePressed; MouseReleasedPackage mouseReleased;
MenuCanceledPackage menuCanceled; MenuDeselectedPackage menuDeselected; MenuSelectedPackage menuSelected; PopupMenuCanceledPackage popupMenuCanceled; PopupMenuWillBecomeInvisiblePackage popupMenuWillBecomeInvisible; PopupMenuWillBecomeVisiblePackage popupMenuWillBecomeVisible;
// AccessibleRelationSet
GetAccessibleRelationSetPackage getAccessibleRelationSet;
// AccessibleHypertext
GetAccessibleHypertextPackage _getAccessibleHypertext; ActivateAccessibleHyperlinkPackage _activateAccessibleHyperlink; GetAccessibleHyperlinkCountPackage _getAccessibleHyperlinkCount; GetAccessibleHypertextExtPackage _getAccessibleHypertextExt; GetAccessibleHypertextLinkIndexPackage _getAccessibleHypertextLinkIndex; GetAccessibleHyperlinkPackage _getAccessibleHyperlink;
// Accessible KeyBinding, Icon and Action
GetAccessibleKeyBindingsPackage getAccessibleKeyBindings; GetAccessibleIconsPackage getAccessibleIcons; GetAccessibleActionsPackage getAccessibleActions; DoAccessibleActionsPackage doAccessibleActions;
// utility methods
SetTextContentsPackage _setTextContents; GetParentWithRolePackage _getParentWithRole; GetTopLevelObjectPackage _getTopLevelObject; GetParentWithRoleElseRootPackage _getParentWithRoleElseRoot; GetObjectDepthPackage _getObjectDepth; GetActiveDescendentPackage _getActiveDescendent;
// Additional methods for Teton
GetVirtualAccessibleNamePackage _getVirtualAccessibleName; RequestFocusPackage _requestFocus; SelectTextRangePackage _selectTextRange; GetTextAttributesInRangePackage _getTextAttributesInRange; GetVisibleChildrenCountPackage _getVisibleChildrenCount; GetVisibleChildrenPackage _getVisibleChildren; SetCaretPositionPackage _setCaretPosition;
} AllPackages;
/**
* Union of all Java-initiated package contents */ typedef union JavaInitiatedPackagesTag {
// Initial Rendezvous packages
JavaVMCreatedPackage javaVMCreatedPackage; JavaVMDestroyedPackage javaVMDestroyedPackage; JavaVMPresentNotificationPackage javaVMPresentNotificationPackage;
// Event contents packages
PropertyCaretChangePackage propertyCaretChangePackage; PropertyDescriptionChangePackage propertyDescriptionChangePackage; PropertyNameChangePackage propertyNameChangePackage; PropertySelectionChangePackage propertySelectionChangePackage; PropertyStateChangePackage propertyStateChangePackage; PropertyTextChangePackage propertyTextChangePackage; PropertyValueChangePackage propertyValueChangePackage; PropertyVisibleDataChangePackage propertyVisibleDataChangePackage; PropertyChildChangePackage propertyChildChangePackage; PropertyActiveDescendentChangePackage propertyActiveDescendentChangePackage;
PropertyTableModelChangePackage propertyTableModelChangePackage;
JavaShutdownPackage JavaShutdown; FocusGainedPackage focusGained; FocusLostPackage focusLost;
CaretUpdatePackage caretUpdate;
MouseClickedPackage mouseClicked; MouseEnteredPackage mouseEntered; MouseExitedPackage mouseExited; MousePressedPackage mousePressed; MouseReleasedPackage mouseReleased;
MenuCanceledPackage menuCanceled; MenuDeselectedPackage menuDeselected; MenuSelectedPackage menuSelected; PopupMenuCanceledPackage popupMenuCanceled; PopupMenuWillBecomeInvisiblePackage popupMenuWillBecomeInvisible; PopupMenuWillBecomeVisiblePackage popupMenuWillBecomeVisible;
} JavaInitiatedPackages;
/**
* Union of all Windows-initiated package contents */ typedef union WindowsInitiatedPackagesTag {
// Initial Rendezvous packages
MemoryMappedFileCreatedPackage memoryMappedFileCreatedPackage;
WindowsATCreatedPackage windowsATCreatedPackage; WindowsATDestroyedPackage windowsATDestroyedPackage; WindowsATPresentNotificationPackage windowsATPresentNotificationPackage;
// Core packages
ReleaseJavaObjectPackage releaseJavaObject; GetAccessBridgeVersionPackage getAccessBridgeVersion;
// Window packages
GetAccessibleContextFromHWNDPackage getAccessibleContextFromHWND; GetHWNDFromAccessibleContextPackage getHWNDFromAccessibleContext;
// AccessibleContext packages
GetAccessibleContextAtPackage getAccessibleContextAt; GetAccessibleContextWithFocusPackage getAccessibleContextWithFocus; GetAccessibleContextInfoPackage getAccessibleContextInfo; GetAccessibleChildFromContextPackage getAccessibleChildFromContext; GetAccessibleParentFromContextPackage getAccessibleParentFromContext;
// AccessibleText packages
GetAccessibleTextInfoPackage getAccessibleTextInfo; GetAccessibleTextItemsPackage getAccessibleTextItems; GetAccessibleTextSelectionInfoPackage getAccessibleTextSelectionInfo; GetAccessibleTextAttributeInfoPackage getAccessibleTextAttributeInfo; GetAccessibleTextRectInfoPackage getAccessibleTextRectInfo; GetAccessibleTextLineBoundsPackage getAccessibleTextLineBounds; GetAccessibleTextRangePackage getAccessibleTextRange;
// AccessibleValue packages
GetCurrentAccessibleValueFromContextPackage getCurrentAccessibleValueFromContext; GetMaximumAccessibleValueFromContextPackage getMaximumAccessibleValueFromContext; GetMinimumAccessibleValueFromContextPackage getMinimumAccessibleValueFromContext;
// AccessibleSelection packages
AddAccessibleSelectionFromContextPackage addAccessibleSelectionFromContext; ClearAccessibleSelectionFromContextPackage clearAccessibleSelectionFromContext; GetAccessibleSelectionFromContextPackage getAccessibleSelectionFromContext; GetAccessibleSelectionCountFromContextPackage getAccessibleSelectionCountFromContext; IsAccessibleChildSelectedFromContextPackage isAccessibleChildSelectedFromContext; RemoveAccessibleSelectionFromContextPackage removeAccessibleSelectionFromContext; SelectAllAccessibleSelectionFromContextPackage selectAllAccessibleSelectionFromContext;
// Event Notification Registration packages
AddJavaEventNotificationPackage addJavaEventNotification; RemoveJavaEventNotificationPackage removeJavaEventNotification; AddAccessibilityEventNotificationPackage addAccessibilityEventNotification; RemoveAccessibilityEventNotificationPackage removeAccessibilityEventNotification;
// AccessibleTable
GetAccessibleTableInfoPackage _getAccessibleTableInfo; GetAccessibleTableCellInfoPackage _getAccessibleTableCellInfo;
GetAccessibleTableRowHeaderPackage _getAccessibleTableRowHeader; GetAccessibleTableColumnHeaderPackage _getAccessibleTableColumnHeader;
GetAccessibleTableRowDescriptionPackage _getAccessibleTableRowDescription; GetAccessibleTableColumnDescriptionPackage _getAccessibleTableColumnDescription;
GetAccessibleTableRowSelectionCountPackage _getAccessibleTableRowSelectionCount; IsAccessibleTableRowSelectedPackage _isAccessibleTableRowSelected; GetAccessibleTableRowSelectionsPackage _getAccessibleTableRowSelections;
GetAccessibleTableColumnSelectionCountPackage _getAccessibleTableColumnSelectionCount; IsAccessibleTableColumnSelectedPackage _isAccessibleTableColumnSelected; GetAccessibleTableColumnSelectionsPackage _getAccessibleTableColumnSelections;
GetAccessibleTableRowPackage _getAccessibleTableRow; GetAccessibleTableColumnPackage _getAccessibleTableColumn; GetAccessibleTableIndexPackage _getAccessibleTableIndex;
// AccessibleRelationSet
GetAccessibleRelationSetPackage _getAccessibleRelationSet;
// Accessible KeyBindings, Icons and Actions
GetAccessibleKeyBindingsPackage _getAccessibleKeyBindings; GetAccessibleIconsPackage _getAccessibleIcons; GetAccessibleActionsPackage _getAccessibleActions; DoAccessibleActionsPackage _doAccessibleActions;
IsSameObjectPackage _isSameObject;
// utility methods
SetTextContentsPackage _setTextContents; GetParentWithRolePackage _getParentWithRole; GetTopLevelObjectPackage _getTopLevelObject; GetParentWithRoleElseRootPackage _getParentWithRoleElseRoot; GetObjectDepthPackage _getObjectDepth; GetActiveDescendentPackage _getActiveDescendent;
// Additional methods for Teton
GetVirtualAccessibleNamePackage _getVirtualAccessibleName; RequestFocusPackage _requestFocus; SelectTextRangePackage _selectTextRange; GetTextAttributesInRangePackage _getTextAttributesInRange; GetVisibleChildrenCountPackage _getVisibleChildrenCount; GetVisibleChildrenPackage _getVisibleChildren; SetCaretPositionPackage _setCaretPosition;
} WindowsInitiatedPackages;
#ifdef __cplusplus
} #endif
#endif
|