private void onKeyEventQueued(KeyInputEvent evt, NiftyInputConsumer nic) { int code = evt.getKeyCode(); if (code == KeyInput.KEY_LSHIFT || code == KeyInput.KEY_RSHIFT) { shiftDown = evt.isPressed(); } else if (code == KeyInput.KEY_LCONTROL || code == KeyInput.KEY_RCONTROL) { ctrlDown = evt.isPressed(); } KeyboardInputEvent keyEvt = new KeyboardInputEvent(code, evt.getKeyChar(), evt.isPressed(), shiftDown, ctrlDown); if (nic.processKeyboardEvent(keyEvt)) { evt.setConsumed(); } }
/** * create the event. * * @param newKey key * @param newCharacter character * @param newKeyDown keyDown * @param newShiftDown shiftDown * @param newControlDown controlDown */ public KeyboardInputEvent( final int newKey, final char newCharacter, final boolean newKeyDown, final boolean newShiftDown, final boolean newControlDown) { setData(newKey, newCharacter, newKeyDown, newShiftDown, newControlDown); }
@Nullable @Override public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { if (inputEvent.getKey() == KeyboardInputEvent.KEY_LEFT) { return NiftyStandardInputEvent.MoveCursorLeft; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RIGHT) { return NiftyStandardInputEvent.MoveCursorRight; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RETURN) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_SPACE) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_TAB) { if (inputEvent.isShiftDown()) { return NiftyStandardInputEvent.PrevInputElement; } else { return NiftyStandardInputEvent.NextInputElement; } } } return null; } }
@Override @Nullable public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { if (inputEvent.getKey() == KeyboardInputEvent.KEY_ESCAPE) { return NiftyStandardInputEvent.Escape; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_LEFT) { return NiftyStandardInputEvent.MoveCursorLeft; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RIGHT) { return NiftyStandardInputEvent.MoveCursorRight; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_UP) { return NiftyStandardInputEvent.MoveCursorUp; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_DOWN) { return NiftyStandardInputEvent.MoveCursorDown; } } return null; } }
/** * Translate a keyboard key released event into the assigned {@link NiftyStandardInputEvent}. * * @param inputEvent the keyboard input event that triggered the call of this function * @return the assigned {@link NiftyStandardInputEvent} or {@code null} in case no event is assigned */ @Nullable private static NiftyStandardInputEvent handleKeyUpEvent(@Nonnull final KeyboardInputEvent inputEvent) { switch (inputEvent.getKey()) { case KeyboardInputEvent.KEY_LSHIFT: case KeyboardInputEvent.KEY_RSHIFT: return NiftyStandardInputEvent.SelectionEnd; case KeyboardInputEvent.KEY_ESCAPE: return NiftyStandardInputEvent.Escape; default: return null; } } }
/** * Convert a keyboard input event to a {@link NiftyStandardInputEvent}. * * @param inputEvent the keyboard input event that needs to be converted * @return the {@link NiftyStandardInputEvent} that is assigned to the keyboard event or {@code null} in case no * event is * assigned */ @Nullable @Override public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { return handleKeyDownEvent(inputEvent); } else { return handleKeyUpEvent(inputEvent); } }
@Nullable @Override public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { if (inputEvent.getKey() == KeyboardInputEvent.KEY_DOWN) { return NiftyStandardInputEvent.MoveCursorDown; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_UP) { return NiftyStandardInputEvent.MoveCursorUp; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RETURN) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_SPACE) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_TAB) { if (inputEvent.isShiftDown()) { return NiftyStandardInputEvent.PrevInputElement; } else { return NiftyStandardInputEvent.NextInputElement; } } } return null; } }
@Nonnull private KeyboardInputEvent convert(@Nonnull final KeyEvent e, final boolean isKeyDown, final int keyCode) { return new KeyboardInputEvent(keyCode, e.getKeyChar(), isKeyDown, e.isShiftDown(), e.isControlDown()); }
/** * Set the data of this input event. * * @param key the key that was pressed * @param character the character of the key * @param keyDown {@code true} in case the key was pressed down * @param keyTyped {@code true} in case the key was typed * @param shiftDown {@code true} in case the shift key is down * @param controlDown {@code true} in case the control key is down */ private void setData( final int key, final char character, final boolean keyDown, final boolean keyTyped, final boolean shiftDown, final boolean controlDown) { super.setData(getNiftyKeyCode(key), character, keyDown, shiftDown, controlDown); typed = keyTyped; gdxKey = key; }
/** * Translate a keyboard key released event into the assigned {@link NiftyStandardInputEvent}. * * @param inputEvent the keyboard input event that triggered the call of this function * @return the assigned {@link NiftyStandardInputEvent} or {@code null} in case no event is assigned */ @Nullable private static NiftyStandardInputEvent handleKeyUpEvent(@Nonnull final KeyboardInputEvent inputEvent) { switch (inputEvent.getKey()) { case KeyboardInputEvent.KEY_LSHIFT: case KeyboardInputEvent.KEY_RSHIFT: return NiftyStandardInputEvent.SelectionEnd; case KeyboardInputEvent.KEY_ESCAPE: return NiftyStandardInputEvent.Escape; default: return null; } } }
/** * Convert a keyboard input event to a {@link NiftyStandardInputEvent}. * * @param inputEvent the keyboard input event that needs to be converted * @return the {@link NiftyStandardInputEvent} that is assigned to the keyboard event or {@code null} in case no * event is * assigned */ @Nullable @Override public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { return handleKeyDownEvent(inputEvent); } else { return handleKeyUpEvent(inputEvent); } }
@Nullable @Override public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { if (inputEvent.getKey() == KeyboardInputEvent.KEY_DOWN) { return NiftyStandardInputEvent.MoveCursorDown; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_UP) { return NiftyStandardInputEvent.MoveCursorUp; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RETURN) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_SPACE) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_TAB) { if (inputEvent.isShiftDown()) { return NiftyStandardInputEvent.PrevInputElement; } else { return NiftyStandardInputEvent.NextInputElement; } } } return null; } }
@Nonnull private KeyboardInputEvent createKeyEvent(final int key, final int scancode, final int action, final int mods) { final boolean keyDown = action == GLFW_PRESS || action == GLFW_REPEAT; final boolean shiftDown = (mods & GLFW_MOD_SHIFT) != 0; final boolean ctrlDown = (mods & GLFW_MOD_CONTROL) != 0; final int niftyKeyCode = GlfwToNiftyKeyCodeConverter.convertToNiftyKeyCode(key); final String keyName = glfwGetKeyName (key, scancode); final char keyChar = (keyName != null && keyName.length() == 1) ? keyName.charAt(0) : Character.MIN_VALUE; return new KeyboardInputEvent(niftyKeyCode, keyChar, keyDown, shiftDown, ctrlDown); }
/** * Set the data of this input event. * * @param key the key that was pressed * @param character the character of the key * @param keyDown {@code true} in case the key was pressed down * @param keyTyped {@code true} in case the key was typed * @param shiftDown {@code true} in case the shift key is down * @param controlDown {@code true} in case the control key is down */ private void setData( final int key, final char character, final boolean keyDown, final boolean keyTyped, final boolean shiftDown, final boolean controlDown) { super.setData(getNiftyKeyCode(key), character, keyDown, shiftDown, controlDown); typed = keyTyped; gdxKey = key; }
@Nullable @Override public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { if (inputEvent.getKey() == KeyboardInputEvent.KEY_LEFT) { return NiftyStandardInputEvent.MoveCursorLeft; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RIGHT) { return NiftyStandardInputEvent.MoveCursorRight; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RETURN) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_SPACE) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_TAB) { if (inputEvent.isShiftDown()) { return NiftyStandardInputEvent.PrevInputElement; } else { return NiftyStandardInputEvent.NextInputElement; } } } return null; } }
private void handleKeyEvent(@Nonnull KeyEvent e, boolean isKeyDown) { int newKeyCode = keyCodeConverter.convertToNiftyKeyCode(e.getKeyCode(), e.getKeyLocation()); keyboardEvents.add(new KeyboardInputEvent(newKeyCode, e .getKeyChar(), isKeyDown, e.isShiftDown(), e.isControlDown())); }
/** * convert the given KeyboardInputEvent into a neutralized NiftyInputEvent. * * @param inputEvent input event * @return NiftInputEvent */ @Override @Nullable public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { if (inputEvent.getKey() == KeyboardInputEvent.KEY_F1) { return NiftyStandardInputEvent.ConsoleToggle; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RETURN) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_SPACE) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_TAB) { if (inputEvent.isShiftDown()) { return NiftyStandardInputEvent.PrevInputElement; } else { return NiftyStandardInputEvent.NextInputElement; } } } return null; } }
private void handleKeyEvent(@Nonnull KeyEvent e, boolean isKeyDown) { int newKeyCode = keyCodeConverter.convertToNiftyKeyCode(e.getKeyCode(), e.getKeyLocation()); keyboardEvents.add(new KeyboardInputEvent(newKeyCode, e .getKeyChar(), isKeyDown, e.isShiftDown(), e.isControlDown())); }
@Override @Nullable public NiftyStandardInputEvent convert(@Nonnull final KeyboardInputEvent inputEvent) { if (inputEvent.isKeyDown()) { if (inputEvent.getKey() == KeyboardInputEvent.KEY_F1) { return NiftyStandardInputEvent.ConsoleToggle; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_RETURN) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_SPACE) { return NiftyStandardInputEvent.Activate; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_TAB) { if (inputEvent.isShiftDown()) { return NiftyStandardInputEvent.PrevInputElement; } else { return NiftyStandardInputEvent.NextInputElement; } } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_UP) { return NiftyStandardInputEvent.MoveCursorUp; } else if (inputEvent.getKey() == KeyboardInputEvent.KEY_DOWN) { return NiftyStandardInputEvent.MoveCursorDown; } } return null; } }
/** * create KeyboardInputEvent. * * @param key key * @param character character * @param keyDown keyDown * @return event */ @Nonnull public KeyboardInputEvent createEvent(final int key, final char character, final boolean keyDown) { if (isShiftDown(key, keyDown)) { shiftDown = true; } else if (isShiftUp(key, keyDown)) { shiftDown = false; } else if (isControlDown(key, keyDown)) { controlDown = true; } else if (isControlUp(key, keyDown)) { controlDown = false; } // because Nifty uses the same keyboard encoding like lwjgl does, we can directly forward // the keyboard event to Nifty without the need for conversion return new KeyboardInputEvent(key, character, keyDown, shiftDown, controlDown); }