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
#68 fix ColorTheme.load()
[fanfix.git]
/
src
/
jexer
/
menu
/
TMenu.java
diff --git
a/src/jexer/menu/TMenu.java
b/src/jexer/menu/TMenu.java
index d102f79118f5c8202a0e4f6e9f2ed7272ee5cc7f..a44de72ea321eb13bcfd79b0c9386371f5e94a7e 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 --------------------------------------------------------------
@@
-150,6
+152,11
@@
public class TMenu extends TWindow {
*/
private MnemonicString mnemonic;
*/
private MnemonicString mnemonic;
+ /**
+ * If true, draw icons with menu items. Note package private access.
+ */
+ boolean useIcons = false;
+
// ------------------------------------------------------------------------
// Constructors -----------------------------------------------------------
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
// Constructors -----------------------------------------------------------
// ------------------------------------------------------------------------
@@
-176,10
+183,15
@@
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);
+
+ if (System.getProperty("jexer.menuIcons", "false").equals("true")) {
+ useIcons = true;
+ }
+
}
// ------------------------------------------------------------------------
}
// ------------------------------------------------------------------------
@@
-429,7
+441,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);
}
@@
-445,7
+456,7
@@
public class TMenu extends TWindow {
final boolean enabled) {
assert (id >= 1024);
final boolean enabled) {
assert (id >= 1024);
- return addItemInternal(id, label, null, enabled);
+ return addItemInternal(id, label, null, enabled
, -1
);
}
/**
}
/**
@@
-491,7
+502,7
@@
public class TMenu extends TWindow {
private TMenuItem addItemInternal(final int id, final String label,
final TKeypress key) {
private TMenuItem addItemInternal(final int id, final String label,
final TKeypress key) {
- return addItemInternal(id, label, key, true);
+ return addItemInternal(id, label, key, true
, -1
);
}
/**
}
/**
@@
-501,15
+512,16
@@
public class TMenu extends TWindow {
* @param label menu item label
* @param key global keyboard accelerator
* @param enabled default state for enabled
* @param label menu item label
* @param key global keyboard accelerator
* @param enabled default state for enabled
+ * @param icon icon picture/emoji
* @return the new menu item
*/
private TMenuItem addItemInternal(final int id, final String label,
* @return the new menu item
*/
private TMenuItem addItemInternal(final int id, final String label,
- final TKeypress key, final boolean enabled) {
+ final TKeypress key, final boolean enabled
, final int icon
) {
int newY = getChildren().size() + 1;
assert (newY < getHeight());
int newY = getChildren().size() + 1;
assert (newY < getHeight());
- TMenuItem menuItem = new TMenuItem(this, id, 1, newY, label);
+ TMenuItem menuItem = new TMenuItem(this, id, 1, newY, label
, icon
);
menuItem.setKey(key);
menuItem.setEnabled(enabled);
setHeight(getHeight() + 1);
menuItem.setKey(key);
menuItem.setEnabled(enabled);
setHeight(getHeight() + 1);
@@
-550,6
+562,7
@@
public class TMenu extends TWindow {
String label;
TKeypress key = null;
String label;
TKeypress key = null;
+ int icon = -1;
boolean checkable = false;
boolean checked = false;
boolean checkable = false;
boolean checked = false;
@@
-557,53
+570,61
@@
public class TMenu extends TWindow {
case MID_REPAINT:
label = i18n.getString("menuRepaintDesktop");
case MID_REPAINT:
label = i18n.getString("menuRepaintDesktop");
+ icon = 0x1F3A8;
break;
case MID_VIEW_IMAGE:
label = i18n.getString("menuViewImage");
break;
break;
case MID_VIEW_IMAGE:
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:
label = i18n.getString("menuNew");
break;
case MID_NEW:
label = i18n.getString("menuNew");
+ icon = 0x1F5CE;
break;
case MID_EXIT:
label = i18n.getString("menuExit");
key = kbAltX;
break;
case MID_EXIT:
label = i18n.getString("menuExit");
key = kbAltX;
+ icon = 0x1F5D9;
break;
case MID_SHELL:
label = i18n.getString("menuShell");
break;
case MID_SHELL:
label = i18n.getString("menuShell");
+ icon = 0x1F5AE;
break;
case MID_OPEN_FILE:
label = i18n.getString("menuOpen");
key = kbF3;
break;
case MID_OPEN_FILE:
label = i18n.getString("menuOpen");
key = kbF3;
+ icon = 0x1F5C1;
break;
case MID_CUT:
label = i18n.getString("menuCut");
key = kbCtrlX;
break;
case MID_CUT:
label = i18n.getString("menuCut");
key = kbCtrlX;
+ icon = 0x1F5F6;
break;
case MID_COPY:
label = i18n.getString("menuCopy");
key = kbCtrlC;
break;
case MID_COPY:
label = i18n.getString("menuCopy");
key = kbCtrlC;
+ icon = 0x1F5D0;
break;
case MID_PASTE:
label = i18n.getString("menuPaste");
key = kbCtrlV;
break;
case MID_PASTE:
label = i18n.getString("menuPaste");
key = kbCtrlV;
+ icon = 0x1F4CB;
break;
case MID_CLEAR:
label = i18n.getString("menuClear");
break;
case MID_CLEAR:
label = i18n.getString("menuClear");
- // key = kbDel;
break;
case MID_FIND:
label = i18n.getString("menuFind");
break;
case MID_FIND:
label = i18n.getString("menuFind");
+ icon = 0x1F50D;
break;
case MID_REPLACE:
label = i18n.getString("menuReplace");
break;
case MID_REPLACE:
label = i18n.getString("menuReplace");
@@
-621,6
+642,7
@@
public class TMenu extends TWindow {
break;
case MID_CASCADE:
label = i18n.getString("menuWindowCascade");
break;
case MID_CASCADE:
label = i18n.getString("menuWindowCascade");
+ icon = 0x1F5D7;
break;
case MID_CLOSE_ALL:
label = i18n.getString("menuWindowCloseAll");
break;
case MID_CLOSE_ALL:
label = i18n.getString("menuWindowCloseAll");
@@
-628,18
+650,22
@@
public class TMenu extends TWindow {
case MID_WINDOW_MOVE:
label = i18n.getString("menuWindowMove");
key = kbCtrlF5;
case MID_WINDOW_MOVE:
label = i18n.getString("menuWindowMove");
key = kbCtrlF5;
+ icon = 0x263C;
break;
case MID_WINDOW_ZOOM:
label = i18n.getString("menuWindowZoom");
key = kbF5;
break;
case MID_WINDOW_ZOOM:
label = i18n.getString("menuWindowZoom");
key = kbF5;
+ icon = 0x2195;
break;
case MID_WINDOW_NEXT:
label = i18n.getString("menuWindowNext");
key = kbF6;
break;
case MID_WINDOW_NEXT:
label = i18n.getString("menuWindowNext");
key = kbF6;
+ icon = 0x2192;
break;
case MID_WINDOW_PREVIOUS:
label = i18n.getString("menuWindowPrevious");
key = kbShiftF6;
break;
case MID_WINDOW_PREVIOUS:
label = i18n.getString("menuWindowPrevious");
key = kbShiftF6;
+ icon = 0x2190;
break;
case MID_WINDOW_CLOSE:
label = i18n.getString("menuWindowClose");
break;
case MID_WINDOW_CLOSE:
label = i18n.getString("menuWindowClose");
@@
-671,6
+697,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;
@@
-754,6
+786,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;
@@
-765,7
+800,7
@@
public class TMenu extends TWindow {
throw new IllegalArgumentException("Invalid menu ID: " + id);
}
throw new IllegalArgumentException("Invalid menu ID: " + id);
}
- TMenuItem item = addItemInternal(id, label, key, enabled);
+ TMenuItem item = addItemInternal(id, label, key, enabled
, icon
);
item.setCheckable(checkable);
return item;
}
item.setCheckable(checkable);
return item;
}