X-Git-Url: https://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fmenu%2FTMenu.java;h=0e948cee0df2fbb7845a53bcf76e6a64074da37e;hb=339652cc241d738d461670c3309eaf6fc85c992a;hp=6dfb5fcfabe71f2f1d961572c0a877045b0e85a2;hpb=efb7af1f330223bfe9ac67112149d7a3f1b68421;p=fanfix.git diff --git a/src/jexer/menu/TMenu.java b/src/jexer/menu/TMenu.java index 6dfb5fc..0e948ce 100644 --- a/src/jexer/menu/TMenu.java +++ b/src/jexer/menu/TMenu.java @@ -1,35 +1,35 @@ /* * Jexer - Java Text User Interface * - * License: LGPLv3 or later + * The MIT License (MIT) * - * This module is licensed under the GNU Lesser General Public License - * Version 3. Please see the file "COPYING" in this directory for more - * information about the GNU Lesser General Public License Version 3. + * Copyright (C) 2017 Kevin Lamonte * - * Copyright (C) 2015 Kevin Lamonte + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 3 of - * the License, or (at your option) any later version. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, see - * http://www.gnu.org/licenses/, or write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. * * @author Kevin Lamonte [kevin.lamonte@gmail.com] * @version 1 */ package jexer.menu; +import java.util.ResourceBundle; + import jexer.TApplication; import jexer.TKeypress; import jexer.TWidget; @@ -46,6 +46,11 @@ 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. */ @@ -90,6 +95,15 @@ public final class TMenu extends TWindow { public static final int MID_WINDOW_PREVIOUS = 26; public static final int MID_WINDOW_CLOSE = 27; + // Help menu + public static final int MID_HELP_CONTENTS = 40; + public static final int MID_HELP_INDEX = 41; + public static final int MID_HELP_SEARCH = 42; + public static final int MID_HELP_PREVIOUS = 43; + public static final int MID_HELP_HELP = 44; + public static final int MID_HELP_ACTIVE_FILE = 45; + public static final int MID_ABOUT = 46; + /** * Public constructor. * @@ -106,9 +120,6 @@ public final class TMenu extends TWindow { super(parent, label, x, y, parent.getScreen().getWidth(), parent.getScreen().getHeight()); - // My parent constructor added me as a window, get rid of that - parent.closeWindow(this); - // Setup the menu shortcut mnemonic = new MnemonicString(label); setTitle(mnemonic.getRawLabel()); @@ -315,7 +326,7 @@ public final class TMenu extends TWindow { * @param label menu item label * @return the new menu item */ - public final TMenuItem addItem(final int id, final String label) { + public TMenuItem addItem(final int id, final String label) { assert (id >= 1024); return addItemInternal(id, label, null); } @@ -328,7 +339,7 @@ public final class TMenu extends TWindow { * @param key global keyboard accelerator * @return the new menu item */ - public final TMenuItem addItem(final int id, final String label, + public TMenuItem addItem(final int id, final String label, final TKeypress key) { assert (id >= 1024); @@ -371,7 +382,7 @@ public final class TMenu extends TWindow { * (inclusive). * @return the new menu item */ - public final TMenuItem addDefaultItem(final int id) { + public TMenuItem addDefaultItem(final int id) { assert (id >= 0); assert (id < 1024); @@ -381,64 +392,89 @@ 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"; - // key = kbCtrlW; + label = i18n.getString("menuWindowClose"); + key = kbCtrlW; + break; + + case MID_HELP_CONTENTS: + label = i18n.getString("menuHelpContents"); + break; + case MID_HELP_INDEX: + label = i18n.getString("menuHelpIndex"); + key = kbShiftF1; + break; + case MID_HELP_SEARCH: + label = i18n.getString("menuHelpSearch"); + key = kbCtrlF1; + break; + case MID_HELP_PREVIOUS: + label = i18n.getString("menuHelpPrevious"); + key = kbAltF1; + break; + case MID_HELP_HELP: + label = i18n.getString("menuHelpHelp"); + break; + case MID_HELP_ACTIVE_FILE: + label = i18n.getString("menuHelpActive"); + break; + case MID_ABOUT: + label = i18n.getString("menuHelpAbout"); break; default: @@ -451,7 +487,7 @@ public final class TMenu extends TWindow { /** * Convenience function to add a menu separator. */ - public final void addSeparator() { + public void addSeparator() { int newY = getChildren().size() + 1; assert (newY < getHeight()); @@ -468,7 +504,7 @@ public final class TMenu extends TWindow { * denoted by prefixing a letter with "&", e.g. "&File" * @return the new sub-menu */ - public final TSubMenu addSubMenu(final String title) { + public TSubMenu addSubMenu(final String title) { int newY = getChildren().size() + 1; assert (newY < getHeight());