2003/12/31 03:04:00
[org.ibex.core.git] / src / org / xwt / Box.java
index 35c0723..c39823e 100644 (file)
@@ -75,12 +75,10 @@ public final class Box extends JSScope implements Scheduler.Task {
     // FIXME update these
     // box properties can not be trapped
     static final String[] props = new String[] {
-        "fill", "stroke", "image", "tile", "fixedaspect", "text", "path", "font",
         "shrink", "hshrink", "vshrink", "x", "y", "width", "height", "cols", "rows",
-        "colspan", "rowspan", "align", "visible", "absolute", "globalx", "globaly",
-        "minwidth", "maxwidth", "minheight", "maxheight",
-        "numchildren", "redirect", "cursor", "mousex", "mousey", "xwt", "static",
-        "mouseinside", "root", "thisbox", "indexof"
+        "colspan", "rowspan", "align", "visible", "packed", "globalx", "globaly",
+        "minwidth", "maxwidth", "minheight", "maxheight", "indexof", "thisbox", "clip",
+        "numchildren", "redirect", "cursor", "mouse"
     };
 
     // FIXME update these
@@ -262,6 +260,12 @@ public final class Box extends JSScope implements Scheduler.Task {
             do {
                 int thisx = parent == null ? 0 : this.x;
                 int thisy = parent == null ? 0 : this.y;
+
+                // we can't reenable this until we track
+                // surface-relative sizes; imagine the case of a clear
+                // surface with nonclear children
+
+                /*
                 if (texture == null && (text == null || text.equals(""))) {
                     if ((fillcolor & 0xff000000) == 0) break;
                     // FEATURE: more optimizations here
@@ -272,6 +276,7 @@ public final class Box extends JSScope implements Scheduler.Task {
                         break;
                     }
                 }
+                */
                 (parent == null ? this : parent).dirty(thisx, thisy, this.width, this.height);
                 this.width = width; this.height = height; this.x = x; this.y = y;
                 dirty();
@@ -438,12 +443,16 @@ public final class Box extends JSScope implements Scheduler.Task {
         case "aspect": return N(aspect);
         case "x": return (parent == null || !test(VISIBLE)) ? N(0) : N(x);
         case "y": return (parent == null || !test(VISIBLE)) ? N(0) : N(y);
-        case "width": return N(width);
-        case "height": return N(height);
         case "cols": return test(FIXED) == COLS ? N(cols) : N(0);
         case "rows": return test(FIXED) == ROWS ? N(rows) : N(0);
         case "colspan": return N(colspan);
         case "rowspan": return N(rowspan);
+        case "width": return N(width);
+        case "height": return N(height);
+        case "minwidth": return N(minwidth);
+        case "maxwidth": return N(maxwidth);
+        case "minheight": return N(minheight);
+        case "maxheight": return N(maxheight);
         case "clip": return B(test(CLIP));
         case "visible": return B(test(VISIBLE) && (parent == null || (parent.get("visible") == T)));
         case "packed": return B(test(PACKED));
@@ -456,10 +465,6 @@ public final class Box extends JSScope implements Scheduler.Task {
                 throw new JSExn("you cannot read from the box.mouse property in background thread context");
             return new Mouse();
         case "numchildren": return redirect == null ? N(0) : redirect == this ? N(treeSize()) : redirect.get("numchildren");
-        case "minwidth": return N(minwidth);
-        case "maxwidth": return N(maxwidth);
-        case "minheight": return N(minheight);
-        case "maxheight": return N(maxheight);
         case "redirect": return redirect == null ? null : redirect == this ? T : redirect.get("redirect");
         case "Minimized": if (parent == null && getSurface() != null) return B(getSurface().minimized);
         default: return super.get(name);
@@ -527,8 +532,6 @@ public final class Box extends JSScope implements Scheduler.Task {
         case "Minimized": if (parent == null && getSurface() != null) getSurface().minimized = toBoolean(value);  // FEATURE
         case "Maximized": if (parent == null && getSurface() != null) getSurface().maximized = toBoolean(value);  // FEATURE
         case "Close": if (parent == null && getSurface() != null) getSurface().dispose(true);
-        case "toback": if (parent == null && getSurface() != null && toBoolean(value)) { getSurface().toBack(); }
-        case "tofront": if (parent == null && getSurface() != null && toBoolean(value)) { getSurface().toFront(); }
         case "redirect": if (redirect == this) redirect = (Box)value; else Log.info(this, "redirect can only be set once");
         case "font": font = value == null ? null : Font.getFont((Stream)value, font == null ? 10 : font.pointsize); MARK_RESIZE; dirty();
         case "fontsize": font = Font.getFont(font == null ? null : font.res, toInt(value)); MARK_RESIZE; dirty();