mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-06 22:10:54 +03:00
Theme Editor:
- use class `FlatDesktop` - hide "File > Exit" and "Help > About" on macOS - enable macOS screen menu bar
This commit is contained in:
@@ -57,6 +57,7 @@ import com.formdev.flatlaf.FlatDarkLaf;
|
|||||||
import com.formdev.flatlaf.FlatIntelliJLaf;
|
import com.formdev.flatlaf.FlatIntelliJLaf;
|
||||||
import com.formdev.flatlaf.FlatLaf;
|
import com.formdev.flatlaf.FlatLaf;
|
||||||
import com.formdev.flatlaf.FlatLightLaf;
|
import com.formdev.flatlaf.FlatLightLaf;
|
||||||
|
import com.formdev.flatlaf.extras.FlatDesktop;
|
||||||
import com.formdev.flatlaf.extras.FlatInspector;
|
import com.formdev.flatlaf.extras.FlatInspector;
|
||||||
import com.formdev.flatlaf.extras.FlatSVGIcon;
|
import com.formdev.flatlaf.extras.FlatSVGIcon;
|
||||||
import com.formdev.flatlaf.extras.FlatSVGUtils;
|
import com.formdev.flatlaf.extras.FlatSVGUtils;
|
||||||
@@ -65,6 +66,7 @@ import com.formdev.flatlaf.extras.components.*;
|
|||||||
import com.formdev.flatlaf.icons.FlatClearIcon;
|
import com.formdev.flatlaf.icons.FlatClearIcon;
|
||||||
import com.formdev.flatlaf.ui.FlatUIUtils;
|
import com.formdev.flatlaf.ui.FlatUIUtils;
|
||||||
import com.formdev.flatlaf.util.StringUtils;
|
import com.formdev.flatlaf.util.StringUtils;
|
||||||
|
import com.formdev.flatlaf.util.SystemInfo;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -102,6 +104,10 @@ class FlatThemeFileEditor
|
|||||||
Locale.setDefault( Locale.ENGLISH );
|
Locale.setDefault( Locale.ENGLISH );
|
||||||
System.setProperty( "user.language", "en" );
|
System.setProperty( "user.language", "en" );
|
||||||
|
|
||||||
|
// on macOS enable screen menu bar
|
||||||
|
if( SystemInfo.isMacOS )
|
||||||
|
System.setProperty( "apple.laf.useScreenMenuBar", "true" );
|
||||||
|
|
||||||
SwingUtilities.invokeLater( () -> {
|
SwingUtilities.invokeLater( () -> {
|
||||||
FlatLaf.registerCustomDefaultsSource( "com.formdev.flatlaf.themeeditor" );
|
FlatLaf.registerCustomDefaultsSource( "com.formdev.flatlaf.themeeditor" );
|
||||||
|
|
||||||
@@ -170,6 +176,24 @@ class FlatThemeFileEditor
|
|||||||
loadDirectory( (File) directoryField.getSelectedItem() );
|
loadDirectory( (File) directoryField.getSelectedItem() );
|
||||||
|
|
||||||
enableDisableActions();
|
enableDisableActions();
|
||||||
|
|
||||||
|
// hide some menu items on macOS
|
||||||
|
if( SystemInfo.isMacOS ) {
|
||||||
|
exitMenuItem.setVisible( false );
|
||||||
|
aboutMenuItem.setVisible( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
// integrate into macOS screen menu
|
||||||
|
FlatDesktop.setAboutHandler( this::about );
|
||||||
|
FlatDesktop.setQuitHandler( response -> {
|
||||||
|
if( !saveAll() ) {
|
||||||
|
response.cancelQuit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
saveWindowBounds();
|
||||||
|
response.performQuit();
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openDirectory() {
|
private void openDirectory() {
|
||||||
@@ -953,7 +977,7 @@ class FlatThemeFileEditor
|
|||||||
|
|
||||||
//---- newPropertiesFileMenuItem ----
|
//---- newPropertiesFileMenuItem ----
|
||||||
newPropertiesFileMenuItem.setText("New Properties File...");
|
newPropertiesFileMenuItem.setText("New Properties File...");
|
||||||
newPropertiesFileMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_DOWN_MASK));
|
newPropertiesFileMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
newPropertiesFileMenuItem.setMnemonic('N');
|
newPropertiesFileMenuItem.setMnemonic('N');
|
||||||
newPropertiesFileMenuItem.addActionListener(e -> newPropertiesFile());
|
newPropertiesFileMenuItem.addActionListener(e -> newPropertiesFile());
|
||||||
fileMenu.add(newPropertiesFileMenuItem);
|
fileMenu.add(newPropertiesFileMenuItem);
|
||||||
@@ -990,13 +1014,13 @@ class FlatThemeFileEditor
|
|||||||
|
|
||||||
//---- insertColorMenuItem ----
|
//---- insertColorMenuItem ----
|
||||||
insertColorMenuItem.setText("Insert Color");
|
insertColorMenuItem.setText("Insert Color");
|
||||||
insertColorMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, KeyEvent.CTRL_DOWN_MASK));
|
insertColorMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
insertColorMenuItem.addActionListener(e -> insertColor());
|
insertColorMenuItem.addActionListener(e -> insertColor());
|
||||||
editMenu.add(insertColorMenuItem);
|
editMenu.add(insertColorMenuItem);
|
||||||
|
|
||||||
//---- pickColorMenuItem ----
|
//---- pickColorMenuItem ----
|
||||||
pickColorMenuItem.setText("Pick Color from Screen");
|
pickColorMenuItem.setText("Pick Color from Screen");
|
||||||
pickColorMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, KeyEvent.CTRL_DOWN_MASK|KeyEvent.SHIFT_DOWN_MASK));
|
pickColorMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()|KeyEvent.SHIFT_DOWN_MASK));
|
||||||
pickColorMenuItem.addActionListener(e -> pickColor());
|
pickColorMenuItem.addActionListener(e -> pickColor());
|
||||||
editMenu.add(pickColorMenuItem);
|
editMenu.add(pickColorMenuItem);
|
||||||
}
|
}
|
||||||
@@ -1009,7 +1033,7 @@ class FlatThemeFileEditor
|
|||||||
|
|
||||||
//---- previewMenuItem ----
|
//---- previewMenuItem ----
|
||||||
previewMenuItem.setText("Preview");
|
previewMenuItem.setText("Preview");
|
||||||
previewMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, KeyEvent.CTRL_DOWN_MASK));
|
previewMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
|
||||||
previewMenuItem.addActionListener(e -> showHidePreview());
|
previewMenuItem.addActionListener(e -> showHidePreview());
|
||||||
viewMenu.add(previewMenuItem);
|
viewMenu.add(previewMenuItem);
|
||||||
viewMenu.addSeparator();
|
viewMenu.addSeparator();
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ new FormModel {
|
|||||||
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
name: "newPropertiesFileMenuItem"
|
name: "newPropertiesFileMenuItem"
|
||||||
"text": "New Properties File..."
|
"text": "New Properties File..."
|
||||||
"accelerator": static javax.swing.KeyStroke getKeyStroke( 78, 130, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 78, 4356, false )
|
||||||
"mnemonic": 78
|
"mnemonic": 78
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "newPropertiesFile", false ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "newPropertiesFile", false ) )
|
||||||
} )
|
} )
|
||||||
@@ -109,13 +109,13 @@ new FormModel {
|
|||||||
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
name: "insertColorMenuItem"
|
name: "insertColorMenuItem"
|
||||||
"text": "Insert Color"
|
"text": "Insert Color"
|
||||||
"accelerator": static javax.swing.KeyStroke getKeyStroke( 71, 130, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 71, 4356, false )
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "insertColor", false ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "insertColor", false ) )
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
name: "pickColorMenuItem"
|
name: "pickColorMenuItem"
|
||||||
"text": "Pick Color from Screen"
|
"text": "Pick Color from Screen"
|
||||||
"accelerator": &KeyStroke0 static javax.swing.KeyStroke getKeyStroke( 71, 195, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 71, 4421, false )
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "pickColor", false ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "pickColor", false ) )
|
||||||
} )
|
} )
|
||||||
} )
|
} )
|
||||||
@@ -126,7 +126,7 @@ new FormModel {
|
|||||||
add( new FormComponent( "javax.swing.JCheckBoxMenuItem" ) {
|
add( new FormComponent( "javax.swing.JCheckBoxMenuItem" ) {
|
||||||
name: "previewMenuItem"
|
name: "previewMenuItem"
|
||||||
"text": "Preview"
|
"text": "Preview"
|
||||||
"accelerator": static javax.swing.KeyStroke getKeyStroke( 80, 130, false )
|
"accelerator": static javax.swing.KeyStroke getKeyStroke( 80, 4356, false )
|
||||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showHidePreview", false ) )
|
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showHidePreview", false ) )
|
||||||
} )
|
} )
|
||||||
add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) {
|
add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user