< prev index next >

src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java

Print this page




 841         execute(ptr -> {
 842             if (CWrapper.NSWindow.canBecomeMainWindow(ptr)) {
 843                 CWrapper.NSWindow.makeMainWindow(ptr);
 844             }
 845             CWrapper.NSWindow.makeKeyAndOrderFront(ptr);
 846         });
 847         return true;
 848     }
 849 
 850     @Override
 851     public boolean isActive() {
 852         AtomicBoolean ref = new AtomicBoolean();
 853         execute(ptr -> {
 854             ref.set(CWrapper.NSWindow.isKeyWindow(ptr));
 855         });
 856         return ref.get();
 857     }
 858 
 859     @Override
 860     public void updateFocusableWindowState() {
 861         final boolean isFocusable = isNativelyFocusableWindow();
 862         setStyleBits(SHOULD_BECOME_KEY | SHOULD_BECOME_MAIN | RESIZABLE, isFocusable); // set bits at once
 863     }
 864 
 865     @Override
 866     public void setAlwaysOnTop(boolean isAlwaysOnTop) {
 867         setStyleBits(ALWAYS_ON_TOP, isAlwaysOnTop);
 868     }
 869 
 870     @Override
 871     public void setOpacity(float opacity) {
 872         execute(ptr -> CWrapper.NSWindow.setAlphaValue(ptr, opacity));
 873     }
 874 
 875     @Override
 876     public void setOpaque(boolean isOpaque) {
 877         execute(ptr -> CWrapper.NSWindow.setOpaque(ptr, isOpaque));
 878         boolean isTextured = (peer == null) ? false : peer.isTextured();
 879         if (!isTextured) {
 880             if (!isOpaque) {
 881                 execute(ptr -> CWrapper.NSWindow.setBackgroundColor(ptr, 0));


1259             // visible children.
1260             if (!iconified) {
1261                 childWindows.addAll(Arrays.asList(windowAccessor.getOwnedWindows(w)));
1262             }
1263         }
1264         // If some windows, which have just been ordered, have any child windows, let's start new iteration
1265         // and order these child windows.
1266         if (!childWindows.isEmpty()) {
1267             orderAboveSiblingsImpl(childWindows.toArray(new Window[0]));
1268         }
1269     }
1270 
1271     protected void applyWindowLevel(Window target) {
1272         if (target.isAlwaysOnTop() && target.getType() != Window.Type.POPUP) {
1273             execute(ptr->CWrapper.NSWindow.setLevel(ptr, CWrapper.NSWindow.NSFloatingWindowLevel));
1274         } else if (target.getType() == Window.Type.POPUP) {
1275             execute(ptr->CWrapper.NSWindow.setLevel(ptr, CWrapper.NSWindow.NSPopUpMenuWindowLevel));
1276         }
1277     }
1278 








1279     // ----------------------------------------------------------------------
1280     //                          NATIVE CALLBACKS
1281     // ----------------------------------------------------------------------
1282 
1283     private void windowWillMiniaturize() {
1284         isIconifyAnimationActive = true;
1285     }
1286 
1287     private void windowDidBecomeMain() {
1288         lastBecomeMainTime = System.currentTimeMillis();
1289         if (checkBlockingAndOrder()) return;
1290         // If it's not blocked, make sure it's above its siblings
1291         orderAboveSiblings();
1292     }
1293 
1294     private void windowWillEnterFullScreen() {
1295         isFullScreenAnimationOn = true;
1296     }
1297 
1298     private void windowDidEnterFullScreen() {


 841         execute(ptr -> {
 842             if (CWrapper.NSWindow.canBecomeMainWindow(ptr)) {
 843                 CWrapper.NSWindow.makeMainWindow(ptr);
 844             }
 845             CWrapper.NSWindow.makeKeyAndOrderFront(ptr);
 846         });
 847         return true;
 848     }
 849 
 850     @Override
 851     public boolean isActive() {
 852         AtomicBoolean ref = new AtomicBoolean();
 853         execute(ptr -> {
 854             ref.set(CWrapper.NSWindow.isKeyWindow(ptr));
 855         });
 856         return ref.get();
 857     }
 858 
 859     @Override
 860     public void updateFocusableWindowState() {
 861         final boolean isFocusable = isNativelyFocusableWindow() || (getOwnerFrameOrDialog(target) instanceof CEmbeddedFrame);
 862         setStyleBits(SHOULD_BECOME_KEY | SHOULD_BECOME_MAIN | RESIZABLE, isFocusable); // set bits at once
 863     }
 864 
 865     @Override
 866     public void setAlwaysOnTop(boolean isAlwaysOnTop) {
 867         setStyleBits(ALWAYS_ON_TOP, isAlwaysOnTop);
 868     }
 869 
 870     @Override
 871     public void setOpacity(float opacity) {
 872         execute(ptr -> CWrapper.NSWindow.setAlphaValue(ptr, opacity));
 873     }
 874 
 875     @Override
 876     public void setOpaque(boolean isOpaque) {
 877         execute(ptr -> CWrapper.NSWindow.setOpaque(ptr, isOpaque));
 878         boolean isTextured = (peer == null) ? false : peer.isTextured();
 879         if (!isTextured) {
 880             if (!isOpaque) {
 881                 execute(ptr -> CWrapper.NSWindow.setBackgroundColor(ptr, 0));


1259             // visible children.
1260             if (!iconified) {
1261                 childWindows.addAll(Arrays.asList(windowAccessor.getOwnedWindows(w)));
1262             }
1263         }
1264         // If some windows, which have just been ordered, have any child windows, let's start new iteration
1265         // and order these child windows.
1266         if (!childWindows.isEmpty()) {
1267             orderAboveSiblingsImpl(childWindows.toArray(new Window[0]));
1268         }
1269     }
1270 
1271     protected void applyWindowLevel(Window target) {
1272         if (target.isAlwaysOnTop() && target.getType() != Window.Type.POPUP) {
1273             execute(ptr->CWrapper.NSWindow.setLevel(ptr, CWrapper.NSWindow.NSFloatingWindowLevel));
1274         } else if (target.getType() == Window.Type.POPUP) {
1275             execute(ptr->CWrapper.NSWindow.setLevel(ptr, CWrapper.NSWindow.NSPopUpMenuWindowLevel));
1276         }
1277     }
1278 
1279     private Window getOwnerFrameOrDialog(Window window) {
1280         Window owner = window.getOwner();
1281         while(owner != null && !(owner instanceof Frame || owner instanceof Dialog)) {
1282             owner = owner.getOwner();
1283         }
1284         return owner;
1285     }
1286 
1287     // ----------------------------------------------------------------------
1288     //                          NATIVE CALLBACKS
1289     // ----------------------------------------------------------------------
1290 
1291     private void windowWillMiniaturize() {
1292         isIconifyAnimationActive = true;
1293     }
1294 
1295     private void windowDidBecomeMain() {
1296         lastBecomeMainTime = System.currentTimeMillis();
1297         if (checkBlockingAndOrder()) return;
1298         // If it's not blocked, make sure it's above its siblings
1299         orderAboveSiblings();
1300     }
1301 
1302     private void windowWillEnterFullScreen() {
1303         isFullScreenAnimationOn = true;
1304     }
1305 
1306     private void windowDidEnterFullScreen() {
< prev index next >