import org.xwt.*;
import java.util.*;
-public class Carbon extends POSIX {
- static Carbon singleton;
+public class Darwin extends POSIX {
+ static Darwin singleton;
private CarbonOpenGL openGL;
boolean jaguar; // true if we are on OS X >= 10.2
- // TEMPORARY HACKS (remove these when we ditch platform fonts)
- protected int _stringWidth(String font, String text) { return (int)Math.round(6.5 * text.length()); }
- protected int _getMaxAscent(String font) { return 10; }
- protected int _getMaxDescent(String font) { return 2; }
-
// General Methods
protected String _getAltKeyName() { return "Option"; }
protected boolean _needsAutoClick() { return false; }
protected boolean _needsAutoDoubleClick() { return false; }
- protected String getDescriptiveName() { return "GCJ Carbon Binary"; }
+ protected String getDescriptiveName() { return "GCJ Darwin Binary"; }
protected boolean _isCaseSensitive() { return false; /* Well, not always, could be UFS */ }
private native static int cgScreenWidth();
private native static int cgScreenHeight();
protected native void _newBrowserWindow(String url);
- protected native Proxy natDetectProxy();
+ protected native HTTP.Proxy natDetectProxy();
private native void natInit();
- protected native void _exit();
private native String natGetClipBoard();
private native void natSetClipBoard(String text);
}
- // Called by main thread after initialization, this is the event handler
- protected native void _running();
-
static void abort(String err) {
throw new Error(err);
}
- public Carbon() {
- synchronized(Carbon.class) {
- if(singleton != null) abort("Tried to instansiate Carbon more than once");
+ public Darwin() {
+ synchronized(Darwin.class) {
+ if(singleton != null) abort("Tried to instansiate Darwin more than once");
singleton = this;
}
}
- protected synchronized Proxy _detectProxy() {
+ protected synchronized HTTP.Proxy _detectProxy() {
return natDetectProxy();
}
private static native final boolean isJaguar();
+ // Called by main thread after initialization, this is the event handler
+ protected native void runApplicationEventLoop();
+
public void init() {
super.init();
jaguar = isJaguar();
throw new Error("No OpenGL support");
}
natInit();
+ new Thread() {
+ public void run() {
+ runApplicationEventLoop();
+ }
+ }.start();
}
private final class CarbonOpenGL extends OpenGL {
protected native void activateSharedContext();
}
- static abstract class CarbonSurface extends Surface {
+ static abstract class CarbonSurface extends Surface.DoubleBufferedSurface {
RawData rawWindowRef;
RawData rawEventHandlerUPP;
int modifiers;
public void setTitleBarText(final String s) { CarbonMessage.add(new CarbonMessage() { public void perform() { natSetTitleBarText(s); } }); }
private native void natSetSize(int w, int h);
public void setSize(final int w, final int h) { CarbonMessage.add(new CarbonMessage() { public void perform() { natSetSize(w,h); } }); }
- private native void natSetLocation(int x, int y);
- public void setLocation(final int x, final int y) { CarbonMessage.add(new CarbonMessage() { public void perform() { natSetLocation(x,y); } }); }
+ private native void natSetLocation();
+ public void setLocation() { CarbonMessage.add(new CarbonMessage() { public void perform() { natSetLocation(); } }); }
private native void natToFront();
public void toFront() { CarbonMessage.add(new CarbonMessage() { public void perform() { natToFront(); } }); }
private native void natToBack();
public void toBack() { CarbonMessage.add(new CarbonMessage() { public void perform() { natToBack(); } }); }
private native void natSetLimits(int minWidth, int minHeight, int maxWidth, int maxHeight);
public void setLimits(final int mnw, final int mnh, final int mxw, final int mxh) {
- if(Carbon.singleton.jaguar)
+ if(Darwin.singleton.jaguar)
CarbonMessage.add(new CarbonMessage() { public void perform() { natSetLimits(mnw,mnh,mxw,mxh); } });
}
private native void natSyncCursor(int n);
public void _sizeChange(int w, int h) { SizeChange(w,h); }
/* Drawing stuff */
- public abstract void blit(DoubleBuffer s, int sx, int sy, int dx, int dy, int dx2, int dy2);
+ public abstract void blit(PixelBuffer s, int sx, int sy, int dx, int dy, int dx2, int dy2);
public final void _dispose() { CarbonMessage.add(new CarbonMessage() { public void perform() { natDispose(); } }); }
public native void natDispose();
public void reshape(int w, int h) { }
}
- static class GLCarbonDoubleBuffer extends OpenGL.GLDoubleBuffer {
+ static class GLCarbonPixelBuffer extends OpenGL.GLPixelBuffer {
RawData rawCTX;
RawData rawWindowRef;
int textureName;
if(!gl.rectangularTextures) n = OpenGL.roundToPowerOf2(n);
return Math.min(n,gl.maxAglSurfaceTexSize);
}
- public GLCarbonDoubleBuffer(int w, int h, final CarbonOpenGL gl) {
+ public GLCarbonPixelBuffer(int w, int h, final CarbonOpenGL gl) {
super(fixupDimension(gl,w),fixupDimension(gl,h));
this.gl = gl;
rectTexture = gl.hasRectangularTextures();
final Semaphore sem = new Semaphore();
- CarbonMessage.add(new CarbonMessage() { public void perform() { GLCarbonDoubleBuffer.this.natInit(); sem.release(); } });
+ CarbonMessage.add(new CarbonMessage() { public void perform() { GLCarbonPixelBuffer.this.natInit(); sem.release(); } });
sem.block();
}
public native void activateContext();
super.setSize(w,h);
}
- private native void natBlit(GLCarbonDoubleBuffer db, int sx, int sy, int dx, int dy, int dx2, int dy2);
- public synchronized void blit(DoubleBuffer db, int sx, int sy, int dx, int dy, int dx2, int dy2) {
- natBlit((GLCarbonDoubleBuffer)db,sx,sy,dx,dy,dx2,dy2);
+ private native void natBlit(GLCarbonPixelBuffer db, int sx, int sy, int dx, int dy, int dx2, int dy2);
+ public synchronized void blit(PixelBuffer db, int sx, int sy, int dx, int dy, int dx2, int dy2) {
+ natBlit((GLCarbonPixelBuffer)db,sx,sy,dx,dy,dx2,dy2);
}
private native void natReshape(int w, int h);
public native void natDispose();
}
- /*private class QZCarbonDoubleBuffer extends DoubleBuffer {
+ /*private class QZCarbonPixelBuffer extends PixelBuffer {
- public QZCarbonDoubleBuffer(int width, int height) {
+ public QZCarbonPixelBuffer(int width, int height) {
}
}
-
- private class QZCarbonSurface extends CarbonSurface {
+ private class QZCarbonSurface extends CarbonSurface {
public QZCarbonSurface(Box root, boolean framed) {
super(b,root);
}
- public native void blit(DoubleBuffer s, int sx, int sy, int dx, int dy, int dx2, int dy2);
+ public native void blit(PixelBuffer s, int sx, int sy, int dx, int dy, int dx2, int dy2);
}
private class QZCarbonPicture extends Picture {
}
}*/
- protected DoubleBuffer _createDoubleBuffer(int w, int h, Surface owner) {
+ protected PixelBuffer _createPixelBuffer(int w, int h, Surface owner) {
if(openGL != null)
- return new GLCarbonDoubleBuffer(w,h,openGL);
+ return new GLCarbonPixelBuffer(w,h,openGL);
else
- return /*new QZCarbonDoubleBuffer(w,h)*/ null;
+ return /*new QZCarbonPixelBuffer(w,h)*/ null;
}
protected Surface _createSurface(Box b, boolean framed) {
if(openGL != null)