*
* The MIT License (MIT)
*
- * Copyright (C) 2017 Kevin Lamonte
+ * Copyright (C) 2019 Kevin Lamonte
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
/**
* TSubMenu is a special case menu item that wraps another TMenu.
*/
-public final class TSubMenu extends TMenuItem {
+public class TSubMenu extends TMenuItem {
+
+ // ------------------------------------------------------------------------
+ // Variables --------------------------------------------------------------
+ // ------------------------------------------------------------------------
/**
* The menu window. Note package private access.
*/
TMenu menu;
+ // ------------------------------------------------------------------------
+ // Constructors -----------------------------------------------------------
+ // ------------------------------------------------------------------------
+
/**
* Package private constructor.
*
* @param parent parent widget
* @param title menu title. Title must contain a keyboard shortcut,
- * denoted by prefixing a letter with "&", e.g. "&File"
+ * denoted by prefixing a letter with "&", e.g. "&File"
* @param x column relative to parent
* @param y row relative to parent
*/
this.menu.isSubMenu = true;
}
- /**
- * Draw the menu title.
- */
- @Override
- public void draw() {
- super.draw();
-
- CellAttributes menuColor;
- if (isAbsoluteActive()) {
- menuColor = getTheme().getColor("tmenu.highlighted");
- } else {
- if (isEnabled()) {
- menuColor = getTheme().getColor("tmenu");
- } else {
- menuColor = getTheme().getColor("tmenu.disabled");
- }
- }
-
- // Add the arrow
- getScreen().putCharXY(getWidth() - 2, 0, GraphicsChars.CP437[0x10],
- menuColor);
- }
+ // ------------------------------------------------------------------------
+ // Event handlers ---------------------------------------------------------
+ // ------------------------------------------------------------------------
/**
* Handle keystrokes.
}
}
+ // ------------------------------------------------------------------------
+ // TMenuItem --------------------------------------------------------------
+ // ------------------------------------------------------------------------
+
+ /**
+ * Draw the menu title.
+ */
+ @Override
+ public void draw() {
+ super.draw();
+
+ CellAttributes menuColor;
+ if (isAbsoluteActive()) {
+ menuColor = getTheme().getColor("tmenu.highlighted");
+ } else {
+ if (isEnabled()) {
+ menuColor = getTheme().getColor("tmenu");
+ } else {
+ menuColor = getTheme().getColor("tmenu.disabled");
+ }
+ }
+
+ // Add the arrow
+ putCharXY(getWidth() - 2, 0, GraphicsChars.CP437[0x10], menuColor);
+ }
+
/**
* Override dispatch() to do nothing.
*/
return this;
}
+ // ------------------------------------------------------------------------
+ // TSubMenu ---------------------------------------------------------------
+ // ------------------------------------------------------------------------
+
/**
* Convenience function to add a custom menu item.
*
return menu.addDefaultItem(id);
}
+ /**
+ * Convenience function to add one of the default menu items.
+ *
+ * @param id menu item ID. Must be between 0 (inclusive) and 1023
+ * (inclusive).
+ * @param enabled default state for enabled
+ * @return the new menu item
+ */
+ public TMenuItem addDefaultItem(final int id, final boolean enabled) {
+ return menu.addDefaultItem(id, enabled);
+ }
+
/**
* Convenience function to add a menu separator.
*/
* Convenience function to add a sub-menu.
*
* @param title menu title. Title must contain a keyboard shortcut,
- * denoted by prefixing a letter with "&", e.g. "&File"
+ * denoted by prefixing a letter with "&", e.g. "&File"
* @return the new sub-menu
*/
public TSubMenu addSubMenu(final String title) {
return menu.addSubMenu(title);
}
-
}