2002/05/16 04:00:52
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:47:11 +0000 (06:47 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 06:47:11 +0000 (06:47 +0000)
darcs-hash:20040130064711-2ba56-bcafb69d312eadf405803b74f932d38ea19fb8be.gz

CHANGES
src/org/xwt/Static.java
src/org/xwt/Template.java
src/org/xwt/XWT.java

diff --git a/CHANGES b/CHANGES
index 4f670a0..d6cf21c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
 
 07-Apr megacz Box.java: thisbox[n] = null wasn't doing anything
 
+15-May megacz Template.java, Static.java: fixed bug where xwt.static
+              wouldn't work for packages whose name included the token
+              "xwt".
 
+15-May megacz XWT.java: added xwt.screen{Width,Height}
 
               
 
index 59450a7..4117892 100644 (file)
@@ -11,7 +11,10 @@ public class Static extends JSObject {
         Static ret = (Static)cache.get(resourcename);
         if (ret == null) {
             Template t = Template.getTemplate(resourcename, null);
-            if (t == null) return null;
+
+            // FIXME: ugly
+            if (t == null) return new Static(resourcename, true);
+
             ret = new Static(resourcename, false);
             t.link();
             return ret;
@@ -36,9 +39,7 @@ public class Static extends JSObject {
     }
     
     /** creates a new static representing a package */
-    public Static(String resourcename) {
-        this(resourcename, true);
-    }
+    public Static(String resourcename) { this(resourcename, true); }
 
     public Object get(String name, Scriptable start) {
         if (name == null) return null;
@@ -49,7 +50,12 @@ public class Static extends JSObject {
         if (name.equals("Function")) return JSObject.defaultObjects.get("Function", null);
         if (name.equals("TypeError")) return JSObject.defaultObjects.get("TypeError", null);
 
-        if ("xwt".equals(name)) return XWT.singleton;
+        if ("xwt".equals(name))
+            for(Scriptable cur = Context.enter().currentFunction; cur != null; cur = cur.getParentScope())
+                if (cur == this) return XWT.singleton;
+
+        System.out.println("casc up " + (resourcename + (resourcename.length() == 0 ? "" : ".") + name));
+
         if (!ispackage) return super.get(name, start);
         return getStatic(resourcename + (resourcename.length() == 0 ? "" : ".") + name);
     }
index d672154..7ff09ce 100644 (file)
@@ -329,6 +329,7 @@ public class Template {
             Scriptable s = Static.getStatic(nodeName);
             if (staticscript != null) {
                 Script temp = staticscript;
+                ((InterpretedScript)temp).setParentScope(s);     // so we know how to handle Static.get("xwt")
                 staticscript = null;
                 temp.exec(Context.enter(), s);
             }
index 1351177..ac095f2 100644 (file)
@@ -36,6 +36,8 @@ public final class XWT extends JSObject {
         else if (name.equals("xmlrpc")) return xmlrpc;
         else if (name.equals("clipboard")) return Platform.getClipBoard();
         else if (name.equals("altKeyName")) return Platform.altKeyName();
+        else if (name.equals("screenWidth")) return new Integer(Platform.getScreenWidth());
+        else if (name.equals("screenHeight")) return new Integer(Platform.getScreenHeight());
         else if (name.equals("static")) return Static.getStatic("");
         else if (name.equals("theme")) return theme;
         else if (name.equals("button")) {