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.c
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
* @(#)AccessBridgeCalls.c 1.25 05/08/22
28
*/
29
30
/*
31
* Wrapper functions around calls to the AccessBridge DLL
32
*/
33
34
35
#include <windows.h>
36
#include <jni.h>
37
38
39
//#define ACCESSBRIDGE_32
40
//#define ACCESSBRIDGE_64
41
42
#include "AccessBridgeCalls.h"
43
#include "AccessBridgeDebug.h"
44
45
#ifdef __cplusplus
46
extern "C" {
47
#endif
48
49
HINSTANCE theAccessBridgeInstance;
50
AccessBridgeFPs theAccessBridge;
51
52
BOOL theAccessBridgeInitializedFlag = FALSE;
53
54
#define LOAD_FP(result, type, name) \
55
PrintDebugString("LOAD_FP loading: %s ...", name); \
56
if ((theAccessBridge.result = \
57
(type) GetProcAddress(theAccessBridgeInstance, name)) == (type) 0) { \
58
PrintDebugString("LOAD_FP failed: %s", name); \
59
return FALSE; \
60
}
61
62
BOOL initializeAccessBridge() {
63
64
#ifdef ACCESSBRIDGE_ARCH_32 // For 32bit AT new bridge
65
theAccessBridgeInstance = LoadLibrary("WINDOWSACCESSBRIDGE-32");
66
#else
67
#ifdef ACCESSBRIDGE_ARCH_64 // For 64bit AT new bridge
68
theAccessBridgeInstance = LoadLibrary("WINDOWSACCESSBRIDGE-64");
69
#else // legacy
70
theAccessBridgeInstance = LoadLibrary("WINDOWSACCESSBRIDGE");
71
#endif
72
#endif
73
if (theAccessBridgeInstance != 0) {
74
LOAD_FP(Windows_run, Windows_runFP, "Windows_run");
75
76
LOAD_FP(SetJavaShutdown, SetJavaShutdownFP, "setJavaShutdownFP");
77
LOAD_FP(SetFocusGained, SetFocusGainedFP, "setFocusGainedFP");
78
LOAD_FP(SetFocusLost, SetFocusLostFP, "setFocusLostFP");
79
80
LOAD_FP(SetCaretUpdate, SetCaretUpdateFP, "setCaretUpdateFP");
81
82
LOAD_FP(SetMouseClicked, SetMouseClickedFP, "setMouseClickedFP");
83
LOAD_FP(SetMouseEntered, SetMouseEnteredFP, "setMouseEnteredFP");
84
LOAD_FP(SetMouseExited, SetMouseExitedFP, "setMouseExitedFP");
85
LOAD_FP(SetMousePressed, SetMousePressedFP, "setMousePressedFP");
86
LOAD_FP(SetMouseReleased, SetMouseReleasedFP, "setMouseReleasedFP");
87
88
LOAD_FP(SetMenuCanceled, SetMenuCanceledFP, "setMenuCanceledFP");
89
LOAD_FP(SetMenuDeselected, SetMenuDeselectedFP, "setMenuDeselectedFP");
90
LOAD_FP(SetMenuSelected, SetMenuSelectedFP, "setMenuSelectedFP");
91
LOAD_FP(SetPopupMenuCanceled, SetPopupMenuCanceledFP, "setPopupMenuCanceledFP");
92
LOAD_FP(SetPopupMenuWillBecomeInvisible, SetPopupMenuWillBecomeInvisibleFP, "setPopupMenuWillBecomeInvisibleFP");
93
LOAD_FP(SetPopupMenuWillBecomeVisible, SetPopupMenuWillBecomeVisibleFP, "setPopupMenuWillBecomeVisibleFP");
94
95
LOAD_FP(SetPropertyNameChange, SetPropertyNameChangeFP, "setPropertyNameChangeFP");
96
LOAD_FP(SetPropertyDescriptionChange, SetPropertyDescriptionChangeFP, "setPropertyDescriptionChangeFP");
97
LOAD_FP(SetPropertyStateChange, SetPropertyStateChangeFP, "setPropertyStateChangeFP");
98
LOAD_FP(SetPropertyValueChange, SetPropertyValueChangeFP, "setPropertyValueChangeFP");
99
LOAD_FP(SetPropertySelectionChange, SetPropertySelectionChangeFP, "setPropertySelectionChangeFP");
100
LOAD_FP(SetPropertyTextChange, SetPropertyTextChangeFP, "setPropertyTextChangeFP");
101
LOAD_FP(SetPropertyCaretChange, SetPropertyCaretChangeFP, "setPropertyCaretChangeFP");
102
LOAD_FP(SetPropertyVisibleDataChange, SetPropertyVisibleDataChangeFP, "setPropertyVisibleDataChangeFP");
103
LOAD_FP(SetPropertyChildChange, SetPropertyChildChangeFP, "setPropertyChildChangeFP");
104
LOAD_FP(SetPropertyActiveDescendentChange, SetPropertyActiveDescendentChangeFP, "setPropertyActiveDescendentChangeFP");
105
106
LOAD_FP(SetPropertyTableModelChange, SetPropertyTableModelChangeFP, "setPropertyTableModelChangeFP");
107
108
LOAD_FP(ReleaseJavaObject, ReleaseJavaObjectFP, "releaseJavaObject");
109
LOAD_FP(GetVersionInfo, GetVersionInfoFP, "getVersionInfo");
110
111
LOAD_FP(IsJavaWindow, IsJavaWindowFP, "isJavaWindow");
112
LOAD_FP(IsSameObject, IsSameObjectFP, "isSameObject");
113
LOAD_FP(GetAccessibleContextFromHWND, GetAccessibleContextFromHWNDFP, "getAccessibleContextFromHWND");
114
LOAD_FP(getHWNDFromAccessibleContext, getHWNDFromAccessibleContextFP, "getHWNDFromAccessibleContext");
115
116
LOAD_FP(GetAccessibleContextAt, GetAccessibleContextAtFP, "getAccessibleContextAt");
117
LOAD_FP(GetAccessibleContextWithFocus, GetAccessibleContextWithFocusFP, "getAccessibleContextWithFocus");
118
LOAD_FP(GetAccessibleContextInfo, GetAccessibleContextInfoFP, "getAccessibleContextInfo");
119
LOAD_FP(GetAccessibleChildFromContext, GetAccessibleChildFromContextFP, "getAccessibleChildFromContext");
120
LOAD_FP(GetAccessibleParentFromContext, GetAccessibleParentFromContextFP, "getAccessibleParentFromContext");
121
122
/* begin AccessibleTable */
123
LOAD_FP(getAccessibleTableInfo, getAccessibleTableInfoFP, "getAccessibleTableInfo");
124
LOAD_FP(getAccessibleTableCellInfo, getAccessibleTableCellInfoFP, "getAccessibleTableCellInfo");
125
126
LOAD_FP(getAccessibleTableRowHeader, getAccessibleTableRowHeaderFP, "getAccessibleTableRowHeader");
127
LOAD_FP(getAccessibleTableColumnHeader, getAccessibleTableColumnHeaderFP, "getAccessibleTableColumnHeader");
128
129
LOAD_FP(getAccessibleTableRowDescription, getAccessibleTableRowDescriptionFP, "getAccessibleTableRowDescription");
130
LOAD_FP(getAccessibleTableColumnDescription, getAccessibleTableColumnDescriptionFP, "getAccessibleTableColumnDescription");
131
132
LOAD_FP(getAccessibleTableRowSelectionCount, getAccessibleTableRowSelectionCountFP,
133
"getAccessibleTableRowSelectionCount");
134
LOAD_FP(isAccessibleTableRowSelected, isAccessibleTableRowSelectedFP,
135
"isAccessibleTableRowSelected");
136
LOAD_FP(getAccessibleTableRowSelections, getAccessibleTableRowSelectionsFP,
137
"getAccessibleTableRowSelections");
138
139
LOAD_FP(getAccessibleTableColumnSelectionCount, getAccessibleTableColumnSelectionCountFP,
140
"getAccessibleTableColumnSelectionCount");
141
LOAD_FP(isAccessibleTableColumnSelected, isAccessibleTableColumnSelectedFP,
142
"isAccessibleTableColumnSelected");
143
LOAD_FP(getAccessibleTableColumnSelections, getAccessibleTableColumnSelectionsFP,
144
"getAccessibleTableColumnSelections");
145
146
LOAD_FP(getAccessibleTableRow, getAccessibleTableRowFP,
147
"getAccessibleTableRow");
148
LOAD_FP(getAccessibleTableColumn, getAccessibleTableColumnFP,
149
"getAccessibleTableColumn");
150
LOAD_FP(getAccessibleTableIndex, getAccessibleTableIndexFP,
151
"getAccessibleTableIndex");
152
153
/* end AccessibleTable */
154
155
/* AccessibleRelationSet */
156
LOAD_FP(getAccessibleRelationSet, getAccessibleRelationSetFP, "getAccessibleRelationSet");
157
158
/* AccessibleHypertext */
159
LOAD_FP(getAccessibleHypertext, getAccessibleHypertextFP, "getAccessibleHypertext");
160
LOAD_FP(activateAccessibleHyperlink, activateAccessibleHyperlinkFP, "activateAccessibleHyperlink");
161
LOAD_FP(getAccessibleHyperlinkCount, getAccessibleHyperlinkCountFP, "getAccessibleHyperlinkCount");
162
LOAD_FP(getAccessibleHypertextExt, getAccessibleHypertextExtFP, "getAccessibleHypertextExt");
163
LOAD_FP(getAccessibleHypertextLinkIndex, getAccessibleHypertextLinkIndexFP, "getAccessibleHypertextLinkIndex");
164
LOAD_FP(getAccessibleHyperlink, getAccessibleHyperlinkFP, "getAccessibleHyperlink");
165
166
/* Accessible KeyBinding, Icon and Action */
167
LOAD_FP(getAccessibleKeyBindings, getAccessibleKeyBindingsFP, "getAccessibleKeyBindings");
168
LOAD_FP(getAccessibleIcons, getAccessibleIconsFP, "getAccessibleIcons");
169
LOAD_FP(getAccessibleActions, getAccessibleActionsFP, "getAccessibleActions");
170
LOAD_FP(doAccessibleActions, doAccessibleActionsFP, "doAccessibleActions");
171
172
/* AccessibleText */
173
LOAD_FP(GetAccessibleTextInfo, GetAccessibleTextInfoFP, "getAccessibleTextInfo");
174
LOAD_FP(GetAccessibleTextItems, GetAccessibleTextItemsFP, "getAccessibleTextItems");
175
LOAD_FP(GetAccessibleTextSelectionInfo, GetAccessibleTextSelectionInfoFP, "getAccessibleTextSelectionInfo");
176
LOAD_FP(GetAccessibleTextAttributes, GetAccessibleTextAttributesFP, "getAccessibleTextAttributes");
177
LOAD_FP(GetAccessibleTextRect, GetAccessibleTextRectFP, "getAccessibleTextRect");
178
LOAD_FP(GetAccessibleTextLineBounds, GetAccessibleTextLineBoundsFP, "getAccessibleTextLineBounds");
179
LOAD_FP(GetAccessibleTextRange, GetAccessibleTextRangeFP, "getAccessibleTextRange");
180
181
LOAD_FP(GetCurrentAccessibleValueFromContext, GetCurrentAccessibleValueFromContextFP, "getCurrentAccessibleValueFromContext");
182
LOAD_FP(GetMaximumAccessibleValueFromContext, GetMaximumAccessibleValueFromContextFP, "getMaximumAccessibleValueFromContext");
183
LOAD_FP(GetMinimumAccessibleValueFromContext, GetMinimumAccessibleValueFromContextFP, "getMinimumAccessibleValueFromContext");
184
185
LOAD_FP(AddAccessibleSelectionFromContext, AddAccessibleSelectionFromContextFP, "addAccessibleSelectionFromContext");
186
LOAD_FP(ClearAccessibleSelectionFromContext, ClearAccessibleSelectionFromContextFP, "clearAccessibleSelectionFromContext");
187
LOAD_FP(GetAccessibleSelectionFromContext, GetAccessibleSelectionFromContextFP, "getAccessibleSelectionFromContext");
188
LOAD_FP(GetAccessibleSelectionCountFromContext, GetAccessibleSelectionCountFromContextFP, "getAccessibleSelectionCountFromContext");
189
LOAD_FP(IsAccessibleChildSelectedFromContext, IsAccessibleChildSelectedFromContextFP, "isAccessibleChildSelectedFromContext");
190
LOAD_FP(RemoveAccessibleSelectionFromContext, RemoveAccessibleSelectionFromContextFP, "removeAccessibleSelectionFromContext");
191
LOAD_FP(SelectAllAccessibleSelectionFromContext, SelectAllAccessibleSelectionFromContextFP, "selectAllAccessibleSelectionFromContext");
192
193
LOAD_FP(setTextContents, setTextContentsFP, "setTextContents");
194
LOAD_FP(getParentWithRole, getParentWithRoleFP, "getParentWithRole");
195
LOAD_FP(getTopLevelObject, getTopLevelObjectFP, "getTopLevelObject");
196
LOAD_FP(getParentWithRoleElseRoot, getParentWithRoleElseRootFP, "getParentWithRoleElseRoot");
197
LOAD_FP(getObjectDepth, getObjectDepthFP, "getObjectDepth");
198
LOAD_FP(getActiveDescendent, getActiveDescendentFP, "getActiveDescendent");
199
200
// additional methods for Teton
201
LOAD_FP(getVirtualAccessibleName, getVirtualAccessibleNameFP, "getVirtualAccessibleName");
202
LOAD_FP(requestFocus, requestFocusFP, "requestFocus");
203
LOAD_FP(selectTextRange, selectTextRangeFP, "selectTextRange");
204
LOAD_FP(getTextAttributesInRange, getTextAttributesInRangeFP, "getTextAttributesInRange");
205
LOAD_FP(getVisibleChildrenCount, getVisibleChildrenCountFP, "getVisibleChildrenCount");
206
LOAD_FP(getVisibleChildren, getVisibleChildrenFP, "getVisibleChildren");
207
LOAD_FP(setCaretPosition, setCaretPositionFP, "setCaretPosition");
208
LOAD_FP(getCaretLocation, getCaretLocationFP, "getCaretLocation");
209
210
LOAD_FP(getEventsWaiting, getEventsWaitingFP, "getEventsWaiting");
211
212
theAccessBridge.Windows_run();
213
214
theAccessBridgeInitializedFlag = TRUE;
215
PrintDebugString("theAccessBridgeInitializedFlag = TRUE");
216
return TRUE;
217
} else {
218
return FALSE;
219
}
220
}
221
222
223
BOOL shutdownAccessBridge() {
224
BOOL result;
225
DWORD error;
226
theAccessBridgeInitializedFlag = FALSE;
227
if (theAccessBridgeInstance != (HANDLE) 0) {
228
result = FreeLibrary(theAccessBridgeInstance);
229
if (result != TRUE) {
230
error = GetLastError();
231
}
232
return TRUE;
233
}
234
return FALSE;
235
}
236
237
238
void SetJavaShutdown(AccessBridge_JavaShutdownFP fp) {
239
if (theAccessBridgeInitializedFlag == TRUE) {
240
theAccessBridge.SetJavaShutdown(fp);
241
}
242
}
243
244
void SetFocusGained(AccessBridge_FocusGainedFP fp) {
245
if (theAccessBridgeInitializedFlag == TRUE) {
246
theAccessBridge.SetFocusGained(fp);
247
}
248
}
249
250
void SetFocusLost(AccessBridge_FocusLostFP fp) {
251
if (theAccessBridgeInitializedFlag == TRUE) {
252
theAccessBridge.SetFocusLost(fp);
253
}
254
}
255
256
257
void SetCaretUpdate(AccessBridge_CaretUpdateFP fp) {
258
if (theAccessBridgeInitializedFlag == TRUE) {
259
theAccessBridge.SetCaretUpdate(fp);
260
}
261
}
262
263
264
void SetMouseClicked(AccessBridge_MouseClickedFP fp) {
265
if (theAccessBridgeInitializedFlag == TRUE) {
266
theAccessBridge.SetMouseClicked(fp);
267
}
268
}
269
270
void SetMouseEntered(AccessBridge_MouseEnteredFP fp) {
271
if (theAccessBridgeInitializedFlag == TRUE) {
272
theAccessBridge.SetMouseEntered(fp);
273
}
274
}
275
276
void SetMouseExited(AccessBridge_MouseExitedFP fp) {
277
if (theAccessBridgeInitializedFlag == TRUE) {
278
theAccessBridge.SetMouseExited(fp);
279
}
280
}
281
282
void SetMousePressed(AccessBridge_MousePressedFP fp) {
283
if (theAccessBridgeInitializedFlag == TRUE) {
284
theAccessBridge.SetMousePressed(fp);
285
}
286
}
287
288
void SetMouseReleased(AccessBridge_MouseReleasedFP fp) {
289
if (theAccessBridgeInitializedFlag == TRUE) {
290
theAccessBridge.SetMouseReleased(fp);
291
}
292
}
293
294
295
void SetMenuCanceled(AccessBridge_MenuCanceledFP fp) {
296
if (theAccessBridgeInitializedFlag == TRUE) {
297
theAccessBridge.SetMenuCanceled(fp);
298
}
299
}
300
301
void SetMenuDeselected(AccessBridge_MenuDeselectedFP fp) {
302
if (theAccessBridgeInitializedFlag == TRUE) {
303
theAccessBridge.SetMenuDeselected(fp);
304
}
305
}
306
307
void SetMenuSelected(AccessBridge_MenuSelectedFP fp) {
308
if (theAccessBridgeInitializedFlag == TRUE) {
309
theAccessBridge.SetMenuSelected(fp);
310
}
311
}
312
313
void SetPopupMenuCanceled(AccessBridge_PopupMenuCanceledFP fp) {
314
if (theAccessBridgeInitializedFlag == TRUE) {
315
theAccessBridge.SetPopupMenuCanceled(fp);
316
}
317
}
318
319
void SetPopupMenuWillBecomeInvisible(AccessBridge_PopupMenuWillBecomeInvisibleFP fp) {
320
if (theAccessBridgeInitializedFlag == TRUE) {
321
theAccessBridge.SetPopupMenuWillBecomeInvisible(fp);
322
}
323
}
324
325
void SetPopupMenuWillBecomeVisible(AccessBridge_PopupMenuWillBecomeVisibleFP fp) {
326
if (theAccessBridgeInitializedFlag == TRUE) {
327
theAccessBridge.SetPopupMenuWillBecomeVisible(fp);
328
}
329
}
330
331
332
void SetPropertyNameChange(AccessBridge_PropertyNameChangeFP fp) {
333
if (theAccessBridgeInitializedFlag == TRUE) {
334
theAccessBridge.SetPropertyNameChange(fp);
335
}
336
}
337
338
void SetPropertyDescriptionChange(AccessBridge_PropertyDescriptionChangeFP fp) {
339
if (theAccessBridgeInitializedFlag == TRUE) {
340
theAccessBridge.SetPropertyDescriptionChange(fp);
341
}
342
}
343
344
void SetPropertyStateChange(AccessBridge_PropertyStateChangeFP fp) {
345
if (theAccessBridgeInitializedFlag == TRUE) {
346
theAccessBridge.SetPropertyStateChange(fp);
347
}
348
}
349
350
void SetPropertyValueChange(AccessBridge_PropertyValueChangeFP fp) {
351
if (theAccessBridgeInitializedFlag == TRUE) {
352
theAccessBridge.SetPropertyValueChange(fp);
353
}
354
}
355
356
void SetPropertySelectionChange(AccessBridge_PropertySelectionChangeFP fp) {
357
if (theAccessBridgeInitializedFlag == TRUE) {
358
theAccessBridge.SetPropertySelectionChange(fp);
359
}
360
}
361
362
void SetPropertyTextChange(AccessBridge_PropertyTextChangeFP fp) {
363
if (theAccessBridgeInitializedFlag == TRUE) {
364
theAccessBridge.SetPropertyTextChange(fp);
365
}
366
}
367
368
void SetPropertyCaretChange(AccessBridge_PropertyCaretChangeFP fp) {
369
if (theAccessBridgeInitializedFlag == TRUE) {
370
theAccessBridge.SetPropertyCaretChange(fp);
371
}
372
}
373
374
void SetPropertyVisibleDataChange(AccessBridge_PropertyVisibleDataChangeFP fp) {
375
if (theAccessBridgeInitializedFlag == TRUE) {
376
theAccessBridge.SetPropertyVisibleDataChange(fp);
377
}
378
}
379
380
void SetPropertyChildChange(AccessBridge_PropertyChildChangeFP fp) {
381
if (theAccessBridgeInitializedFlag == TRUE) {
382
theAccessBridge.SetPropertyChildChange(fp);
383
}
384
}
385
386
void SetPropertyActiveDescendentChange(AccessBridge_PropertyActiveDescendentChangeFP fp) {
387
if (theAccessBridgeInitializedFlag == TRUE) {
388
theAccessBridge.SetPropertyActiveDescendentChange(fp);
389
}
390
}
391
392
void SetPropertyTableModelChange(AccessBridge_PropertyTableModelChangeFP fp) {
393
if (theAccessBridgeInitializedFlag == TRUE) {
394
theAccessBridge.SetPropertyTableModelChange(fp);
395
}
396
}
397
398
/**
399
* General routines
400
*/
401
void ReleaseJavaObject(long vmID, Java_Object object) {
402
if (theAccessBridgeInitializedFlag == TRUE) {
403
theAccessBridge.ReleaseJavaObject(vmID, object);
404
}
405
}
406
407
BOOL GetVersionInfo(long vmID, AccessBridgeVersionInfo *info) {
408
if (theAccessBridgeInitializedFlag == TRUE) {
409
return theAccessBridge.GetVersionInfo(vmID, info);
410
}
411
return FALSE;
412
}
413
414
415
/**
416
* Window routines
417
*/
418
BOOL IsJavaWindow(HWND window) {
419
if (theAccessBridgeInitializedFlag == TRUE) {
420
BOOL ret ;
421
ret = theAccessBridge.IsJavaWindow(window);
422
return ret ;
423
424
}
425
return FALSE;
426
}
427
428
429
/**
430
* Returns the virtual machine ID and AccessibleContext for a top-level window
431
*/
432
BOOL GetAccessibleContextFromHWND(HWND target, long *vmID, AccessibleContext *ac) {
433
if (theAccessBridgeInitializedFlag == TRUE) {
434
return theAccessBridge.GetAccessibleContextFromHWND(target, vmID, ac);
435
}
436
return FALSE;
437
}
438
439
/**
440
* Returns the HWND from the AccessibleContext of a top-level window. Returns 0
441
* on error or if the AccessibleContext does not refer to a top-level window.
442
*/
443
HWND getHWNDFromAccessibleContext(long vmID, JOBJECT64 accesibleContext) {
444
if (theAccessBridgeInitializedFlag == TRUE) {
445
return theAccessBridge.getHWNDFromAccessibleContext(vmID, accesibleContext);
446
}
447
return (HWND)0;
448
}
449
450
/**
451
* returns whether two objects are the same
452
*/
453
BOOL IsSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2) {
454
if (theAccessBridgeInitializedFlag == TRUE) {
455
return theAccessBridge.IsSameObject(vmID, obj1, obj2);
456
}
457
return FALSE;
458
}
459
460
/**
461
* Sets editable text contents. The AccessibleContext must implement AccessibleEditableText and
462
* be editable. The maximum text length is MAX_STRING_SIZE - 1.
463
* Returns whether successful
464
*/
465
BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text) {
466
467
if (theAccessBridgeInitializedFlag == TRUE) {
468
return theAccessBridge.setTextContents(vmID, accessibleContext, text);
469
}
470
return FALSE;
471
}
472
473
/**
474
* Returns the Accessible Context with the specified role that is the
475
* ancestor of a given object. The role is one of the role strings
476
* defined in AccessBridgePackages.h
477
* If there is no ancestor object that has the specified role,
478
* returns (AccessibleContext)0.
479
*/
480
AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext,
481
const wchar_t *role) {
482
483
if (theAccessBridgeInitializedFlag == TRUE) {
484
return theAccessBridge.getParentWithRole(vmID, accessibleContext, role);
485
}
486
return (AccessibleContext)0;
487
}
488
489
/**
490
* Returns the Accessible Context with the specified role that is the
491
* ancestor of a given object. The role is one of the role strings
492
* defined in AccessBridgePackages.h. If an object with the specified
493
* role does not exist, returns the top level object for the Java Window.
494
* Returns (AccessibleContext)0 on error.
495
*/
496
AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext,
497
const wchar_t *role) {
498
499
if (theAccessBridgeInitializedFlag == TRUE) {
500
return theAccessBridge.getParentWithRoleElseRoot(vmID, accessibleContext, role);
501
}
502
return (AccessibleContext)0;
503
}
504
505
/**
506
* Returns the Accessible Context for the top level object in
507
* a Java Window. This is same Accessible Context that is obtained
508
* from GetAccessibleContextFromHWND for that window. Returns
509
* (AccessibleContext)0 on error.
510
*/
511
AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext) {
512
513
if (theAccessBridgeInitializedFlag == TRUE) {
514
return theAccessBridge.getTopLevelObject(vmID, accessibleContext);
515
}
516
return (AccessibleContext)0;
517
}
518
519
/**
520
* Returns how deep in the object hierarchy a given object is.
521
* The top most object in the object hierarchy has an object depth of 0.
522
* Returns -1 on error.
523
*/
524
int getObjectDepth (const long vmID, const AccessibleContext accessibleContext) {
525
526
if (theAccessBridgeInitializedFlag == TRUE) {
527
return theAccessBridge.getObjectDepth(vmID, accessibleContext);
528
}
529
return -1;
530
}
531
532
/**
533
* Returns the Accessible Context of the current ActiveDescendent of an object.
534
* This method assumes the ActiveDescendent is the component that is currently
535
* selected in a container object.
536
* Returns (AccessibleContext)0 on error or if there is no selection.
537
*/
538
AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext) {
539
540
if (theAccessBridgeInitializedFlag == TRUE) {
541
return theAccessBridge.getActiveDescendent(vmID, accessibleContext);
542
}
543
return (AccessibleContext)0;
544
}
545
546
547
/**
548
* Accessible Context routines
549
*/
550
BOOL GetAccessibleContextAt(long vmID, AccessibleContext acParent,
551
jint x, jint y, AccessibleContext *ac) {
552
if (theAccessBridgeInitializedFlag == TRUE) {
553
return theAccessBridge.GetAccessibleContextAt(vmID, acParent, x, y, ac);
554
}
555
return FALSE;
556
}
557
558
BOOL GetAccessibleContextWithFocus(HWND window, long *vmID, AccessibleContext *ac) {
559
if (theAccessBridgeInitializedFlag == TRUE) {
560
return theAccessBridge.GetAccessibleContextWithFocus(window, vmID, ac);
561
}
562
return FALSE;
563
}
564
565
BOOL GetAccessibleContextInfo(long vmID, AccessibleContext ac, AccessibleContextInfo *info) {
566
if (theAccessBridgeInitializedFlag == TRUE) {
567
return theAccessBridge.GetAccessibleContextInfo(vmID, ac, info);
568
}
569
return FALSE;
570
}
571
572
AccessibleContext GetAccessibleChildFromContext(long vmID, AccessibleContext ac, jint index) {
573
if (theAccessBridgeInitializedFlag == TRUE) {
574
return theAccessBridge.GetAccessibleChildFromContext(vmID, ac, index);
575
}
576
return (AccessibleContext) 0;
577
}
578
579
AccessibleContext GetAccessibleParentFromContext(long vmID, AccessibleContext ac) {
580
if (theAccessBridgeInitializedFlag == TRUE) {
581
return theAccessBridge.GetAccessibleParentFromContext(vmID, ac);
582
}
583
return (AccessibleContext) 0;
584
}
585
586
/* begin AccessibleTable routines */
587
588
/*
589
* get information about an AccessibleTable
590
*/
591
BOOL getAccessibleTableInfo(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo) {
592
if (theAccessBridgeInitializedFlag == TRUE) {
593
return theAccessBridge.getAccessibleTableInfo(vmID, acParent, tableInfo);
594
}
595
return FALSE;
596
}
597
598
/*
599
* get information about an AccessibleTable cell
600
*/
601
BOOL getAccessibleTableCellInfo(long vmID, AccessibleTable accessibleTable,
602
jint row, jint column, AccessibleTableCellInfo *tableCellInfo) {
603
if (theAccessBridgeInitializedFlag == TRUE) {
604
return theAccessBridge.getAccessibleTableCellInfo(vmID, accessibleTable, row, column, tableCellInfo);
605
}
606
return FALSE;
607
}
608
609
/*
610
* get information about an AccessibleTable row header
611
*/
612
BOOL getAccessibleTableRowHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo) {
613
if (theAccessBridgeInitializedFlag == TRUE) {
614
return theAccessBridge.getAccessibleTableRowHeader(vmID, acParent, tableInfo);
615
}
616
return FALSE;
617
}
618
619
/*
620
* get information about an AccessibleTable column header
621
*/
622
BOOL getAccessibleTableColumnHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo) {
623
624
if (theAccessBridgeInitializedFlag == TRUE) {
625
return theAccessBridge.getAccessibleTableColumnHeader(vmID, acParent, tableInfo);
626
}
627
return FALSE;
628
}
629
630
/*
631
* return a description of an AccessibleTable row header
632
*/
633
AccessibleContext getAccessibleTableRowDescription(long vmID, AccessibleContext acParent, jint row) {
634
if (theAccessBridgeInitializedFlag == TRUE) {
635
return theAccessBridge.getAccessibleTableRowDescription(vmID, acParent, row);
636
}
637
return (AccessibleContext)0;
638
}
639
640
/*
641
* return a description of an AccessibleTable column header
642
*/
643
AccessibleContext getAccessibleTableColumnDescription(long vmID, AccessibleContext acParent, jint column) {
644
if (theAccessBridgeInitializedFlag == TRUE) {
645
return theAccessBridge.getAccessibleTableColumnDescription(vmID, acParent, column);
646
}
647
return (AccessibleContext)0;
648
}
649
650
/*
651
* return the number of rows selected in an AccessibleTable
652
*/
653
jint getAccessibleTableRowSelectionCount(long vmID, AccessibleTable table) {
654
if (theAccessBridgeInitializedFlag == TRUE) {
655
return theAccessBridge.getAccessibleTableRowSelectionCount(vmID, table);
656
}
657
return -1;
658
}
659
660
/*
661
* return whether a row is selected in an AccessibleTable
662
*/
663
BOOL isAccessibleTableRowSelected(long vmID, AccessibleTable table, jint row) {
664
if (theAccessBridgeInitializedFlag == TRUE) {
665
return theAccessBridge.isAccessibleTableRowSelected(vmID, table, row);
666
}
667
return FALSE;
668
}
669
670
/*
671
* get an array of selected rows in an AccessibleTable
672
*/
673
BOOL getAccessibleTableRowSelections(long vmID, AccessibleTable table, jint count, jint *selections) {
674
if (theAccessBridgeInitializedFlag == TRUE) {
675
return theAccessBridge.getAccessibleTableRowSelections(vmID, table, count, selections);
676
}
677
return FALSE;
678
}
679
680
/*
681
* return the number of columns selected in an AccessibleTable
682
*/
683
jint getAccessibleTableColumnSelectionCount(long vmID, AccessibleTable table) {
684
if (theAccessBridgeInitializedFlag == TRUE) {
685
return theAccessBridge.getAccessibleTableColumnSelectionCount(vmID, table);
686
}
687
return -1;
688
}
689
690
/*
691
* return whether a column is selected in an AccessibleTable
692
*/
693
BOOL isAccessibleTableColumnSelected(long vmID, AccessibleTable table, jint column) {
694
if (theAccessBridgeInitializedFlag == TRUE) {
695
return theAccessBridge.isAccessibleTableColumnSelected(vmID, table, column);
696
}
697
return FALSE;
698
}
699
700
/*
701
* get an array of columns selected in an AccessibleTable
702
*/
703
BOOL getAccessibleTableColumnSelections(long vmID, AccessibleTable table, jint count, jint *selections) {
704
if (theAccessBridgeInitializedFlag == TRUE) {
705
return theAccessBridge.getAccessibleTableColumnSelections(vmID, table, count, selections);
706
}
707
return FALSE;
708
}
709
710
/*
711
* return the row number for a cell at a given index
712
*/
713
jint
714
getAccessibleTableRow(long vmID, AccessibleTable table, jint index) {
715
if (theAccessBridgeInitializedFlag == TRUE) {
716
return theAccessBridge.getAccessibleTableRow(vmID, table, index);
717
}
718
return -1;
719
}
720
721
/*
722
* return the column number for a cell at a given index
723
*/
724
jint
725
getAccessibleTableColumn(long vmID, AccessibleTable table, jint index) {
726
if (theAccessBridgeInitializedFlag == TRUE) {
727
return theAccessBridge.getAccessibleTableColumn(vmID, table, index);
728
}
729
return -1;
730
}
731
732
/*
733
* return the index of a cell at a given row and column
734
*/
735
jint
736
getAccessibleTableIndex(long vmID, AccessibleTable table, jint row, jint column) {
737
if (theAccessBridgeInitializedFlag == TRUE) {
738
return theAccessBridge.getAccessibleTableIndex(vmID, table, row, column);
739
}
740
return -1;
741
}
742
743
/* end AccessibleTable routines */
744
745
746
/**
747
* Accessible Text routines
748
*/
749
BOOL GetAccessibleTextInfo(long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y) {
750
if (theAccessBridgeInitializedFlag == TRUE) {
751
return theAccessBridge.GetAccessibleTextInfo(vmID, at, textInfo, x, y);
752
}
753
return FALSE;
754
}
755
756
BOOL GetAccessibleTextItems(long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index) {
757
if (theAccessBridgeInitializedFlag == TRUE) {
758
return theAccessBridge.GetAccessibleTextItems(vmID, at, textItems, index);
759
}
760
return FALSE;
761
}
762
763
BOOL GetAccessibleTextSelectionInfo(long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection) {
764
if (theAccessBridgeInitializedFlag == TRUE) {
765
return theAccessBridge.GetAccessibleTextSelectionInfo(vmID, at, textSelection);
766
}
767
return FALSE;
768
}
769
770
BOOL GetAccessibleTextAttributes(long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes) {
771
if (theAccessBridgeInitializedFlag == TRUE) {
772
return theAccessBridge.GetAccessibleTextAttributes(vmID, at, index, attributes);
773
}
774
return FALSE;
775
}
776
777
BOOL GetAccessibleTextRect(long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index) {
778
if (theAccessBridgeInitializedFlag == TRUE) {
779
return theAccessBridge.GetAccessibleTextRect(vmID, at, rectInfo, index);
780
}
781
return FALSE;
782
}
783
784
BOOL GetAccessibleTextLineBounds(long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex) {
785
if (theAccessBridgeInitializedFlag == TRUE) {
786
return theAccessBridge.GetAccessibleTextLineBounds(vmID, at, index, startIndex, endIndex);
787
}
788
return FALSE;
789
}
790
791
BOOL GetAccessibleTextRange(long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len) {
792
if (theAccessBridgeInitializedFlag == TRUE) {
793
return theAccessBridge.GetAccessibleTextRange(vmID, at, start, end, text, len);
794
}
795
return FALSE;
796
}
797
798
/**
799
* AccessibleRelationSet routines
800
*/
801
BOOL getAccessibleRelationSet(long vmID, AccessibleContext accessibleContext,
802
AccessibleRelationSetInfo *relationSetInfo) {
803
if (theAccessBridgeInitializedFlag == TRUE) {
804
return theAccessBridge.getAccessibleRelationSet(vmID, accessibleContext, relationSetInfo);
805
}
806
return FALSE;
807
}
808
809
/**
810
* AccessibleHypertext routines
811
*/
812
813
// Gets AccessibleHypertext for an AccessibleContext
814
BOOL getAccessibleHypertext(long vmID, AccessibleContext accessibleContext,
815
AccessibleHypertextInfo *hypertextInfo) {
816
if (theAccessBridgeInitializedFlag == TRUE) {
817
return theAccessBridge.getAccessibleHypertext(vmID, accessibleContext, hypertextInfo);
818
}
819
return FALSE;
820
}
821
822
// Activates an AccessibleHyperlink for an AccessibleContext
823
BOOL activateAccessibleHyperlink(long vmID, AccessibleContext accessibleContext,
824
AccessibleHyperlink accessibleHyperlink) {
825
if (theAccessBridgeInitializedFlag == TRUE) {
826
return theAccessBridge.activateAccessibleHyperlink(vmID, accessibleContext, accessibleHyperlink);
827
}
828
return FALSE;
829
}
830
831
/*
832
* Returns the number of hyperlinks in a component
833
* Maps to AccessibleHypertext.getLinkCount.
834
* Returns -1 on error.
835
*/
836
jint getAccessibleHyperlinkCount(const long vmID,
837
const AccessibleContext accessibleContext) {
838
839
if (theAccessBridgeInitializedFlag == TRUE) {
840
return theAccessBridge.getAccessibleHyperlinkCount(vmID, accessibleContext);
841
}
842
return -1;
843
}
844
845
/*
846
* This method is used to iterate through the hyperlinks in a component. It
847
* returns hypertext information for a component starting at hyperlink index
848
* nStartIndex. No more than MAX_HYPERLINKS AccessibleHypertextInfo objects will
849
* be returned for each call to this method.
850
* returns FALSE on error.
851
*/
852
BOOL getAccessibleHypertextExt(const long vmID,
853
const AccessibleContext accessibleContext,
854
const jint nStartIndex,
855
/* OUT */ AccessibleHypertextInfo *hypertextInfo) {
856
857
if (theAccessBridgeInitializedFlag == TRUE) {
858
return theAccessBridge.getAccessibleHypertextExt(vmID,
859
accessibleContext,
860
nStartIndex,
861
hypertextInfo);
862
}
863
return FALSE;
864
}
865
866
/*
867
* Returns the index into an array of hyperlinks that is associated with
868
* a character index in document;
869
* Maps to AccessibleHypertext.getLinkIndex.
870
* Returns -1 on error.
871
*/
872
jint getAccessibleHypertextLinkIndex(const long vmID,
873
const AccessibleHypertext hypertext,
874
const jint nIndex) {
875
876
if (theAccessBridgeInitializedFlag == TRUE) {
877
return theAccessBridge.getAccessibleHypertextLinkIndex(vmID,
878
hypertext,
879
nIndex);
880
}
881
return -1;
882
}
883
884
/*
885
* Returns the nth hyperlink in a document.
886
* Maps to AccessibleHypertext.getLink.
887
* Returns -1 on error
888
*/
889
BOOL getAccessibleHyperlink(const long vmID,
890
const AccessibleHypertext hypertext,
891
const jint nIndex,
892
/* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo) {
893
894
if (theAccessBridgeInitializedFlag == TRUE) {
895
return theAccessBridge.getAccessibleHyperlink(vmID,
896
hypertext,
897
nIndex,
898
hyperlinkInfo);
899
}
900
return FALSE;
901
}
902
903
904
/* Accessible KeyBindings, Icons and Actions */
905
BOOL getAccessibleKeyBindings(long vmID, AccessibleContext accessibleContext,
906
AccessibleKeyBindings *keyBindings) {
907
if (theAccessBridgeInitializedFlag == TRUE) {
908
return theAccessBridge.getAccessibleKeyBindings(vmID, accessibleContext, keyBindings);
909
}
910
return FALSE;
911
}
912
913
BOOL getAccessibleIcons(long vmID, AccessibleContext accessibleContext,
914
AccessibleIcons *icons) {
915
if (theAccessBridgeInitializedFlag == TRUE) {
916
return theAccessBridge.getAccessibleIcons(vmID, accessibleContext, icons);
917
}
918
return FALSE;
919
}
920
921
BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext,
922
AccessibleActions *actions) {
923
if (theAccessBridgeInitializedFlag == TRUE) {
924
return theAccessBridge.getAccessibleActions(vmID, accessibleContext, actions);
925
}
926
return FALSE;
927
}
928
929
BOOL doAccessibleActions(long vmID, AccessibleContext accessibleContext,
930
AccessibleActionsToDo *actionsToDo, jint *failure) {
931
if (theAccessBridgeInitializedFlag == TRUE) {
932
return theAccessBridge.doAccessibleActions(vmID, accessibleContext, actionsToDo, failure);
933
}
934
return FALSE;
935
}
936
937
/**
938
* Accessible Value routines
939
*/
940
BOOL GetCurrentAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len) {
941
if (theAccessBridgeInitializedFlag == TRUE) {
942
return theAccessBridge.GetCurrentAccessibleValueFromContext(vmID, av, value, len);
943
}
944
return FALSE;
945
}
946
947
BOOL GetMaximumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len) {
948
if (theAccessBridgeInitializedFlag == TRUE) {
949
return theAccessBridge.GetMaximumAccessibleValueFromContext(vmID, av, value, len);
950
}
951
return FALSE;
952
}
953
954
BOOL GetMinimumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len) {
955
if (theAccessBridgeInitializedFlag == TRUE) {
956
return theAccessBridge.GetMinimumAccessibleValueFromContext(vmID, av, value, len);
957
}
958
return FALSE;
959
}
960
961
962
/**
963
* Accessible Selection routines
964
*/
965
void addAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i) {
966
if (theAccessBridgeInitializedFlag == TRUE) {
967
theAccessBridge.AddAccessibleSelectionFromContext(vmID, as, i);
968
}
969
}
970
971
void clearAccessibleSelectionFromContext(long vmID, AccessibleSelection as) {
972
if (theAccessBridgeInitializedFlag == TRUE) {
973
theAccessBridge.ClearAccessibleSelectionFromContext(vmID, as);
974
}
975
}
976
977
JOBJECT64 GetAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i) {
978
if (theAccessBridgeInitializedFlag == TRUE) {
979
return theAccessBridge.GetAccessibleSelectionFromContext(vmID, as, i);
980
}
981
return (JOBJECT64) 0;
982
}
983
984
int GetAccessibleSelectionCountFromContext(long vmID, AccessibleSelection as) {
985
if (theAccessBridgeInitializedFlag == TRUE) {
986
return theAccessBridge.GetAccessibleSelectionCountFromContext(vmID, as);
987
}
988
return -1;
989
}
990
991
BOOL IsAccessibleChildSelectedFromContext(long vmID, AccessibleSelection as, int i) {
992
if (theAccessBridgeInitializedFlag == TRUE) {
993
return theAccessBridge.IsAccessibleChildSelectedFromContext(vmID, as, i);
994
}
995
return FALSE;
996
}
997
998
void RemoveAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i) {
999
if (theAccessBridgeInitializedFlag == TRUE) {
1000
theAccessBridge.RemoveAccessibleSelectionFromContext(vmID, as, i);
1001
}
1002
}
1003
1004
void SelectAllAccessibleSelectionFromContext(long vmID, AccessibleSelection as) {
1005
if (theAccessBridgeInitializedFlag == TRUE) {
1006
theAccessBridge.SelectAllAccessibleSelectionFromContext(vmID, as);
1007
}
1008
}
1009
1010
/**
1011
* Additional methods for Teton
1012
*/
1013
1014
/**
1015
* Gets the AccessibleName for a component based upon the JAWS algorithm. Returns
1016
* whether successful.
1017
*
1018
* Bug ID 4916682 - Implement JAWS AccessibleName policy
1019
*/
1020
BOOL getVirtualAccessibleName(const long vmID, const AccessibleContext accessibleContext,
1021
wchar_t *name, int len) {
1022
if (theAccessBridgeInitializedFlag == TRUE) {
1023
return theAccessBridge.getVirtualAccessibleName(vmID, accessibleContext, name, len);
1024
}
1025
return FALSE;
1026
}
1027
1028
/**
1029
* Request focus for a component. Returns whether successful;
1030
*
1031
* Bug ID 4944757 - requestFocus method needed
1032
*/
1033
BOOL requestFocus(const long vmID, const AccessibleContext accessibleContext) {
1034
if (theAccessBridgeInitializedFlag == TRUE) {
1035
return theAccessBridge.requestFocus(vmID, accessibleContext);
1036
}
1037
return FALSE;
1038
}
1039
1040
/**
1041
* Selects text between two indices. Selection includes the text at the start index
1042
* and the text at the end index. Returns whether successful;
1043
*
1044
* Bug ID 4944758 - selectTextRange method needed
1045
*/
1046
BOOL selectTextRange(const long vmID, const AccessibleContext accessibleContext,
1047
const int startIndex, const int endIndex) {
1048
if (theAccessBridgeInitializedFlag == TRUE) {
1049
return theAccessBridge.selectTextRange(vmID, accessibleContext, startIndex, endIndex);
1050
}
1051
return FALSE;
1052
}
1053
1054
/**
1055
* Get text attributes between two indices. The attribute list includes the text at the
1056
* start index and the text at the end index. Returns whether successful;
1057
*
1058
* Bug ID 4944761 - getTextAttributes between two indices method needed
1059
*/
1060
BOOL getTextAttributesInRange(const long vmID, const AccessibleContext accessibleContext,
1061
const int startIndex, const int endIndex,
1062
AccessibleTextAttributesInfo *attributes, short *len) {
1063
if (theAccessBridgeInitializedFlag == TRUE) {
1064
return theAccessBridge.getTextAttributesInRange(vmID, accessibleContext, startIndex,
1065
endIndex, attributes, len);
1066
}
1067
return FALSE;
1068
}
1069
1070
/**
1071
* Returns the number of visible children of a component. Returns -1 on error.
1072
*
1073
* Bug ID 4944762- getVisibleChildren for list-like components needed
1074
*/
1075
int getVisibleChildrenCount(const long vmID, const AccessibleContext accessibleContext) {
1076
if (theAccessBridgeInitializedFlag == TRUE) {
1077
return theAccessBridge.getVisibleChildrenCount(vmID, accessibleContext);
1078
}
1079
return FALSE;
1080
}
1081
1082
/**
1083
* Gets the visible children of an AccessibleContext. Returns whether successful;
1084
*
1085
* Bug ID 4944762- getVisibleChildren for list-like components needed
1086
*/
1087
BOOL getVisibleChildren(const long vmID, const AccessibleContext accessibleContext,
1088
const int startIndex, VisibleChildrenInfo *visibleChildrenInfo) {
1089
if (theAccessBridgeInitializedFlag == TRUE) {
1090
return theAccessBridge.getVisibleChildren(vmID, accessibleContext, startIndex,
1091
visibleChildrenInfo);
1092
}
1093
return FALSE;
1094
}
1095
1096
/**
1097
* Set the caret to a text position. Returns whether successful;
1098
*
1099
* Bug ID 4944770 - setCaretPosition method needed
1100
*/
1101
BOOL setCaretPosition(const long vmID, const AccessibleContext accessibleContext,
1102
const int position) {
1103
if (theAccessBridgeInitializedFlag == TRUE) {
1104
return theAccessBridge.setCaretPosition(vmID, accessibleContext, position);
1105
}
1106
return FALSE;
1107
}
1108
1109
/**
1110
* Gets the text caret location
1111
*/
1112
BOOL getCaretLocation(long vmID, AccessibleContext ac, AccessibleTextRectInfo *rectInfo, jint index) {
1113
if (theAccessBridgeInitializedFlag == TRUE) {
1114
return theAccessBridge.getCaretLocation(vmID, ac, rectInfo, index);
1115
}
1116
return FALSE;
1117
}
1118
1119
/**
1120
* Gets the number of events waiting to fire
1121
*/
1122
int getEventsWaiting() {
1123
if (theAccessBridgeInitializedFlag == TRUE) {
1124
return theAccessBridge.getEventsWaiting();
1125
}
1126
return FALSE;
1127
}
1128
1129
#ifdef __cplusplus
1130
}
1131
#endif
1132
1133