+ * @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; + } + + +} diff --git a/src/java/org/lwjgl/LWJGLException.java b/src/java/org/lwjgl/LWJGLException.java index aea1a1c3..00ffdcd2 100644 --- a/src/java/org/lwjgl/LWJGLException.java +++ b/src/java/org/lwjgl/LWJGLException.java @@ -34,19 +34,44 @@ package org.lwjgl; /** * $Id$ *
- * 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 *
+ * * @author Brian Matzon
+ * @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();
+}
diff --git a/src/java/org/lwjgl/Sys.java b/src/java/org/lwjgl/Sys.java
index d41dd1cd..55f2f776 100644
--- a/src/java/org/lwjgl/Sys.java
+++ b/src/java/org/lwjgl/Sys.java
@@ -36,7 +36,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import org.lwjgl.input.Mouse;
-import org.lwjgl.opengl.Display;
/**
* $Id$
diff --git a/src/java/org/lwjgl/Win32SysImplementation.java b/src/java/org/lwjgl/Win32SysImplementation.java
index 864b82a8..f6356d77 100644
--- a/src/java/org/lwjgl/Win32SysImplementation.java
+++ b/src/java/org/lwjgl/Win32SysImplementation.java
@@ -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
+ * @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();
}
diff --git a/src/java/org/lwjgl/opengl/LinuxDisplay.java b/src/java/org/lwjgl/opengl/LinuxDisplay.java
index 513a995a..31764ff0 100644
--- a/src/java/org/lwjgl/opengl/LinuxDisplay.java
+++ b/src/java/org/lwjgl/opengl/LinuxDisplay.java
@@ -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;
diff --git a/src/native/win32/org_lwjgl_Sys.c b/src/native/win32/org_lwjgl_Sys.c
index 6ceabe88..9ec93002 100644
--- a/src/native/win32/org_lwjgl_Sys.c
+++ b/src/native/win32/org_lwjgl_Sys.c
@@ -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