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