Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.desktop/macosx/classes/sun/lwawt/LWLightweightFramePeer.java
41153 views
1
/*
2
* Copyright (c) 2013, 2020, 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.lwawt;
27
28
import java.awt.Graphics;
29
import java.awt.Insets;
30
import java.awt.Point;
31
import java.awt.Rectangle;
32
import java.awt.Window;
33
import java.awt.dnd.DropTarget;
34
import java.awt.event.FocusEvent;
35
36
import sun.awt.LightweightFrame;
37
import sun.awt.OverrideNativeWindowHandle;
38
import sun.swing.JLightweightFrame;
39
import sun.swing.SwingAccessor;
40
41
public class LWLightweightFramePeer extends LWWindowPeer implements OverrideNativeWindowHandle {
42
43
public LWLightweightFramePeer(LightweightFrame target,
44
PlatformComponent platformComponent,
45
PlatformWindow platformWindow)
46
{
47
super(target, platformComponent, platformWindow, LWWindowPeer.PeerType.LW_FRAME);
48
}
49
50
private LightweightFrame getLwTarget() {
51
return (LightweightFrame)getTarget();
52
}
53
54
@Override
55
public Graphics getGraphics() {
56
return getLwTarget().getGraphics();
57
}
58
59
@Override
60
protected void setVisibleImpl(final boolean visible) {
61
}
62
63
@Override
64
public boolean requestWindowFocus(FocusEvent.Cause cause) {
65
if (!focusAllowedFor()) {
66
return false;
67
}
68
if (getPlatformWindow().rejectFocusRequest(cause)) {
69
return false;
70
}
71
72
Window opposite = LWKeyboardFocusManagerPeer.getInstance().
73
getCurrentFocusedWindow();
74
75
changeFocusedWindow(true, opposite);
76
77
return true;
78
}
79
80
@Override
81
public Point getLocationOnScreen() {
82
Rectangle bounds = getBounds();
83
return new Point(bounds.x, bounds.y); // todo
84
}
85
86
@Override
87
public Insets getInsets() {
88
return new Insets(0, 0, 0, 0);
89
}
90
91
@Override
92
public void setBounds(int x, int y, int w, int h, int op) {
93
setBounds(x, y, w, h, op, true, true);
94
}
95
96
@Override
97
public void addDropTarget(DropTarget dt) {
98
getLwTarget().addDropTarget(dt);
99
}
100
101
@Override
102
public void removeDropTarget(DropTarget dt) {
103
getLwTarget().removeDropTarget(dt);
104
}
105
106
@Override
107
public void grab() {
108
getLwTarget().grabFocus();
109
}
110
111
@Override
112
public void ungrab() {
113
getLwTarget().ungrabFocus();
114
}
115
116
@Override
117
public void updateCursorImmediately() {
118
SwingAccessor.getJLightweightFrameAccessor().updateCursor((JLightweightFrame)getLwTarget());
119
}
120
121
// SwingNode
122
private volatile long overriddenWindowHandle = 0L;
123
124
@Override
125
public void overrideWindowHandle(final long handle) {
126
this.overriddenWindowHandle = handle;
127
}
128
129
public long getOverriddenWindowHandle() {
130
return overriddenWindowHandle;
131
}
132
}
133
134