X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTWindow.java;h=19c96fd141d2550209a9ca8fb14ae53bcbfbc378;hb=eb29bbb5ec70c43895dd0f053630c7e3cd402cba;hp=962130560af8c7ed9cd3f9367db389c7b7bbc9a4;hpb=71a389c9810382e014682dde52e94d3f34e385fa;p=fanfix.git diff --git a/src/jexer/TWindow.java b/src/jexer/TWindow.java index 9621305..19c96fd 100644 --- a/src/jexer/TWindow.java +++ b/src/jexer/TWindow.java @@ -73,6 +73,11 @@ public class TWindow extends TWidget { */ public static final int NOCLOSEBOX = 0x08; + /** + * Window has no maximize box (default no). + */ + public static final int NOZOOMBOX = 0x10; + // ------------------------------------------------------------------------ // Common window attributes ----------------------------------------------- // ------------------------------------------------------------------------ @@ -547,6 +552,27 @@ public class TWindow extends TWidget { // General behavior ------------------------------------------------------- // ------------------------------------------------------------------------ + /** + * See if this window is undergoing any movement/resize/etc. + * + * @return true if the window is moving + */ + public boolean inMovements() { + if (inWindowResize || inWindowMove || inKeyboardResize) { + return true; + } + return false; + } + + /** + * Stop any pending movement/resize/etc. + */ + public void stopMovements() { + inWindowResize = false; + inWindowMove = false; + inKeyboardResize = false; + } + /** * Returns true if this window is modal. * @@ -571,12 +597,24 @@ public class TWindow extends TWidget { return false; } + /** + * Returns true if this window has a maximize/zoom box. + * + * @return true if this window has a maximize/zoom box + */ + public final boolean hasZoomBox() { + if ((flags & NOZOOMBOX) != 0) { + return true; + } + return false; + } + /** * Retrieve the background color. * * @return the background color */ - public final CellAttributes getBackground() { + public CellAttributes getBackground() { if (!isModal() && (inWindowMove || inWindowResize || inKeyboardResize) ) { @@ -694,7 +732,7 @@ public class TWindow extends TWidget { } // Draw the maximize button - if (!isModal()) { + if (!isModal() && ((flags & NOZOOMBOX) == 0)) { putCharXY(getWidth() - 5, 0, '[', border); putCharXY(getWidth() - 3, 0, ']', border); @@ -752,6 +790,9 @@ public class TWindow extends TWidget { * @return true if the mouse is currently on the maximize/restore button */ protected boolean mouseOnMaximize() { + if ((flags & NOZOOMBOX) != 0) { + return false; + } if ((mouse != null) && !isModal() && (mouse.getAbsoluteY() == getY()) @@ -1124,7 +1165,7 @@ public class TWindow extends TWidget { } // F5 - zoom - if (keypress.equals(kbF5)) { + if (keypress.equals(kbF5) && ((flags & NOZOOMBOX) == 0)) { if (maximized) { restore(); } else { @@ -1179,7 +1220,7 @@ public class TWindow extends TWidget { return; } - if (command.equals(cmWindowZoom)) { + if (command.equals(cmWindowZoom) && ((flags & NOZOOMBOX) == 0)) { if (maximized) { restore(); } else { @@ -1225,7 +1266,9 @@ public class TWindow extends TWidget { return; } - if (menu.getId() == TMenu.MID_WINDOW_ZOOM) { + if ((menu.getId() == TMenu.MID_WINDOW_ZOOM) + && ((flags & NOZOOMBOX) == 0) + ) { if (maximized) { restore(); } else { @@ -1384,5 +1427,4 @@ public class TWindow extends TWidget { getScreen().hLineXY(x, y, n, ch, attr); } - }