From 61855cfb964b475587a076fe541d72167db58f25 Mon Sep 17 00:00:00 2001 From: nathan Date: Sun, 11 Nov 2018 00:23:33 +0100 Subject: [PATCH] Added clarification to comments and code for `shortcut` keys (mnemonics/etc). --- src/dorkbox/systemTray/MenuItem.java | 4 +++- src/dorkbox/systemTray/ui/awt/AwtMenu.java | 2 +- src/dorkbox/systemTray/ui/awt/AwtMenuItem.java | 17 ++++++++--------- .../systemTray/ui/awt/AwtMenuItemCheckbox.java | 17 ++++++++--------- src/dorkbox/systemTray/ui/gtk/GtkMenu.java | 8 +++++++- src/dorkbox/systemTray/ui/gtk/GtkMenuItem.java | 8 +++++++- .../systemTray/ui/gtk/GtkMenuItemCheckbox.java | 8 +++++++- src/dorkbox/systemTray/ui/swing/SwingMenu.java | 17 ++++++++--------- .../systemTray/ui/swing/SwingMenuItem.java | 5 ++--- .../ui/swing/SwingMenuItemCheckbox.java | 5 ++--- 10 files changed, 53 insertions(+), 38 deletions(-) diff --git a/src/dorkbox/systemTray/MenuItem.java b/src/dorkbox/systemTray/MenuItem.java index 2a394aa..48ebadc 100644 --- a/src/dorkbox/systemTray/MenuItem.java +++ b/src/dorkbox/systemTray/MenuItem.java @@ -41,7 +41,9 @@ class MenuItem extends Entry { // default enabled is always true private volatile boolean enabled = true; - private volatile char mnemonicKey; + + // default is 0, which will remove the shortcut key from the native peer + private volatile char mnemonicKey = 0; private volatile String tooltip; public diff --git a/src/dorkbox/systemTray/ui/awt/AwtMenu.java b/src/dorkbox/systemTray/ui/awt/AwtMenu.java index f8caeb1..e7b13fa 100644 --- a/src/dorkbox/systemTray/ui/awt/AwtMenu.java +++ b/src/dorkbox/systemTray/ui/awt/AwtMenu.java @@ -125,7 +125,7 @@ class AwtMenu implements MenuPeer { @Override public void setShortcut(final MenuItem menuItem) { - // yikes... + // Will return 0 as the vKey if it's not set (which will remove the shortcut) final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut()); SwingUtil.invokeLater(new Runnable() { diff --git a/src/dorkbox/systemTray/ui/awt/AwtMenuItem.java b/src/dorkbox/systemTray/ui/awt/AwtMenuItem.java index 5ca7523..ce232e9 100644 --- a/src/dorkbox/systemTray/ui/awt/AwtMenuItem.java +++ b/src/dorkbox/systemTray/ui/awt/AwtMenuItem.java @@ -107,17 +107,16 @@ class AwtMenuItem implements MenuItemPeer { @Override public void setShortcut(final dorkbox.systemTray.MenuItem menuItem) { - char shortcut = menuItem.getShortcut(); - // yikes... - final int vKey = SwingUtil.getVirtualKey(shortcut); + // Will return 0 as the vKey if it's not set (which will remove the shortcut) + final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut()); SwingUtil.invokeLater(new Runnable() { - @Override - public - void run() { - _native.setShortcut(new MenuShortcut(vKey)); - } - }); + @Override + public + void run() { + _native.setShortcut(new MenuShortcut(vKey)); + } + }); } @Override diff --git a/src/dorkbox/systemTray/ui/awt/AwtMenuItemCheckbox.java b/src/dorkbox/systemTray/ui/awt/AwtMenuItemCheckbox.java index af2138f..7d90385 100644 --- a/src/dorkbox/systemTray/ui/awt/AwtMenuItemCheckbox.java +++ b/src/dorkbox/systemTray/ui/awt/AwtMenuItemCheckbox.java @@ -109,17 +109,16 @@ class AwtMenuItemCheckbox implements CheckboxPeer { @Override public void setShortcut(final Checkbox menuItem) { - char shortcut = menuItem.getShortcut(); - // yikes... - final int vKey = SwingUtil.getVirtualKey(shortcut); + // Will return 0 as the vKey if it's not set (which will remove the shortcut) + final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut()); SwingUtil.invokeLater(new Runnable() { - @Override - public - void run() { - _native.setShortcut(new MenuShortcut(vKey)); - } - }); + @Override + public + void run() { + _native.setShortcut(new MenuShortcut(vKey)); + } + }); } @Override diff --git a/src/dorkbox/systemTray/ui/gtk/GtkMenu.java b/src/dorkbox/systemTray/ui/gtk/GtkMenu.java index 488590a..5dbd1b5 100644 --- a/src/dorkbox/systemTray/ui/gtk/GtkMenu.java +++ b/src/dorkbox/systemTray/ui/gtk/GtkMenu.java @@ -362,7 +362,13 @@ class GtkMenu extends GtkBaseMenuItem implements MenuPeer { @Override public void setShortcut(final MenuItem menuItem) { - this.mnemonicKey = Character.toLowerCase(menuItem.getShortcut()); + char shortcut = menuItem.getShortcut(); + + if (shortcut != 0) { + this.mnemonicKey = Character.toLowerCase(shortcut); + } else { + this.mnemonicKey = 0; + } setText(menuItem); } diff --git a/src/dorkbox/systemTray/ui/gtk/GtkMenuItem.java b/src/dorkbox/systemTray/ui/gtk/GtkMenuItem.java index 7b2efc2..73b5cfd 100644 --- a/src/dorkbox/systemTray/ui/gtk/GtkMenuItem.java +++ b/src/dorkbox/systemTray/ui/gtk/GtkMenuItem.java @@ -190,7 +190,13 @@ class GtkMenuItem extends GtkBaseMenuItem implements MenuItemPeer, GCallback { @Override public void setShortcut(final MenuItem menuItem) { - this.mnemonicKey = Character.toLowerCase(menuItem.getShortcut()); + char shortcut = menuItem.getShortcut(); + + if (shortcut != 0) { + this.mnemonicKey = Character.toLowerCase(shortcut); + } else { + this.mnemonicKey = 0; + } setText(menuItem); } diff --git a/src/dorkbox/systemTray/ui/gtk/GtkMenuItemCheckbox.java b/src/dorkbox/systemTray/ui/gtk/GtkMenuItemCheckbox.java index b23612c..790ed61 100644 --- a/src/dorkbox/systemTray/ui/gtk/GtkMenuItemCheckbox.java +++ b/src/dorkbox/systemTray/ui/gtk/GtkMenuItemCheckbox.java @@ -308,7 +308,13 @@ class GtkMenuItemCheckbox extends GtkBaseMenuItem implements CheckboxPeer, GCall @Override public void setShortcut(final Checkbox checkbox) { - this.mnemonicKey = Character.toLowerCase(checkbox.getShortcut()); + char shortcut = checkbox.getShortcut(); + + if (shortcut != 0) { + this.mnemonicKey = Character.toLowerCase(shortcut); + } else { + this.mnemonicKey = 0; + } setText(checkbox); } diff --git a/src/dorkbox/systemTray/ui/swing/SwingMenu.java b/src/dorkbox/systemTray/ui/swing/SwingMenu.java index fb33780..01836a7 100644 --- a/src/dorkbox/systemTray/ui/swing/SwingMenu.java +++ b/src/dorkbox/systemTray/ui/swing/SwingMenu.java @@ -162,17 +162,16 @@ class SwingMenu implements MenuPeer { @Override public void setShortcut(final MenuItem menuItem) { - char shortcut = menuItem.getShortcut(); - // yikes... - final int vKey = SwingUtil.getVirtualKey(shortcut); + // Will return 0 as the vKey if it's not set (which will remove the shortcut) + final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut()); SwingUtil.invokeLater(new Runnable() { - @Override - public - void run() { - ((JMenu) _native).setMnemonic(vKey); - } - }); + @Override + public + void run() { + ((JMenu) _native).setMnemonic(vKey); + } + }); } @Override diff --git a/src/dorkbox/systemTray/ui/swing/SwingMenuItem.java b/src/dorkbox/systemTray/ui/swing/SwingMenuItem.java index 555b3ad..ecf64f1 100644 --- a/src/dorkbox/systemTray/ui/swing/SwingMenuItem.java +++ b/src/dorkbox/systemTray/ui/swing/SwingMenuItem.java @@ -158,9 +158,8 @@ class SwingMenuItem implements MenuItemPeer { @Override public void setShortcut(final MenuItem menuItem) { - char shortcut = menuItem.getShortcut(); - // yikes... - final int vKey = SwingUtil.getVirtualKey(shortcut); + // Will return 0 as the vKey if it's not set (which will remove the shortcut) + final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut()); SwingUtil.invokeLater(new Runnable() { @Override diff --git a/src/dorkbox/systemTray/ui/swing/SwingMenuItemCheckbox.java b/src/dorkbox/systemTray/ui/swing/SwingMenuItemCheckbox.java index f4c0726..86d88e3 100644 --- a/src/dorkbox/systemTray/ui/swing/SwingMenuItemCheckbox.java +++ b/src/dorkbox/systemTray/ui/swing/SwingMenuItemCheckbox.java @@ -137,9 +137,8 @@ class SwingMenuItemCheckbox extends SwingMenuItem implements CheckboxPeer { @Override public void setShortcut(final Checkbox menuItem) { - char shortcut = menuItem.getShortcut(); - // yikes... - final int vKey = SwingUtil.getVirtualKey(shortcut); + // Will return 0 as the vKey if it's not set (which will remove the shortcut) + final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut()); SwingUtil.invokeLater(new Runnable() { @Override