X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Flayout%2FStretchLayoutManager.java;h=ee2bf5aba5e5f70d4da15e6376bcd36164b26f7e;hb=12b90437b5f22c2ae6e9b9b14c3b62b60f6143e5;hp=3dd74521b533f8086adee17fc4ecb38e0ba0be2e;hpb=d8dc8aea32a07a0653933700f1abadc7776b013f;p=nikiroo-utils.git diff --git a/src/jexer/layout/StretchLayoutManager.java b/src/jexer/layout/StretchLayoutManager.java index 3dd7452..ee2bf5a 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,7 +144,7 @@ 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)) { widthRatio = 1;