import jexer.TKeypress;
import jexer.TMessageBox;
import jexer.TStatusBar;
+import jexer.TWidget;
import jexer.TWindow;
import jexer.event.TMenuEvent;
import jexer.menu.TMenu;
public static final int MENU_LIBRARY = 1029;
public static final int MENU_EXIT = 1030;
+ public static final TCommand CMD_EXIT = new TCommand(MENU_EXIT) {
+ };
+
private Reader reader;
private TuiReaderMainWindow main;
// TODO: open in editor + external option
if (!meta.isImageDocument()) {
- @SuppressWarnings("unused")
- Object discard = new TuiReaderStoryWindow(this, getLibrary(), meta,
+ TWindow window = new TuiReaderStoryWindow(this, getLibrary(), meta,
getChapter());
+ window.maximize();
} else {
try {
openExternal(getLibrary(), meta.getLuid());
*/
public TStatusBar setStatusBar(TWindow window, String description) {
TStatusBar statusBar = window.newStatusBar(description);
- statusBar.addShortcutKeypress(TKeypress.kbF10, TCommand.cmExit, "Exit");
+ statusBar.addShortcutKeypress(TKeypress.kbF10, CMD_EXIT, "Exit");
return statusBar;
}
// TODO: i18n
switch (menu.getId()) {
case MENU_EXIT:
- if (messageBox("Confirmation", "(TODO: i18n) Exit application?",
- TMessageBox.Type.YESNO).getResult() == TMessageBox.Result.YES) {
- exit(); // TODO: exit(false) for "no confirm box"
- }
-
+ close(this);
return true;
case MENU_IMPORT_URL:
String clipboard = "";
public void openExternal(BasicLibrary lib, String luid) throws IOException {
reader.openExternal(lib, luid);
}
+
+ /**
+ * Ask the user and, if confirmed, close the {@link TApplication} this
+ * {@link TWidget} is running on.
+ * <p>
+ * This should result in the program terminating.
+ *
+ * @param widget
+ * the {@link TWidget}
+ */
+ static public void close(TWidget widget) {
+ close(widget.getApplication());
+ }
+
+ /**
+ * Ask the user and, if confirmed, close the {@link TApplication}.
+ * <p>
+ * This should result in the program terminating.
+ *
+ * @param app
+ * the {@link TApplication}
+ */
+ static void close(TApplication app) {
+ // TODO: i18n
+ if (app.messageBox("Confirmation", "(TODO: i18n) Exit application?",
+ TMessageBox.Type.YESNO).getResult() == TMessageBox.Result.YES) {
+ app.exit();
+ }
+ }
}
import jexer.TFileOpenBox.Type;
import jexer.TList;
import jexer.TWindow;
+import jexer.event.TCommandEvent;
import jexer.event.TMenuEvent;
import be.nikiroo.fanfix.Instance;
import be.nikiroo.fanfix.data.MetaData;
return String.format("%5s: %s", meta.getLuid(), meta.getTitle());
}
+ @Override
+ public void onCommand(TCommandEvent command) {
+ if (command.getCmd().equals(TuiReaderApplication.CMD_EXIT)) {
+ TuiReaderApplication.close(this);
+ } else {
+ // Handle our own event if needed here
+ super.onCommand(command);
+ }
+ }
+
@Override
public void onMenu(TMenuEvent menu) {
MetaData meta = getSelectedMeta();
import jexer.TTable;
import jexer.TText;
import jexer.TWindow;
+import jexer.event.TCommandEvent;
import jexer.event.TResizeEvent;
import jexer.event.TResizeEvent.Type;
import be.nikiroo.fanfix.data.Chapter;
private static String desc(MetaData meta) {
return String.format("%s: %s", meta.getLuid(), meta.getTitle());
}
+
+ @Override
+ public void onCommand(TCommandEvent command) {
+ if (command.getCmd().equals(TuiReaderApplication.CMD_EXIT)) {
+ TuiReaderApplication.close(this);
+ } else {
+ // Handle our own event if needed here
+ super.onCommand(command);
+ }
+ }
}