Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/jdk.accessibility/windows/native/include/bridge/AccessBridgeCalls.h
40971 views
1
/*
2
* Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
/* Note: In addition to this header file AccessBridgeCalls.c must be compiled and
27
* linked to your application. AccessBridgeCalls.c implements the Java Access
28
* Bridge API and also hides the complexities associated with interfacing to the
29
* associated Java Access Bridge DLL which is installed when Java is installed.
30
*
31
* AccessBridgeCalls.c is available for download from the OpenJDK repository using
32
* the following link:
33
*
34
* http://hg.openjdk.java.net/jdk9/jdk9/jdk/raw-file/tip/src/jdk.accessibility/windows/native/bridge/AccessBridgeCalls.c
35
*
36
* Also note that the API is used in the jaccessinspector and jaccesswalker tools.
37
* The source for those tools is available in the OpenJDK repository at these links:
38
*
39
* http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/tip/src/jdk.accessibility/windows/native/jaccessinspector/jaccessinspector.cpp
40
* http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/tip/src/jdk.accessibility/windows/native/jaccesswalker/jaccesswalker.cpp
41
*
42
*
43
*/
44
45
/*
46
* Wrapper functions around calls to the AccessBridge DLL
47
*/
48
49
#include <windows.h>
50
#include <jni.h>
51
#include "AccessBridgeCallbacks.h"
52
#include "AccessBridgePackages.h"
53
54
#ifdef __cplusplus
55
extern "C" {
56
#endif
57
58
#define null NULL
59
60
typedef JOBJECT64 AccessibleContext;
61
typedef JOBJECT64 AccessibleText;
62
typedef JOBJECT64 AccessibleValue;
63
typedef JOBJECT64 AccessibleSelection;
64
typedef JOBJECT64 Java_Object;
65
typedef JOBJECT64 PropertyChangeEvent;
66
typedef JOBJECT64 FocusEvent;
67
typedef JOBJECT64 CaretEvent;
68
typedef JOBJECT64 MouseEvent;
69
typedef JOBJECT64 MenuEvent;
70
typedef JOBJECT64 AccessibleTable;
71
typedef JOBJECT64 AccessibleHyperlink;
72
typedef JOBJECT64 AccessibleHypertext;
73
74
75
typedef void (*Windows_runFP) ();
76
77
typedef void (*SetPropertyChangeFP) (AccessBridge_PropertyChangeFP fp);
78
79
typedef void (*SetJavaShutdownFP) (AccessBridge_JavaShutdownFP fp);
80
typedef void (*SetFocusGainedFP) (AccessBridge_FocusGainedFP fp);
81
typedef void (*SetFocusLostFP) (AccessBridge_FocusLostFP fp);
82
83
typedef void (*SetCaretUpdateFP) (AccessBridge_CaretUpdateFP fp);
84
85
typedef void (*SetMouseClickedFP) (AccessBridge_MouseClickedFP fp);
86
typedef void (*SetMouseEnteredFP) (AccessBridge_MouseEnteredFP fp);
87
typedef void (*SetMouseExitedFP) (AccessBridge_MouseExitedFP fp);
88
typedef void (*SetMousePressedFP) (AccessBridge_MousePressedFP fp);
89
typedef void (*SetMouseReleasedFP) (AccessBridge_MouseReleasedFP fp);
90
91
typedef void (*SetMenuCanceledFP) (AccessBridge_MenuCanceledFP fp);
92
typedef void (*SetMenuDeselectedFP) (AccessBridge_MenuDeselectedFP fp);
93
typedef void (*SetMenuSelectedFP) (AccessBridge_MenuSelectedFP fp);
94
typedef void (*SetPopupMenuCanceledFP) (AccessBridge_PopupMenuCanceledFP fp);
95
typedef void (*SetPopupMenuWillBecomeInvisibleFP) (AccessBridge_PopupMenuWillBecomeInvisibleFP fp);
96
typedef void (*SetPopupMenuWillBecomeVisibleFP) (AccessBridge_PopupMenuWillBecomeVisibleFP fp);
97
98
typedef void (*SetPropertyNameChangeFP) (AccessBridge_PropertyNameChangeFP fp);
99
typedef void (*SetPropertyDescriptionChangeFP) (AccessBridge_PropertyDescriptionChangeFP fp);
100
typedef void (*SetPropertyStateChangeFP) (AccessBridge_PropertyStateChangeFP fp);
101
typedef void (*SetPropertyValueChangeFP) (AccessBridge_PropertyValueChangeFP fp);
102
typedef void (*SetPropertySelectionChangeFP) (AccessBridge_PropertySelectionChangeFP fp);
103
typedef void (*SetPropertyTextChangeFP) (AccessBridge_PropertyTextChangeFP fp);
104
typedef void (*SetPropertyCaretChangeFP) (AccessBridge_PropertyCaretChangeFP fp);
105
typedef void (*SetPropertyVisibleDataChangeFP) (AccessBridge_PropertyVisibleDataChangeFP fp);
106
typedef void (*SetPropertyChildChangeFP) (AccessBridge_PropertyChildChangeFP fp);
107
typedef void (*SetPropertyActiveDescendentChangeFP) (AccessBridge_PropertyActiveDescendentChangeFP fp);
108
109
typedef void (*SetPropertyTableModelChangeFP) (AccessBridge_PropertyTableModelChangeFP fp);
110
111
typedef void (*ReleaseJavaObjectFP) (long vmID, Java_Object object);
112
113
typedef BOOL (*GetVersionInfoFP) (long vmID, AccessBridgeVersionInfo *info);
114
115
typedef BOOL (*IsJavaWindowFP) (HWND window);
116
typedef BOOL (*IsSameObjectFP) (long vmID, JOBJECT64 obj1, JOBJECT64 obj2);
117
typedef BOOL (*GetAccessibleContextFromHWNDFP) (HWND window, long *vmID, AccessibleContext *ac);
118
typedef HWND (*getHWNDFromAccessibleContextFP) (long vmID, AccessibleContext ac);
119
120
typedef BOOL (*GetAccessibleContextAtFP) (long vmID, AccessibleContext acParent,
121
jint x, jint y, AccessibleContext *ac);
122
typedef BOOL (*GetAccessibleContextWithFocusFP) (HWND window, long *vmID, AccessibleContext *ac);
123
typedef BOOL (*GetAccessibleContextInfoFP) (long vmID, AccessibleContext ac, AccessibleContextInfo *info);
124
typedef AccessibleContext (*GetAccessibleChildFromContextFP) (long vmID, AccessibleContext ac, jint i);
125
typedef AccessibleContext (*GetAccessibleParentFromContextFP) (long vmID, AccessibleContext ac);
126
127
/* begin AccessibleTable */
128
typedef BOOL (*getAccessibleTableInfoFP) (long vmID, AccessibleContext ac, AccessibleTableInfo *tableInfo);
129
typedef BOOL (*getAccessibleTableCellInfoFP) (long vmID, AccessibleTable accessibleTable,
130
jint row, jint column, AccessibleTableCellInfo *tableCellInfo);
131
132
typedef BOOL (*getAccessibleTableRowHeaderFP) (long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);
133
typedef BOOL (*getAccessibleTableColumnHeaderFP) (long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);
134
135
typedef AccessibleContext (*getAccessibleTableRowDescriptionFP) (long vmID, AccessibleContext acParent, jint row);
136
typedef AccessibleContext (*getAccessibleTableColumnDescriptionFP) (long vmID, AccessibleContext acParent, jint column);
137
138
typedef jint (*getAccessibleTableRowSelectionCountFP) (long vmID, AccessibleTable table);
139
typedef BOOL (*isAccessibleTableRowSelectedFP) (long vmID, AccessibleTable table, jint row);
140
typedef BOOL (*getAccessibleTableRowSelectionsFP) (long vmID, AccessibleTable table, jint count,
141
jint *selections);
142
143
typedef jint (*getAccessibleTableColumnSelectionCountFP) (long vmID, AccessibleTable table);
144
typedef BOOL (*isAccessibleTableColumnSelectedFP) (long vmID, AccessibleTable table, jint column);
145
typedef BOOL (*getAccessibleTableColumnSelectionsFP) (long vmID, AccessibleTable table, jint count,
146
jint *selections);
147
148
typedef jint (*getAccessibleTableRowFP) (long vmID, AccessibleTable table, jint index);
149
typedef jint (*getAccessibleTableColumnFP) (long vmID, AccessibleTable table, jint index);
150
typedef jint (*getAccessibleTableIndexFP) (long vmID, AccessibleTable table, jint row, jint column);
151
/* end AccessibleTable */
152
153
/* AccessibleRelationSet */
154
typedef BOOL (*getAccessibleRelationSetFP) (long vmID, AccessibleContext accessibleContext,
155
AccessibleRelationSetInfo *relationSetInfo);
156
157
/* AccessibleHypertext */
158
typedef BOOL (*getAccessibleHypertextFP)(long vmID, AccessibleContext accessibleContext,
159
AccessibleHypertextInfo *hypertextInfo);
160
161
typedef BOOL (*activateAccessibleHyperlinkFP)(long vmID, AccessibleContext accessibleContext,
162
AccessibleHyperlink accessibleHyperlink);
163
164
typedef jint (*getAccessibleHyperlinkCountFP)(const long vmID,
165
const AccessibleContext accessibleContext);
166
167
typedef BOOL (*getAccessibleHypertextExtFP) (const long vmID,
168
const AccessibleContext accessibleContext,
169
const jint nStartIndex,
170
AccessibleHypertextInfo *hypertextInfo);
171
172
typedef jint (*getAccessibleHypertextLinkIndexFP)(const long vmID,
173
const AccessibleHypertext hypertext,
174
const jint nIndex);
175
176
typedef BOOL (*getAccessibleHyperlinkFP)(const long vmID,
177
const AccessibleHypertext hypertext,
178
const jint nIndex,
179
AccessibleHyperlinkInfo *hyperlinkInfo);
180
181
182
/* Accessible KeyBindings, Icons and Actions */
183
typedef BOOL (*getAccessibleKeyBindingsFP)(long vmID, AccessibleContext accessibleContext,
184
AccessibleKeyBindings *keyBindings);
185
186
typedef BOOL (*getAccessibleIconsFP)(long vmID, AccessibleContext accessibleContext,
187
AccessibleIcons *icons);
188
189
typedef BOOL (*getAccessibleActionsFP)(long vmID, AccessibleContext accessibleContext,
190
AccessibleActions *actions);
191
192
typedef BOOL (*doAccessibleActionsFP)(long vmID, AccessibleContext accessibleContext,
193
AccessibleActionsToDo *actionsToDo, jint *failure);
194
195
196
/* AccessibleText */
197
198
typedef BOOL (*GetAccessibleTextInfoFP) (long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y);
199
typedef BOOL (*GetAccessibleTextItemsFP) (long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index);
200
typedef BOOL (*GetAccessibleTextSelectionInfoFP) (long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection);
201
typedef BOOL (*GetAccessibleTextAttributesFP) (long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes);
202
typedef BOOL (*GetAccessibleTextRectFP) (long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index);
203
typedef BOOL (*GetAccessibleTextLineBoundsFP) (long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex);
204
typedef BOOL (*GetAccessibleTextRangeFP) (long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len);
205
206
typedef BOOL (*GetCurrentAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len);
207
typedef BOOL (*GetMaximumAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len);
208
typedef BOOL (*GetMinimumAccessibleValueFromContextFP) (long vmID, AccessibleValue av, wchar_t *value, short len);
209
210
typedef void (*AddAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i);
211
typedef void (*ClearAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as);
212
typedef JOBJECT64 (*GetAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i);
213
typedef int (*GetAccessibleSelectionCountFromContextFP) (long vmID, AccessibleSelection as);
214
typedef BOOL (*IsAccessibleChildSelectedFromContextFP) (long vmID, AccessibleSelection as, int i);
215
typedef void (*RemoveAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as, int i);
216
typedef void (*SelectAllAccessibleSelectionFromContextFP) (long vmID, AccessibleSelection as);
217
218
/* Utility methods */
219
220
typedef BOOL (*setTextContentsFP) (const long vmID, const AccessibleContext ac, const wchar_t *text);
221
typedef AccessibleContext (*getParentWithRoleFP) (const long vmID, const AccessibleContext ac, const wchar_t *role);
222
typedef AccessibleContext (*getParentWithRoleElseRootFP) (const long vmID, const AccessibleContext ac, const wchar_t *role);
223
typedef AccessibleContext (*getTopLevelObjectFP) (const long vmID, const AccessibleContext ac);
224
typedef int (*getObjectDepthFP) (const long vmID, const AccessibleContext ac);
225
typedef AccessibleContext (*getActiveDescendentFP) (const long vmID, const AccessibleContext ac);
226
227
228
typedef BOOL (*getVirtualAccessibleNameFP) (const long vmID, const AccessibleContext accessibleContext,
229
wchar_t *name, int len);
230
231
typedef BOOL (*requestFocusFP) (const long vmID, const AccessibleContext accessibleContext);
232
233
typedef BOOL (*selectTextRangeFP) (const long vmID, const AccessibleContext accessibleContext,
234
const int startIndex, const int endIndex);
235
236
typedef BOOL (*getTextAttributesInRangeFP) (const long vmID, const AccessibleContext accessibleContext,
237
const int startIndex, const int endIndex,
238
AccessibleTextAttributesInfo *attributes, short *len);
239
240
typedef int (*getVisibleChildrenCountFP) (const long vmID, const AccessibleContext accessibleContext);
241
242
typedef BOOL (*getVisibleChildrenFP) (const long vmID, const AccessibleContext accessibleContext,
243
const int startIndex, VisibleChildrenInfo *children);
244
245
typedef BOOL (*setCaretPositionFP) (const long vmID, const AccessibleContext accessibleContext, const int position);
246
247
typedef BOOL (*getCaretLocationFP) (long vmID, AccessibleContext ac, AccessibleTextRectInfo *rectInfo, jint index);
248
249
typedef int (*getEventsWaitingFP) ();
250
251
typedef struct AccessBridgeFPsTag {
252
Windows_runFP Windows_run;
253
254
SetPropertyChangeFP SetPropertyChange;
255
256
SetJavaShutdownFP SetJavaShutdown;
257
SetFocusGainedFP SetFocusGained;
258
SetFocusLostFP SetFocusLost;
259
260
SetCaretUpdateFP SetCaretUpdate;
261
262
SetMouseClickedFP SetMouseClicked;
263
SetMouseEnteredFP SetMouseEntered;
264
SetMouseExitedFP SetMouseExited;
265
SetMousePressedFP SetMousePressed;
266
SetMouseReleasedFP SetMouseReleased;
267
268
SetMenuCanceledFP SetMenuCanceled;
269
SetMenuDeselectedFP SetMenuDeselected;
270
SetMenuSelectedFP SetMenuSelected;
271
SetPopupMenuCanceledFP SetPopupMenuCanceled;
272
SetPopupMenuWillBecomeInvisibleFP SetPopupMenuWillBecomeInvisible;
273
SetPopupMenuWillBecomeVisibleFP SetPopupMenuWillBecomeVisible;
274
275
SetPropertyNameChangeFP SetPropertyNameChange;
276
SetPropertyDescriptionChangeFP SetPropertyDescriptionChange;
277
SetPropertyStateChangeFP SetPropertyStateChange;
278
SetPropertyValueChangeFP SetPropertyValueChange;
279
SetPropertySelectionChangeFP SetPropertySelectionChange;
280
SetPropertyTextChangeFP SetPropertyTextChange;
281
SetPropertyCaretChangeFP SetPropertyCaretChange;
282
SetPropertyVisibleDataChangeFP SetPropertyVisibleDataChange;
283
SetPropertyChildChangeFP SetPropertyChildChange;
284
SetPropertyActiveDescendentChangeFP SetPropertyActiveDescendentChange;
285
286
SetPropertyTableModelChangeFP SetPropertyTableModelChange;
287
288
ReleaseJavaObjectFP ReleaseJavaObject;
289
GetVersionInfoFP GetVersionInfo;
290
291
IsJavaWindowFP IsJavaWindow;
292
IsSameObjectFP IsSameObject;
293
GetAccessibleContextFromHWNDFP GetAccessibleContextFromHWND;
294
getHWNDFromAccessibleContextFP getHWNDFromAccessibleContext;
295
296
GetAccessibleContextAtFP GetAccessibleContextAt;
297
GetAccessibleContextWithFocusFP GetAccessibleContextWithFocus;
298
GetAccessibleContextInfoFP GetAccessibleContextInfo;
299
GetAccessibleChildFromContextFP GetAccessibleChildFromContext;
300
GetAccessibleParentFromContextFP GetAccessibleParentFromContext;
301
302
getAccessibleTableInfoFP getAccessibleTableInfo;
303
getAccessibleTableCellInfoFP getAccessibleTableCellInfo;
304
305
getAccessibleTableRowHeaderFP getAccessibleTableRowHeader;
306
getAccessibleTableColumnHeaderFP getAccessibleTableColumnHeader;
307
308
getAccessibleTableRowDescriptionFP getAccessibleTableRowDescription;
309
getAccessibleTableColumnDescriptionFP getAccessibleTableColumnDescription;
310
311
getAccessibleTableRowSelectionCountFP getAccessibleTableRowSelectionCount;
312
isAccessibleTableRowSelectedFP isAccessibleTableRowSelected;
313
getAccessibleTableRowSelectionsFP getAccessibleTableRowSelections;
314
315
getAccessibleTableColumnSelectionCountFP getAccessibleTableColumnSelectionCount;
316
isAccessibleTableColumnSelectedFP isAccessibleTableColumnSelected;
317
getAccessibleTableColumnSelectionsFP getAccessibleTableColumnSelections;
318
319
getAccessibleTableRowFP getAccessibleTableRow;
320
getAccessibleTableColumnFP getAccessibleTableColumn;
321
getAccessibleTableIndexFP getAccessibleTableIndex;
322
323
getAccessibleRelationSetFP getAccessibleRelationSet;
324
325
getAccessibleHypertextFP getAccessibleHypertext;
326
activateAccessibleHyperlinkFP activateAccessibleHyperlink;
327
getAccessibleHyperlinkCountFP getAccessibleHyperlinkCount;
328
getAccessibleHypertextExtFP getAccessibleHypertextExt;
329
getAccessibleHypertextLinkIndexFP getAccessibleHypertextLinkIndex;
330
getAccessibleHyperlinkFP getAccessibleHyperlink;
331
332
getAccessibleKeyBindingsFP getAccessibleKeyBindings;
333
getAccessibleIconsFP getAccessibleIcons;
334
getAccessibleActionsFP getAccessibleActions;
335
doAccessibleActionsFP doAccessibleActions;
336
337
GetAccessibleTextInfoFP GetAccessibleTextInfo;
338
GetAccessibleTextItemsFP GetAccessibleTextItems;
339
GetAccessibleTextSelectionInfoFP GetAccessibleTextSelectionInfo;
340
GetAccessibleTextAttributesFP GetAccessibleTextAttributes;
341
GetAccessibleTextRectFP GetAccessibleTextRect;
342
GetAccessibleTextLineBoundsFP GetAccessibleTextLineBounds;
343
GetAccessibleTextRangeFP GetAccessibleTextRange;
344
345
GetCurrentAccessibleValueFromContextFP GetCurrentAccessibleValueFromContext;
346
GetMaximumAccessibleValueFromContextFP GetMaximumAccessibleValueFromContext;
347
GetMinimumAccessibleValueFromContextFP GetMinimumAccessibleValueFromContext;
348
349
AddAccessibleSelectionFromContextFP AddAccessibleSelectionFromContext;
350
ClearAccessibleSelectionFromContextFP ClearAccessibleSelectionFromContext;
351
GetAccessibleSelectionFromContextFP GetAccessibleSelectionFromContext;
352
GetAccessibleSelectionCountFromContextFP GetAccessibleSelectionCountFromContext;
353
IsAccessibleChildSelectedFromContextFP IsAccessibleChildSelectedFromContext;
354
RemoveAccessibleSelectionFromContextFP RemoveAccessibleSelectionFromContext;
355
SelectAllAccessibleSelectionFromContextFP SelectAllAccessibleSelectionFromContext;
356
357
setTextContentsFP setTextContents;
358
getParentWithRoleFP getParentWithRole;
359
getTopLevelObjectFP getTopLevelObject;
360
getParentWithRoleElseRootFP getParentWithRoleElseRoot;
361
getObjectDepthFP getObjectDepth;
362
getActiveDescendentFP getActiveDescendent;
363
364
getVirtualAccessibleNameFP getVirtualAccessibleName;
365
requestFocusFP requestFocus;
366
selectTextRangeFP selectTextRange;
367
getTextAttributesInRangeFP getTextAttributesInRange;
368
getVisibleChildrenCountFP getVisibleChildrenCount;
369
getVisibleChildrenFP getVisibleChildren;
370
setCaretPositionFP setCaretPosition;
371
getCaretLocationFP getCaretLocation;
372
373
getEventsWaitingFP getEventsWaiting;
374
375
} AccessBridgeFPs;
376
377
378
/**
379
* Initialize the world
380
*/
381
BOOL initializeAccessBridge();
382
BOOL shutdownAccessBridge();
383
384
/**
385
* Window routines
386
*/
387
BOOL IsJavaWindow(HWND window);
388
389
// Returns the virtual machine ID and AccessibleContext for a top-level window
390
BOOL GetAccessibleContextFromHWND(HWND target, long *vmID, AccessibleContext *ac);
391
392
// Returns the HWND from the AccessibleContext of a top-level window
393
HWND getHWNDFromAccessibleContext(long vmID, AccessibleContext ac);
394
395
396
/**
397
* Event handling routines
398
*/
399
void SetJavaShutdown(AccessBridge_JavaShutdownFP fp);
400
void SetFocusGained(AccessBridge_FocusGainedFP fp);
401
void SetFocusLost(AccessBridge_FocusLostFP fp);
402
403
void SetCaretUpdate(AccessBridge_CaretUpdateFP fp);
404
405
void SetMouseClicked(AccessBridge_MouseClickedFP fp);
406
void SetMouseEntered(AccessBridge_MouseEnteredFP fp);
407
void SetMouseExited(AccessBridge_MouseExitedFP fp);
408
void SetMousePressed(AccessBridge_MousePressedFP fp);
409
void SetMouseReleased(AccessBridge_MouseReleasedFP fp);
410
411
void SetMenuCanceled(AccessBridge_MenuCanceledFP fp);
412
void SetMenuDeselected(AccessBridge_MenuDeselectedFP fp);
413
void SetMenuSelected(AccessBridge_MenuSelectedFP fp);
414
void SetPopupMenuCanceled(AccessBridge_PopupMenuCanceledFP fp);
415
void SetPopupMenuWillBecomeInvisible(AccessBridge_PopupMenuWillBecomeInvisibleFP fp);
416
void SetPopupMenuWillBecomeVisible(AccessBridge_PopupMenuWillBecomeVisibleFP fp);
417
418
void SetPropertyNameChange(AccessBridge_PropertyNameChangeFP fp);
419
void SetPropertyDescriptionChange(AccessBridge_PropertyDescriptionChangeFP fp);
420
void SetPropertyStateChange(AccessBridge_PropertyStateChangeFP fp);
421
void SetPropertyValueChange(AccessBridge_PropertyValueChangeFP fp);
422
void SetPropertySelectionChange(AccessBridge_PropertySelectionChangeFP fp);
423
void SetPropertyTextChange(AccessBridge_PropertyTextChangeFP fp);
424
void SetPropertyCaretChange(AccessBridge_PropertyCaretChangeFP fp);
425
void SetPropertyVisibleDataChange(AccessBridge_PropertyVisibleDataChangeFP fp);
426
void SetPropertyChildChange(AccessBridge_PropertyChildChangeFP fp);
427
void SetPropertyActiveDescendentChange(AccessBridge_PropertyActiveDescendentChangeFP fp);
428
429
void SetPropertyTableModelChange(AccessBridge_PropertyTableModelChangeFP fp);
430
431
432
/**
433
* General routines
434
*/
435
void ReleaseJavaObject(long vmID, Java_Object object);
436
BOOL GetVersionInfo(long vmID, AccessBridgeVersionInfo *info);
437
HWND GetHWNDFromAccessibleContext(long vmID, JOBJECT64 accesibleContext);
438
439
/**
440
* Accessible Context routines
441
*/
442
BOOL GetAccessibleContextAt(long vmID, AccessibleContext acParent,
443
jint x, jint y, AccessibleContext *ac);
444
BOOL GetAccessibleContextWithFocus(HWND window, long *vmID, AccessibleContext *ac);
445
BOOL GetAccessibleContextInfo(long vmID, AccessibleContext ac, AccessibleContextInfo *info);
446
AccessibleContext GetAccessibleChildFromContext(long vmID, AccessibleContext ac, jint index);
447
AccessibleContext GetAccessibleParentFromContext(long vmID, AccessibleContext ac);
448
449
/**
450
* Accessible Text routines
451
*/
452
BOOL GetAccessibleTextInfo(long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y);
453
BOOL GetAccessibleTextItems(long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index);
454
BOOL GetAccessibleTextSelectionInfo(long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection);
455
BOOL GetAccessibleTextAttributes(long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes);
456
BOOL GetAccessibleTextRect(long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index);
457
BOOL GetAccessibleTextLineBounds(long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex);
458
BOOL GetAccessibleTextRange(long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len);
459
460
/* begin AccessibleTable routines */
461
BOOL getAccessibleTableInfo(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);
462
463
BOOL getAccessibleTableCellInfo(long vmID, AccessibleTable accessibleTable, jint row, jint column,
464
AccessibleTableCellInfo *tableCellInfo);
465
466
BOOL getAccessibleTableRowHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);
467
BOOL getAccessibleTableColumnHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo);
468
469
AccessibleContext getAccessibleTableRowDescription(long vmID, AccessibleContext acParent, jint row);
470
AccessibleContext getAccessibleTableColumnDescription(long vmID, AccessibleContext acParent, jint column);
471
472
jint getAccessibleTableRowSelectionCount(long vmID, AccessibleTable table);
473
BOOL isAccessibleTableRowSelected(long vmID, AccessibleTable table, jint row);
474
BOOL getAccessibleTableRowSelections(long vmID, AccessibleTable table, jint count, jint *selections);
475
476
jint getAccessibleTableColumnSelectionCount(long vmID, AccessibleTable table);
477
BOOL isAccessibleTableColumnSelected(long vmID, AccessibleTable table, jint column);
478
BOOL getAccessibleTableColumnSelections(long vmID, AccessibleTable table, jint count, jint *selections);
479
480
jint getAccessibleTableRow(long vmID, AccessibleTable table, jint index);
481
jint getAccessibleTableColumn(long vmID, AccessibleTable table, jint index);
482
jint getAccessibleTableIndex(long vmID, AccessibleTable table, jint row, jint column);
483
/* end AccessibleTable */
484
485
/* ----- AccessibleRelationSet routines */
486
BOOL getAccessibleRelationSet(long vmID, AccessibleContext accessibleContext,
487
AccessibleRelationSetInfo *relationSetInfo);
488
489
/* ----- AccessibleHypertext routines */
490
491
/*
492
* Returns hypertext information associated with a component.
493
*/
494
BOOL getAccessibleHypertext(long vmID, AccessibleContext accessibleContext,
495
AccessibleHypertextInfo *hypertextInfo);
496
497
/*
498
* Requests that a hyperlink be activated.
499
*/
500
BOOL activateAccessibleHyperlink(long vmID, AccessibleContext accessibleContext,
501
AccessibleHyperlink accessibleHyperlink);
502
503
/*
504
* Returns the number of hyperlinks in a component
505
* Maps to AccessibleHypertext.getLinkCount.
506
* Returns -1 on error.
507
*/
508
jint getAccessibleHyperlinkCount(const long vmID,
509
const AccessibleHypertext hypertext);
510
511
/*
512
* This method is used to iterate through the hyperlinks in a component. It
513
* returns hypertext information for a component starting at hyperlink index
514
* nStartIndex. No more than MAX_HYPERLINKS AccessibleHypertextInfo objects will
515
* be returned for each call to this method.
516
* Returns FALSE on error.
517
*/
518
BOOL getAccessibleHypertextExt(const long vmID,
519
const AccessibleContext accessibleContext,
520
const jint nStartIndex,
521
/* OUT */ AccessibleHypertextInfo *hypertextInfo);
522
523
/*
524
* Returns the index into an array of hyperlinks that is associated with
525
* a character index in document; maps to AccessibleHypertext.getLinkIndex
526
* Returns -1 on error.
527
*/
528
jint getAccessibleHypertextLinkIndex(const long vmID,
529
const AccessibleHypertext hypertext,
530
const jint nIndex);
531
532
/*
533
* Returns the nth hyperlink in a document
534
* Maps to AccessibleHypertext.getLink.
535
* Returns FALSE on error
536
*/
537
BOOL getAccessibleHyperlink(const long vmID,
538
const AccessibleHypertext hypertext,
539
const jint nIndex,
540
/* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo);
541
542
/* Accessible KeyBindings, Icons and Actions */
543
544
/*
545
* Returns a list of key bindings associated with a component.
546
*/
547
BOOL getAccessibleKeyBindings(long vmID, AccessibleContext accessibleContext,
548
AccessibleKeyBindings *keyBindings);
549
550
/*
551
* Returns a list of icons associate with a component.
552
*/
553
BOOL getAccessibleIcons(long vmID, AccessibleContext accessibleContext,
554
AccessibleIcons *icons);
555
556
/*
557
* Returns a list of actions that a component can perform.
558
*/
559
BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext,
560
AccessibleActions *actions);
561
562
/*
563
* Request that a list of AccessibleActions be performed by a component.
564
* Returns TRUE if all actions are performed. Returns FALSE
565
* when the first requested action fails in which case "failure"
566
* contains the index of the action that failed.
567
*/
568
BOOL doAccessibleActions(long vmID, AccessibleContext accessibleContext,
569
AccessibleActionsToDo *actionsToDo, jint *failure);
570
571
572
573
/* Additional utility methods */
574
575
/*
576
* Returns whether two object references refer to the same object.
577
*/
578
BOOL IsSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2);
579
580
/**
581
* Sets editable text contents. The AccessibleContext must implement AccessibleEditableText and
582
* be editable. The maximum text length that can be set is MAX_STRING_SIZE - 1.
583
* Returns whether successful
584
*/
585
BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text);
586
587
/**
588
* Returns the Accessible Context with the specified role that is the
589
* ancestor of a given object. The role is one of the role strings
590
* defined in AccessBridgePackages.h
591
* If there is no ancestor object that has the specified role,
592
* returns (AccessibleContext)0.
593
*/
594
AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext,
595
const wchar_t *role);
596
597
/**
598
* Returns the Accessible Context with the specified role that is the
599
* ancestor of a given object. The role is one of the role strings
600
* defined in AccessBridgePackages.h. If an object with the specified
601
* role does not exist, returns the top level object for the Java Window.
602
* Returns (AccessibleContext)0 on error.
603
*/
604
AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext,
605
const wchar_t *role);
606
607
/**
608
* Returns the Accessible Context for the top level object in
609
* a Java Window. This is same Accessible Context that is obtained
610
* from GetAccessibleContextFromHWND for that window. Returns
611
* (AccessibleContext)0 on error.
612
*/
613
AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext);
614
615
/**
616
* Returns how deep in the object hierarchy a given object is.
617
* The top most object in the object hierarchy has an object depth of 0.
618
* Returns -1 on error.
619
*/
620
int getObjectDepth (const long vmID, const AccessibleContext accessibleContext);
621
622
/**
623
* Returns the Accessible Context of the current ActiveDescendent of an object.
624
* This method assumes the ActiveDescendent is the component that is currently
625
* selected in a container object.
626
* Returns (AccessibleContext)0 on error or if there is no selection.
627
*/
628
AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext);
629
630
/**
631
/**
632
* Accessible Value routines
633
*/
634
BOOL GetCurrentAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len);
635
BOOL GetMaximumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len);
636
BOOL GetMinimumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len);
637
638
/**
639
* Accessible Selection routines
640
*/
641
void AddAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);
642
void ClearAccessibleSelectionFromContext(long vmID, AccessibleSelection as);
643
JOBJECT64 GetAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);
644
int GetAccessibleSelectionCountFromContext(long vmID, AccessibleSelection as);
645
BOOL IsAccessibleChildSelectedFromContext(long vmID, AccessibleSelection as, int i);
646
void RemoveAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i);
647
void SelectAllAccessibleSelectionFromContext(long vmID, AccessibleSelection as);
648
649
/**
650
* Additional methods for Teton
651
*/
652
653
/**
654
* Gets the AccessibleName for a component based upon the JAWS algorithm. Returns
655
* whether successful.
656
*
657
* Bug ID 4916682 - Implement JAWS AccessibleName policy
658
*/
659
BOOL getVirtualAccessibleName(const long vmID, const AccessibleContext accessibleContext,
660
wchar_t *name, int len);
661
662
/**
663
* Request focus for a component. Returns whether successful.
664
*
665
* Bug ID 4944757 - requestFocus method needed
666
*/
667
BOOL requestFocus(const long vmID, const AccessibleContext accessibleContext);
668
669
/**
670
* Selects text between two indices. Selection includes the text at the start index
671
* and the text at the end index. Returns whether successful.
672
*
673
* Bug ID 4944758 - selectTextRange method needed
674
*/
675
BOOL selectTextRange(const long vmID, const AccessibleContext accessibleContext, const int startIndex,
676
const int endIndex);
677
678
/**
679
* Get text attributes between two indices. The attribute list includes the text at the
680
* start index and the text at the end index. Returns whether successful;
681
*
682
* Bug ID 4944761 - getTextAttributes between two indices method needed
683
*/
684
BOOL getTextAttributesInRange(const long vmID, const AccessibleContext accessibleContext,
685
const int startIndex, const int endIndex,
686
AccessibleTextAttributesInfo *attributes, short *len);
687
688
/**
689
* Returns the number of visible children of a component. Returns -1 on error.
690
*
691
* Bug ID 4944762- getVisibleChildren for list-like components needed
692
*/
693
int getVisibleChildrenCount(const long vmID, const AccessibleContext accessibleContext);
694
695
/**
696
* Gets the visible children of an AccessibleContext. Returns whether successful.
697
*
698
* Bug ID 4944762- getVisibleChildren for list-like components needed
699
*/
700
BOOL getVisibleChildren(const long vmID, const AccessibleContext accessibleContext,
701
const int startIndex,
702
VisibleChildrenInfo *visibleChildrenInfo);
703
704
/**
705
* Set the caret to a text position. Returns whether successful.
706
*
707
* Bug ID 4944770 - setCaretPosition method needed
708
*/
709
BOOL setCaretPosition(const long vmID, const AccessibleContext accessibleContext,
710
const int position);
711
712
/**
713
* Gets the text caret location
714
*/
715
BOOL getCaretLocation(long vmID, AccessibleContext ac,
716
AccessibleTextRectInfo *rectInfo, jint index);
717
718
/**
719
* Gets the number of events waiting to fire
720
*/
721
int getEventsWaiting();
722
723
#ifdef __cplusplus
724
}
725
#endif
726
727