*/
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);
+ }
}
}
* Returns true if the mouse is currently on the menu item.
*
* @param mouse mouse event
+ * @return if true then the mouse is currently on this item
*/
private boolean mouseOnMenuItem(final TMouseEvent mouse) {
if ((mouse.getY() == 0)
getScreen().hLineXY(1, 0, getWidth() - 2, ' ', menuColor);
getScreen().putStringXY(2, 0, mnemonic.getRawLabel(), menuColor);
- if (hasKey) {
+ if (key != null) {
String keyLabel = key.toString();
getScreen().putStringXY((getWidth() - keyLabel.length() - 2), 0,
keyLabel, menuColor);
}
}
- /**
- * Handle mouse button presses.
- *
- * @param event mouse button press event
- */
- /* TODO: this was commented out in d-tui, why?
- @Override
- public void onMouseDown(final TMouseEvent event) {
- if ((mouseOnMenuItem(event)) && (event.mouse1)) {
- dispatch();
- return;
- }
- }
- */
-
/**
* Handle mouse button releases.
*