30 import java.awt.event.*;
31 import java.awt.peer.WindowPeer;
32 import java.beans.*;
33 import java.lang.reflect.InvocationTargetException;
34 import java.util.List;
35 import java.util.Objects;
36
37 import javax.swing.*;
38
39 import sun.awt.*;
40 import sun.java2d.SurfaceData;
41 import sun.java2d.opengl.CGLSurfaceData;
42 import sun.lwawt.*;
43 import sun.util.logging.PlatformLogger;
44
45 import com.apple.laf.*;
46 import com.apple.laf.ClientPropertyApplicator.Property;
47 import com.sun.awt.AWTUtilities;
48
49 public class CPlatformWindow extends CFRetainedResource implements PlatformWindow {
50 private native long nativeCreateNSWindow(long nsViewPtr, long styleBits, double x, double y, double w, double h);
51 private static native void nativeSetNSWindowStyleBits(long nsWindowPtr, int mask, int data);
52 private static native void nativeSetNSWindowMenuBar(long nsWindowPtr, long menuBarPtr);
53 private static native Insets nativeGetNSWindowInsets(long nsWindowPtr);
54 private static native void nativeSetNSWindowBounds(long nsWindowPtr, double x, double y, double w, double h);
55 private static native void nativeSetNSWindowMinMax(long nsWindowPtr, double minW, double minH, double maxW, double maxH);
56 private static native void nativePushNSWindowToBack(long nsWindowPtr);
57 private static native void nativePushNSWindowToFront(long nsWindowPtr);
58 private static native void nativeSetNSWindowTitle(long nsWindowPtr, String title);
59 private static native void nativeRevalidateNSWindowShadow(long nsWindowPtr);
60 private static native void nativeSetNSWindowMinimizedIcon(long nsWindowPtr, long nsImage);
61 private static native void nativeSetNSWindowRepresentedFilename(long nsWindowPtr, String representedFilename);
62 private static native void nativeSetEnabled(long nsWindowPtr, boolean isEnabled);
63 private static native void nativeSynthesizeMouseEnteredExitedEvents();
64 private static native void nativeDispose(long nsWindowPtr);
65 private static native CPlatformWindow nativeGetTopmostPlatformWindowUnderMouse();
66
67 // Loger to report issues happened during execution but that do not affect functionality
68 private static final PlatformLogger logger = PlatformLogger.getLogger("sun.lwawt.macosx.CPlatformWindow");
69 private static final PlatformLogger focusLogger = PlatformLogger.getLogger("sun.lwawt.macosx.focus.CPlatformWindow");
70
213 private volatile boolean zoomed = false; // from native perspective
214
215 public CPlatformWindow() {
216 super(0, true);
217 }
218
219 /*
220 * Delegate initialization (create native window and all the
221 * related resources).
222 */
223 @Override // PlatformWindow
224 public void initialize(Window _target, LWWindowPeer _peer, PlatformWindow _owner) {
225 initializeBase(_target, _peer, _owner, new CPlatformView());
226
227 final int styleBits = getInitialStyleBits();
228
229 responder = createPlatformResponder();
230 contentView = createContentView();
231 contentView.initialize(peer, responder);
232
233 final long nativeWindowPtr = nativeCreateNSWindow(contentView.getAWTView(), styleBits, 0, 0, 0, 0);
234 setPtr(nativeWindowPtr);
235
236 if (target instanceof javax.swing.RootPaneContainer) {
237 final javax.swing.JRootPane rootpane = ((javax.swing.RootPaneContainer)target).getRootPane();
238 if (rootpane != null) rootpane.addPropertyChangeListener("ancestor", new PropertyChangeListener() {
239 public void propertyChange(final PropertyChangeEvent evt) {
240 CLIENT_PROPERTY_APPLICATOR.attachAndApplyClientProperties(rootpane);
241 rootpane.removePropertyChangeListener("ancestor", this);
242 }
243 });
244 }
245
246 validateSurface();
247 }
248
249 protected void initializeBase(Window target, LWWindowPeer peer, PlatformWindow owner, CPlatformView view) {
250 this.peer = peer;
251 this.target = target;
252 if (owner instanceof CPlatformWindow) {
253 this.owner = (CPlatformWindow)owner;
|
30 import java.awt.event.*;
31 import java.awt.peer.WindowPeer;
32 import java.beans.*;
33 import java.lang.reflect.InvocationTargetException;
34 import java.util.List;
35 import java.util.Objects;
36
37 import javax.swing.*;
38
39 import sun.awt.*;
40 import sun.java2d.SurfaceData;
41 import sun.java2d.opengl.CGLSurfaceData;
42 import sun.lwawt.*;
43 import sun.util.logging.PlatformLogger;
44
45 import com.apple.laf.*;
46 import com.apple.laf.ClientPropertyApplicator.Property;
47 import com.sun.awt.AWTUtilities;
48
49 public class CPlatformWindow extends CFRetainedResource implements PlatformWindow {
50 private native long nativeCreateNSWindow(long nsViewPtr,long ownerPtr, long styleBits, double x, double y, double w, double h);
51 private static native void nativeSetNSWindowStyleBits(long nsWindowPtr, int mask, int data);
52 private static native void nativeSetNSWindowMenuBar(long nsWindowPtr, long menuBarPtr);
53 private static native Insets nativeGetNSWindowInsets(long nsWindowPtr);
54 private static native void nativeSetNSWindowBounds(long nsWindowPtr, double x, double y, double w, double h);
55 private static native void nativeSetNSWindowMinMax(long nsWindowPtr, double minW, double minH, double maxW, double maxH);
56 private static native void nativePushNSWindowToBack(long nsWindowPtr);
57 private static native void nativePushNSWindowToFront(long nsWindowPtr);
58 private static native void nativeSetNSWindowTitle(long nsWindowPtr, String title);
59 private static native void nativeRevalidateNSWindowShadow(long nsWindowPtr);
60 private static native void nativeSetNSWindowMinimizedIcon(long nsWindowPtr, long nsImage);
61 private static native void nativeSetNSWindowRepresentedFilename(long nsWindowPtr, String representedFilename);
62 private static native void nativeSetEnabled(long nsWindowPtr, boolean isEnabled);
63 private static native void nativeSynthesizeMouseEnteredExitedEvents();
64 private static native void nativeDispose(long nsWindowPtr);
65 private static native CPlatformWindow nativeGetTopmostPlatformWindowUnderMouse();
66
67 // Loger to report issues happened during execution but that do not affect functionality
68 private static final PlatformLogger logger = PlatformLogger.getLogger("sun.lwawt.macosx.CPlatformWindow");
69 private static final PlatformLogger focusLogger = PlatformLogger.getLogger("sun.lwawt.macosx.focus.CPlatformWindow");
70
213 private volatile boolean zoomed = false; // from native perspective
214
215 public CPlatformWindow() {
216 super(0, true);
217 }
218
219 /*
220 * Delegate initialization (create native window and all the
221 * related resources).
222 */
223 @Override // PlatformWindow
224 public void initialize(Window _target, LWWindowPeer _peer, PlatformWindow _owner) {
225 initializeBase(_target, _peer, _owner, new CPlatformView());
226
227 final int styleBits = getInitialStyleBits();
228
229 responder = createPlatformResponder();
230 contentView = createContentView();
231 contentView.initialize(peer, responder);
232
233 final long ownerPtr = owner != null ? owner.getNSWindowPtr() : 0L;
234 final long nativeWindowPtr = nativeCreateNSWindow(contentView.getAWTView(), ownerPtr, styleBits, 0, 0, 0, 0);
235 setPtr(nativeWindowPtr);
236
237 if (target instanceof javax.swing.RootPaneContainer) {
238 final javax.swing.JRootPane rootpane = ((javax.swing.RootPaneContainer)target).getRootPane();
239 if (rootpane != null) rootpane.addPropertyChangeListener("ancestor", new PropertyChangeListener() {
240 public void propertyChange(final PropertyChangeEvent evt) {
241 CLIENT_PROPERTY_APPLICATOR.attachAndApplyClientProperties(rootpane);
242 rootpane.removePropertyChangeListener("ancestor", this);
243 }
244 });
245 }
246
247 validateSurface();
248 }
249
250 protected void initializeBase(Window target, LWWindowPeer peer, PlatformWindow owner, CPlatformView view) {
251 this.peer = peer;
252 this.target = target;
253 if (owner instanceof CPlatformWindow) {
254 this.owner = (CPlatformWindow)owner;
|