From: <eli...@us...> - 2006-10-26 21:39:48
|
Revision: 2613 http://svn.sourceforge.net/java-game-lib/?rev=2613&view=rev Author: elias_naur Date: 2006-10-26 14:39:37 -0700 (Thu, 26 Oct 2006) Log Message: ----------- Mac OS X: Implemented AWTInputAdapter Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/opengl/AbstractAWTInput.java trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxAWTInput.java trunk/LWJGL/src/java/org/lwjgl/opengl/MacOSXCanvasImplementation.java Added Paths: ----------- trunk/LWJGL/src/java/org/lwjgl/opengl/MacOSXAWTInput.java Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/AbstractAWTInput.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/AbstractAWTInput.java 2006-10-26 21:15:50 UTC (rev 2612) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/AbstractAWTInput.java 2006-10-26 21:39:37 UTC (rev 2613) @@ -37,7 +37,6 @@ import org.lwjgl.LWJGLException; import org.lwjgl.LWJGLUtil; -import java.awt.event.FocusListener; import java.awt.Cursor; /** @@ -49,16 +48,18 @@ abstract class AbstractAWTInput implements AWTCanvasInputImplementation { private AWTGLCanvas canvas; - private volatile int current_height; - private volatile int current_width; private KeyboardEventQueue keyboard_queue; private MouseEventQueue mouse_queue; private volatile boolean grab; - protected AbstractAWTInput(AWTGLCanvas canvas) throws LWJGLException { + protected AbstractAWTInput(AWTGLCanvas canvas) { this.canvas = canvas; } + protected synchronized MouseEventQueue getMouseEventQueue() { + return mouse_queue; + } + public synchronized void grabMouse(boolean grab) { this.grab = grab; if (mouse_queue != null) @@ -83,18 +84,13 @@ } public final int getWidth() { - return current_width; + return canvas.getWidth(); } public final int getHeight() { - return current_height; + return canvas.getHeight(); } - public synchronized void processInput(PeerInfo peer_info) { - current_width = canvas.getWidth(); - current_height = canvas.getHeight(); - } - public boolean hasWheel() { return AWTUtil.hasWheel(); } @@ -104,10 +100,14 @@ } public void createMouse() throws LWJGLException { - mouse_queue = new MouseEventQueue(canvas); + mouse_queue = createMouseQueue(); mouse_queue.register(); } + protected MouseEventQueue createMouseQueue() { + return new MouseEventQueue(getCanvas()); + } + public void destroyMouse() { mouse_queue.unregister(); } Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxAWTInput.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxAWTInput.java 2006-10-26 21:15:50 UTC (rev 2612) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxAWTInput.java 2006-10-26 21:39:37 UTC (rev 2613) @@ -113,7 +113,6 @@ } public synchronized void processInput(PeerInfo peer_info) { - super.processInput(peer_info); LinuxDisplay.lockAWT(); try { LinuxPeerInfo linux_peer_info = (LinuxPeerInfo)peer_info; Added: trunk/LWJGL/src/java/org/lwjgl/opengl/MacOSXAWTInput.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/MacOSXAWTInput.java (rev 0) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/MacOSXAWTInput.java 2006-10-26 21:39:37 UTC (rev 2613) @@ -0,0 +1,69 @@ +/* + * 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.opengl; + +import java.nio.IntBuffer; +import java.nio.ByteBuffer; + +import org.lwjgl.LWJGLException; +import org.lwjgl.LWJGLUtil; + +/** + * + * @author elias_naur <eli...@us...> + * @version $Revision: 2586 $ + * $Id: LinuxAWTGLCanvasPeerInfo.java 2586 2006-10-20 11:51:34Z elias_naur $ + */ +final class MacOSXAWTInput extends AbstractAWTInput { + private boolean had_focus; + + MacOSXAWTInput(AWTGLCanvas canvas) { + super(canvas); + } + + protected MouseEventQueue createMouseQueue() { + return new MacOSXMouseEventQueue(getCanvas()); + } + + public synchronized void processInput(PeerInfo peer_info) { + boolean has_focus = getCanvas().isFocusOwner(); + if (!had_focus && has_focus) + ((MacOSXMouseEventQueue)getMouseEventQueue()).warpCursor(); + had_focus = has_focus; + } + + public void destroy() { + } + + public void update() { + } +} Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/MacOSXCanvasImplementation.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/MacOSXCanvasImplementation.java 2006-10-26 21:15:50 UTC (rev 2612) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/MacOSXCanvasImplementation.java 2006-10-26 21:39:37 UTC (rev 2613) @@ -64,6 +64,6 @@ } public AWTCanvasInputImplementation createInput(AWTGLCanvas canvas) throws LWJGLException { - throw new UnsupportedOperationException(); + return new MacOSXAWTInput(canvas); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |