2002/06/23 21:33:48
[org.ibex.core.git] / src / org / xwt / SpecialBoxProperty.java
index 52fc331..79c0074 100644 (file)
@@ -180,9 +180,12 @@ class SpecialBoxProperty {
                 public Object get(Box b) { return b; }
                 public void put(Box b, Object value) {
                     if (value == null) b.remove();
-                    else if (value.equals("window")) Platform.createSurface(b, false, true);
-                    else if (value.equals("frame")) Platform.createSurface(b, true, true);
-                    else if (Log.on) Log.log(this, "put invalid value to 'thisbox' property: " + value);
+                    else if (value.equals("window") || value.equals("frame")) {
+                        if (b.redirect != b && Log.on)
+                            Log.log(this, "WARNING: you have created a surface whose root box's redirect is not itself " +
+                                    "-- this isn't usually a good idea");
+                        Platform.createSurface(b, value.equals("frame"), true);
+                    } else if (Log.on) Log.log(this, "put invalid value to 'thisbox' property: " + value);
                 }
             });
 
@@ -239,6 +242,15 @@ class SpecialBoxProperty {
                     }
                 } });
         
+        specialBoxProperties.put("fixedaspect", new SpecialBoxProperty() {
+                public Object get(Box b) { return b.sizetoimage ? Boolean.TRUE : Boolean.FALSE; }
+                public void put(Box b, Object value) {
+                    boolean newval = stob(value);
+                    if (newval == b.fixedaspect) return;
+                    b.fixedaspect = newval;
+                    b.dirty();
+                } });
+        
         specialBoxProperties.put("shrink", new SpecialBoxProperty() {
                 public Object get(Box b) { return (b.vshrink && b.hshrink) ? Boolean.TRUE : Boolean.FALSE; }
                 public void put(Box b, Object value) {