@Override protected void dispatchMessagesNative() { DispatchMessages0(); }
@Override protected final void destroyPointerIconImpl(final long displayHandle, final long piHandle) { DestroyPointerIcon0(piHandle); }
@Override protected void requestFocusImpl(final boolean reparented) { focusChanged(false, true); }
@Override protected final void doMouseEvent(final boolean enqueue, final boolean wait, final short eventType, final int modifiers, final int x, final int y, final short button, final float[] rotationXYZ, final float rotationScale) { if( MouseEvent.EVENT_MOUSE_MOVED == eventType || MouseEvent.EVENT_MOUSE_DRAGGED == eventType ) { final DisplayDriver display = (DisplayDriver) getScreen().getDisplay(); display.moveActivePointerIcon(getX() + x, getY() + y); } super.doMouseEvent(enqueue, wait, eventType, modifiers, x, y, button, rotationXYZ, rotationScale); }
@Override protected boolean setPointerVisibleImpl(final boolean pointerVisible) { final DisplayDriver display = (DisplayDriver) getScreen().getDisplay(); display.setActivePointerIconVisible(pointerVisible, mouseTracker.getLastX(), mouseTracker.getLastY()); return true; }
/* pp */ void moveActivePointerIcon(final int x, final int y) { synchronized(pointerIconSync) { if( DEBUG_POINTER_ICON ) { System.err.println("Display.PointerIcon.move: active ["+toHexString(activePointerIcon)+", visible "+activePointerIconVisible+"], "+x+"/"+y); } if( 0 != activePointerIcon && activePointerIconVisible ) { MovePointerIcon0(activePointerIcon, x, y); } } }
@Override protected final void doMouseEvent(final boolean enqueue, final boolean wait, final short eventType, final int modifiers, final int x, final int y, final short button, final float[] rotationXYZ, final float rotationScale) { if( MouseEvent.EVENT_MOUSE_MOVED == eventType ) { final DisplayDriver display = (DisplayDriver) getScreen().getDisplay(); display.moveActivePointerIcon(x, y); } super.doMouseEvent(enqueue, wait, eventType, modifiers, x, y, button, rotationXYZ, rotationScale); }
@Override protected final long createPointerIconImpl(final PixelFormat pixelformat, final int width, final int height, final ByteBuffer pixels, final int hotX, final int hotY) { return CreatePointerIcon(bcmHandle, pixels, width, height, hotX, hotY); }
private static long CreatePointerIcon(final long bcmHandle, final Buffer pixels, final int width, final int height, final int hotX, final int hotY) { final boolean pixels_is_direct = Buffers.isDirect(pixels); return CreatePointerIcon0(pixels_is_direct ? pixels : Buffers.getArray(pixels), pixels_is_direct ? Buffers.getDirectBufferByteOffset(pixels) : Buffers.getIndirectBufferByteOffset(pixels), pixels_is_direct, width, height, hotX, hotY); } private static native long CreatePointerIcon0(Object pixels, int pixels_byte_offset, boolean pixels_is_direct, int width, int height, int hotX, int hotY);
@Override protected void closeNativeImpl(final AbstractGraphicsDevice aDevice) { aDevice.close(); CloseBCMDisplay0(bcmHandle); bcmHandle = 0; }
@Override protected boolean reconfigureWindowImpl(final int x, final int y, final int width, final int height, final int flags) { reconfigure0(nativeWindowHandle, x, y, width, height, flags); return true; }
@Override protected boolean setPointerVisibleImpl(final boolean pointerVisible) { final DisplayDriver display = (DisplayDriver) getScreen().getDisplay(); display.setActivePointerIconVisible(pointerVisible, linuxMouseTracker.getLastX(), linuxMouseTracker.getLastY()); return true; }
/* pp */ void moveActivePointerIcon(final int x, final int y) { synchronized(pointerIconSync) { if( DEBUG_POINTER_ICON ) { System.err.println("Display.PointerIcon.move: active ["+toHexString(activePointerIcon)+", visible "+activePointerIconVisible+"], "+x+"/"+y); } if( 0 != activePointerIcon && activePointerIconVisible ) { MovePointerIcon0(activePointerIcon, x, y); } } }
@Override protected void dispatchMessagesNative() { DispatchMessages0(); }
@Override protected final void destroyPointerIconImpl(final long displayHandle, final long piHandle) { DestroyPointerIcon0(piHandle); }
@Override protected void requestFocusImpl(final boolean reparented) { focusChanged(false, true); }
@Override protected final long createPointerIconImpl(final PixelFormat pixelformat, final int width, final int height, final ByteBuffer pixels, final int hotX, final int hotY) { return CreatePointerIcon(bcmHandle, pixels, width, height, hotX, hotY); }
private static long CreatePointerIcon(final long bcmHandle, final Buffer pixels, final int width, final int height, final int hotX, final int hotY) { final boolean pixels_is_direct = Buffers.isDirect(pixels); return CreatePointerIcon0(pixels_is_direct ? pixels : Buffers.getArray(pixels), pixels_is_direct ? Buffers.getDirectBufferByteOffset(pixels) : Buffers.getIndirectBufferByteOffset(pixels), pixels_is_direct, width, height, hotX, hotY); } private static native long CreatePointerIcon0(Object pixels, int pixels_byte_offset, boolean pixels_is_direct, int width, int height, int hotX, int hotY);
@Override protected void closeNativeImpl(final AbstractGraphicsDevice aDevice) { aDevice.close(); CloseBCMDisplay0(bcmHandle); bcmHandle = 0; }