X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTWindow.java;h=3f860d636cac5db22e3454f0661acb3efe5ae4e6;hb=5d26b50423486b1e680e3adfc0054f6fd0bbcefe;hp=a4a9c23a815d602e2525b07f28bfbfcd921744a7;hpb=a69ed767c9c07cf35cf1c5f7821fc009cfe79cd2;p=fanfix.git diff --git a/src/jexer/TWindow.java b/src/jexer/TWindow.java index a4a9c23..3f860d6 100644 --- a/src/jexer/TWindow.java +++ b/src/jexer/TWindow.java @@ -32,7 +32,6 @@ import java.util.HashSet; import java.util.Set; import jexer.backend.Screen; -import jexer.bits.Cell; import jexer.bits.CellAttributes; import jexer.bits.GraphicsChars; import jexer.event.TCommandEvent; @@ -91,6 +90,11 @@ public class TWindow extends TWidget { */ public static final int HIDEONCLOSE = 0x40; + /** + * Menus cannot be used when this window is active (default no). + */ + public static final int OVERRIDEMENU = 0x80; + // ------------------------------------------------------------------------ // Variables -------------------------------------------------------------- // ------------------------------------------------------------------------ @@ -185,6 +189,15 @@ public class TWindow extends TWidget { */ protected TStatusBar statusBar = null; + /** + * A window may request that TApplication NOT draw the mouse cursor over + * it by setting this to true. This is currently only used within Jexer + * by TTerminalWindow so that only the bottom-most instance of nested + * Jexer's draws the mouse within its application window. But perhaps + * other applications can use it, so public getter/setter is provided. + */ + private boolean hideMouse = false; + // ------------------------------------------------------------------------ // Constructors ----------------------------------------------------------- // ------------------------------------------------------------------------ @@ -1181,6 +1194,7 @@ public class TWindow extends TWidget { * Close window. Note that windows without a close box can still be * closed by calling the close() method. */ + @Override public void close() { application.closeWindow(this); } @@ -1242,6 +1256,20 @@ public class TWindow extends TWidget { return false; } + /** + * Returns true if this window does not want menus to work while it is + * visible. + * + * @return true if this window does not want menus to work while it is + * visible + */ + public final boolean hasOverriddenMenu() { + if ((flags & OVERRIDEMENU) != 0) { + return true; + } + return false; + } + /** * Retrieve the background color. * @@ -1346,4 +1374,26 @@ public class TWindow extends TWidget { } } + /** + * Returns true if this window does not want the application-wide mouse + * cursor drawn over it. + * + * @return true if this window does not want the application-wide mouse + * cursor drawn over it + */ + public final boolean hasHiddenMouse() { + return hideMouse; + } + + /** + * Set request to prevent the application-wide mouse cursor from being + * drawn over this window. + * + * @param hideMouse if true, this window does not want the + * application-wide mouse cursor drawn over it + */ + public final void setHiddenMouse(final boolean hideMouse) { + this.hideMouse = hideMouse; + } + }