From 7c78c8e5d0cc49e8f7f895b1e9c54c8f02bbdd37 Mon Sep 17 00:00:00 2001 From: Sean Gilligan Date: Tue, 8 Dec 2015 19:28:29 -0800 Subject: [PATCH 1/2] Add a sample with Standard Mac menus Starting point only, most items are TBD. --- .../centerdevice/sample/StandardMacApp.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/test/java/de/codecentric/centerdevice/sample/StandardMacApp.java diff --git a/src/test/java/de/codecentric/centerdevice/sample/StandardMacApp.java b/src/test/java/de/codecentric/centerdevice/sample/StandardMacApp.java new file mode 100644 index 0000000..82643b0 --- /dev/null +++ b/src/test/java/de/codecentric/centerdevice/sample/StandardMacApp.java @@ -0,0 +1,89 @@ +package de.codecentric.centerdevice.sample; + +import de.codecentric.centerdevice.MenuToolkit; +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.control.Menu; +import javafx.scene.control.MenuBar; +import javafx.scene.control.MenuItem; +import javafx.scene.control.SeparatorMenuItem; +import javafx.scene.layout.StackPane; +import javafx.stage.Stage; + +/** + * Skeleton for Standard Macintosh Application + * See: "OS X Human Interface Guidelines" + */ +public class StandardMacApp extends Application { + static final String appName = "Standard"; + static final String mainWindowTitle = "Main"; + + @Override + public void start(Stage primaryStage) throws Exception { + + StackPane root = new StackPane(); + primaryStage.setScene(new Scene(root, 300, 200)); + primaryStage.requestFocus(); + primaryStage.setTitle(mainWindowTitle); + primaryStage.show(); + + MenuToolkit tk = MenuToolkit.toolkit(); + + MenuBar bar = new MenuBar(); + + // Application Menu + // TBD services, show/hide, etc. + Menu appMenu = new Menu(appName); // Name for appMenu can't be set at Runtime + MenuItem aboutItem = new MenuItem("About"); + MenuItem prefsItem = new MenuItem("Preferences..."); + MenuItem quitItem = tk.createQuitMenuItem(appName); + appMenu.getItems().addAll(aboutItem, + new SeparatorMenuItem(), + prefsItem, + new SeparatorMenuItem(), + quitItem); + + // File Menu (items TBD) + Menu fileMenu = new Menu("File"); + MenuItem newItem = new MenuItem("New..."); + fileMenu.getItems().addAll(newItem, new MenuItem("TBD")); + + // Edit (items TBD) + Menu editMenu = new Menu("Edit"); + editMenu.getItems().addAll(new MenuItem("TBD")); + + // Format (items TBD) + Menu formatMenu = new Menu("Format"); + formatMenu.getItems().addAll(new MenuItem("TBD")); + + // View Menu (items TBD) + Menu viewMenu = new Menu("View"); + viewMenu.getItems().addAll(new MenuItem("TBD")); + + // Window Menu + // TBD standard window menu items + Menu windowMenu = new Menu("Window"); + MenuItem mainWinItem = new MenuItem(mainWindowTitle); + windowMenu.getItems().addAll(new MenuItem("TBD"), + new SeparatorMenuItem(), + mainWinItem); + + // Help Menu (items TBD) + Menu helpMenu = new Menu("Help"); + helpMenu.getItems().addAll(new MenuItem("TBD")); + + bar.getMenus().addAll(appMenu, + fileMenu, + editMenu, + formatMenu, + viewMenu, + windowMenu, + helpMenu); + + tk.setMenuBar(primaryStage, bar); + } + + public static void main(String[] args) { + launch(args); + } +} From 0de77d4a0410ae64184d8086b35c5f91da504fd5 Mon Sep 17 00:00:00 2001 From: Sean Gilligan Date: Tue, 8 Dec 2015 20:34:27 -0800 Subject: [PATCH 2/2] Add show/hide items using tk methods. --- .../codecentric/centerdevice/sample/StandardMacApp.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/test/java/de/codecentric/centerdevice/sample/StandardMacApp.java b/src/test/java/de/codecentric/centerdevice/sample/StandardMacApp.java index 82643b0..1188b94 100644 --- a/src/test/java/de/codecentric/centerdevice/sample/StandardMacApp.java +++ b/src/test/java/de/codecentric/centerdevice/sample/StandardMacApp.java @@ -32,16 +32,19 @@ public void start(Stage primaryStage) throws Exception { MenuBar bar = new MenuBar(); // Application Menu - // TBD services, show/hide, etc. + // TBD: services menu Menu appMenu = new Menu(appName); // Name for appMenu can't be set at Runtime MenuItem aboutItem = new MenuItem("About"); MenuItem prefsItem = new MenuItem("Preferences..."); - MenuItem quitItem = tk.createQuitMenuItem(appName); appMenu.getItems().addAll(aboutItem, new SeparatorMenuItem(), prefsItem, new SeparatorMenuItem(), - quitItem); + tk.createHideMenuItem(appName), + tk.createHideOthersMenuItem(), + tk.createUnhideAllMenuItem(), + new SeparatorMenuItem(), + tk.createQuitMenuItem(appName)); // File Menu (items TBD) Menu fileMenu = new Menu("File");