propose-patch
[org.ibex.core.git] / src / org / xwt / plat / Win32.java
index 3140898..a17323b 100644 (file)
@@ -4,11 +4,11 @@ package org.xwt.plat;
 import org.xwt.*;
 import org.xwt.util.*;
 import java.util.*;
+import org.xwt.js.*;
 import java.io.*;
 
 /** Platform specific code for GCJ-compiled Win32 binaries */
 public class Win32 extends GCJ {
-
     // Initialization ////////////////////////////////////////////////////////////////////////////
 
     // Win32 often asks for a DC/Handle when it doesn't really need one
@@ -38,10 +38,11 @@ public class Win32 extends GCJ {
 
     public static native String getTempPath();
     public static native void natInit();
+    public static native void natPreInit();
 
     protected native String _fileDialog(String suggestedFileName, boolean write);
 
-    public Win32() { }
+    public Win32() { natPreInit(); }
 
     public void postInit() {
         new Thread() { public void run() { natInit(); } }.start();
@@ -56,7 +57,7 @@ public class Win32 extends GCJ {
     protected String getDescriptiveName() { return "GCJ Win32 Binary"; }
     protected Surface _createSurface(Box b, boolean framed) { return new Win32Surface(b, framed); }
     protected PixelBuffer _createPixelBuffer(int w, int h, Surface owner) { return new Win32PixelBuffer(w, h, (Win32Surface)owner); }
-    protected Picture _createPicture() { return new Win32Picture(); }
+    protected Picture _createPicture(JS r) { return new Win32Picture(r); }
     protected native int _getScreenWidth();
     protected native int _getScreenHeight();
     protected boolean _supressDirtyOnResize() { return false; }
@@ -196,8 +197,6 @@ public class Win32 extends GCJ {
     // Win32Picture ////////////////////////////////////////////////////////////////////////////
 
     public static class Win32Picture extends Picture {
-        int w = 0, h = 0;
-        int[] data = null;
 
         /** the Win32 bitmap version of this Picture */
         int hbitmap = -1;
@@ -217,8 +216,9 @@ public class Win32 extends GCJ {
         /** dc of the mask */
         int maskdc = -1;
 
-        public int getWidth() { return w; };
-        public int getHeight() { return h; };
+        public Win32Picture(JS r) { super(r); }
+        public int getWidth() { return width; };
+        public int getHeight() { return height; };
         public int[] getData() { return data; }
         boolean initialized = false;
         public void init() { if (!initialized && isLoaded) natInit(); initialized = true; }