Added clarification to comments and code for shortcut keys (mnemonics/etc).

This commit is contained in:
nathan 2018-11-11 00:23:33 +01:00
parent 6d01d4ad9b
commit 61855cfb96
10 changed files with 53 additions and 38 deletions

View File

@ -41,7 +41,9 @@ class MenuItem extends Entry {
// default enabled is always true // default enabled is always true
private volatile boolean enabled = 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; private volatile String tooltip;
public public

View File

@ -125,7 +125,7 @@ class AwtMenu implements MenuPeer {
@Override @Override
public public
void setShortcut(final MenuItem menuItem) { 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()); final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut());
SwingUtil.invokeLater(new Runnable() { SwingUtil.invokeLater(new Runnable() {

View File

@ -107,17 +107,16 @@ class AwtMenuItem implements MenuItemPeer {
@Override @Override
public public
void setShortcut(final dorkbox.systemTray.MenuItem menuItem) { void setShortcut(final dorkbox.systemTray.MenuItem menuItem) {
char shortcut = menuItem.getShortcut(); // Will return 0 as the vKey if it's not set (which will remove the shortcut)
// yikes... final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut());
final int vKey = SwingUtil.getVirtualKey(shortcut);
SwingUtil.invokeLater(new Runnable() { SwingUtil.invokeLater(new Runnable() {
@Override @Override
public public
void run() { void run() {
_native.setShortcut(new MenuShortcut(vKey)); _native.setShortcut(new MenuShortcut(vKey));
} }
}); });
} }
@Override @Override

View File

@ -109,17 +109,16 @@ class AwtMenuItemCheckbox implements CheckboxPeer {
@Override @Override
public public
void setShortcut(final Checkbox menuItem) { void setShortcut(final Checkbox menuItem) {
char shortcut = menuItem.getShortcut(); // Will return 0 as the vKey if it's not set (which will remove the shortcut)
// yikes... final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut());
final int vKey = SwingUtil.getVirtualKey(shortcut);
SwingUtil.invokeLater(new Runnable() { SwingUtil.invokeLater(new Runnable() {
@Override @Override
public public
void run() { void run() {
_native.setShortcut(new MenuShortcut(vKey)); _native.setShortcut(new MenuShortcut(vKey));
} }
}); });
} }
@Override @Override

View File

@ -362,7 +362,13 @@ class GtkMenu extends GtkBaseMenuItem implements MenuPeer {
@Override @Override
public public
void setShortcut(final MenuItem menuItem) { 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); setText(menuItem);
} }

View File

@ -190,7 +190,13 @@ class GtkMenuItem extends GtkBaseMenuItem implements MenuItemPeer, GCallback {
@Override @Override
public public
void setShortcut(final MenuItem menuItem) { 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); setText(menuItem);
} }

View File

@ -308,7 +308,13 @@ class GtkMenuItemCheckbox extends GtkBaseMenuItem implements CheckboxPeer, GCall
@Override @Override
public public
void setShortcut(final Checkbox checkbox) { 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); setText(checkbox);
} }

View File

@ -162,17 +162,16 @@ class SwingMenu implements MenuPeer {
@Override @Override
public public
void setShortcut(final MenuItem menuItem) { void setShortcut(final MenuItem menuItem) {
char shortcut = menuItem.getShortcut(); // Will return 0 as the vKey if it's not set (which will remove the shortcut)
// yikes... final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut());
final int vKey = SwingUtil.getVirtualKey(shortcut);
SwingUtil.invokeLater(new Runnable() { SwingUtil.invokeLater(new Runnable() {
@Override @Override
public public
void run() { void run() {
((JMenu) _native).setMnemonic(vKey); ((JMenu) _native).setMnemonic(vKey);
} }
}); });
} }
@Override @Override

View File

@ -158,9 +158,8 @@ class SwingMenuItem implements MenuItemPeer {
@Override @Override
public public
void setShortcut(final MenuItem menuItem) { void setShortcut(final MenuItem menuItem) {
char shortcut = menuItem.getShortcut(); // Will return 0 as the vKey if it's not set (which will remove the shortcut)
// yikes... final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut());
final int vKey = SwingUtil.getVirtualKey(shortcut);
SwingUtil.invokeLater(new Runnable() { SwingUtil.invokeLater(new Runnable() {
@Override @Override

View File

@ -137,9 +137,8 @@ class SwingMenuItemCheckbox extends SwingMenuItem implements CheckboxPeer {
@Override @Override
public public
void setShortcut(final Checkbox menuItem) { void setShortcut(final Checkbox menuItem) {
char shortcut = menuItem.getShortcut(); // Will return 0 as the vKey if it's not set (which will remove the shortcut)
// yikes... final int vKey = SwingUtil.getVirtualKey(menuItem.getShortcut());
final int vKey = SwingUtil.getVirtualKey(shortcut);
SwingUtil.invokeLater(new Runnable() { SwingUtil.invokeLater(new Runnable() {
@Override @Override