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/AccessBridgeJavaEntryPoints.h
32287 views
1
/*
2
* Copyright (c) 2005, 2015, 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
* A class to manage JNI calls into AccessBridge.java
28
*/
29
30
#include "AccessBridgePackages.h"
31
32
#include <windows.h>
33
#include <jni.h>
34
35
#ifndef __AccessBridgeJavaEntryPoints_H__
36
#define __AccessBridgeJavaEntryPoints_H__
37
38
class AccessBridgeJavaEntryPoints {
39
JNIEnv *jniEnv;
40
41
jobject accessBridgeObject;
42
43
jclass bridgeClass;
44
jclass eventHandlerClass;
45
46
jmethodID decrementReferenceMethod;
47
jmethodID getJavaVersionPropertyMethod;
48
jmethodID getAccessBridgeVersionMethod;
49
50
jmethodID isJavaWindowMethod;
51
jmethodID isSameObjectMethod;
52
jmethodID getAccessibleContextFromHWNDMethod;
53
jmethodID getHWNDFromAccessibleContextMethod;
54
55
jmethodID getAccessibleContextAtMethod;
56
jmethodID getAccessibleContextWithFocusMethod;
57
58
jmethodID getAccessibleNameFromContextMethod;
59
jmethodID getAccessibleDescriptionFromContextMethod;
60
jmethodID getAccessibleRoleStringFromContextMethod;
61
jmethodID getAccessibleRoleStringFromContext_en_USMethod;
62
jmethodID getAccessibleStatesStringFromContextMethod;
63
jmethodID getAccessibleStatesStringFromContext_en_USMethod;
64
jmethodID getAccessibleParentFromContextMethod;
65
jmethodID getAccessibleIndexInParentFromContextMethod;
66
jmethodID getAccessibleChildrenCountFromContextMethod;
67
jmethodID getAccessibleChildFromContextMethod;
68
jmethodID getAccessibleBoundsOnScreenFromContextMethod;
69
jmethodID getAccessibleXcoordFromContextMethod;
70
jmethodID getAccessibleYcoordFromContextMethod;
71
jmethodID getAccessibleHeightFromContextMethod;
72
jmethodID getAccessibleWidthFromContextMethod;
73
74
jmethodID getAccessibleComponentFromContextMethod;
75
jmethodID getAccessibleActionFromContextMethod;
76
jmethodID getAccessibleSelectionFromContextMethod;
77
jmethodID getAccessibleTextFromContextMethod;
78
jmethodID getAccessibleValueFromContextMethod;
79
80
/* begin AccessibleTable */
81
jmethodID getAccessibleTableFromContextMethod;
82
jmethodID getAccessibleTableRowHeaderMethod;
83
jmethodID getAccessibleTableColumnHeaderMethod;
84
jmethodID getAccessibleTableRowCountMethod;
85
jmethodID getAccessibleTableColumnCountMethod;
86
jmethodID getAccessibleTableCaptionMethod;
87
jmethodID getAccessibleTableSummaryMethod;
88
89
jmethodID getContextFromAccessibleTableMethod;
90
jmethodID getAccessibleTableCellAccessibleContextMethod;
91
jmethodID getAccessibleTableCellIndexMethod;
92
jmethodID getAccessibleTableCellRowExtentMethod;
93
jmethodID getAccessibleTableCellColumnExtentMethod;
94
jmethodID isAccessibleTableCellSelectedMethod;
95
96
jmethodID getAccessibleTableRowHeaderRowCountMethod;
97
jmethodID getAccessibleTableColumnHeaderRowCountMethod;
98
99
jmethodID getAccessibleTableRowHeaderColumnCountMethod;
100
jmethodID getAccessibleTableColumnHeaderColumnCountMethod;
101
102
jmethodID getAccessibleTableRowDescriptionMethod;
103
jmethodID getAccessibleTableColumnDescriptionMethod;
104
105
jmethodID getAccessibleTableRowSelectionCountMethod;
106
jmethodID isAccessibleTableRowSelectedMethod;
107
jmethodID getAccessibleTableRowSelectionsMethod;
108
109
jmethodID getAccessibleTableColumnSelectionCountMethod;
110
jmethodID isAccessibleTableColumnSelectedMethod;
111
jmethodID getAccessibleTableColumnSelectionsMethod;
112
113
jmethodID getAccessibleTableRowMethod;
114
jmethodID getAccessibleTableColumnMethod;
115
jmethodID getAccessibleTableIndexMethod;
116
117
/* end AccessibleTable */
118
119
/* begin AccessibleRelationSet */
120
121
jmethodID getAccessibleRelationSetMethod;
122
jmethodID getAccessibleRelationCountMethod;
123
jmethodID getAccessibleRelationKeyMethod;
124
jmethodID getAccessibleRelationTargetCountMethod;
125
jmethodID getAccessibleRelationTargetMethod;
126
127
/* end AccessibleRelationSet */
128
129
// AccessibleHypertext methods
130
jmethodID getAccessibleHypertextMethod;
131
jmethodID getAccessibleHyperlinkCountMethod;
132
jmethodID getAccessibleHyperlinkTextMethod;
133
jmethodID getAccessibleHyperlinkURLMethod;
134
jmethodID getAccessibleHyperlinkStartIndexMethod;
135
jmethodID getAccessibleHyperlinkEndIndexMethod;
136
jmethodID getAccessibleHypertextLinkIndexMethod;
137
jmethodID getAccessibleHyperlinkMethod;
138
jmethodID activateAccessibleHyperlinkMethod;
139
140
// AccessibleKeyBinding
141
jmethodID getAccessibleKeyBindingsCountMethod;
142
jmethodID getAccessibleKeyBindingCharMethod;
143
jmethodID getAccessibleKeyBindingModifiersMethod;
144
145
// AccessibleIcon
146
jmethodID getAccessibleIconsCountMethod;
147
jmethodID getAccessibleIconDescriptionMethod;
148
jmethodID getAccessibleIconHeightMethod;
149
jmethodID getAccessibleIconWidthMethod;
150
151
// AccessibleAction
152
jmethodID getAccessibleActionsCountMethod;
153
jmethodID getAccessibleActionNameMethod;
154
jmethodID doAccessibleActionsMethod;
155
156
// AccessibleText
157
jmethodID getAccessibleCharCountFromContextMethod;
158
jmethodID getAccessibleCaretPositionFromContextMethod;
159
jmethodID getAccessibleIndexAtPointFromContextMethod;
160
161
jmethodID getAccessibleLetterAtIndexFromContextMethod;
162
jmethodID getAccessibleWordAtIndexFromContextMethod;
163
jmethodID getAccessibleSentenceAtIndexFromContextMethod;
164
165
jmethodID getAccessibleTextSelectionStartFromContextMethod;
166
jmethodID getAccessibleTextSelectionEndFromContextMethod;
167
jmethodID getAccessibleTextSelectedTextFromContextMethod;
168
jmethodID getAccessibleAttributesAtIndexFromContextMethod;
169
jmethodID getAccessibleAttributeSetAtIndexFromContextMethod;
170
jmethodID getAccessibleTextRectAtIndexFromContextMethod;
171
jmethodID getAccessibleXcoordTextRectAtIndexFromContextMethod;
172
jmethodID getAccessibleYcoordTextRectAtIndexFromContextMethod;
173
jmethodID getAccessibleHeightTextRectAtIndexFromContextMethod;
174
jmethodID getAccessibleWidthTextRectAtIndexFromContextMethod;
175
jmethodID getAccessibleTextLineLeftBoundsFromContextMethod;
176
jmethodID getAccessibleTextLineRightBoundsFromContextMethod;
177
jmethodID getAccessibleTextRangeFromContextMethod;
178
179
jmethodID getCurrentAccessibleValueFromContextMethod;
180
jmethodID getMaximumAccessibleValueFromContextMethod;
181
jmethodID getMinimumAccessibleValueFromContextMethod;
182
183
jmethodID addAccessibleSelectionFromContextMethod;
184
jmethodID clearAccessibleSelectionFromContextMethod;
185
jmethodID getAccessibleSelectionContextFromContextMethod;
186
jmethodID getAccessibleSelectionCountFromContextMethod;
187
jmethodID isAccessibleChildSelectedFromContextMethod;
188
jmethodID removeAccessibleSelectionFromContextMethod;
189
jmethodID selectAllAccessibleSelectionFromContextMethod;
190
191
jmethodID addJavaEventNotificationMethod;
192
jmethodID removeJavaEventNotificationMethod;
193
jmethodID addAccessibilityEventNotificationMethod;
194
jmethodID removeAccessibilityEventNotificationMethod;
195
196
jmethodID getBoldFromAttributeSetMethod;
197
jmethodID getItalicFromAttributeSetMethod;
198
jmethodID getUnderlineFromAttributeSetMethod;
199
jmethodID getStrikethroughFromAttributeSetMethod;
200
jmethodID getSuperscriptFromAttributeSetMethod;
201
jmethodID getSubscriptFromAttributeSetMethod;
202
jmethodID getBackgroundColorFromAttributeSetMethod;
203
jmethodID getForegroundColorFromAttributeSetMethod;
204
jmethodID getFontFamilyFromAttributeSetMethod;
205
jmethodID getFontSizeFromAttributeSetMethod;
206
jmethodID getAlignmentFromAttributeSetMethod;
207
jmethodID getBidiLevelFromAttributeSetMethod;
208
jmethodID getFirstLineIndentFromAttributeSetMethod;
209
jmethodID getLeftIndentFromAttributeSetMethod;
210
jmethodID getRightIndentFromAttributeSetMethod;
211
jmethodID getLineSpacingFromAttributeSetMethod;
212
jmethodID getSpaceAboveFromAttributeSetMethod;
213
jmethodID getSpaceBelowFromAttributeSetMethod;
214
215
jmethodID setTextContentsMethod;
216
jmethodID getParentWithRoleMethod;
217
jmethodID getTopLevelObjectMethod;
218
jmethodID getParentWithRoleElseRootMethod;
219
jmethodID getObjectDepthMethod;
220
jmethodID getActiveDescendentMethod;
221
222
/**
223
* Additional methods for Teton
224
*/
225
jmethodID getVirtualAccessibleNameFromContextMethod; // Ben Key
226
jmethodID requestFocusMethod;
227
jmethodID selectTextRangeMethod;
228
jmethodID getTextAttributesInRangeMethod;
229
jmethodID getVisibleChildrenCountMethod;
230
jmethodID getVisibleChildMethod;
231
jmethodID setCaretPositionMethod;
232
233
jmethodID getCaretLocationMethod;
234
jmethodID getCaretLocationXMethod;
235
jmethodID getCaretLocationYMethod;
236
jmethodID getCaretLocationHeightMethod;
237
jmethodID getCaretLocationWidthMethod;
238
239
public:
240
AccessBridgeJavaEntryPoints(JNIEnv *jniEnvironment, jobject bridgeObject);
241
~AccessBridgeJavaEntryPoints();
242
BOOL BuildJavaEntryPoints();
243
244
// HWND management methods
245
BOOL isJavaWindow(jint window);
246
jobject getAccessibleContextFromHWND(jint window);
247
HWND getHWNDFromAccessibleContext(jobject accessibleContext);
248
249
// version methods
250
BOOL getVersionInfo(AccessBridgeVersionInfo *info);
251
252
// verification methods
253
BOOL verifyAccessibleText(jobject obj);
254
255
/* ===== utility methods ===== */
256
BOOL isSameObject(jobject obj1, jobject obj2);
257
BOOL setTextContents(const jobject accessibleContext, const wchar_t *text);
258
jobject getParentWithRole (const jobject accessibleContext, const wchar_t *role);
259
jobject getTopLevelObject (const jobject accessibleContext);
260
jobject getParentWithRoleElseRoot (const jobject accessibleContext, const wchar_t *role);
261
jint getObjectDepth (const jobject accessibleContext);
262
jobject getActiveDescendent (const jobject accessibleContext);
263
264
// Accessible Context methods
265
jobject getAccessibleContextAt(jint x, jint y, jobject AccessibleContext);
266
jobject getAccessibleContextWithFocus();
267
BOOL getAccessibleContextInfo(jobject AccessibleContext, AccessibleContextInfo *info);
268
jobject getAccessibleChildFromContext(jobject AccessibleContext, jint childIndex);
269
jobject getAccessibleParentFromContext(jobject AccessibleContext);
270
271
/* begin AccessibleTable methods */
272
273
BOOL getAccessibleTableInfo(jobject acParent, AccessibleTableInfo *tableInfo);
274
BOOL getAccessibleTableCellInfo(jobject accessibleTable,jint row, jint column,
275
AccessibleTableCellInfo *tableCellInfo);
276
277
BOOL getAccessibleTableRowHeader(jobject acParent, AccessibleTableInfo *tableInfo);
278
BOOL getAccessibleTableColumnHeader(jobject acParent, AccessibleTableInfo *tableInfo);
279
280
jobject getAccessibleTableRowDescription(jobject acParent, jint row);
281
jobject getAccessibleTableColumnDescription(jobject acParent, jint column);
282
283
jint getAccessibleTableRowSelectionCount(jobject accessibleTable);
284
BOOL isAccessibleTableRowSelected(jobject accessibleTable, jint row);
285
BOOL getAccessibleTableRowSelections(jobject accessibleTable, jint count, jint *selections);
286
287
jint getAccessibleTableColumnSelectionCount(jobject accessibleTable);
288
BOOL isAccessibleTableColumnSelected(jobject accessibleTable, jint column);
289
BOOL getAccessibleTableColumnSelections(jobject accessibleTable, jint count, jint *selections);
290
291
jint getAccessibleTableRow(jobject accessibleTable, jint index);
292
jint getAccessibleTableColumn(jobject accessibleTable, jint index);
293
jint getAccessibleTableIndex(jobject accessibleTable, jint row, jint column);
294
295
/* end AccessibleTable methods */
296
297
BOOL getAccessibleRelationSet(jobject accessibleContext, AccessibleRelationSetInfo *relationSetInfo);
298
299
// AccessibleHypertext methods
300
BOOL getAccessibleHypertext(jobject accessibleContext, AccessibleHypertextInfo *hyperlink);
301
302
BOOL activateAccessibleHyperlink(jobject accessibleContext, jobject accessibleHyperlink);
303
304
BOOL getAccessibleHypertextExt(const jobject accessibleContext,
305
const jint nStartIndex,
306
/* OUT */ AccessibleHypertextInfo *hypertext);
307
jint getAccessibleHyperlinkCount(const jobject accessibleContext);
308
jint getAccessibleHypertextLinkIndex(const jobject accessibleContext,
309
const jint nIndex);
310
BOOL getAccessibleHyperlink(const jobject accessibleContext,
311
const jint nIndex,
312
/* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo);
313
314
// Accessible Keybinding methods
315
BOOL getAccessibleKeyBindings(jobject accessibleContext, AccessibleKeyBindings *keyBindings);
316
317
// AccessibleIcon methods
318
BOOL getAccessibleIcons(jobject accessibleContext, AccessibleIcons *icons);
319
320
// AccessibleActionMethods
321
BOOL getAccessibleActions(jobject accessibleContext, AccessibleActions *actions);
322
BOOL doAccessibleActions(jobject accessibleContext, AccessibleActionsToDo *actionsToDo, jint *failure);
323
324
// Accessible Text methods
325
BOOL getAccessibleTextInfo(jobject AccessibleContext, AccessibleTextInfo *textInfo, jint x, jint y);
326
BOOL getAccessibleTextItems(jobject AccessibleContext, AccessibleTextItemsInfo *textItems, jint index);
327
BOOL getAccessibleTextSelectionInfo(jobject AccessibleContext, AccessibleTextSelectionInfo *selectionInfo);
328
BOOL getAccessibleTextAttributes(jobject AccessibleContext, jint index, AccessibleTextAttributesInfo *attributes);
329
BOOL getAccessibleTextRect(jobject AccessibleContext, AccessibleTextRectInfo *rectInfo, jint index);
330
BOOL getAccessibleCaretRect(jobject AccessibleContext, AccessibleTextRectInfo *rectInfo, jint index);
331
BOOL getAccessibleTextLineBounds(jobject AccessibleContext, jint index, jint *startIndex, jint *endIndex);
332
BOOL getAccessibleTextRange(jobject AccessibleContext, jint start, jint end, wchar_t *text, short len);
333
334
// Accessible Value methods
335
BOOL getCurrentAccessibleValueFromContext(jobject AccessibleContext, wchar_t *value, short len);
336
BOOL getMaximumAccessibleValueFromContext(jobject AccessibleContext, wchar_t *value, short len);
337
BOOL getMinimumAccessibleValueFromContext(jobject AccessibleContext, wchar_t *value, short len);
338
339
// Accessible Selection methods
340
void addAccessibleSelectionFromContext(jobject AccessibleContext, int i);
341
void clearAccessibleSelectionFromContext(jobject AccessibleContext);
342
jobject getAccessibleSelectionFromContext(jobject AccessibleContext, int i);
343
int getAccessibleSelectionCountFromContext(jobject AccessibleContext);
344
BOOL isAccessibleChildSelectedFromContext(jobject AccessibleContext, int i);
345
void removeAccessibleSelectionFromContext(jobject AccessibleContext, int i);
346
void selectAllAccessibleSelectionFromContext(jobject AccessibleContext);
347
348
// Event handling methods
349
BOOL addJavaEventNotification(jlong type);
350
BOOL removeJavaEventNotification(jlong type);
351
BOOL addAccessibilityEventNotification(jlong type);
352
BOOL removeAccessibilityEventNotification(jlong type);
353
354
/**
355
* Additional methods for Teton
356
*/
357
358
/**
359
* Gets the AccessibleName for a component based upon the JAWS algorithm. Returns
360
* whether successful.
361
*
362
* Bug ID 4916682 - Implement JAWS AccessibleName policy
363
*/
364
BOOL getVirtualAccessibleName(const jobject accessibleContext, wchar_t *name, int len);
365
366
/**
367
* Request focus for a component. Returns whether successful;
368
*
369
* Bug ID 4944757 - requestFocus method needed
370
*/
371
BOOL requestFocus(const jobject accessibleContext);
372
373
/**
374
* Selects text between two indices. Selection includes the text at the start index
375
* and the text at the end index. Returns whether successful;
376
*
377
* Bug ID 4944758 - selectTextRange method needed
378
*/
379
BOOL selectTextRange(const jobject accessibleContext, int startIndex, int endIndex);
380
381
/**
382
* Get text attributes between two indices. The attribute list includes the text at the
383
* start index and the text at the end index. Returns whether successful;
384
*
385
* Bug ID 4944761 - getTextAttributes between two indices method needed
386
*/
387
BOOL getTextAttributesInRange(const jobject accessibleContext, int startIndex, int endIndex,
388
AccessibleTextAttributesInfo *attributes, short *len);
389
390
/**
391
* Gets the number of visible children of a component. Returns -1 on error.
392
*
393
* Bug ID 4944762- getVisibleChildren for list-like components needed
394
*/
395
int getVisibleChildrenCount(const jobject accessibleContext);
396
397
/**
398
* Gets the visible children of an AccessibleContext. Returns whether successful;
399
*
400
* Bug ID 4944762- getVisibleChildren for list-like components needed
401
*/
402
BOOL getVisibleChildren(const jobject accessibleContext, const int startIndex,
403
VisibleChildrenInfo *visibleChildrenInfo);
404
405
/**
406
* Set the caret to a text position. Returns whether successful;
407
*
408
* Bug ID 4944770 - setCaretPosition method needed
409
*/
410
BOOL setCaretPosition(const jobject accessibleContext, int position);
411
412
/**
413
* Gets the bounding rectangle for the text caret
414
*/
415
BOOL getCaretLocation(jobject AccessibleContext, AccessibleTextRectInfo *rectInfo, jint index);
416
417
};
418
419
#endif
420
421