public StretchLayoutManager(final int width, final int height) {
originalWidth = width;
originalHeight = height;
+ this.width = width;
+ this.height = height;
}
// ------------------------------------------------------------------------
Rectangle rect = new Rectangle(child.getX(), child.getY(),
child.getWidth(), child.getHeight());
children.put(child, rect);
+ layoutChildren();
}
/**
*/
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);
}
// ------------------------------------------------------------------------
* 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;