if (Log.on) Log.logJS(this, "attempt to set a numerical property on a box to anything other than a box");
} else if (redirect == null) {
if (Log.on) Log.logJS(this, "attempt to add/remove children to/from a node with a null redirect");
+ put("0", (Box)value);
} else if (redirect != this) {
Box b = value == null ? (Box)redirect.get(i) : (Box)value;
redirect.put(i, value);
b.dirty();
} });
+ specialBoxProperties.put("transform", new SpecialBoxProperty() {
+ public Object get(Box b) { return b.font; }
+ public void put(Box b, Object value) {
+ // FIXME: translate value into a resource if it is a string
+ b.font = value == null ? null : (Res)value;
+ MARK_FOR_REFLOW_b;
+ b.flags |= FONT_CHANGED_FLAG;
+ b.dirty();
+ } });
+
specialBoxProperties.put("fontsize", new SpecialBoxProperty() {
public Object get(Box b) { return b.font; }
public void put(Box b, Object value) {
b.dirty();
} });
+ specialBoxProperties.put("strokewidth", new SpecialBoxProperty() {
+ public Object get(Box b) { return b.strokewidth; }
+ public void put(Box b, Object value) {
+ if (b.strokewidth == stoi(value)) return;
+ b.strokewidth = stoi(value);
+ b.dirty();
+ } });
+
specialBoxProperties.put("thisbox", new SpecialBoxProperty() {
public Object get(Box b) { return b; }
public void put(Box b, Object value) {