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}
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;
}
/** 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;
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);
}
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);
}
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")) {