git://git.nikiroo.be
/
fanfix.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
#58 detect iterm2
[fanfix.git]
/
src
/
jexer
/
menu
/
TMenu.java
diff --git
a/src/jexer/menu/TMenu.java
b/src/jexer/menu/TMenu.java
index 8a8ec6be752d1443e60969baa5505671a567279f..6d746df0c42ebc3f6da6ede018a33ff439233235 100644
(file)
--- a/
src/jexer/menu/TMenu.java
+++ b/
src/jexer/menu/TMenu.java
@@
-37,6
+37,7
@@
import jexer.TWindow;
import jexer.bits.CellAttributes;
import jexer.bits.GraphicsChars;
import jexer.bits.MnemonicString;
import jexer.bits.CellAttributes;
import jexer.bits.GraphicsChars;
import jexer.bits.MnemonicString;
+import jexer.bits.StringUtils;
import jexer.event.TKeypressEvent;
import jexer.event.TMouseEvent;
import static jexer.TKeypress.*;
import jexer.event.TKeypressEvent;
import jexer.event.TMouseEvent;
import static jexer.TKeypress.*;
@@
-61,7
+62,7
@@
public class TMenu extends TWindow {
// Tools menu
public static final int MID_REPAINT = 1;
public static final int MID_VIEW_IMAGE = 2;
// Tools menu
public static final int MID_REPAINT = 1;
public static final int MID_VIEW_IMAGE = 2;
- public static final int MID_
CHANGE_FONT
= 3;
+ public static final int MID_
SCREEN_OPTIONS
= 3;
// File menu
public static final int MID_NEW = 10;
// File menu
public static final int MID_NEW = 10;
@@
-128,8
+129,9
@@
public class TMenu extends TWindow {
public static final int MID_TABLE_INSERT_BELOW = 107;
public static final int MID_TABLE_COLUMN_NARROW = 110;
public static final int MID_TABLE_COLUMN_WIDEN = 111;
public static final int MID_TABLE_INSERT_BELOW = 107;
public static final int MID_TABLE_COLUMN_NARROW = 110;
public static final int MID_TABLE_COLUMN_WIDEN = 111;
- public static final int MID_TABLE_FILE_SAVE_CSV = 115;
- public static final int MID_TABLE_FILE_SAVE_TEXT = 116;
+ public static final int MID_TABLE_FILE_OPEN_CSV = 115;
+ public static final int MID_TABLE_FILE_SAVE_CSV = 116;
+ public static final int MID_TABLE_FILE_SAVE_TEXT = 117;
// ------------------------------------------------------------------------
// Variables --------------------------------------------------------------
// ------------------------------------------------------------------------
// Variables --------------------------------------------------------------
@@
-176,7
+178,7
@@
public class TMenu extends TWindow {
assert (mnemonic.getShortcutIdx() >= 0);
// Recompute width and height to reflect an empty menu
assert (mnemonic.getShortcutIdx() >= 0);
// Recompute width and height to reflect an empty menu
- setWidth(
getTitle().length(
) + 4);
+ setWidth(
StringUtils.width(getTitle()
) + 4);
setHeight(2);
setActive(false);
setHeight(2);
setActive(false);
@@
-270,15
+272,21
@@
public class TMenu extends TWindow {
/*
System.err.printf("keypress: %s active child: %s\n", keypress,
getActiveChild());
/*
System.err.printf("keypress: %s active child: %s\n", keypress,
getActiveChild());
-
*/
+ */
if (getActiveChild() != this) {
if (getActiveChild() != this) {
- if ((getActiveChild() instanceof TSubMenu)
- || (getActiveChild() instanceof TMenu)
- ) {
+ if (getActiveChild() instanceof TMenu) {
getActiveChild().onKeypress(keypress);
return;
}
getActiveChild().onKeypress(keypress);
return;
}
+
+ if (getActiveChild() instanceof TSubMenu) {
+ TSubMenu subMenu = (TSubMenu) getActiveChild();
+ if (subMenu.menu.isActive()) {
+ subMenu.onKeypress(keypress);
+ return;
+ }
+ }
}
if (keypress.equals(kbEsc)) {
}
if (keypress.equals(kbEsc)) {
@@
-310,12
+318,18
@@
public class TMenu extends TWindow {
if (!keypress.getKey().isFnKey()
&& !keypress.getKey().isAlt()
&& !keypress.getKey().isCtrl()) {
if (!keypress.getKey().isFnKey()
&& !keypress.getKey().isAlt()
&& !keypress.getKey().isCtrl()) {
+
+ // System.err.println("Checking children for mnemonic...");
+
for (TWidget widget: getChildren()) {
TMenuItem item = (TMenuItem) widget;
for (TWidget widget: getChildren()) {
TMenuItem item = (TMenuItem) widget;
- if ((item.getMnemonic() != null)
+ if ((item.isEnabled() == true)
+ && (item.getMnemonic() != null)
&& (Character.toLowerCase(item.getMnemonic().getShortcut())
== Character.toLowerCase(keypress.getKey().getChar()))
) {
&& (Character.toLowerCase(item.getMnemonic().getShortcut())
== Character.toLowerCase(keypress.getKey().getChar()))
) {
+ // System.err.println("activate: " + item);
+
// Send an enter keystroke to it
activate(item);
item.handleEvent(new TKeypressEvent(kbEnter));
// Send an enter keystroke to it
activate(item);
item.handleEvent(new TKeypressEvent(kbEnter));
@@
-417,7
+431,6
@@
public class TMenu extends TWindow {
* @return the new menu item
*/
public TMenuItem addItem(final int id, final String label) {
* @return the new menu item
*/
public TMenuItem addItem(final int id, final String label) {
- assert (id >= 1024);
return addItemInternal(id, label, null);
}
return addItemInternal(id, label, null);
}
@@
-551,8
+564,8
@@
public class TMenu extends TWindow {
label = i18n.getString("menuViewImage");
break;
label = i18n.getString("menuViewImage");
break;
- case MID_
CHANGE_FONT
:
- label = i18n.getString("menu
ChangeFont
");
+ case MID_
SCREEN_OPTIONS
:
+ label = i18n.getString("menu
ScreenOptions
");
break;
case MID_NEW:
break;
case MID_NEW:
@@
-659,6
+672,12
@@
public class TMenu extends TWindow {
label = i18n.getString("menuHelpAbout");
break;
label = i18n.getString("menuHelpAbout");
break;
+ case MID_TABLE_RENAME_COLUMN:
+ label = i18n.getString("menuTableRenameColumn");
+ break;
+ case MID_TABLE_RENAME_ROW:
+ label = i18n.getString("menuTableRenameRow");
+ break;
case MID_TABLE_VIEW_ROW_LABELS:
label = i18n.getString("menuTableViewRowLabels");
checkable = true;
case MID_TABLE_VIEW_ROW_LABELS:
label = i18n.getString("menuTableViewRowLabels");
checkable = true;
@@
-742,6
+761,9
@@
public class TMenu extends TWindow {
label = i18n.getString("menuTableColumnWiden");
key = kbShiftRight;
break;
label = i18n.getString("menuTableColumnWiden");
key = kbShiftRight;
break;
+ case MID_TABLE_FILE_OPEN_CSV:
+ label = i18n.getString("menuTableFileOpenCsv");
+ break;
case MID_TABLE_FILE_SAVE_CSV:
label = i18n.getString("menuTableFileSaveCsv");
break;
case MID_TABLE_FILE_SAVE_CSV:
label = i18n.getString("menuTableFileSaveCsv");
break;