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 private static native void nativeEnterFullScreenMode(long nsWindowPtr);
67 private static native void nativeExitFullScreenMode(long nsWindowPtr);
68
69 // Loger to report issues happened during execution but that do not affect functionality
656 if(logger.isLoggable(PlatformLogger.Level.FINE)) {
657 logger.fine("NSWindow already disposed?", new Exception("Pointer to native NSWindow is invalid."));
658 }
659 }
660 return nsWindowPtr;
661 }
662
663 public SurfaceData getSurfaceData() {
664 return contentView.getSurfaceData();
665 }
666
667 @Override // PlatformWindow
668 public void toBack() {
669 final long nsWindowPtr = getNSWindowPtr();
670 nativePushNSWindowToBack(nsWindowPtr);
671 }
672
673 @Override // PlatformWindow
674 public void toFront() {
675 final long nsWindowPtr = getNSWindowPtr();
676 updateFocusabilityForAutoRequestFocus(false);
677 nativePushNSWindowToFront(nsWindowPtr);
678 updateFocusabilityForAutoRequestFocus(true);
679 }
680
681 @Override
682 public void setResizable(final boolean resizable) {
683 setStyleBits(RESIZABLE, resizable);
684 }
685
686 @Override
687 public void setSizeConstraints(int minW, int minH, int maxW, int maxH) {
688 nativeSetNSWindowMinMax(getNSWindowPtr(), minW, minH, maxW, maxH);
689 }
690
691 @Override
692 public boolean rejectFocusRequest(CausedFocusEvent.Cause cause) {
693 // Cross-app activation requests are not allowed.
694 if (cause != CausedFocusEvent.Cause.MOUSE_EVENT &&
695 !((LWCToolkit)Toolkit.getDefaultToolkit()).isApplicationActive())
|
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 static void nativeActivateApp();
51 private native long nativeCreateNSWindow(long nsViewPtr,long ownerPtr, long styleBits, double x, double y, double w, double h);
52 private static native void nativeSetNSWindowStyleBits(long nsWindowPtr, int mask, int data);
53 private static native void nativeSetNSWindowMenuBar(long nsWindowPtr, long menuBarPtr);
54 private static native Insets nativeGetNSWindowInsets(long nsWindowPtr);
55 private static native void nativeSetNSWindowBounds(long nsWindowPtr, double x, double y, double w, double h);
56 private static native void nativeSetNSWindowMinMax(long nsWindowPtr, double minW, double minH, double maxW, double maxH);
57 private static native void nativePushNSWindowToBack(long nsWindowPtr);
58 private static native void nativePushNSWindowToFront(long nsWindowPtr);
59 private static native void nativeSetNSWindowTitle(long nsWindowPtr, String title);
60 private static native void nativeRevalidateNSWindowShadow(long nsWindowPtr);
61 private static native void nativeSetNSWindowMinimizedIcon(long nsWindowPtr, long nsImage);
62 private static native void nativeSetNSWindowRepresentedFilename(long nsWindowPtr, String representedFilename);
63 private static native void nativeSetEnabled(long nsWindowPtr, boolean isEnabled);
64 private static native void nativeSynthesizeMouseEnteredExitedEvents();
65 private static native void nativeDispose(long nsWindowPtr);
66 private static native CPlatformWindow nativeGetTopmostPlatformWindowUnderMouse();
67 private static native void nativeEnterFullScreenMode(long nsWindowPtr);
68 private static native void nativeExitFullScreenMode(long nsWindowPtr);
69
70 // Loger to report issues happened during execution but that do not affect functionality
657 if(logger.isLoggable(PlatformLogger.Level.FINE)) {
658 logger.fine("NSWindow already disposed?", new Exception("Pointer to native NSWindow is invalid."));
659 }
660 }
661 return nsWindowPtr;
662 }
663
664 public SurfaceData getSurfaceData() {
665 return contentView.getSurfaceData();
666 }
667
668 @Override // PlatformWindow
669 public void toBack() {
670 final long nsWindowPtr = getNSWindowPtr();
671 nativePushNSWindowToBack(nsWindowPtr);
672 }
673
674 @Override // PlatformWindow
675 public void toFront() {
676 final long nsWindowPtr = getNSWindowPtr();
677 Container parent = getPeer().getTarget().getParent();
678 if(DefaultKeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow()
679 instanceof CEmbeddedFrame
680 && !((LWCToolkit)Toolkit.getDefaultToolkit()).isApplicationActive()) {
681 nativeActivateApp();
682 }
683 updateFocusabilityForAutoRequestFocus(false);
684 nativePushNSWindowToFront(nsWindowPtr);
685 updateFocusabilityForAutoRequestFocus(true);
686 }
687
688 @Override
689 public void setResizable(final boolean resizable) {
690 setStyleBits(RESIZABLE, resizable);
691 }
692
693 @Override
694 public void setSizeConstraints(int minW, int minH, int maxW, int maxH) {
695 nativeSetNSWindowMinMax(getNSWindowPtr(), minW, minH, maxW, maxH);
696 }
697
698 @Override
699 public boolean rejectFocusRequest(CausedFocusEvent.Cause cause) {
700 // Cross-app activation requests are not allowed.
701 if (cause != CausedFocusEvent.Cause.MOUSE_EVENT &&
702 !((LWCToolkit)Toolkit.getDefaultToolkit()).isApplicationActive())
|