-import jexer.*;
-import jexer.event.*;
-import jexer.menu.*;
-
-/**
- * This window demonstates the TText, THScroller, and TVScroller widgets.
- */
-class DemoTextWindow extends TWindow {
-
- /**
- * Hang onto my TText so I can resize it with the window.
- */
- private TText textField;
-
- /**
- * Public constructor.
- *
- * @param parent the main application
- */
- public DemoTextWindow(final TApplication parent) {
- super(parent, "Text Areas", 0, 0, 44, 20, RESIZABLE);
-
- textField = addText(
-"This is an example of a reflowable text field. Some example text follows.\n" +
-"\n" +
-"This library implements a text-based windowing system loosely\n" +
-"reminiscient of Borland's [Turbo\n" +
-"Vision](http://en.wikipedia.org/wiki/Turbo_Vision) library. For those\n" +
-"wishing to use the actual C++ Turbo Vision library, see [Sergio\n" +
-"Sigala's updated version](http://tvision.sourceforge.net/) that runs\n" +
-"on many more platforms.\n" +
-"\n" +
-"Currently the only console platform supported is Posix (tested on\n" +
-"Linux). Input/output is handled through terminal escape sequences\n" +
-"generated by the library itself: ncurses is not required or linked to. \n" +
-"xterm mouse tracking using UTF8 coordinates is supported.\n" +
-"\n" +
-"This library is licensed LGPL (\"GNU Lesser General Public License\")\n" +
-"version 3 or greater. See the file COPYING for the full license text,\n" +
-"which includes both the GPL v3 and the LGPL supplemental terms.\n" +
-"\n",
- 1, 1, 40, 16);
- }
-
- /**
- * Handle window/screen resize events.
- *
- * @param event resize event
- */
- @Override
- public void onResize(final TResizeEvent event) {
- if (event.getType() == TResizeEvent.Type.WIDGET) {
- // Resize the text field
- textField.setWidth(event.getWidth() - 4);
- textField.setHeight(event.getHeight() - 4);
- textField.reflow();
- return;
- }
-
- // Pass to children instead
- for (TWidget widget: getChildren()) {
- widget.onResize(event);
- }
- }
-}
-
-/**
- * This window demonstates the TRadioGroup, TRadioButton, and TCheckbox
- * widgets.
- */
-class DemoCheckboxWindow extends TWindow {
-
- /**
- * Constructor.
- *
- * @param parent the main application
- */
- DemoCheckboxWindow(final TApplication parent) {
- this(parent, CENTERED | RESIZABLE);
- }
-
- /**
- * Constructor.
- *
- * @param parent the main application
- * @param flags bitmask of MODAL, CENTERED, or RESIZABLE
- */
- DemoCheckboxWindow(final TApplication parent, final int flags) {
- // Construct a demo window. X and Y don't matter because it will be
- // centered on screen.
- super(parent, "Radiobuttons and Checkboxes", 0, 0, 60, 15, flags);
-
- int row = 1;
-
- // Add some widgets
- addLabel("Check box example 1", 1, row);
- addCheckbox(35, row++, "Checkbox 1", false);
- addLabel("Check box example 2", 1, row);
- addCheckbox(35, row++, "Checkbox 2", true);
- row += 2;
-
- TRadioGroup group = addRadioGroup(1, row, "Group 1");
- group.addRadioButton("Radio option 1");
- group.addRadioButton("Radio option 2");
- group.addRadioButton("Radio option 3");
-
- addButton("&Close Window", (getWidth() - 14) / 2, getHeight() - 4,
- new TAction() {
- public void DO() {
- DemoCheckboxWindow.this.getApplication()
- .closeWindow(DemoCheckboxWindow.this);
- }
- }
- );
- }
-
-}
-
-
-/**
- * This window demonstates the TMessageBox and TInputBox widgets.
- */
-class DemoMsgBoxWindow extends TWindow {
-
- /**
- * Constructor.
- *
- * @param parent the main application
- */
- DemoMsgBoxWindow(final TApplication parent) {
- this(parent, TWindow.CENTERED | TWindow.RESIZABLE);
- }
-
- /**
- * Constructor.
- *
- * @param parent the main application
- * @param flags bitmask of MODAL, CENTERED, or RESIZABLE
- */
- DemoMsgBoxWindow(final TApplication parent, final int flags) {
- // Construct a demo window. X and Y don't matter because it
- // will be centered on screen.
- super(parent, "Message Boxes", 0, 0, 60, 15, flags);
-
- int row = 1;
-
- // Add some widgets
- addLabel("Default OK message box", 1, row);
- addButton("Open O&K MB", 35, row,
- new TAction() {
- public void DO() {
- getApplication().messageBox("OK MessageBox",
-"This is an example of a OK MessageBox. This is the\n" +
-"default MessageBox.\n" +
-"\n" +
-"Note that the MessageBox text can span multiple\n" +
-"lines.\n" +
-"\n" +
-"The default result (if someone hits the top-left\n" +
-"close button) is OK.\n",
- TMessageBox.Type.OK);
- }
- }
- );
- row += 2;
-
- addLabel("OK/Cancel message box", 1, row);
- addButton("O&pen OKC MB", 35, row,
- new TAction() {
- public void DO() {
- getApplication().messageBox("OK/Cancel MessageBox",
-"This is an example of a OK/Cancel MessageBox.\n" +
-"\n" +
-"Note that the MessageBox text can span multiple\n" +
-"lines.\n" +
-"\n" +
-"The default result (if someone hits the top-left\n" +
-"close button) is CANCEL.\n",
- TMessageBox.Type.OKCANCEL);
- }
- }
- );
- row += 2;
-
- addLabel("Yes/No message box", 1, row);
- addButton("Open &YN MB", 35, row,
- new TAction() {
- public void DO() {
- getApplication().messageBox("Yes/No MessageBox",
-"This is an example of a Yes/No MessageBox.\n" +
-"\n" +
-"Note that the MessageBox text can span multiple\n" +
-"lines.\n" +
-"\n" +
-"The default result (if someone hits the top-left\n" +
-"close button) is NO.\n",
- TMessageBox.Type.YESNO);
- }
- }
- );
- row += 2;
-
- addLabel("Yes/No/Cancel message box", 1, row);
- addButton("Ope&n YNC MB", 35, row,
- new TAction() {
- public void DO() {
- getApplication().messageBox("Yes/No/Cancel MessageBox",
-"This is an example of a Yes/No/Cancel MessageBox.\n" +
-"\n" +
-"Note that the MessageBox text can span multiple\n" +
-"lines.\n" +
-"\n" +
-"The default result (if someone hits the top-left\n" +
-"close button) is CANCEL.\n",
- TMessageBox.Type.YESNOCANCEL);
- }
- }
- );
- row += 2;
-
- addLabel("Input box", 1, row);
- addButton("Open &input box", 35, row,
- new TAction() {
- public void DO() {
- TInputBox in = getApplication().inputBox("Input Box",
-"This is an example of an InputBox.\n" +
-"\n" +
-"Note that the InputBox text can span multiple\n" +
-"lines.\n",
- "some input text");
- getApplication().messageBox("Your InputBox Answer",
- "You entered: " + in.getText());
- }
- }
- );
-
- addButton("&Close Window", (getWidth() - 14) / 2, getHeight() - 4,
- new TAction() {
- public void DO() {
- getApplication().closeWindow(DemoMsgBoxWindow.this);
- }
- }
- );
- }
-}