X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fmenu%2FTMenu.java;h=d102f79118f5c8202a0e4f6e9f2ed7272ee5cc7f;hb=382bc294dd88b71639fdd6c73216d2519635a080;hp=7c3121230a3539a8b7158ac7a3ff1ee4ecde927b;hpb=978a5d8f650488c8840d54ccc3032599ca50a084;p=fanfix.git diff --git a/src/jexer/menu/TMenu.java b/src/jexer/menu/TMenu.java index 7c31212..d102f79 100644 --- a/src/jexer/menu/TMenu.java +++ b/src/jexer/menu/TMenu.java @@ -101,6 +101,36 @@ public class TMenu extends TWindow { public static final int MID_HELP_ACTIVE_FILE = 55; public static final int MID_ABOUT = 56; + // Table menu + public static final int MID_TABLE_RENAME_ROW = 60; + public static final int MID_TABLE_RENAME_COLUMN = 61; + public static final int MID_TABLE_VIEW_ROW_LABELS = 70; + public static final int MID_TABLE_VIEW_COLUMN_LABELS = 71; + public static final int MID_TABLE_VIEW_HIGHLIGHT_ROW = 72; + public static final int MID_TABLE_VIEW_HIGHLIGHT_COLUMN = 73; + public static final int MID_TABLE_BORDER_NONE = 80; + public static final int MID_TABLE_BORDER_ALL = 81; + public static final int MID_TABLE_BORDER_CELL_NONE = 82; + public static final int MID_TABLE_BORDER_CELL_ALL = 83; + public static final int MID_TABLE_BORDER_RIGHT = 84; + public static final int MID_TABLE_BORDER_LEFT = 85; + public static final int MID_TABLE_BORDER_TOP = 86; + public static final int MID_TABLE_BORDER_BOTTOM = 87; + public static final int MID_TABLE_BORDER_DOUBLE_BOTTOM = 88; + public static final int MID_TABLE_BORDER_THICK_BOTTOM = 89; + public static final int MID_TABLE_DELETE_LEFT = 100; + public static final int MID_TABLE_DELETE_UP = 101; + public static final int MID_TABLE_DELETE_ROW = 102; + public static final int MID_TABLE_DELETE_COLUMN = 103; + public static final int MID_TABLE_INSERT_LEFT = 104; + public static final int MID_TABLE_INSERT_RIGHT = 105; + public static final int MID_TABLE_INSERT_ABOVE = 106; + 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; + // ------------------------------------------------------------------------ // Variables -------------------------------------------------------------- // ------------------------------------------------------------------------ @@ -240,15 +270,21 @@ public class TMenu extends TWindow { /* System.err.printf("keypress: %s active child: %s\n", keypress, getActiveChild()); - */ + */ if (getActiveChild() != this) { - if ((getActiveChild() instanceof TSubMenu) - || (getActiveChild() instanceof TMenu) - ) { + if (getActiveChild() instanceof TMenu) { getActiveChild().onKeypress(keypress); return; } + + if (getActiveChild() instanceof TSubMenu) { + TSubMenu subMenu = (TSubMenu) getActiveChild(); + if (subMenu.menu.isActive()) { + subMenu.onKeypress(keypress); + return; + } + } } if (keypress.equals(kbEsc)) { @@ -280,12 +316,18 @@ public class TMenu extends TWindow { 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; - if ((item.getMnemonic() != null) + if ((item.isEnabled() == true) + && (item.getMnemonic() != null) && (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)); @@ -508,6 +550,8 @@ public class TMenu extends TWindow { String label; TKeypress key = null; + boolean checkable = false; + boolean checked = false; switch (id) { @@ -627,11 +671,103 @@ public class TMenu extends TWindow { label = i18n.getString("menuHelpAbout"); break; + case MID_TABLE_VIEW_ROW_LABELS: + label = i18n.getString("menuTableViewRowLabels"); + checkable = true; + checked = true; + break; + case MID_TABLE_VIEW_COLUMN_LABELS: + label = i18n.getString("menuTableViewColumnLabels"); + checkable = true; + checked = true; + break; + case MID_TABLE_VIEW_HIGHLIGHT_ROW: + label = i18n.getString("menuTableViewHighlightRow"); + checkable = true; + checked = true; + break; + case MID_TABLE_VIEW_HIGHLIGHT_COLUMN: + label = i18n.getString("menuTableViewHighlightColumn"); + checkable = true; + checked = true; + break; + + case MID_TABLE_BORDER_NONE: + label = i18n.getString("menuTableBorderNone"); + break; + case MID_TABLE_BORDER_ALL: + label = i18n.getString("menuTableBorderAll"); + break; + case MID_TABLE_BORDER_CELL_NONE: + label = i18n.getString("menuTableBorderCellNone"); + break; + case MID_TABLE_BORDER_CELL_ALL: + label = i18n.getString("menuTableBorderCellAll"); + break; + case MID_TABLE_BORDER_RIGHT: + label = i18n.getString("menuTableBorderRight"); + break; + case MID_TABLE_BORDER_LEFT: + label = i18n.getString("menuTableBorderLeft"); + break; + case MID_TABLE_BORDER_TOP: + label = i18n.getString("menuTableBorderTop"); + break; + case MID_TABLE_BORDER_BOTTOM: + label = i18n.getString("menuTableBorderBottom"); + break; + case MID_TABLE_BORDER_DOUBLE_BOTTOM: + label = i18n.getString("menuTableBorderDoubleBottom"); + break; + case MID_TABLE_BORDER_THICK_BOTTOM: + label = i18n.getString("menuTableBorderThickBottom"); + break; + case MID_TABLE_DELETE_LEFT: + label = i18n.getString("menuTableDeleteLeft"); + break; + case MID_TABLE_DELETE_UP: + label = i18n.getString("menuTableDeleteUp"); + break; + case MID_TABLE_DELETE_ROW: + label = i18n.getString("menuTableDeleteRow"); + break; + case MID_TABLE_DELETE_COLUMN: + label = i18n.getString("menuTableDeleteColumn"); + break; + case MID_TABLE_INSERT_LEFT: + label = i18n.getString("menuTableInsertLeft"); + break; + case MID_TABLE_INSERT_RIGHT: + label = i18n.getString("menuTableInsertRight"); + break; + case MID_TABLE_INSERT_ABOVE: + label = i18n.getString("menuTableInsertAbove"); + break; + case MID_TABLE_INSERT_BELOW: + label = i18n.getString("menuTableInsertBelow"); + break; + case MID_TABLE_COLUMN_NARROW: + label = i18n.getString("menuTableColumnNarrow"); + key = kbShiftLeft; + break; + case MID_TABLE_COLUMN_WIDEN: + label = i18n.getString("menuTableColumnWiden"); + key = kbShiftRight; + break; + case MID_TABLE_FILE_SAVE_CSV: + label = i18n.getString("menuTableFileSaveCsv"); + break; + case MID_TABLE_FILE_SAVE_TEXT: + label = i18n.getString("menuTableFileSaveText"); + break; + default: throw new IllegalArgumentException("Invalid menu ID: " + id); } - return addItemInternal(id, label, key, enabled); + TMenuItem item = addItemInternal(id, label, key, enabled); + item.setCheckable(checkable); + return item; } /**