/** returns the actual font that should be used to render this box */
private String font() {
- if (font != null) return font;
- if (font == null && cachedFont != null) return cachedFont;
- if (getParent() != null) return cachedFont = getParent().font();
- return cachedFont = Platform.getDefaultFont();
+ if (font != null) return font;
+ if (font == null && cachedFont != null) return cachedFont;
+ if (getParent() != null) return cachedFont = getParent().font();
+ return cachedFont = Platform.getDefaultFont();
}
/** this must be called when a box's font changes */
void fontChanged() {
- textupdate();
- for(Box b = getChild(0); b != null; b = b.nextSibling())
- if (b.font == null) {
- b.cachedFont = font();
- b.fontChanged();
- }
+ textupdate();
+ for(Box b = getChild(0); b != null; b = b.nextSibling())
+ if (b.font == null) {
+ b.cachedFont = font();
+ b.fontChanged();
+ }
}
/** This must be called when font or text is changed */
if (str.indexOf(':') == -1) {
String s = str;
byte[] b = Resources.getResource(Resources.resolve(s + ".png", null));
- if (b != null) return PNG.decode(new ByteArrayInputStream(b), str);
+ if (b != null) return PNG.decode(new ByteArrayInputStream(b), str);
b = Resources.getResource(Resources.resolve(s + ".jpeg", null));
- if (b != null) return Platform.decodeJPEG(new ByteArrayInputStream(b), str);
- return null;
+ if (b != null) return Platform.decodeJPEG(new ByteArrayInputStream(b), str);
+ return null;
} else {
Thread thread = Thread.currentThread();
ThreadMessage.newthread(new JS.Callable() {
public Object call(JS.Array args_) throws JS.Exn {
try {
- JS.Array args = new JS.Array();
- args.addElement(new Double(bytesDownloaded));
- args.addElement(new Double(contentLength));
- callback.call(args);
+ JS.Array args = new JS.Array();
+ args.addElement(new Double(bytesDownloaded));
+ args.addElement(new Double(contentLength));
+ callback.call(args);
} finally {
clear = true;
}
if (str.endsWith(".gif")) return GIF.decode(is, str);
else if (str.endsWith(".jpeg") || str.endsWith(".jpg")) return Platform.decodeJPEG(is, str);
- else return PNG.decode(is, str);
+ else return PNG.decode(is, str);
} catch (IOException e) {
if (Log.on) Log.log(Box.class, "error while trying to load an image from " + str);
if (image == null) {
if (Log.on) Log.log(Box.class, "unable to load image " + s + " at " + Context.getCurrentSourceNameAndLine());
return;
- }
+ }
if (sizetoimage) syncSizeToImage();
dirty();
}
if (surface.sizePosChangesSinceLastRender == 500) {
if (Log.on) Log.log(this, "Warning, more than 500 SizeChange/PosChange traps triggered since last complete render");
if (Log.on) Log.log(this, " interpreter is at " + Context.getCurrentSourceNameAndLine());
- /*
+ /*
try {
Trap t = sizechange ? Trap.getTrap(this, "SizeChange") : Trap.getTrap(this, "PosChange");
InterpretedJS.Callable f = (InterpretedJS.Callable)t.f;
if (Log.on) Log.log(this, "Current trap is at " + f.getSourceName() + ":" + f.getLineNumbers()[0]);
} catch (Throwable t) { }
- */
+ */
}
} else {
if (sizechange) put("SizeChange", Boolean.TRUE);
* WARNING: O(n) runtime, unless i == numChildren()
*/
public void put(int i, Object value) {
- if (i < 0) return;
+ if (i < 0) return;
if (value != null && !(value instanceof Box)) {
if (Log.on) Log.log(this, "attempt to set a numerical property on a box to anything other than a box at " + Context.getCurrentSourceNameAndLine());
for(Box cur = newnode.getParent(); cur != null; cur = cur.getParent())
if (cur.redirect == newnode) {
if (Log.on) Log.log(this, "attempt to move a box that is the target of a redirect at "+
- Context.getCurrentSourceNameAndLine());
+ Context.getCurrentSourceNameAndLine());
return;
}
for(Box cur = this; cur != null; cur = cur.getParent())
if (cur == newnode) {
if (Log.on) Log.log(this, "attempt to make a node a parent of its own ancestor at " +
- Context.getCurrentSourceNameAndLine());
+ Context.getCurrentSourceNameAndLine());
if (Log.on) Log.log(this, "box == " + this + " ancestor == " + newnode);
return;
}
public Object get(Object name) { return get(name, false); }
public Object get(Object name_, boolean ignoretraps) {
- if (name_ instanceof Number) return get(((Number)name_).intValue());
+ if (name_ instanceof Number) return get(((Number)name_).intValue());
- String name = (String)name_;
+ String name = (String)name_;
if (name.equals("")) return null;
// See if we're reading back the function value of a trap
public void put(Object name, Object value) { put(name, value, false, null); }
public void put(Object name, Object value, boolean ignoretraps) { put(name, value, ignoretraps, null); }
public void put(Object name_, Object value, boolean ignoretraps, RootProxy rp) {
- if (name_ instanceof Number) { put(((Number)name_).intValue(), value); return; }
- String name = (String)name_;
- if (name == null) return; // FIXME, shouldn't be necessary
+ if (name_ instanceof Number) { put(((Number)name_).intValue(), value); return; }
+ String name = (String)name_;
+ if (name == null) return; // FIXME, shouldn't be necessary
if (name.startsWith("xwt_")) {
if (Log.on) Log.log(this, "attempt to set reserved property " + name + " at " + Context.getCurrentSourceNameAndLine());
return;
- }
+ }
if (!ignoretraps && traps != null) {
Trap t = (Trap)traps.get(name);
if (t != null) {
JS.Array arg = new JS.Array();
- arg.addElement(value);
+ arg.addElement(value);
t.perform(arg);
arg.setElementAt(null, 0);
return;
if (name.charAt(0) == '_') {
if (value != null && !(value instanceof JS.Callable)) {
if (Log.on) Log.log(this, "attempt to put a non function value (" + value + ") to " +
- name + " at " + Context.getCurrentSourceNameAndLine());
- } else if (value != null && !(value instanceof JS.CompiledFunction)) {
+ name + " at " + Context.getCurrentSourceNameAndLine());
+ } else if (value != null && !(value instanceof JS.CompiledFunction)) {
if (Log.on) Log.log(this, "attempt to put a non-compiled function value (" + value + ") to " +
- name + " at " + Context.getCurrentSourceNameAndLine());
+ name + " at " + Context.getCurrentSourceNameAndLine());
} else if (name.charAt(1) == '_') {
name = name.substring(2).intern();
Trap t = Trap.getTrap(this, name);
return;
}
- super.put(name, value);
+ super.put(name, value);
// a bit of a hack, since titlebar is the only 'special' property stored in JSObject
if (getParent() == null && surface != null) {
/** remove this node from its parent; INVARIANT: whenever the parent of a node is changed, remove() gets called. */
public void remove() {
- cachedFont = null;
+ cachedFont = null;
if (parent == null) {
if (surface != null) surface.dispose(true);
return;