Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.desktop/share/classes/sun/awt/HeadlessToolkit.java
41152 views
1
/*
2
* Copyright (c) 2000, 2017, 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
package sun.awt;
27
28
import java.awt.*;
29
import java.awt.datatransfer.Clipboard;
30
import java.awt.dnd.DragGestureListener;
31
import java.awt.dnd.DragGestureRecognizer;
32
import java.awt.dnd.DragSource;
33
import java.awt.event.AWTEventListener;
34
import java.awt.event.InputEvent;
35
import java.awt.font.TextAttribute;
36
import java.awt.im.InputMethodHighlight;
37
import java.awt.image.ColorModel;
38
import java.awt.image.ImageObserver;
39
import java.awt.image.ImageProducer;
40
import java.awt.peer.FontPeer;
41
import java.awt.peer.KeyboardFocusManagerPeer;
42
import java.awt.peer.SystemTrayPeer;
43
import java.awt.peer.TrayIconPeer;
44
import java.beans.PropertyChangeListener;
45
import java.net.URL;
46
import java.util.Map;
47
import java.util.Properties;
48
49
public final class HeadlessToolkit extends Toolkit
50
implements ComponentFactory, KeyboardFocusManagerPeerProvider {
51
52
private static final KeyboardFocusManagerPeer kfmPeer = new KeyboardFocusManagerPeer() {
53
@Override
54
public void setCurrentFocusedWindow(Window win) {}
55
@Override
56
public Window getCurrentFocusedWindow() { return null; }
57
@Override
58
public void setCurrentFocusOwner(Component comp) {}
59
@Override
60
public Component getCurrentFocusOwner() { return null; }
61
@Override
62
public void clearGlobalFocusOwner(Window activeWindow) {}
63
};
64
65
private final Toolkit tk;
66
private ComponentFactory componentFactory;
67
68
public HeadlessToolkit(Toolkit tk) {
69
this.tk = tk;
70
if (tk instanceof ComponentFactory) {
71
componentFactory = (ComponentFactory)tk;
72
}
73
}
74
75
public Toolkit getUnderlyingToolkit() {
76
return tk;
77
}
78
79
@Override
80
public KeyboardFocusManagerPeer getKeyboardFocusManagerPeer() {
81
// See 6833019.
82
return kfmPeer;
83
}
84
85
public TrayIconPeer createTrayIcon(TrayIcon target)
86
throws HeadlessException {
87
throw new HeadlessException();
88
}
89
90
public SystemTrayPeer createSystemTray(SystemTray target)
91
throws HeadlessException {
92
throw new HeadlessException();
93
}
94
95
public boolean isTraySupported() {
96
return false;
97
}
98
99
public GlobalCursorManager getGlobalCursorManager()
100
throws HeadlessException {
101
throw new HeadlessException();
102
}
103
104
/*
105
* Headless toolkit - unsupported.
106
*/
107
@Override
108
protected void loadSystemColors(int[] systemColors)
109
throws HeadlessException {
110
throw new HeadlessException();
111
}
112
113
@Override
114
public ColorModel getColorModel()
115
throws HeadlessException {
116
throw new HeadlessException();
117
}
118
119
@Override
120
public int getScreenResolution()
121
throws HeadlessException {
122
throw new HeadlessException();
123
}
124
125
@Override
126
public Map<TextAttribute, ?> mapInputMethodHighlight(InputMethodHighlight highlight)
127
throws HeadlessException {
128
throw new HeadlessException();
129
}
130
131
@Override
132
@Deprecated(since = "10")
133
public int getMenuShortcutKeyMask()
134
throws HeadlessException {
135
throw new HeadlessException();
136
}
137
138
@Override
139
public int getMenuShortcutKeyMaskEx()
140
throws HeadlessException {
141
throw new HeadlessException();
142
}
143
144
@Override
145
public boolean getLockingKeyState(int keyCode)
146
throws UnsupportedOperationException {
147
throw new HeadlessException();
148
}
149
150
@Override
151
public void setLockingKeyState(int keyCode, boolean on)
152
throws UnsupportedOperationException {
153
throw new HeadlessException();
154
}
155
156
@Override
157
public Cursor createCustomCursor(Image cursor, Point hotSpot, String name)
158
throws IndexOutOfBoundsException, HeadlessException {
159
throw new HeadlessException();
160
}
161
162
@Override
163
public Dimension getBestCursorSize(int preferredWidth, int preferredHeight)
164
throws HeadlessException {
165
throw new HeadlessException();
166
}
167
168
@Override
169
public int getMaximumCursorColors()
170
throws HeadlessException {
171
throw new HeadlessException();
172
}
173
174
@Override
175
public <T extends DragGestureRecognizer> T
176
createDragGestureRecognizer(Class<T> abstractRecognizerClass,
177
DragSource ds, Component c,
178
int srcActions, DragGestureListener dgl)
179
{
180
return null;
181
}
182
183
@Override
184
public Dimension getScreenSize()
185
throws HeadlessException {
186
throw new HeadlessException();
187
}
188
189
@Override
190
public Insets getScreenInsets(GraphicsConfiguration gc)
191
throws HeadlessException {
192
throw new HeadlessException();
193
}
194
195
@Override
196
public void setDynamicLayout(boolean dynamic)
197
throws HeadlessException {
198
throw new HeadlessException();
199
}
200
201
@Override
202
protected boolean isDynamicLayoutSet()
203
throws HeadlessException {
204
throw new HeadlessException();
205
}
206
207
@Override
208
public boolean isDynamicLayoutActive()
209
throws HeadlessException {
210
throw new HeadlessException();
211
}
212
213
@Override
214
public Clipboard getSystemClipboard()
215
throws HeadlessException {
216
throw new HeadlessException();
217
}
218
219
/*
220
* Printing
221
*/
222
@Override
223
public PrintJob getPrintJob(Frame frame, String jobtitle,
224
JobAttributes jobAttributes,
225
PageAttributes pageAttributes) {
226
if (frame != null) {
227
// Should never happen
228
throw new HeadlessException();
229
}
230
throw new NullPointerException("frame must not be null");
231
}
232
233
@Override
234
public PrintJob getPrintJob(Frame frame, String doctitle, Properties props)
235
{
236
if (frame != null) {
237
// Should never happen
238
throw new HeadlessException();
239
}
240
throw new NullPointerException("frame must not be null");
241
}
242
243
/*
244
* Headless toolkit - supported.
245
*/
246
247
@Override
248
public void sync() {
249
// Do nothing
250
}
251
252
@Override
253
public void beep() {
254
// Send alert character
255
System.out.write(0x07);
256
}
257
258
/*
259
* Event Queue
260
*/
261
@Override
262
public EventQueue getSystemEventQueueImpl() {
263
return SunToolkit.getSystemEventQueueImplPP();
264
}
265
266
/*
267
* Images.
268
*/
269
@Override
270
public int checkImage(Image img, int w, int h, ImageObserver o) {
271
return tk.checkImage(img, w, h, o);
272
}
273
274
@Override
275
public boolean prepareImage(
276
Image img, int w, int h, ImageObserver o) {
277
return tk.prepareImage(img, w, h, o);
278
}
279
280
@Override
281
public Image getImage(String filename) {
282
return tk.getImage(filename);
283
}
284
285
@Override
286
public Image getImage(URL url) {
287
return tk.getImage(url);
288
}
289
290
@Override
291
public Image createImage(String filename) {
292
return tk.createImage(filename);
293
}
294
295
@Override
296
public Image createImage(URL url) {
297
return tk.createImage(url);
298
}
299
300
@Override
301
public Image createImage(byte[] data, int offset, int length) {
302
return tk.createImage(data, offset, length);
303
}
304
305
@Override
306
public Image createImage(ImageProducer producer) {
307
return tk.createImage(producer);
308
}
309
310
@Override
311
public Image createImage(byte[] imagedata) {
312
return tk.createImage(imagedata);
313
}
314
315
316
/*
317
* Fonts
318
*/
319
@Override
320
public FontPeer getFontPeer(String name, int style) {
321
if (componentFactory != null) {
322
return componentFactory.getFontPeer(name, style);
323
}
324
return null;
325
}
326
327
@Override
328
@SuppressWarnings("deprecation")
329
public FontMetrics getFontMetrics(Font font) {
330
return tk.getFontMetrics(font);
331
}
332
333
@Override
334
@SuppressWarnings("deprecation")
335
public String[] getFontList() {
336
return tk.getFontList();
337
}
338
339
/*
340
* Desktop properties
341
*/
342
343
@Override
344
public void addPropertyChangeListener(String name,
345
PropertyChangeListener pcl) {
346
tk.addPropertyChangeListener(name, pcl);
347
}
348
349
@Override
350
public void removePropertyChangeListener(String name,
351
PropertyChangeListener pcl) {
352
tk.removePropertyChangeListener(name, pcl);
353
}
354
355
/*
356
* Modality
357
*/
358
@Override
359
public boolean isModalityTypeSupported(Dialog.ModalityType modalityType) {
360
return false;
361
}
362
363
@Override
364
public boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType exclusionType) {
365
return false;
366
}
367
368
/*
369
* Always on top
370
*/
371
@Override
372
public boolean isAlwaysOnTopSupported() {
373
return false;
374
}
375
376
/*
377
* AWT Event listeners
378
*/
379
380
@Override
381
public void addAWTEventListener(AWTEventListener listener,
382
long eventMask) {
383
tk.addAWTEventListener(listener, eventMask);
384
}
385
386
@Override
387
public void removeAWTEventListener(AWTEventListener listener) {
388
tk.removeAWTEventListener(listener);
389
}
390
391
@Override
392
public AWTEventListener[] getAWTEventListeners() {
393
return tk.getAWTEventListeners();
394
}
395
396
@Override
397
public AWTEventListener[] getAWTEventListeners(long eventMask) {
398
return tk.getAWTEventListeners(eventMask);
399
}
400
401
public boolean isDesktopSupported() {
402
return false;
403
}
404
405
@Override
406
public boolean areExtraMouseButtonsEnabled() throws HeadlessException{
407
throw new HeadlessException();
408
}
409
}
410
411