From fea7f27cc252c8feaafb8a5c0d4b9f391f03975d Mon Sep 17 00:00:00 2001 From: megacz Date: Fri, 30 Jan 2004 06:47:11 +0000 Subject: [PATCH] 2002/05/16 04:00:52 darcs-hash:20040130064711-2ba56-bcafb69d312eadf405803b74f932d38ea19fb8be.gz --- CHANGES | 4 ++++ src/org/xwt/Static.java | 16 +++++++++++----- src/org/xwt/Template.java | 1 + src/org/xwt/XWT.java | 2 ++ 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index 4f670a0..d6cf21c 100644 --- a/CHANGES +++ b/CHANGES @@ -131,7 +131,11 @@ 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} diff --git a/src/org/xwt/Static.java b/src/org/xwt/Static.java index 59450a7..4117892 100644 --- a/src/org/xwt/Static.java +++ b/src/org/xwt/Static.java @@ -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); } diff --git a/src/org/xwt/Template.java b/src/org/xwt/Template.java index d672154..7ff09ce 100644 --- a/src/org/xwt/Template.java +++ b/src/org/xwt/Template.java @@ -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); } diff --git a/src/org/xwt/XWT.java b/src/org/xwt/XWT.java index 1351177..ac095f2 100644 --- a/src/org/xwt/XWT.java +++ b/src/org/xwt/XWT.java @@ -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")) { -- 1.7.10.4