X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Flayout%2FStretchLayoutManager.java;h=4bcb0cffc4c29e3a6cb088efa7a8afa8f5c4bebd;hb=HEAD;hp=3dd74521b533f8086adee17fc4ecb38e0ba0be2e;hpb=d8dc8aea32a07a0653933700f1abadc7776b013f;p=fanfix.git diff --git a/src/jexer/layout/StretchLayoutManager.java b/src/jexer/layout/StretchLayoutManager.java index 3dd7452..4bcb0cf 100644 --- a/src/jexer/layout/StretchLayoutManager.java +++ b/src/jexer/layout/StretchLayoutManager.java @@ -82,6 +82,8 @@ public class StretchLayoutManager implements LayoutManager { public StretchLayoutManager(final int width, final int height) { originalWidth = width; originalHeight = height; + this.width = width; + this.height = height; } // ------------------------------------------------------------------------ @@ -111,6 +113,7 @@ public class StretchLayoutManager implements LayoutManager { Rectangle rect = new Rectangle(child.getX(), child.getY(), child.getWidth(), child.getHeight()); children.put(child, rect); + layoutChildren(); } /** @@ -120,6 +123,17 @@ public class StretchLayoutManager implements LayoutManager { */ public void remove(final TWidget child) { children.remove(child); + layoutChildren(); + } + + /** + * Reset a child widget's original/preferred size. + * + * @param child the widget to manage + */ + public void resetSize(final TWidget child) { + // For this layout, adding is the same as replacing. + add(child); } // ------------------------------------------------------------------------ @@ -130,13 +144,13 @@ public class StretchLayoutManager implements LayoutManager { * Resize/reposition child widgets based on difference between current * dimensions and the original dimensions. */ - public void layoutChildren() { + private void layoutChildren() { double widthRatio = (double) width / originalWidth; - if (!Double.isFinite(widthRatio)) { + if (Math.abs(widthRatio) > Double.MAX_VALUE) { widthRatio = 1; } double heightRatio = (double) height / originalHeight; - if (!Double.isFinite(heightRatio)) { + if (Math.abs(heightRatio) > Double.MAX_VALUE) { heightRatio = 1; } for (TWidget child: children.keySet()) {