Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/jdk.accessibility/windows/native/libwindowsaccessbridge/AccessBridgeWindowsEntryPoints.h
40957 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
* Glue routines called by Windows AT into the WindowsAccessBridge dll
28
*/
29
30
#ifndef __AccessBridgeWindowsEntryPoints_H__
31
#define __AccessBridgeWindowsEntryPoints_H__
32
33
#include <windows.h>
34
#include <jni.h>
35
36
#include "AccessBridgePackages.h"
37
#include "AccessBridgeCallbacks.h"
38
39
#ifdef __cplusplus
40
extern "C" {
41
#endif
42
43
void Windows_run();
44
45
void releaseJavaObject(long vmID, JOBJECT64 object);
46
void getVersionInfo(long vmID, AccessBridgeVersionInfo *info);
47
48
// Window related functions
49
HWND getTopLevelHWND(HWND descendent);
50
BOOL isJavaWindow(HWND window);
51
BOOL getAccessibleContextFromHWND(HWND window, long *vmID, JOBJECT64 *AccessibleContext);
52
HWND getHWNDFromAccessibleContext(long vmID, JOBJECT64 accessibleContext);
53
54
// returns whether two objects are the same
55
BOOL isSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2);
56
57
// Accessible Context functions
58
BOOL getAccessibleContextAt(long vmID, JOBJECT64 AccessibleContextParent,
59
jint x, jint y, JOBJECT64 *AccessibleContext);
60
BOOL getAccessibleContextWithFocus(HWND window, long *vmID, JOBJECT64 *AccessibleContext);
61
BOOL getAccessibleContextInfo(long vmID, JOBJECT64 AccessibleContext, AccessibleContextInfo *info);
62
JOBJECT64 getAccessibleChildFromContext(long vmID, JOBJECT64 AccessibleContext, jint childIndex);
63
JOBJECT64 getAccessibleParentFromContext(long vmID, JOBJECT64 AccessibleContext);
64
65
/* begin AccessibleTable */
66
BOOL getAccessibleTableInfo(long vmID, JOBJECT64 acParent, AccessibleTableInfo *tableInfo);
67
BOOL getAccessibleTableCellInfo(long vmID, JOBJECT64 accessibleTable, jint row, jint column,
68
AccessibleTableCellInfo *tableCellInfo);
69
70
BOOL getAccessibleTableRowHeader(long vmID, JOBJECT64 acParent, AccessibleTableInfo *tableInfo);
71
BOOL getAccessibleTableColumnHeader(long vmID, JOBJECT64 acParent, AccessibleTableInfo *tableInfo);
72
73
JOBJECT64 getAccessibleTableRowDescription(long vmID, JOBJECT64 acParent, jint row);
74
JOBJECT64 getAccessibleTableColumnDescription(long vmID, JOBJECT64 acParent, jint column);
75
76
jint getAccessibleTableRowSelectionCount(long vmID, JOBJECT64 accessibleTable);
77
BOOL isAccessibleTableRowSelected(long vmID, JOBJECT64 accessibleTable, jint row);
78
BOOL getAccessibleTableRowSelections(long vmID, JOBJECT64 accessibleTable, jint count,
79
jint *selections);
80
81
jint getAccessibleTableColumnSelectionCount(long vmID, JOBJECT64 accessibleTable);
82
BOOL isAccessibleTableColumnSelected(long vmID, JOBJECT64 accessibleTable, jint column);
83
BOOL getAccessibleTableColumnSelections(long vmID, JOBJECT64 accessibleTable, jint count,
84
jint *selections);
85
86
jint getAccessibleTableRow(long vmID, JOBJECT64 accessibleTable, jint index);
87
jint getAccessibleTableColumn(long vmID, JOBJECT64 accessibleTable, jint index);
88
jint getAccessibleTableIndex(long vmID, JOBJECT64 accessibleTable, jint row, jint column);
89
90
/* end AccessibleTable */
91
92
BOOL getAccessibleRelationSet(long vmID, JOBJECT64 accessibleContext,
93
AccessibleRelationSetInfo *relationSetInfo);
94
95
// AccessibleHypertext methods
96
BOOL getAccessibleHypertext(long vmID, JOBJECT64 accessibleContext, AccessibleHypertextInfo *hypertextInfo);
97
98
BOOL activateAccessibleHyperlink(long vmID, JOBJECT64 accessibleContext, JOBJECT64 accessibleHyperlink);
99
100
jint getAccessibleHyperlinkCount(const long vmID,
101
const AccessibleContext accessibleContext);
102
103
BOOL getAccessibleHypertextExt(const long vmID,
104
const AccessibleContext accessibleContext,
105
const jint nStartIndex,
106
/* OUT */ AccessibleHypertextInfo *hypertextInfo);
107
108
jint getAccessibleHypertextLinkIndex(const long vmID,
109
const AccessibleHypertext hypertext,
110
const jint nIndex);
111
112
BOOL getAccessibleHyperlink(const long vmID,
113
const AccessibleHypertext hypertext,
114
const jint nIndex,
115
/* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo);
116
117
118
/* Accessible KeyBindings, Icons and Actions */
119
BOOL getAccessibleKeyBindings(long vmID, JOBJECT64 accessibleContext,
120
AccessibleKeyBindings *keyBindings);
121
122
BOOL getAccessibleIcons(long vmID, JOBJECT64 accessibleContext,
123
AccessibleIcons *icons);
124
125
BOOL getAccessibleActions(long vmID, JOBJECT64 accessibleContext,
126
AccessibleActions *actions);
127
128
BOOL doAccessibleActions(long vmID, JOBJECT64 accessibleContext,
129
AccessibleActionsToDo *actionsToDo, jint *failure);
130
131
/* ----- Additional AccessibleHypertext methods for Teton */
132
133
134
jint getAccessibleHypertextLinkCount(const long vmID,
135
const AccessibleContext accessibleContext);
136
137
BOOL getAccessibleHypertextExt(const long vmID,
138
const AccessibleContext accessibleContext,
139
const jint nStartIndex,
140
/* OUT */ AccessibleHypertextInfo *hypertextInfo);
141
142
jint getAccessibleHypertextLinkIndex(const long vmID,
143
const AccessibleContext accessibleContext,
144
const jint nIndex);
145
146
BOOL getAccessibleHyperlink(const long vmID,
147
const AccessibleContext accessibleContext,
148
const jint nIndex,
149
/* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo);
150
151
152
/* Additional utility methods */
153
BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text);
154
155
AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext, const wchar_t *role);
156
157
AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext);
158
159
AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext, const wchar_t *role);
160
161
int getObjectDepth (const long vmID, const AccessibleContext accessibleContext);
162
163
AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext);
164
165
/**
166
* Additional methods for Teton
167
*/
168
169
/**
170
* Gets the AccessibleName for a component based upon the JAWS algorithm. Returns
171
* whether successful.
172
*
173
* Bug ID 4916682 - Implement JAWS AccessibleName policy
174
*/
175
BOOL getVirtualAccessibleName(long vmID, AccessibleContext accessibleContext, wchar_t *name, int len);
176
177
/**
178
* Request focus for a component. Returns whether successful;
179
*
180
* Bug ID 4944757 - requestFocus method needed
181
*/
182
BOOL requestFocus(long vmID, AccessibleContext accessibleContext);
183
184
/**
185
* Selects text between two indices. Selection includes the text at the start index
186
* and the text at the end index. Returns whether successful;
187
*
188
* Bug ID 4944758 - selectTextRange method needed
189
*/
190
BOOL selectTextRange(long vmID, AccessibleContext accessibleContext, int startIndex, int endIndex);
191
192
/**
193
* Get text attributes between two indices. The attribute list includes the text at the
194
* start index and the text at the end index. Returns whether successful;
195
*
196
* Bug ID 4944761 - getTextAttributes between two indices method needed
197
*/
198
BOOL getTextAttributesInRange(long vmID, AccessibleContext accessibleContext, int startIndex, int endIndex,
199
AccessibleTextAttributesInfo *attributes, short *len);
200
201
/**
202
* Returns the number of visible children of a component. Returns -1 on error.
203
*
204
* Bug ID 4944762- getVisibleChildren for list-like components needed
205
*/
206
int getVisibleChildrenCount(long vmID, AccessibleContext accessibleContext);
207
208
/**
209
* Gets the visible children of an AccessibleContext. Returns whether successful;
210
*
211
* Bug ID 4944762- getVisibleChildren for list-like components needed
212
*/
213
BOOL getVisibleChildren(long vmID, AccessibleContext accessibleContext, int startIndex,
214
VisibleChildrenInfo *visibleChildrenInfo);
215
216
/**
217
* Set the caret to a text position. Returns whether successful;
218
*
219
* Bug ID 4944770 - setCaretPosition method needed
220
*/
221
BOOL setCaretPosition(long vmID, AccessibleContext accessibleContext, int position);
222
223
/**
224
* Gets the text caret bounding rectangle
225
*/
226
BOOL getCaretLocation(long vmID, JOBJECT64 AccessibleContext, AccessibleTextRectInfo *rectInfo, jint index);
227
228
// Accessible Text functions
229
BOOL getAccessibleTextInfo(long vmID, JOBJECT64 AccessibleContext, AccessibleTextInfo *textInfo, jint x, jint y);
230
BOOL getAccessibleTextItems(long vmID, JOBJECT64 AccessibleContext, AccessibleTextItemsInfo *textItems, jint index);
231
BOOL getAccessibleTextSelectionInfo(long vmID, JOBJECT64 AccessibleContext, AccessibleTextSelectionInfo *selectionInfo);
232
BOOL getAccessibleTextAttributes(long vmID, JOBJECT64 AccessibleContext, jint index, AccessibleTextAttributesInfo *attributes);
233
BOOL getAccessibleTextRect(long vmID, JOBJECT64 AccessibleContext, AccessibleTextRectInfo *rectInfo, jint index);
234
BOOL getAccessibleTextLineBounds(long vmID, JOBJECT64 AccessibleContext, jint index, jint *startIndex, jint *endIndex);
235
BOOL getAccessibleTextRange(long vmID, JOBJECT64 AccessibleContext, jint start, jint end, wchar_t *text, short len);
236
237
// Accessible Value methods
238
BOOL getCurrentAccessibleValueFromContext(long vmID,JOBJECT64 AccessibleContext, wchar_t *value, short len);
239
BOOL getMaximumAccessibleValueFromContext(long vmID,JOBJECT64 AccessibleContext, wchar_t *value, short len);
240
BOOL getMinimumAccessibleValueFromContext(long vmID,JOBJECT64 AccessibleContext, wchar_t *value, short len);
241
242
// Accessible Selection methods
243
void addAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext, int i);
244
void clearAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext);
245
JOBJECT64 getAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext, int i);
246
int getAccessibleSelectionCountFromContext(long vmID,JOBJECT64 AccessibleContext);
247
BOOL isAccessibleChildSelectedFromContext(long vmID,JOBJECT64 AccessibleContext, int i);
248
void removeAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext, int i);
249
void selectAllAccessibleSelectionFromContext(long vmID,JOBJECT64 AccessibleContext);
250
251
252
// PropertyChange Event registry routines
253
void setPropertyChangeFP(AccessBridge_PropertyChangeFP fp);
254
255
// Java application shutdown
256
void setJavaShutdownFP(AccessBridge_JavaShutdownFP fp);
257
258
// Focus Event registry routines
259
void setFocusGainedFP(AccessBridge_FocusGainedFP fp);
260
void setFocusLostFP(AccessBridge_FocusLostFP fp);
261
262
// Caret Event registry routines
263
void setCaretUpdateFP(AccessBridge_CaretUpdateFP fp);
264
265
// Mouse Event registry routines
266
void setMouseClickedFP(AccessBridge_MouseClickedFP fp);
267
void setMouseEnteredFP(AccessBridge_MouseEnteredFP fp);
268
void setMouseExitedFP(AccessBridge_MouseExitedFP fp);
269
void setMousePressedFP(AccessBridge_MousePressedFP fp);
270
void setMouseReleasedFP(AccessBridge_MouseReleasedFP fp);
271
272
// Menu/PopupMenu Event registry routines
273
void setMenuCanceledFP(AccessBridge_MenuCanceledFP fp);
274
void setMenuDeselectedFP(AccessBridge_MenuDeselectedFP fp);
275
void setMenuSelectedFP(AccessBridge_MenuSelectedFP fp);
276
void setPopupMenuCanceledFP(AccessBridge_PopupMenuCanceledFP fp);
277
void setPopupMenuWillBecomeInvisibleFP(AccessBridge_PopupMenuWillBecomeInvisibleFP fp);
278
void setPopupMenuWillBecomeVisibleFP(AccessBridge_PopupMenuWillBecomeVisibleFP fp);
279
280
// Accessibility PropertyChange Event registry routines
281
void setPropertyNameChangeFP(AccessBridge_PropertyNameChangeFP fp);
282
void setPropertyDescriptionChangeFP(AccessBridge_PropertyDescriptionChangeFP fp);
283
void setPropertyStateChangeFP(AccessBridge_PropertyStateChangeFP fp);
284
void setPropertyValueChangeFP(AccessBridge_PropertyValueChangeFP fp);
285
void setPropertySelectionChangeFP(AccessBridge_PropertySelectionChangeFP fp);
286
void setPropertyTextChangeFP(AccessBridge_PropertyTextChangeFP fp);
287
void setPropertyCaretChangeFP(AccessBridge_PropertyCaretChangeFP fp);
288
void setPropertyVisibleDataChangeFP(AccessBridge_PropertyVisibleDataChangeFP fp);
289
void setPropertyChildChangeFP(AccessBridge_PropertyChildChangeFP fp);
290
void setPropertyActiveDescendentChangeFP(AccessBridge_PropertyActiveDescendentChangeFP fp);
291
292
void setPropertyTableModelChangeFP(AccessBridge_PropertyTableModelChangeFP fp);
293
294
295
296
#ifdef __cplusplus
297
}
298
#endif
299
300
#endif
301
302