Path: blob/master/src/jdk.accessibility/windows/native/libwindowsaccessbridge/AccessBridgeWindowsEntryPoints.h
40957 views
/*1* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425/*26* Glue routines called by Windows AT into the WindowsAccessBridge dll27*/2829#ifndef __AccessBridgeWindowsEntryPoints_H__30#define __AccessBridgeWindowsEntryPoints_H__3132#include <windows.h>33#include <jni.h>3435#include "AccessBridgePackages.h"36#include "AccessBridgeCallbacks.h"3738#ifdef __cplusplus39extern "C" {40#endif4142void Windows_run();4344void releaseJavaObject(long vmID, JOBJECT64 object);45void getVersionInfo(long vmID, AccessBridgeVersionInfo *info);4647// Window related functions48HWND getTopLevelHWND(HWND descendent);49BOOL isJavaWindow(HWND window);50BOOL getAccessibleContextFromHWND(HWND window, long *vmID, JOBJECT64 *AccessibleContext);51HWND getHWNDFromAccessibleContext(long vmID, JOBJECT64 accessibleContext);5253// returns whether two objects are the same54BOOL isSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2);5556// Accessible Context functions57BOOL getAccessibleContextAt(long vmID, JOBJECT64 AccessibleContextParent,58jint x, jint y, JOBJECT64 *AccessibleContext);59BOOL getAccessibleContextWithFocus(HWND window, long *vmID, JOBJECT64 *AccessibleContext);60BOOL getAccessibleContextInfo(long vmID, JOBJECT64 AccessibleContext, AccessibleContextInfo *info);61JOBJECT64 getAccessibleChildFromContext(long vmID, JOBJECT64 AccessibleContext, jint childIndex);62JOBJECT64 getAccessibleParentFromContext(long vmID, JOBJECT64 AccessibleContext);6364/* begin AccessibleTable */65BOOL getAccessibleTableInfo(long vmID, JOBJECT64 acParent, AccessibleTableInfo *tableInfo);66BOOL getAccessibleTableCellInfo(long vmID, JOBJECT64 accessibleTable, jint row, jint column,67AccessibleTableCellInfo *tableCellInfo);6869BOOL getAccessibleTableRowHeader(long vmID, JOBJECT64 acParent, AccessibleTableInfo *tableInfo);70BOOL getAccessibleTableColumnHeader(long vmID, JOBJECT64 acParent, AccessibleTableInfo *tableInfo);7172JOBJECT64 getAccessibleTableRowDescription(long vmID, JOBJECT64 acParent, jint row);73JOBJECT64 getAccessibleTableColumnDescription(long vmID, JOBJECT64 acParent, jint column);7475jint getAccessibleTableRowSelectionCount(long vmID, JOBJECT64 accessibleTable);76BOOL isAccessibleTableRowSelected(long vmID, JOBJECT64 accessibleTable, jint row);77BOOL getAccessibleTableRowSelections(long vmID, JOBJECT64 accessibleTable, jint count,78jint *selections);7980jint getAccessibleTableColumnSelectionCount(long vmID, JOBJECT64 accessibleTable);81BOOL isAccessibleTableColumnSelected(long vmID, JOBJECT64 accessibleTable, jint column);82BOOL getAccessibleTableColumnSelections(long vmID, JOBJECT64 accessibleTable, jint count,83jint *selections);8485jint getAccessibleTableRow(long vmID, JOBJECT64 accessibleTable, jint index);86jint getAccessibleTableColumn(long vmID, JOBJECT64 accessibleTable, jint index);87jint getAccessibleTableIndex(long vmID, JOBJECT64 accessibleTable, jint row, jint column);8889/* end AccessibleTable */9091BOOL getAccessibleRelationSet(long vmID, JOBJECT64 accessibleContext,92AccessibleRelationSetInfo *relationSetInfo);9394// AccessibleHypertext methods95BOOL getAccessibleHypertext(long vmID, JOBJECT64 accessibleContext, AccessibleHypertextInfo *hypertextInfo);9697BOOL activateAccessibleHyperlink(long vmID, JOBJECT64 accessibleContext, JOBJECT64 accessibleHyperlink);9899jint getAccessibleHyperlinkCount(const long vmID,100const AccessibleContext accessibleContext);101102BOOL getAccessibleHypertextExt(const long vmID,103const AccessibleContext accessibleContext,104const jint nStartIndex,105/* OUT */ AccessibleHypertextInfo *hypertextInfo);106107jint getAccessibleHypertextLinkIndex(const long vmID,108const AccessibleHypertext hypertext,109const jint nIndex);110111BOOL getAccessibleHyperlink(const long vmID,112const AccessibleHypertext hypertext,113const jint nIndex,114/* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo);115116117/* Accessible KeyBindings, Icons and Actions */118BOOL getAccessibleKeyBindings(long vmID, JOBJECT64 accessibleContext,119AccessibleKeyBindings *keyBindings);120121BOOL getAccessibleIcons(long vmID, JOBJECT64 accessibleContext,122AccessibleIcons *icons);123124BOOL getAccessibleActions(long vmID, JOBJECT64 accessibleContext,125AccessibleActions *actions);126127BOOL doAccessibleActions(long vmID, JOBJECT64 accessibleContext,128AccessibleActionsToDo *actionsToDo, jint *failure);129130/* ----- Additional AccessibleHypertext methods for Teton */131132133jint getAccessibleHypertextLinkCount(const long vmID,134const AccessibleContext accessibleContext);135136BOOL getAccessibleHypertextExt(const long vmID,137const AccessibleContext accessibleContext,138const jint nStartIndex,139/* OUT */ AccessibleHypertextInfo *hypertextInfo);140141jint getAccessibleHypertextLinkIndex(const long vmID,142const AccessibleContext accessibleContext,143const jint nIndex);144145BOOL getAccessibleHyperlink(const long vmID,146const AccessibleContext accessibleContext,147const jint nIndex,148/* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo);149150151/* Additional utility methods */152BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text);153154AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext, const wchar_t *role);155156AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext);157158AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext, const wchar_t *role);159160int getObjectDepth (const long vmID, const AccessibleContext accessibleContext);161162AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext);163164/**165* Additional methods for Teton166*/167168/**169* Gets the AccessibleName for a component based upon the JAWS algorithm. Returns170* whether successful.171*172* Bug ID 4916682 - Implement JAWS AccessibleName policy173*/174BOOL getVirtualAccessibleName(long vmID, AccessibleContext accessibleContext, wchar_t *name, int len);175176/**177* Request focus for a component. Returns whether successful;178*179* Bug ID 4944757 - requestFocus method needed180*/181BOOL requestFocus(long vmID, AccessibleContext accessibleContext);182183/**184* Selects text between two indices. Selection includes the text at the start index185* and the text at the end index. Returns whether successful;186*187* Bug ID 4944758 - selectTextRange method needed188*/189BOOL selectTextRange(long vmID, AccessibleContext accessibleContext, int startIndex, int endIndex);190191/**192* Get text attributes between two indices. The attribute list includes the text at the193* start index and the text at the end index. Returns whether successful;194*195* Bug ID 4944761 - getTextAttributes between two indices method needed196*/197BOOL getTextAttributesInRange(long vmID, AccessibleContext accessibleContext, int startIndex, int endIndex,198AccessibleTextAttributesInfo *attributes, short *len);199200/**201* Returns the number of visible children of a component. Returns -1 on error.202*203* Bug ID 4944762- getVisibleChildren for list-like components needed204*/205int getVisibleChildrenCount(long vmID, AccessibleContext accessibleContext);206207/**208* Gets the visible children of an AccessibleContext. Returns whether successful;209*210* Bug ID 4944762- getVisibleChildren for list-like components needed211*/212BOOL getVisibleChildren(long vmID, AccessibleContext accessibleContext, int startIndex,213VisibleChildrenInfo *visibleChildrenInfo);214215/**216* Set the caret to a text position. Returns whether successful;217*218* Bug ID 4944770 - setCaretPosition method needed219*/220BOOL setCaretPosition(long vmID, AccessibleContext accessibleContext, int position);221222/**223* Gets the text caret bounding rectangle224*/225BOOL getCaretLocation(long vmID, JOBJECT64 AccessibleContext, AccessibleTextRectInfo *rectInfo, jint index);226227// Accessible Text functions228BOOL getAccessibleTextInfo(long vmID, JOBJECT64 AccessibleContext, AccessibleTextInfo *textInfo, jint x, jint y);229BOOL getAccessibleTextItems(long vmID, JOBJECT64 AccessibleContext, AccessibleTextItemsInfo *textItems, jint index);230BOOL getAccessibleTextSelectionInfo(long vmID, JOBJECT64 AccessibleContext, AccessibleTextSelectionInfo *selectionInfo);231BOOL getAccessibleTextAttributes(long vmID, JOBJECT64 AccessibleContext, jint index, AccessibleTextAttributesInfo *attributes);232BOOL getAccessibleTextRect(long vmID, JOBJECT64 AccessibleContext, AccessibleTextRectInfo *rectInfo, jint index);233BOOL getAccessibleTextLineBounds(long vmID, JOBJECT64 AccessibleContext, jint index, jint *startIndex, jint *endIndex);234BOOL getAccessibleTextRange(long vmID, JOBJECT64 AccessibleContext, jint start, jint end, wchar_t *text, short len);235236// Accessible Value methods237BOOL getCurrentAccessibleValueFromContext(long vmID,JOBJECT64 AccessibleContext, wchar_t *value, short len);238BOOL getMaximumAccessibleValueFromContext(long vmID,JOBJECT64 AccessibleContext, wchar_t *value, short len);239BOOL getMinimumAccessibleValueFromContext(long vmID,JOBJECT64 AccessibleContext, wchar_t *value, short len);240241// Accessible Selection methods242void addAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext, int i);243void clearAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext);244JOBJECT64 getAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext, int i);245int getAccessibleSelectionCountFromContext(long vmID,JOBJECT64 AccessibleContext);246BOOL isAccessibleChildSelectedFromContext(long vmID,JOBJECT64 AccessibleContext, int i);247void removeAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext, int i);248void selectAllAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext);249250251// PropertyChange Event registry routines252void setPropertyChangeFP(AccessBridge_PropertyChangeFP fp);253254// Java application shutdown255void setJavaShutdownFP(AccessBridge_JavaShutdownFP fp);256257// Focus Event registry routines258void setFocusGainedFP(AccessBridge_FocusGainedFP fp);259void setFocusLostFP(AccessBridge_FocusLostFP fp);260261// Caret Event registry routines262void setCaretUpdateFP(AccessBridge_CaretUpdateFP fp);263264// Mouse Event registry routines265void setMouseClickedFP(AccessBridge_MouseClickedFP fp);266void setMouseEnteredFP(AccessBridge_MouseEnteredFP fp);267void setMouseExitedFP(AccessBridge_MouseExitedFP fp);268void setMousePressedFP(AccessBridge_MousePressedFP fp);269void setMouseReleasedFP(AccessBridge_MouseReleasedFP fp);270271// Menu/PopupMenu Event registry routines272void setMenuCanceledFP(AccessBridge_MenuCanceledFP fp);273void setMenuDeselectedFP(AccessBridge_MenuDeselectedFP fp);274void setMenuSelectedFP(AccessBridge_MenuSelectedFP fp);275void setPopupMenuCanceledFP(AccessBridge_PopupMenuCanceledFP fp);276void setPopupMenuWillBecomeInvisibleFP(AccessBridge_PopupMenuWillBecomeInvisibleFP fp);277void setPopupMenuWillBecomeVisibleFP(AccessBridge_PopupMenuWillBecomeVisibleFP fp);278279// Accessibility PropertyChange Event registry routines280void setPropertyNameChangeFP(AccessBridge_PropertyNameChangeFP fp);281void setPropertyDescriptionChangeFP(AccessBridge_PropertyDescriptionChangeFP fp);282void setPropertyStateChangeFP(AccessBridge_PropertyStateChangeFP fp);283void setPropertyValueChangeFP(AccessBridge_PropertyValueChangeFP fp);284void setPropertySelectionChangeFP(AccessBridge_PropertySelectionChangeFP fp);285void setPropertyTextChangeFP(AccessBridge_PropertyTextChangeFP fp);286void setPropertyCaretChangeFP(AccessBridge_PropertyCaretChangeFP fp);287void setPropertyVisibleDataChangeFP(AccessBridge_PropertyVisibleDataChangeFP fp);288void setPropertyChildChangeFP(AccessBridge_PropertyChildChangeFP fp);289void setPropertyActiveDescendentChangeFP(AccessBridge_PropertyActiveDescendentChangeFP fp);290291void setPropertyTableModelChangeFP(AccessBridge_PropertyTableModelChangeFP fp);292293294295#ifdef __cplusplus296}297#endif298299#endif300301302