2003/05/12 05:06:51
authormegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:00:19 +0000 (07:00 +0000)
committermegacz <megacz@xwt.org>
Fri, 30 Jan 2004 07:00:19 +0000 (07:00 +0000)
darcs-hash:20040130070019-2ba56-22b0a16bd842d7b0be5bda34ecf52299ccc3d8da.gz

src/org/xwt/Main.java

index 7713361..5b78775 100644 (file)
@@ -1,18 +1,18 @@
 // Copyright 2002 Adam Megacz, see the COPYING file for licensing [GPL]
 package org.xwt;
 
-import org.xwt.util.*;
 import java.lang.reflect.*;
 import java.applet.*;
 import java.net.*;
 import java.util.*;
 import java.io.*;
 import java.awt.*;
-import org.mozilla.javascript.*;
 import org.bouncycastle.util.encoders.Base64;
+import org.xwt.js.*;
+import org.xwt.util.*;
 
 /** Entry point for the XWT Engine; handles splash screen, initial xwar loading, and argument processing */
-public class Main extends Applet {
+public class Main {
 
     /**
      *  Used for security checks. If this is null, it means that only
@@ -29,23 +29,9 @@ public class Main extends Applet {
     /** true iff the user asked for rendered regions to be shown with a red rectangle */
     public static boolean showRenders = false;
 
-    public Main() { }
-    public void paint(Graphics g) { }    // do-nothing method to avoid repaints
-    public void update(Graphics g) { }   // do-nothing method, to avoid repaints
-
-    public static Applet applet = null;
-
     /** don't check if all surfaces are gone (and quit) until this is true */
     public static boolean doneInitializing = false;
 
-    /** applet entry point */
-    public void init() {
-        if ("true".equals(getParameter("showRenders"))) showRenders = true;
-        if ("true".equals(getParameter("verbose"))) Log.verbose = true;
-        applet = this;
-        main(new String[] { getParameter("initial-xwar-url"), "main" });
-    }
-
     /** common entry point */
     public static void main(String[] args) {
         try {
@@ -69,7 +55,7 @@ public class Main extends Applet {
                 }
                 else if (args[startargs].equals("-s")) showRenders = true;
                 else if (args[startargs].equals("-v")) Log.verbose = true;
-                else if (args[startargs].equals("-l")) startargs++;          // FIXME
+                else if (args[startargs].equals("-l")) startargs++;
                 else break;
                 startargs++;
             }
@@ -78,15 +64,14 @@ public class Main extends Applet {
             Platform.forceLoad();
             if (Log.on) for(int i=0; i<args.length; i++) Log.log(Main.class, "argument " + i + ": " + args[i]);
 
-            // we do this here instead of in a static initializer to avoid threading hazards
-            if (Log.on) Log.log(Main.class, "loading scar image");
-            PNG png = PNG.decode(new ByteArrayInputStream(Base64.decode(scarPicture_png_base64)), "bundled scar image");
-            Surface.scarPicture = Platform.createPicture(png.getData(), png.getWidth(), png.getHeight());
-
             InputStream is = Platform.getBuiltinInputStream();
             if (is == null) Platform.criticalAbort("unable to load builtin.xwar");
             Resources.loadArchive(is);
            
+            if (Log.on) Log.log(Main.class, "loading scar image");
+            PNG png = PNG.decode(new ByteArrayInputStream(Resources.getResource("org.xwt.builtin.scar.png")), "bundled scar image");
+            Surface.scarPicture = Platform.createPicture(png.getData(), png.getWidth(), png.getHeight());
+
             String initialTemplate = "main";
 
             if (args.length > startargs) {
@@ -117,14 +102,14 @@ public class Main extends Applet {
             
             if (Log.on) Log.log(Main.class, "instantiating " + initialTemplate);
             final String initialTemplate_f = initialTemplate;
-            ThreadMessage.newthread(new JSObject.JSFunction() {
-                    public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] arg) throws JavaScriptException {
+            ThreadMessage.newthread(new JS.Function() {
+                    public Object _call(JS.Array args) throws JS.Exn {
                         new Box(initialTemplate_f, null);
                        doneInitializing = true;
-            if (Surface.allSurfaces.size() == 0) {
-                Log.log(this, "exiting because all surfaces are gone");
-                Platform.exit();
-            }
+                       if (Surface.allSurfaces.size() == 0) {
+                           Log.log(this, "exiting because all surfaces are gone");
+                           Platform.exit();
+                       }
                         return null;
                     }
                 });
@@ -140,26 +125,4 @@ public class Main extends Applet {
         }
     }
 
-    /** a base64-encoded png image of the scar */
-    public static final String scarPicture_png_base64 = 
-        "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAA" +
-        "CXBIWXMAAAsRAAALEQF/ZF+RAAAAB3RJTUUH0gIYAgsIkuS+AwAAA7lJREFUeJzF1l9MW1Uc" +
-        "wPHvvb3lz/oHOssd0hXo+NNONow102xDSXzoJGiyGBIyDNMlJvjn0USNL74ZY3wnxOgeWIxo" +
-        "9uAmZBrMiNkYYw5xRGBFQdiuzgtl/Gmht7S9PsBM162lGwN+yU3uPTf3nM895/c7OXwOfSKI" +
-        "23Z1yDJt0Ms2hQhwARa3CyHeudkuhJj4sB0IMblhqxH3ALYacV/AViJSArYKkRawFYh1AZuN" +
-        "yAiwmQgpzTsBMMzVv14V00PWQGDhJpd/UNugdwBebIOFRwFINwOGwJHXPH/d9BdYrbXZpaV1" +
-        "ZUPeZ8RuiHnhXAvYNxMghEEMaXO79rjqyLeV6c5iD01Nrz4bevnYwYFVxJkWsG4WQM+B+I6e" +
-        "7/q0SH98srXuYufpk2NGo8Tx5jcF6/unDwyA5oVzmwUAiBlhReg622eG6L7xDuWbjp+iJSVO" +
-        "Kisfl2Z8p8QLENxoYqatgjzQAeFy4QvOs0ZX5bGmeunvWxK//jaNQQpLsPHqSJkDgKT6GrxD" +
-        "xZ6DkimrzFffUFS020dX50B8efaPyeyuN5ZZBW4IkQogqb6Gp0b9IxZJcmKzubCYvfT0KAjx" +
-        "ES3r1LtTQDzxg4dFiA5V/UCRZUtio+p7xTtyfdgqiEXIBW5cew6xv/p5ap8zBVbi8ez5hg9d" +
-        "O8DA6kxtCCG2w8/JiPngrMUgObE/VoHDeYAn9taytBxDRw+/VH9YlHJFR7Dxo4o1xF3xoAiD" +
-        "AMI1mKwJhcYUWa63hkKRyXx7saZliU9WH8XjqSUciWHLs3HrX6x2e9a0212yqEXthWGPNzdy" +
-        "9cdZkpZjCiLvwNvfwxcZAQASEe6JMWXGUeCM6TaKiqoxm8xMB26zM9+OOq2b9lYVWsrLyoWJ" +
-        "G1FzvKo8L3r1/D/JHWeKuCsJE5ZDfPr3/l6BYX14tJvgUhBbfh7TgQDuCkvYarKg3BCIRu1E" +
-        "V3bFUnWeyXLcUwVriE8UWTYUn//2UjTi1/3+iwSDi+zft5NSV27O6EiUwaE/CS8NaMaTLaPp" +
-        "BlgPcd8ybIczDlX9VJFlg73zs0va8qA+PtGHxWTGfz3O4NA483O/aHrriStLEEkHWA/xfw4k" +
-        "xzUYrQmF5hVZPlw42D216CrdPXfbKMzMRliYv6LReqJ/CVZISsBUkSonBHGd7bgZjiqy/F6F" +
-        "qsZCjR87c0w2DF++Nbn25xkNnhg1YGmBQxkD1hDFiix/7VDVxQcdcD1ERkeydphyqOrx5B3z" +
-        "YSMxJzKagTvRDKWKLH/VqKqPwgHAf3HDlnr6flmoAAAAAElFTkSuQmCC";
 }