summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2013-12-31 16:54:07 +0100
committerSven Gothel <[email protected]>2013-12-31 16:54:07 +0100
commit6da365d9d3aa29070afa1a1c82996ec7f92a690b (patch)
treec2261a9be96009196505af3e0f351a6e7f69b948
parentd8b3e369cf5365d09853db20b817cda7553b9a48 (diff)
Bug 935: NEWT PointerIcon: Add size, hotspot 'getter' and String representation
PointerIcon's size and hotspot maybe be useful for certain user-app calculation.
-rw-r--r--src/newt/classes/com/jogamp/newt/Display.java12
-rw-r--r--src/newt/classes/jogamp/newt/DisplayImpl.java20
-rw-r--r--src/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java5
-rw-r--r--src/newt/classes/jogamp/newt/driver/windows/DisplayDriver.java5
-rw-r--r--src/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java4
5 files changed, 41 insertions, 5 deletions
diff --git a/src/newt/classes/com/jogamp/newt/Display.java b/src/newt/classes/com/jogamp/newt/Display.java
index ee6dfd080..cf1099c85 100644
--- a/src/newt/classes/com/jogamp/newt/Display.java
+++ b/src/newt/classes/com/jogamp/newt/Display.java
@@ -37,6 +37,8 @@ import java.util.Iterator;
import javax.media.nativewindow.AbstractGraphicsDevice;
import javax.media.nativewindow.NativeWindowException;
+import javax.media.nativewindow.util.DimensionImmutable;
+import javax.media.nativewindow.util.PointImmutable;
import jogamp.newt.Debug;
@@ -71,7 +73,15 @@ public abstract class Display {
* PointerIcons can be used via {@link Window#setPointerIcon(PointerIcon)}.
* </p>
*/
- public static interface PointerIcon { }
+ public static interface PointerIcon {
+ /** Returns the size, i.e. width and height. */
+ DimensionImmutable getSize();
+ /** Returns the hotspot. */
+ PointImmutable getHotspot();
+
+ @Override
+ String toString();
+ }
/**
* Returns the created {@link PointerIcon} or <code>null</code> if not implemented on platform.
diff --git a/src/newt/classes/jogamp/newt/DisplayImpl.java b/src/newt/classes/jogamp/newt/DisplayImpl.java
index 4e9b8b441..dc3705daa 100644
--- a/src/newt/classes/jogamp/newt/DisplayImpl.java
+++ b/src/newt/classes/jogamp/newt/DisplayImpl.java
@@ -51,6 +51,8 @@ import java.util.ArrayList;
import javax.media.nativewindow.AbstractGraphicsDevice;
import javax.media.nativewindow.NativeWindowException;
import javax.media.nativewindow.NativeWindowFactory;
+import javax.media.nativewindow.util.DimensionImmutable;
+import javax.media.nativewindow.util.PointImmutable;
public abstract class DisplayImpl extends Display {
private static int serialno = 1;
@@ -68,8 +70,24 @@ public abstract class DisplayImpl extends Display {
public static class PointerIconImpl implements PointerIcon {
public final long handle;
- public PointerIconImpl(long handle) {
+ private final DimensionImmutable size;
+ private final PointImmutable hotspot;
+ public PointerIconImpl(final long handle, final DimensionImmutable size, final PointImmutable hotspot) {
this.handle=handle;
+ this.size = size;
+ this.hotspot = hotspot;
+ }
+ @Override
+ public final DimensionImmutable getSize() {
+ return size;
+ }
+ @Override
+ public final PointImmutable getHotspot() {
+ return hotspot;
+ }
+ @Override
+ public final String toString() {
+ return "PointerIcon[0x"+Long.toHexString(handle)+", "+size+", "+hotspot+"]";
}
}
diff --git a/src/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java b/src/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java
index 86c8464a8..b932efde6 100644
--- a/src/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java
+++ b/src/newt/classes/jogamp/newt/driver/macosx/DisplayDriver.java
@@ -41,6 +41,8 @@ import java.nio.ByteBuffer;
import javax.media.nativewindow.AbstractGraphicsDevice;
import javax.media.nativewindow.NativeWindowException;
+import javax.media.nativewindow.util.Dimension;
+import javax.media.nativewindow.util.Point;
import com.jogamp.common.util.IOUtil;
import com.jogamp.nativewindow.macosx.MacOSXGraphicsDevice;
@@ -115,7 +117,8 @@ public class DisplayDriver extends DisplayImpl {
final int[] width = { 0 }, height = { 0 }, data_size = { 0 }, elem_bytesize = { 0 };
if( null != pngResource && 0 < pngResource.resourceCount() ) {
final ByteBuffer data = PNGIcon.singleToRGBAImage(pngResource, 0, true /* toBGRA */, width, height, data_size, elem_bytesize);
- return new PointerIconImpl( createPointerIcon0(data, width[0], height[0], hotX, hotY) );
+ return new PointerIconImpl( createPointerIcon0(data, width[0], height[0], hotX, hotY),
+ new Dimension(width[0], height[0]), new Point(hotX, hotY));
}
}
return null;
diff --git a/src/newt/classes/jogamp/newt/driver/windows/DisplayDriver.java b/src/newt/classes/jogamp/newt/driver/windows/DisplayDriver.java
index 8d4d8972b..72a93ce2e 100644
--- a/src/newt/classes/jogamp/newt/driver/windows/DisplayDriver.java
+++ b/src/newt/classes/jogamp/newt/driver/windows/DisplayDriver.java
@@ -47,6 +47,8 @@ import jogamp.newt.driver.PNGIcon;
import javax.media.nativewindow.AbstractGraphicsDevice;
import javax.media.nativewindow.NativeWindowException;
+import javax.media.nativewindow.util.Dimension;
+import javax.media.nativewindow.util.Point;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.util.IOUtil;
@@ -107,7 +109,8 @@ public class DisplayDriver extends DisplayImpl {
final int[] width = { 0 }, height = { 0 }, data_size = { 0 }, elem_bytesize = { 0 };
if( null != pngResource && 0 < pngResource.resourceCount() ) {
final ByteBuffer data = PNGIcon.singleToRGBAImage(pngResource, 0, true /* toBGRA */, width, height, data_size, elem_bytesize);
- return new PointerIconImpl( createBGRA8888Icon0(data, width[0], height[0], true, hotX, hotY) );
+ return new PointerIconImpl( createBGRA8888Icon0(data, width[0], height[0], true, hotX, hotY),
+ new Dimension(width[0], height[0]), new Point(hotX, hotY));
}
}
return null;
diff --git a/src/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java b/src/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java
index 8170c2e3d..85b31a77c 100644
--- a/src/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java
+++ b/src/newt/classes/jogamp/newt/driver/x11/DisplayDriver.java
@@ -41,6 +41,8 @@ import java.nio.ByteBuffer;
import javax.media.nativewindow.AbstractGraphicsDevice;
import javax.media.nativewindow.NativeWindowException;
+import javax.media.nativewindow.util.Dimension;
+import javax.media.nativewindow.util.Point;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.util.IOUtil;
@@ -146,7 +148,7 @@ public class DisplayDriver extends DisplayImpl {
return Long.valueOf(h);
}
}).longValue();
- return new PointerIconImpl(handle);
+ return new PointerIconImpl(handle, new Dimension(width[0], height[0]), new Point(hotX, hotY));
}
}
return null;