// as external events have occured, check the state of box
if (texture != null) {
if (texture.isLoaded) { minwidth = min(texture.width, maxwidth); minheight = min(texture.height, maxheight); }
- else { Stream res = texture.res; texture = null; throw new JSExn("image not found: "+res); }
+ else { JS res = texture.res; texture = null; throw new JSExn("image not found: "+res); }
}
MARK_REPACK;
throw new Error("unreachable"); // unreachable
}
- private class Mouse extends JS {
+ private class Mouse extends JS.Cloneable {
public Object get(Object key) {
//#switch(key)
case "x": return N(globalToLocalX(getSurface()._mousex));
case "height": put("maxheight", value); put("minheight", value); MARK_RESIZE;
case "maxwidth": setMaxWidth(value);
case "minwidth": CHECKSET_INT(minwidth); MARK_RESIZE;
+ if (parent == null && getSurface() != null)
+ getSurface().setMinimumSize(minwidth, minheight, minwidth != maxwidth || minheight != maxheight);
case "maxheight": setMaxHeight(value);
case "minheight": CHECKSET_INT(minheight); MARK_RESIZE;
+ if (parent == null && getSurface() != null)
+ getSurface().setMinimumSize(minwidth, minheight, minwidth != maxwidth || minheight != maxheight);
case "colspan": CHECKSET_SHORT(colspan); MARK_REPACK_parent;
case "rowspan": CHECKSET_SHORT(rowspan); MARK_REPACK_parent;
case "rows": CHECKSET_SHORT(rows); if (rows==0){set(FIXED, COLS);if(cols==0)cols=1;} else set(FIXED, ROWS); MARK_REPACK;
int newfillcolor = stringToColor((String)value);
if (newfillcolor == fillcolor) return;
fillcolor = newfillcolor;
- } else if(value instanceof Stream) {
- texture = Picture.load((Stream)value, this);
+ } else if(value instanceof JS) {
+ texture = Picture.load((JS)value, this);
} else {
- throw new JSExn("fill must be null, a String, or a stream");
+ throw new JSExn("fill must be null, a String, or a stream, not a " + value.getClass());
}
dirty();
}