-/**
+/*
* Jexer - Java Text User Interface
*
* License: LGPLv3 or later
*/
private int id = TMenu.MID_UNUSED;
+ /**
+ * Get the menu item ID.
+ *
+ * @return the id
+ */
+ public final int getId() {
+ return id;
+ }
+
/**
* When true, this item can be checked or unchecked.
*/
public final void setCheckable(final boolean checkable) {
this.checkable = checkable;
}
-
+
/**
* When true, this item is checked.
*/
*/
private TKeypress key;
- /**
- * When true, a global accelerator can be used to select this item.
- */
- private boolean hasKey = false;
-
/**
* The title string. Use '&' to specify a mnemonic, i.e. "&File" will
* highlight the 'F' and allow 'f' or 'F' to select it.
return mnemonic;
}
+ /**
+ * Get a global accelerator key for this menu item.
+ *
+ * @return global keyboard accelerator, or null if no key is associated
+ * with this item
+ */
+ public final TKeypress getKey() {
+ return key;
+ }
+
/**
* Set a global accelerator key for this menu item.
*
* @param key global keyboard accelerator
*/
public final void setKey(final TKeypress key) {
- hasKey = true;
this.key = key;
- int newWidth = (label.length() + 4 + key.toString().length() + 2);
- if (newWidth > getWidth()) {
- setWidth(newWidth);
+ if (key != null) {
+ int newWidth = (label.length() + 4 + key.toString().length() + 2);
+ if (newWidth > getWidth()) {
+ setWidth(newWidth);
+ }
}
}
CellAttributes background = getTheme().getColor("tmenu");
CellAttributes menuColor;
CellAttributes menuMnemonicColor;
- if (getAbsoluteActive()) {
+ if (isAbsoluteActive()) {
menuColor = getTheme().getColor("tmenu.highlighted");
menuMnemonicColor = getTheme().getColor("tmenu.mnemonic.highlighted");
} else {
- if (getEnabled()) {
+ if (isEnabled()) {
menuColor = getTheme().getColor("tmenu");
menuMnemonicColor = getTheme().getColor("tmenu.mnemonic");
} else {
getScreen().vLineXY(getWidth() - 1, 0, 1, cVSide, background);
getScreen().hLineXY(1, 0, getWidth() - 2, ' ', menuColor);
- getScreen().putStrXY(2, 0, mnemonic.getRawLabel(), menuColor);
- if (hasKey) {
+ getScreen().putStringXY(2, 0, mnemonic.getRawLabel(), menuColor);
+ if (key != null) {
String keyLabel = key.toString();
- getScreen().putStrXY((getWidth() - keyLabel.length() - 2), 0,
+ getScreen().putStringXY((getWidth() - keyLabel.length() - 2), 0,
keyLabel, menuColor);
}
if (mnemonic.getShortcutIdx() >= 0) {
* Dispatch event(s) due to selection or click.
*/
public void dispatch() {
- assert (getEnabled());
+ assert (isEnabled());
getApplication().addMenuEvent(new TMenuEvent(id));
if (checkable) {
*/
@Override
public void onMouseUp(final TMouseEvent mouse) {
- if ((mouseOnMenuItem(mouse)) && (mouse.getMouse1())) {
+ if ((mouseOnMenuItem(mouse)) && (mouse.isMouse1())) {
dispatch();
return;
}