2002/08/07 04:30:20
[org.ibex.core.git] / src / org / xwt / SpecialBoxProperty.java
index cb64849..cff3b5e 100644 (file)
@@ -101,8 +101,8 @@ class SpecialBoxProperty {
                     else if (s.equals("pink")) newcolor = pink;
                     else if (s.equals("yellow")) newcolor = yellow;
                     else if (s.equals("white")) newcolor = white;
-                    else if (Log.on) Log.log(this, "invalid color " + s);
-
+                    else if (Log.on) Log.log(this, "invalid color \"" + s + "\" at " +
+                                             Context.enter().interpreterSourceFile + ":" + Context.enter().interpreterLine);
                     if (newcolor == b.color) return;
                     b.color = newcolor;
                     b.dirty();
@@ -145,7 +145,8 @@ class SpecialBoxProperty {
                     else if (s.equals("pink")) newtextcolor = pink;
                     else if (s.equals("yellow")) newtextcolor = yellow;
                     else if (s.equals("white")) newtextcolor = white;
-                    else if (Log.on) Log.log(this, "invalid textcolor " + s);
+                    else if (Log.on) Log.log(this, "invalid color \"" + s + "\" at " +
+                                             Context.enter().interpreterSourceFile + ":" + Context.enter().interpreterLine);
 
                     if (newtextcolor == b.textcolor) return;
                     b.textcolor = newtextcolor;
@@ -510,6 +511,7 @@ class SpecialBoxProperty {
                 public Object get(Box b) {
                     if (b.surface == null) return null;
                     else if (b.getRoot() == null) return null;
+                    else if (b.getParent() == null) return null;
                     else return b.getRoot().getRootProxy();
                 } });
 
@@ -646,6 +648,15 @@ class SpecialBoxProperty {
                     b.set(dmax, 1, stosh(value));
                 }
             });
+
+        specialBoxProperties.put("redirect", new SpecialBoxProperty() {
+                public void put(Box b, Object value) { }
+                public Object get(Box b) {
+                    if (b.redirect == null) return null;
+                    if (b.redirect == b) return Boolean.TRUE;
+                    return get(b.redirect);
+                }
+            });
     }