-import java.util.ArrayList;
import jexer.TAction;
import jexer.TApplication;
import jexer.TDesktop;
-import jexer.TPanel;
import jexer.TTerminalWidget;
import jexer.TSplitPane;
import jexer.TWidget;
-import jexer.event.TKeypressEvent;
import jexer.event.TMenuEvent;
import jexer.menu.TMenu;
* Public constructor chooses the ECMA-48 / Xterm backend.
*/
public JexerTilingWindowManager2() throws Exception {
- super(BackendType.SWING);
+ super(BackendType.XTERM);
// The stock tool menu has items for redrawing the screen, opening
// images, and (when using the Swing backend) setting the font.
tileMenu.addItem(MENU_SPLIT_HORIZONTAL, "&Horizontal Split");
tileMenu.addItem(MENU_RESPAWN_ROOT, "&Respawn Root Terminal");
- // Stock commands: a new shell with resizable window, previous, next,
- // close, and exit program.
- tileMenu.addItem(TMenu.MID_SHELL, "&Floating");
+ // Stock commands: a new shell with resizable window, and exit
+ // program.
tileMenu.addSeparator();
- tileMenu.addDefaultItem(TMenu.MID_WINDOW_PREVIOUS);
- tileMenu.addDefaultItem(TMenu.MID_WINDOW_NEXT);
- tileMenu.addDefaultItem(TMenu.MID_WINDOW_CLOSE);
+ tileMenu.addItem(TMenu.MID_SHELL, "&New Windowed Terminal");
tileMenu.addSeparator();
tileMenu.addDefaultItem(TMenu.MID_EXIT);
+ // TTerminalWidget can request the text-block mouse pointer be
+ // suppressed, but the default TDesktop will ignore it. Let's set a
+ // new TDesktop to pass that mouse pointer visibility option to
+ // TApplication.
+ setDesktop(new TDesktop(this) {
+ @Override
+ public boolean hasHiddenMouse() {
+ TWidget active = getActiveChild();
+ if (active instanceof TTerminalWidget) {
+ return ((TTerminalWidget) active).hasHiddenMouse();
+ }
+ return false;
+ }
+ });
+
// Spin up the root terminal
createRootTerminal();
}
private void createRootTerminal() {
assert (root == null);
disableMenuItem(MENU_RESPAWN_ROOT);
+ enableMenuItem(MENU_SPLIT_VERTICAL);
+ enableMenuItem(MENU_SPLIT_HORIZONTAL);
root = createTerminal();
}
} else {
source.getApplication().enableMenuItem(
MENU_RESPAWN_ROOT);
+ source.getApplication().disableMenuItem(
+ MENU_SPLIT_VERTICAL);
+ source.getApplication().disableMenuItem(
+ MENU_SPLIT_HORIZONTAL);
source.remove();
root = null;
}