git://git.nikiroo.be
/
fanfix.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'e6bb1700749980e69b5e913acbfd276f129c24dc'
[fanfix.git]
/
src
/
jexer
/
layout
/
StretchLayoutManager.java
diff --git
a/src/jexer/layout/StretchLayoutManager.java
b/src/jexer/layout/StretchLayoutManager.java
index 3dd74521b533f8086adee17fc4ecb38e0ba0be2e..4bcb0cffc4c29e3a6cb088efa7a8afa8f5c4bebd 100644
(file)
--- 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;
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);
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);
*/
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.
*/
* Resize/reposition child widgets based on difference between current
* dimensions and the original dimensions.
*/
- p
ublic
void layoutChildren() {
+ p
rivate
void layoutChildren() {
double widthRatio = (double) width / originalWidth;
double widthRatio = (double) width / originalWidth;
- if (
!Double.isFinite(widthRatio)
) {
+ if (
Math.abs(widthRatio) > Double.MAX_VALUE
) {
widthRatio = 1;
}
double heightRatio = (double) height / originalHeight;
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()) {
heightRatio = 1;
}
for (TWidget child: children.keySet()) {