X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTWindow.java;h=82d187c762a4d89743edbc6bdd600c6409b0a810;hb=ef368bd06a88a1701fab31f9459d8641f53c2867;hp=e15092e5c07c29894be0cfa08e182914765689c4;hpb=2b9c27db318b916730aa04f2b41bd3bff795a5dc;p=nikiroo-utils.git diff --git a/src/jexer/TWindow.java b/src/jexer/TWindow.java index e15092e..82d187c 100644 --- a/src/jexer/TWindow.java +++ b/src/jexer/TWindow.java @@ -143,13 +143,13 @@ public class TWindow extends TWidget { * If true, then the user clicked on the title bar and is moving the * window. */ - private boolean inWindowMove = false; + protected boolean inWindowMove = false; /** * If true, then the user clicked on the bottom right corner and is * resizing the window. */ - private boolean inWindowResize = false; + protected boolean inWindowResize = false; /** * If true, then the user selected "Size/Move" (or hit Ctrl-F5) and is @@ -187,6 +187,15 @@ public class TWindow extends TWidget { private int restoreWindowX; private int restoreWindowY; + /** + * Set the maximum width for this window. + * + * @param maximumWindowWidth new maximum width + */ + public final void setMaximumWindowWidth(final int maximumWindowWidth) { + this.maximumWindowWidth = maximumWindowWidth; + } + /** * Public constructor. Window will be located at (0, 0). * @@ -365,17 +374,17 @@ public class TWindow extends TWidget { if (!isModal() && (inWindowMove || inWindowResize || inKeyboardResize) ) { - assert (getActive()); + assert (isActive()); return getTheme().getColor("twindow.background.windowmove"); } else if (isModal() && inWindowMove) { - assert (getActive()); + assert (isActive()); return getTheme().getColor("twindow.background.modal"); } else if (isModal()) { - if (getActive()) { + if (isActive()) { return getTheme().getColor("twindow.background.modal"); } return getTheme().getColor("twindow.background.modal.inactive"); - } else if (getActive()) { + } else if (isActive()) { assert (!isModal()); return getTheme().getColor("twindow.background"); } else { @@ -393,18 +402,18 @@ public class TWindow extends TWidget { if (!isModal() && (inWindowMove || inWindowResize || inKeyboardResize) ) { - assert (getActive()); + assert (isActive()); return getTheme().getColor("twindow.border.windowmove"); } else if (isModal() && inWindowMove) { - assert (getActive()); + assert (isActive()); return getTheme().getColor("twindow.border.modal.windowmove"); } else if (isModal()) { - if (getActive()) { + if (isActive()) { return getTheme().getColor("twindow.border.modal"); } else { return getTheme().getColor("twindow.border.modal.inactive"); } - } else if (getActive()) { + } else if (isActive()) { assert (!isModal()); return getTheme().getColor("twindow.border"); } else { @@ -422,18 +431,18 @@ public class TWindow extends TWidget { if (!isModal() && (inWindowMove || inWindowResize || inKeyboardResize) ) { - assert (getActive()); + assert (isActive()); return 1; } else if (isModal() && inWindowMove) { - assert (getActive()); + assert (isActive()); return 1; } else if (isModal()) { - if (getActive()) { + if (isActive()) { return 2; } else { return 1; } - } else if (getActive()) { + } else if (isActive()) { return 2; } else { return 1; @@ -467,12 +476,12 @@ public class TWindow extends TWidget { putStrXY(titleLeft + 1, 0, title); putCharXY(titleLeft + title.length() + 1, 0, ' ', border); - if (getActive()) { + if (isActive()) { // Draw the close button putCharXY(2, 0, '[', border); putCharXY(4, 0, ']', border); - if (mouseOnClose() && mouse.getMouse1()) { + if (mouseOnClose() && mouse.isMouse1()) { putCharXY(3, 0, GraphicsChars.CP437[0x0F], !isModal() ? getTheme().getColor("twindow.border.windowmove") @@ -489,7 +498,7 @@ public class TWindow extends TWidget { putCharXY(getWidth() - 5, 0, '[', border); putCharXY(getWidth() - 3, 0, ']', border); - if (mouseOnMaximize() && mouse.getMouse1()) { + if (mouseOnMaximize() && mouse.isMouse1()) { putCharXY(getWidth() - 4, 0, GraphicsChars.CP437[0x0F], getTheme().getColor("twindow.border.windowmove")); } else { @@ -523,12 +532,11 @@ public class TWindow extends TWidget { @Override public void onMouseDown(final TMouseEvent mouse) { this.mouse = mouse; - application.setRepaint(); inKeyboardResize = false; if ((mouse.getAbsoluteY() == getY()) - && mouse.getMouse1() + && mouse.isMouse1() && (getX() <= mouse.getAbsoluteX()) && (mouse.getAbsoluteX() < getX() + getWidth()) && !mouseOnClose() @@ -596,28 +604,27 @@ public class TWindow extends TWidget { @Override public void onMouseUp(final TMouseEvent mouse) { this.mouse = mouse; - application.setRepaint(); - if ((inWindowMove) && (mouse.getMouse1())) { + if ((inWindowMove) && (mouse.isMouse1())) { // Stop moving window inWindowMove = false; return; } - if ((inWindowResize) && (mouse.getMouse1())) { + if ((inWindowResize) && (mouse.isMouse1())) { // Stop resizing window inWindowResize = false; return; } - if (mouse.getMouse1() && mouseOnClose()) { + if (mouse.isMouse1() && mouseOnClose()) { // Close window application.closeWindow(this); return; } if ((mouse.getAbsoluteY() == getY()) - && mouse.getMouse1() + && mouse.isMouse1() && mouseOnMaximize()) { if (maximized) { // Restore @@ -644,7 +651,6 @@ public class TWindow extends TWidget { @Override public void onMouseMotion(final TMouseEvent mouse) { this.mouse = mouse; - application.setRepaint(); if (inWindowMove) { // Move window over @@ -742,22 +748,30 @@ public class TWindow extends TWidget { } } if (keypress.equals(kbShiftLeft)) { - if (getWidth() > minimumWindowWidth) { + if ((getWidth() > minimumWindowWidth) + || (minimumWindowWidth <= 0) + ) { setWidth(getWidth() - 1); } } if (keypress.equals(kbShiftRight)) { - if (getWidth() < maximumWindowWidth) { + if ((getWidth() < maximumWindowWidth) + || (maximumWindowWidth <= 0) + ) { setWidth(getWidth() + 1); } } if (keypress.equals(kbShiftUp)) { - if (getHeight() > minimumWindowHeight) { + if ((getHeight() > minimumWindowHeight) + || (minimumWindowHeight <= 0) + ) { setHeight(getHeight() - 1); } } if (keypress.equals(kbShiftDown)) { - if (getHeight() < maximumWindowHeight) { + if ((getHeight() < maximumWindowHeight) + || (maximumWindowHeight <= 0) + ) { setHeight(getHeight() + 1); } }