2004/01/14 06:12:02
[org.ibex.core.git] / src / org / xwt / Platform.java
index abbf3ec..0d02cd0 100644 (file)
@@ -1,10 +1,11 @@
-// Copyright 2003 Adam Megacz, see the COPYING file for licensing [GPL]
+// Copyright 2004 Adam Megacz, see the COPYING file for licensing [GPL]
 package org.xwt;
 
 import java.lang.reflect.*;
 import java.net.*;
 import java.io.*;
 import java.util.*;
+import org.xwt.js.*;
 import org.xwt.util.*;
 
 /** 
@@ -61,6 +62,9 @@ public abstract class Platform {
             if (platform_class != null)
                 Class.forName("org.xwt.plat." + platform_class).newInstance();
 
+            String term = Platform.getEnv("TERM");
+            Log.color = term != null && term.length() != 0 && !term.equals("cygwin");
+            
             try {
                 build = (String)Class.forName("org.xwt.Build").getField("build").get(null);
             } catch (ClassNotFoundException cnfe) {
@@ -68,19 +72,19 @@ public abstract class Platform {
                 if (Log.on) Log.info(Platform.class, "exception while detecting build:");
                 if (Log.on) Log.info(Platform.class, e);
             }
-            if (Log.on) Log.info(Platform.class, "XWT build: " + build);
+            if (Log.on) Log.diag(Platform.class, "XWT build: " + build);
 
-            if (Log.on) Log.info(Platform.class, "XWT VM detection:   vendor = " + vendor);
-            if (Log.on) Log.info(Platform.class, "                   version = " + version);
-            if (Log.on) Log.info(Platform.class, "                        os = " + os_name + " [version " + os_version + "]");
+            if (Log.on) Log.diag(Platform.class, "XWT VM detection:   vendor = " + vendor);
+            if (Log.on) Log.diag(Platform.class, "                   version = " + version);
+            if (Log.on) Log.diag(Platform.class, "                        os = " + os_name + " [version " + os_version + "]");
 
             if (platform_class == null) {
                 if (Log.on) Log.info(Platform.class, "Unable to detect JVM");
                 criticalAbort("Unable to detect JVM");
             }
 
-            if (Log.on) Log.info(Platform.class, "                  platform = " + platform.getDescriptiveName());
-            if (Log.on) Log.info(Platform.class, "                     class = " + platform.getClass().getName());
+            if (Log.on) Log.diag(Platform.class, "                  platform = " + platform.getDescriptiveName());
+            if (Log.on) Log.diag(Platform.class, "                     class = " + platform.getClass().getName());
             platform.postInit();
 
         } catch (Exception e) {
@@ -101,17 +105,16 @@ public abstract class Platform {
     protected void postInit() { }
 
     protected Surface _createSurface(Box b, boolean framed) { return null; }
-    protected Picture _createPicture(Res r) { return null; }
+    protected Picture _createPicture(JS r) { return null; }
     protected PixelBuffer _createPixelBuffer(int w, int h, Surface owner) { return null; }
     protected Font.Glyph _createGlyph(org.xwt.Font f, char c) { return new DefaultGlyph(f, c); }
 
     public static PixelBuffer createPixelBuffer(int w, int h, Surface s) { return platform._createPixelBuffer(w, h, s); }
-    public static Picture createPicture(Res r) { return platform._createPicture(r); }
+    public static Picture createPicture(JS r) { return platform._createPicture(r); }
     public static Font.Glyph createGlyph(org.xwt.Font f, char c) { return platform._createGlyph(f, c); }
     public static Surface createSurface(Box b, boolean framed, boolean refreshable) {
         Surface ret = platform._createSurface(b, framed);
         ret.setInvisible(false);
-        ret.setLimits(b.minwidth, b.minheight, b.maxwidth, b.maxheight);
         if (refreshable) {
             Surface.allSurfaces.addElement(ret);
             ret.dirty(0, 0, b.width, b.height);
@@ -268,12 +271,14 @@ public abstract class Platform {
         public DefaultGlyph(org.xwt.Font f, char c) { super(f, c); }
         public Picture getPicture() {
             if (p == null && isLoaded) {
-                p = createPicture(null);
+                Picture p = createPicture(null);
                 p.data = new int[data.length];
                 for(int i=0; i<data.length; i++) p.data[i] = (data[i] & 0xff) << 24;
-                data = null;
+                this.data = null;
                 p.width = this.width;
                 p.height = this.height;
+                p.isLoaded = true;
+                this.p = p;
             }
             return p;
         }