X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fmenu%2FTMenu.java;h=b9641e1eab4a31fd0179ffed4cb53e4e040d66e8;hb=159f076db8ec60010cdf87b1164a875d51875dd4;hp=a2f94b37a86c765773ba352cbb8dc05bf21ecc7c;hpb=a2018e9964f6c58742cd1e6dd0a0c63e244a89d6;p=nikiroo-utils.git diff --git a/src/jexer/menu/TMenu.java b/src/jexer/menu/TMenu.java index a2f94b3..b9641e1 100644 --- a/src/jexer/menu/TMenu.java +++ b/src/jexer/menu/TMenu.java @@ -28,6 +28,8 @@ */ package jexer.menu; +import java.util.ResourceBundle; + import jexer.TApplication; import jexer.TKeypress; import jexer.TWidget; @@ -44,11 +46,39 @@ import static jexer.TKeypress.*; */ public final class TMenu extends TWindow { + /** + * Translated strings. + */ + private static final ResourceBundle i18n = ResourceBundle.getBundle(TMenu.class.getName()); + /** * If true, this is a sub-menu. Note package private access. */ boolean isSubMenu = false; + /** + * The X position of the menu's title. + */ + private int titleX; + + /** + * Set the menu title X position. + * + * @param titleX the position + */ + public void setTitleX(final int titleX) { + this.titleX = titleX; + } + + /** + * Get the menu title X position. + * + * @return the position + */ + public int getTitleX() { + return titleX; + } + /** * The shortcut and title. */ @@ -97,6 +127,9 @@ public final class TMenu extends TWindow { public static final int MID_HELP_ACTIVE_FILE = 45; public static final int MID_ABOUT = 46; + // Other + public static final int MID_REPAINT = 50; + /** * Public constructor. * @@ -339,6 +372,23 @@ public final class TMenu extends TWindow { return addItemInternal(id, label, key); } + /** + * Convenience function to add a custom menu item. + * + * @param id menu item ID. Must be greater than 1024. + * @param label menu item label + * @param key global keyboard accelerator + * @param enabled default state for enabled + * @return the new menu item + */ + public TMenuItem addItem(final int id, final String label, + final TKeypress key, final boolean enabled) { + + TMenuItem item = addItem(id, label, key); + item.setEnabled(enabled); + return item; + } + /** * Convenience function to add a custom menu item. * @@ -385,89 +435,93 @@ public final class TMenu extends TWindow { switch (id) { case MID_EXIT: - label = "E&xit"; + label = i18n.getString("menuExit"); key = kbAltX; break; case MID_SHELL: - label = "O&S Shell"; + label = i18n.getString("menuShell"); break; case MID_OPEN_FILE: - label = "&Open"; + label = i18n.getString("menuOpen"); key = kbAltO; break; case MID_CUT: - label = "Cu&t"; + label = i18n.getString("menuCut"); key = kbCtrlX; break; case MID_COPY: - label = "&Copy"; + label = i18n.getString("menuCopy"); key = kbCtrlC; break; case MID_PASTE: - label = "&Paste"; + label = i18n.getString("menuPaste"); key = kbCtrlV; break; case MID_CLEAR: - label = "C&lear"; + label = i18n.getString("menuClear"); // key = kbDel; break; case MID_TILE: - label = "&Tile"; + label = i18n.getString("menuWindowTile"); break; case MID_CASCADE: - label = "C&ascade"; + label = i18n.getString("menuWindowCascade"); break; case MID_CLOSE_ALL: - label = "Cl&ose All"; + label = i18n.getString("menuWindowCloseAll"); break; case MID_WINDOW_MOVE: - label = "&Size/Move"; + label = i18n.getString("menuWindowMove"); key = kbCtrlF5; break; case MID_WINDOW_ZOOM: - label = "&Zoom"; + label = i18n.getString("menuWindowZoom"); key = kbF5; break; case MID_WINDOW_NEXT: - label = "&Next"; + label = i18n.getString("menuWindowNext"); key = kbF6; break; case MID_WINDOW_PREVIOUS: - label = "&Previous"; + label = i18n.getString("menuWindowPrevious"); key = kbShiftF6; break; case MID_WINDOW_CLOSE: - label = "&Close"; + label = i18n.getString("menuWindowClose"); key = kbCtrlW; break; case MID_HELP_CONTENTS: - label = "&Contents"; + label = i18n.getString("menuHelpContents"); break; case MID_HELP_INDEX: - label = "&Index"; + label = i18n.getString("menuHelpIndex"); key = kbShiftF1; break; case MID_HELP_SEARCH: - label = "&Topic search"; + label = i18n.getString("menuHelpSearch"); key = kbCtrlF1; break; case MID_HELP_PREVIOUS: - label = "&Previous topic"; + label = i18n.getString("menuHelpPrevious"); key = kbAltF1; break; case MID_HELP_HELP: - label = "&Help on help"; + label = i18n.getString("menuHelpHelp"); break; case MID_HELP_ACTIVE_FILE: - label = "Active &file..."; + label = i18n.getString("menuHelpActive"); break; case MID_ABOUT: - label = "&About..."; + label = i18n.getString("menuHelpAbout"); + break; + + case MID_REPAINT: + label = i18n.getString("menuRepaintDesktop"); break; default: