Fixed AWT dependency.

This commit is contained in:
Caspian Rychlik-Prince 2005-01-20 22:51:28 +00:00
parent debea3b6b7
commit a8fcd3edde
11 changed files with 187 additions and 79 deletions

View File

@ -385,15 +385,13 @@
</javah>
<javah classpath="${lwjgl.bin}" destdir="${lwjgl.src.native}/win32" force="yes">
<class name="org.lwjgl.opengl.Win32Display" />
<class name="org.lwjgl.Win32SysImplementation" />
<class name="org.lwjgl.NativeSysImplementation" />
</javah>
<javah classpath="${lwjgl.bin}" destdir="${lwjgl.src.native}/macosx" force="yes">
<class name="org.lwjgl.opengl.MacOSXDisplay" />
</javah>
<!-- lwjgl -->
<javah classpath="${lwjgl.bin}" destdir="${lwjgl.src.headers}" force="yes">
<class name="org.lwjgl.DefaultSysImplementation" />
<class name="org.lwjgl.input.Cursor" />
<class name="org.lwjgl.input.Keyboard" />
<class name="org.lwjgl.input.Mouse" />

View File

@ -31,9 +31,6 @@
*/
package org.lwjgl;
import java.lang.reflect.Method;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
/**
* $Id$
@ -49,28 +46,7 @@ abstract class DefaultSysImplementation implements SysImplementation {
return 1000;
}
public long getTime() {
return System.currentTimeMillis();
}
public void alert(String title, String message) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
}
JOptionPane.showMessageDialog(null, message, title, JOptionPane.WARNING_MESSAGE);
}
public String getClipboard() {
try {
java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard();
java.awt.datatransfer.Transferable transferable = clipboard.getContents(null);
if (transferable.isDataFlavorSupported(java.awt.datatransfer.DataFlavor.stringFlavor)) {
return (String)transferable.getTransferData(java.awt.datatransfer.DataFlavor.stringFlavor);
}
} catch (Exception e) {
Sys.log("Exception while getting clipboard: " + e);
}
return null;
}
public abstract long getTime();
public abstract void alert(String title, String message);
public abstract String getClipboard();
}

View File

@ -0,0 +1,72 @@
/*
* Copyright (c) 2002-2004 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
/**
* $Id$
* A SysImplementation which delegates as much as it can to J2SE.
* <p>
* @author $Author$
* @version $Revision$
*/
abstract class J2SESysImplementation extends DefaultSysImplementation {
public long getTime() {
return System.currentTimeMillis();
}
public void alert(String title, String message) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
}
JOptionPane.showMessageDialog(null, message, title, JOptionPane.WARNING_MESSAGE);
}
public String getClipboard() {
try {
java.awt.datatransfer.Clipboard clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard();
java.awt.datatransfer.Transferable transferable = clipboard.getContents(null);
if (transferable.isDataFlavorSupported(java.awt.datatransfer.DataFlavor.stringFlavor)) {
return (String)transferable.getTransferData(java.awt.datatransfer.DataFlavor.stringFlavor);
}
} catch (Exception e) {
Sys.log("Exception while getting clipboard: " + e);
}
return null;
}
}

View File

@ -34,19 +34,44 @@ package org.lwjgl;
/**
* $Id$
* <p>
* This exception is supplied to make exception handling more generic
* for LWJGL specific exceptions
* This exception is supplied to make exception handling more generic for LWJGL
* specific exceptions
* </p>
*
* @author Brian Matzon <brian@matzon.dk>
* @version $Revision$
*/
public class LWJGLException extends Exception {
/**
* Creates a new LWJGLException
* @param msg String identifier for exception
*/
/**
* Plain c'tor
*/
public LWJGLException() {
super();
}
/**
* Creates a new LWJGLException
*
* @param msg
* String identifier for exception
*/
public LWJGLException(String msg) {
super(msg);
}
/**
* @param message
* @param cause
*/
public LWJGLException(String message, Throwable cause) {
super(message, cause);
}
/**
* @param cause
*/
public LWJGLException(Throwable cause) {
super(cause);
}
}

View File

@ -31,9 +31,6 @@
*/
package org.lwjgl;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import java.io.IOException;
/**
@ -42,7 +39,7 @@ import java.io.IOException;
* @author elias_naur <elias_naur@users.sourceforge.net>
* @version $Revision$
*/
class LinuxSysImplementation extends DefaultSysImplementation {
class LinuxSysImplementation extends J2SESysImplementation {
public boolean openURL(String url) {
// Linux may as well resort to pure Java hackery, as there's no Linux native way of doing it
// right anyway.

View File

@ -32,8 +32,6 @@
package org.lwjgl;
import java.lang.reflect.Method;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
/**
* $Id$
@ -41,7 +39,7 @@ import javax.swing.UIManager;
* @author elias_naur <elias_naur@users.sourceforge.net>
* @version $Revision$
*/
class MacOSXSysImplementation extends DefaultSysImplementation {
class MacOSXSysImplementation extends J2SESysImplementation {
public boolean openURL(String url) {
try {
Class com_apple_eio_FileManager = Class.forName("com.apple.eio.FileManager");

View File

@ -0,0 +1,51 @@
/*
* Copyright (c) 2002-2004 LWJGL Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lwjgl;
/**
* $Id$
* A SysImplementation that uses native calls only.
* <p>
* @author $Author$
* @version $Revision$
*/
class NativeSysImplementation extends DefaultSysImplementation {
public native long getTimerResolution();
public native long getTime();
public native void alert(String title, String message);
public native boolean openURL(String url);
public native String getClipboard();
}

View File

@ -36,7 +36,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.Display;
/**
* $Id$

View File

@ -1,31 +1,31 @@
/*
* Copyright (c) 2002-2004 LWJGL Project
/*
* Copyright (c) 2003 Shaven Puppy Ltd
* All rights reserved.
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'LWJGL' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* * Neither the name of 'Shaven Puppy' nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@ -33,18 +33,11 @@ package org.lwjgl;
/**
* $Id$
*
* @author elias_naur <elias_naur@users.sourceforge.net>
* Win32 SysImplementation. This is just a straightforward NativsSysImplementation.
* <p>
* @author $Author$
* @version $Revision$
*/
class Win32SysImplementation extends DefaultSysImplementation {
public native long getTimerResolution();
public class Win32SysImplementation extends NativeSysImplementation {
public native long getTime();
public native void alert(String title, String message);
public native boolean openURL(String url);
public native String getClipboard();
}

View File

@ -41,11 +41,10 @@ package org.lwjgl.opengl;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.io.IOException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.BufferUtils;
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
final class LinuxDisplay implements DisplayImplementation {
private static final int CURSOR_HANDLE_SIZE = 8;

View File

@ -41,7 +41,7 @@
#include "Window.h"
#include "org_lwjgl_Sys.h"
#include "org_lwjgl_Win32SysImplementation.h"
#include "org_lwjgl_NativeSysImplementation.h"
#include "common_tools.h"
#include <malloc.h>
@ -53,7 +53,7 @@ unsigned __int64 hires_timer = 0; // Hires timer current time
* Method: getTimerResolution
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_Win32SysImplementation_getTimerResolution
JNIEXPORT jlong JNICALL Java_org_lwjgl_NativeSysImplementation_getTimerResolution
(JNIEnv * env, jobject ignored)
{
QueryPerformanceFrequency((LARGE_INTEGER*) &hires_timer_freq);
@ -65,7 +65,7 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_Win32SysImplementation_getTimerResolution
* Method: ngetTime
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_Win32SysImplementation_getTime
JNIEXPORT jlong JNICALL Java_org_lwjgl_NativeSysImplementation_getTime
(JNIEnv * env, jobject ignored)
{
QueryPerformanceCounter((LARGE_INTEGER*) &hires_timer);
@ -77,7 +77,7 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_Win32SysImplementation_getTime
* Method: alert
* Signature: (Ljava/lang/String;Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_Win32SysImplementation_alert
JNIEXPORT void JNICALL Java_org_lwjgl_NativeSysImplementation_alert
(JNIEnv * env, jobject ignored, jstring title, jstring message)
{
char * eMessageText = GetStringNativeChars(env, message);
@ -95,7 +95,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_Win32SysImplementation_alert
* Method: openURL
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_Win32SysImplementation_openURL
JNIEXPORT jboolean JNICALL Java_org_lwjgl_NativeSysImplementation_openURL
(JNIEnv * env, jobject ignored, jstring url)
{
STARTUPINFO si;
@ -163,7 +163,7 @@ const void * getClipboard(int type)
}
JNIEXPORT jstring JNICALL Java_org_lwjgl_Win32SysImplementation_getClipboard
JNIEXPORT jstring JNICALL Java_org_lwjgl_NativeSysImplementation_getClipboard
(JNIEnv * env, jobject ignored)
{
// Check to see if there's text available in the clipboard