From a6b736483b9f9174717cac3f19fdf64756c3b001 Mon Sep 17 00:00:00 2001 From: Rob Greene Date: Fri, 27 Oct 2023 18:57:38 -0500 Subject: [PATCH] Adding About box to Mac OS X application menu as well. #118 --- .../ui/swt/SwtAppleCommander.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/lib/ac-swt-common/src/main/java/com/webcodepro/applecommander/ui/swt/SwtAppleCommander.java b/lib/ac-swt-common/src/main/java/com/webcodepro/applecommander/ui/swt/SwtAppleCommander.java index 68daaf0..0d429d2 100644 --- a/lib/ac-swt-common/src/main/java/com/webcodepro/applecommander/ui/swt/SwtAppleCommander.java +++ b/lib/ac-swt-common/src/main/java/com/webcodepro/applecommander/ui/swt/SwtAppleCommander.java @@ -19,23 +19,6 @@ */ package com.webcodepro.applecommander.ui.swt; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.DisposeEvent; -import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.MessageBox; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.ToolBar; -import org.eclipse.swt.widgets.ToolItem; - import com.webcodepro.applecommander.storage.Disk; import com.webcodepro.applecommander.storage.Disk.FilenameFilter; import com.webcodepro.applecommander.storage.DiskUnrecognizedException; @@ -49,6 +32,17 @@ import com.webcodepro.applecommander.ui.swt.wizard.comparedisks.CompareDisksWiza import com.webcodepro.applecommander.ui.swt.wizard.diskimage.DiskImageWizard; import com.webcodepro.applecommander.util.Host; import com.webcodepro.applecommander.util.TextBundle; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.DisposeEvent; +import org.eclipse.swt.events.DisposeListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.*; + +import static org.eclipse.swt.events.SelectionListener.widgetSelectedAdapter; /** * Main class for the SwtAppleCommander interface. @@ -134,6 +128,13 @@ public class SwtAppleCommander implements Listener { */ protected Shell open(Display display) { Display.setAppName(textBundle.get("SwtAppleCommander.AppleCommander")); //$NON-NLS-1$ + // Find the system About menu on Mac OS X. + // See https://www.eclipse.org/swt/R3_7/new_and_noteworthy.html#m6 + for (MenuItem item : display.getSystemMenu().getItems()) { + if (item.getID() == SWT.ID_ABOUT) { + item.addSelectionListener(widgetSelectedAdapter(e -> showAboutAppleCommander())); + } + } shell = new Shell(display, SWT.BORDER | SWT.CLOSE | SWT.MIN | SWT.TITLE); shell.setText(textBundle.get("SwtAppleCommander.AppleCommander")); //$NON-NLS-1$ shell.setImage(imageManager.get(ImageManager.ICON_DISK));