From 3facbc0900d4330b9aadc44077d3f7fb7e686074 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sun, 24 Oct 2021 17:05:50 +0200 Subject: [PATCH] macOS: improved macOS support of Demo and Theme Editor: - set application name that is used in screen menu bar - enable dark window title bars if macOS is in dark mode --- .../com/formdev/flatlaf/demo/FlatLafDemo.java | 18 +++++++++++++++-- .../themeeditor/FlatLafThemeEditor.java | 20 +++++++++++++++++++ .../themeeditor/FlatThemeFileEditor.java | 4 ---- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java index b6e7c186..9a78afe1 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java @@ -34,10 +34,24 @@ public class FlatLafDemo static boolean screenshotsMode = Boolean.parseBoolean( System.getProperty( "flatlaf.demo.screenshotsMode" ) ); public static void main( String[] args ) { - // on macOS enable screen menu bar - if( SystemInfo.isMacOS && System.getProperty( "apple.laf.useScreenMenuBar" ) == null ) + // macOS + if( SystemInfo.isMacOS ) { + // enable screen menu bar + // (moves menu bar from JFrame window to top of screen) System.setProperty( "apple.laf.useScreenMenuBar", "true" ); + // application name used in screen menu bar + // (in first menu after the "apple" menu) + System.setProperty( "apple.awt.application.name", "FlatLaf Demo" ); + + // appearance of window title bars + // possible values: + // - "system": use current macOS appearance (light or dark) + // - "NSAppearanceNameAqua": use light appearance + // - "NSAppearanceNameDarkAqua": use dark appearance + System.setProperty( "apple.awt.application.appearance", "system" ); + } + if( FlatLafDemo.screenshotsMode && !SystemInfo.isJava_9_orLater && System.getProperty( "flatlaf.uiScale" ) == null ) System.setProperty( "flatlaf.uiScale", "2x" ); diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatLafThemeEditor.java b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatLafThemeEditor.java index 0b35acaa..41987d9e 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatLafThemeEditor.java +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatLafThemeEditor.java @@ -16,6 +16,8 @@ package com.formdev.flatlaf.themeeditor; +import com.formdev.flatlaf.util.SystemInfo; + /** * FlatLaf Theme Editor * @@ -24,6 +26,24 @@ package com.formdev.flatlaf.themeeditor; public class FlatLafThemeEditor { public static void main( String[] args ) { + // macOS + if( SystemInfo.isMacOS ) { + // enable screen menu bar + // (moves menu bar from JFrame window to top of screen) + System.setProperty( "apple.laf.useScreenMenuBar", "true" ); + + // application name used in screen menu bar + // (in first menu after the "apple" menu) + System.setProperty( "apple.awt.application.name", "FlatLaf Theme Editor" ); + + // appearance of window title bars + // possible values: + // - "system": use current macOS appearance (light or dark) + // - "NSAppearanceNameAqua": use light appearance + // - "NSAppearanceNameDarkAqua": use dark appearance + System.setProperty( "apple.awt.application.appearance", "system" ); + } + FlatThemeFileEditor.main( args ); } } diff --git a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemeFileEditor.java b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemeFileEditor.java index 5a576801..4290baa2 100644 --- a/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemeFileEditor.java +++ b/flatlaf-theme-editor/src/main/java/com/formdev/flatlaf/themeeditor/FlatThemeFileEditor.java @@ -104,10 +104,6 @@ class FlatThemeFileEditor Locale.setDefault( Locale.ENGLISH ); System.setProperty( "user.language", "en" ); - // on macOS enable screen menu bar - if( SystemInfo.isMacOS ) - System.setProperty( "apple.laf.useScreenMenuBar", "true" ); - SwingUtilities.invokeLater( () -> { FlatLaf.registerCustomDefaultsSource( "com.formdev.flatlaf.themeeditor" );