private void handleKeys(Glfw.Window window, Glfw.KeyCode key, int scan, Glfw.KeyAction action, Glfw.KeyMods mods) { if (key == Glfw.KeyCode.Left) { InputEvent(new InputEvent { FootSwitchEvent = new FootSwitchEvent { FootSwitch = FootSwitch.Left, Action = (FootSwitchAction)(int)action // conveniently, the enum values line up. } }); } else if (key == Glfw.KeyCode.Right) { InputEvent(new InputEvent { FootSwitchEvent = new FootSwitchEvent { FootSwitch = FootSwitch.Right, Action = (FootSwitchAction)(int)action // conveniently, the enum values line up. } }); } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.Space: { Glfw.GetWindowPos(window, out int xpos, out int ypos); Glfw.SetWindowPos(window, xpos, ypos); break; } case Glfw.KeyCode.Escape: { Glfw.SetWindowShouldClose(window, true); break; } default: break; } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.Escape: { Glfw.SetWindowShouldClose(window, true); break; } case Glfw.KeyCode.Space: { m_CurIconColor = (m_CurIconColor + 1) % 5; SetIcon(window, m_CurIconColor); break; } case Glfw.KeyCode.X: { Glfw.SetWindowIcon(window, null); break; } default: break; } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state == Glfw.InputState.Press && key == Glfw.KeyCode.Escape) { Glfw.SetWindowShouldClose(window, true); } }
internal InputState(Glfw.KeyCode key) { KeyboardKey = key; MouseButton = null; IsDown = false; WasPressed = false; WasReleased = false; HoldTime = 0; WasPreviouslyDown = false; }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.Space: Glfw.SetTime(0.0); break; } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.Q: case Glfw.KeyCode.Escape: Glfw.SetWindowShouldClose(window, true); break; } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.Escape: { Glfw.SetWindowShouldClose(window, true); break; } case Glfw.KeyCode.V: { if (mods == Glfw.KeyMods.Control) { string str = Glfw.GetClipboardString(window); if (!string.IsNullOrEmpty(str)) { Log("Clipboard contains \"{0}\"", str); } else { Log("Clipboard does not contain a string"); } } break; } case Glfw.KeyCode.C: { if (mods == Glfw.KeyMods.Control) { const string str = "Hello GLFW World!"; Glfw.SetClipboardString(window, str); Log("Setting clipboard to \"{0}\"", str); } break; } default: break; } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.Up: { if (swapInterval + 1 > swapInterval) { SetSwapInterval(window, swapInterval + 1); } break; } case Glfw.KeyCode.Down: { if (swapTear) { if (swapInterval - 1 < swapInterval) { SetSwapInterval(window, swapInterval - 1); } } else { if (swapInterval - 1 >= 0) { SetSwapInterval(window, swapInterval - 1); } } break; } case Glfw.KeyCode.Escape: { Glfw.SetWindowShouldClose(window, true); break; } default: break; } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { var slot = m_Slots[window]; string name = Glfw.GetKeyName(key, scancode); if (!string.IsNullOrEmpty(name)) { Log("{0} to {1} at {2}: Key 0x{3} Scancode 0x{4} ({5}) ({6}) ({7}) was {8}", m_Counter++, slot.Number, Glfw.GetTime(), (int)key, scancode, GetKeyName(key), name, GetModsName(mods), GetActioName(state)); } else { Log("{0} to {1} at {2}: Key 0x{3} Scancode 0x{4} ({5}) ({6}) was {7}", m_Counter++, slot.Number, Glfw.GetTime(), (int)key, scancode, GetKeyName(key), GetModsName(mods), GetActioName(state)); } if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.C: { slot.Closeable = !slot.Closeable; Log("(( closing {0} ))", slot.Closeable ? "enabled" : "disabled"); break; } default: break; } }
/// <summary> /// The callback method for the keyboard, will set the key from a keycode and a state /// </summary> /// <param name="window"></param> /// <param name="key"></param> /// <param name="scancode"></param> /// <param name="state"></param> /// <param name="mods"></param> private void KeyboardCallBack(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { int keyCode = (int)key; switch (state) { case Glfw.InputState.Repeat: Input.SetKey(keyCode, Input.InputAction.Repeated); break; case Glfw.InputState.Press: Input.SetKey(keyCode, Input.InputAction.Pressed); break; case Glfw.InputState.Release: Input.SetKey(keyCode, Input.InputAction.Released); break; } Debug.Log("Input Keyboard " + key, Debug.DebugLayer.Input, Debug.DebugLevel.Information); }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.Escape: { Glfw.SetWindowShouldClose(window, true); break; } case Glfw.KeyCode.NumpadAdd: case Glfw.KeyCode.Up: case Glfw.KeyCode.Q: { SetGamma(window, m_GammaValue + kStepSize); break; } case Glfw.KeyCode.NumpadSubtract: case Glfw.KeyCode.Down: case Glfw.KeyCode.W: { if (m_GammaValue - kStepSize > 0f) { SetGamma(window, m_GammaValue - kStepSize); } break; } default: break; } }
private static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { var engineWindow = dictionary[window]; if (state == Glfw.InputState.Press || state == Glfw.InputState.Repeat) { engineWindow.KeyPressed?.Invoke(engineWindow, new KeyEventArgs() { Key = key, ScanCode = scancode, Modifiers = mods }); } else if (state == Glfw.InputState.Release) { engineWindow.KeyReleased?.Invoke(engineWindow, new KeyEventArgs() { Key = key, ScanCode = scancode, Modifiers = mods }); } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { Log("{0} Key %s", Glfw.GetTime(), state == Glfw.InputState.Press ? "pressed" : "released"); if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.I: Glfw.IconifyWindow(window); break; case Glfw.KeyCode.M: Glfw.MaximizeWindow(window); break; case Glfw.KeyCode.R: Glfw.RestoreWindow(window); break; case Glfw.KeyCode.Escape: Glfw.SetWindowShouldClose(window, true); break; case Glfw.KeyCode.F11: case Glfw.KeyCode.Enter: { if (mods != Glfw.KeyMods.Alt) { return; } if (Glfw.GetWindowMonitor(window)) { Glfw.SetWindowMonitor(window, Glfw.Monitor.None, m_WindowedXPos, m_WindowedYPos, m_WindowedWidth, m_WindowedHeight, 0); } else { var monitor = Glfw.GetPrimaryMonitor(); if (monitor) { var mode = Glfw.GetVideoMode(monitor); Glfw.GetWindowPos(window, out m_WindowedXPos, out m_WindowedYPos); Glfw.GetWindowSize(window, out m_WindowedWidth, out m_WindowedHeight); Glfw.SetWindowMonitor(window, monitor, 0, 0, mode.Width, mode.Height, mode.RefreshRate); } } break; } } }
static void KeyCallback(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState state, Glfw.KeyMods mods) { if (state != Glfw.InputState.Press) { return; } switch (key) { case Glfw.KeyCode.A: { animateCursor = !animateCursor; if (!animateCursor) { Glfw.SetCursor(window, Glfw.Cursor.None); } break; } case Glfw.KeyCode.Escape: { Glfw.SetWindowShouldClose(window, true); break; } case Glfw.KeyCode.N: { Glfw.SetInputMode(window, Glfw.InputMode.Cursor, Glfw.CursorMode.Normal); Log("(( cursor is normal ))"); break; } case Glfw.KeyCode.D: { Glfw.SetInputMode(window, Glfw.InputMode.Cursor, Glfw.CursorMode.Disabled); Log("(( cursor is disabled ))"); break; } case Glfw.KeyCode.H: { Glfw.SetInputMode(window, Glfw.InputMode.Cursor, Glfw.CursorMode.Hidden); Log("(( cursor is hidden ))"); break; } case Glfw.KeyCode.Space: { swapInterval = 1 - swapInterval; Log("(( swap interval: {0} ))", swapInterval); Glfw.SwapInterval(swapInterval); break; } case Glfw.KeyCode.W: { waitEvents = !waitEvents; Log("(( {0}ing for events ))", waitEvents ? "wait" : "poll"); break; } case Glfw.KeyCode.T: { trackCursor = !trackCursor; break; } case Glfw.KeyCode.Alpha0: { Glfw.SetCursor(window, Glfw.Cursor.None); break; } case Glfw.KeyCode.Alpha1: { Glfw.SetCursor(window, standardCursors[0]); break; } case Glfw.KeyCode.Alpha2: { Glfw.SetCursor(window, standardCursors[1]); break; } case Glfw.KeyCode.Alpha3: { Glfw.SetCursor(window, standardCursors[2]); break; } case Glfw.KeyCode.Alpha4: { Glfw.SetCursor(window, standardCursors[3]); break; } case Glfw.KeyCode.Alpha5: { Glfw.SetCursor(window, standardCursors[4]); break; } case Glfw.KeyCode.Alpha6: { Glfw.SetCursor(window, standardCursors[5]); break; } default: break; } }
static string GetKeyName(Glfw.KeyCode key) { switch (key) { // Printable keys case Glfw.KeyCode.A: return("A"); case Glfw.KeyCode.B: return("B"); case Glfw.KeyCode.C: return("C"); case Glfw.KeyCode.D: return("D"); case Glfw.KeyCode.E: return("E"); case Glfw.KeyCode.F: return("F"); case Glfw.KeyCode.G: return("G"); case Glfw.KeyCode.H: return("H"); case Glfw.KeyCode.I: return("I"); case Glfw.KeyCode.J: return("J"); case Glfw.KeyCode.K: return("K"); case Glfw.KeyCode.L: return("L"); case Glfw.KeyCode.M: return("M"); case Glfw.KeyCode.N: return("N"); case Glfw.KeyCode.O: return("O"); case Glfw.KeyCode.P: return("P"); case Glfw.KeyCode.Q: return("Q"); case Glfw.KeyCode.R: return("R"); case Glfw.KeyCode.S: return("S"); case Glfw.KeyCode.T: return("T"); case Glfw.KeyCode.U: return("U"); case Glfw.KeyCode.V: return("V"); case Glfw.KeyCode.W: return("W"); case Glfw.KeyCode.X: return("X"); case Glfw.KeyCode.Y: return("Y"); case Glfw.KeyCode.Z: return("Z"); case Glfw.KeyCode.Alpha1: return("1"); case Glfw.KeyCode.Alpha2: return("2"); case Glfw.KeyCode.Alpha3: return("3"); case Glfw.KeyCode.Alpha4: return("4"); case Glfw.KeyCode.Alpha5: return("5"); case Glfw.KeyCode.Alpha6: return("6"); case Glfw.KeyCode.Alpha7: return("7"); case Glfw.KeyCode.Alpha8: return("8"); case Glfw.KeyCode.Alpha9: return("9"); case Glfw.KeyCode.Alpha0: return("0"); case Glfw.KeyCode.Space: return("SPACE"); case Glfw.KeyCode.Minus: return("MINUS"); case Glfw.KeyCode.Equal: return("EQUAL"); case Glfw.KeyCode.LeftBracket: return("LEFT BRACKET"); case Glfw.KeyCode.RightBracket: return("RIGHT BRACKET"); case Glfw.KeyCode.Backslash: return("BACKSLASH"); case Glfw.KeyCode.SemiColon: return("SEMICOLON"); case Glfw.KeyCode.Apostrophe: return("APOSTROPHE"); case Glfw.KeyCode.GraveAccent: return("GRAVE ACCENT"); case Glfw.KeyCode.Comma: return("COMMA"); case Glfw.KeyCode.Period: return("PERIOD"); case Glfw.KeyCode.Slash: return("SLASH"); case Glfw.KeyCode.World1: return("WORLD 1"); case Glfw.KeyCode.World2: return("WORLD 2"); // Function keys case Glfw.KeyCode.Escape: return("ESCAPE"); case Glfw.KeyCode.F1: return("F1"); case Glfw.KeyCode.F2: return("F2"); case Glfw.KeyCode.F3: return("F3"); case Glfw.KeyCode.F4: return("F4"); case Glfw.KeyCode.F5: return("F5"); case Glfw.KeyCode.F6: return("F6"); case Glfw.KeyCode.F7: return("F7"); case Glfw.KeyCode.F8: return("F8"); case Glfw.KeyCode.F9: return("F9"); case Glfw.KeyCode.F10: return("F10"); case Glfw.KeyCode.F11: return("F11"); case Glfw.KeyCode.F12: return("F12"); case Glfw.KeyCode.F13: return("F13"); case Glfw.KeyCode.F14: return("F14"); case Glfw.KeyCode.F15: return("F15"); case Glfw.KeyCode.F16: return("F16"); case Glfw.KeyCode.F17: return("F17"); case Glfw.KeyCode.F18: return("F18"); case Glfw.KeyCode.F19: return("F19"); case Glfw.KeyCode.F20: return("F20"); case Glfw.KeyCode.F21: return("F21"); case Glfw.KeyCode.F22: return("F22"); case Glfw.KeyCode.F23: return("F23"); case Glfw.KeyCode.F24: return("F24"); case Glfw.KeyCode.F25: return("F25"); case Glfw.KeyCode.Up: return("UP"); case Glfw.KeyCode.Down: return("DOWN"); case Glfw.KeyCode.Left: return("LEFT"); case Glfw.KeyCode.Right: return("RIGHT"); case Glfw.KeyCode.LeftShift: return("LEFT SHIFT"); case Glfw.KeyCode.RightShift: return("RIGHT SHIFT"); case Glfw.KeyCode.LeftControl: return("LEFT CONTROL"); case Glfw.KeyCode.RightControl: return("RIGHT CONTROL"); case Glfw.KeyCode.LeftAlt: return("LEFT ALT"); case Glfw.KeyCode.RightAlt: return("RIGHT ALT"); case Glfw.KeyCode.Tab: return("TAB"); case Glfw.KeyCode.Enter: return("ENTER"); case Glfw.KeyCode.Backspace: return("BACKSPACE"); case Glfw.KeyCode.Insert: return("INSERT"); case Glfw.KeyCode.Delete: return("DELETE"); case Glfw.KeyCode.PageUp: return("PAGE UP"); case Glfw.KeyCode.PageDown: return("PAGE DOWN"); case Glfw.KeyCode.Home: return("HOME"); case Glfw.KeyCode.End: return("END"); case Glfw.KeyCode.Numpad0: return("KEYPAD 0"); case Glfw.KeyCode.Numpad1: return("KEYPAD 1"); case Glfw.KeyCode.Numpad2: return("KEYPAD 2"); case Glfw.KeyCode.Numpad3: return("KEYPAD 3"); case Glfw.KeyCode.Numpad4: return("KEYPAD 4"); case Glfw.KeyCode.Numpad5: return("KEYPAD 5"); case Glfw.KeyCode.Numpad6: return("KEYPAD 6"); case Glfw.KeyCode.Numpad7: return("KEYPAD 7"); case Glfw.KeyCode.Numpad8: return("KEYPAD 8"); case Glfw.KeyCode.Numpad9: return("KEYPAD 9"); case Glfw.KeyCode.NumpadDivide: return("KEYPAD DIVIDE"); case Glfw.KeyCode.NumpadMultiply: return("KEYPAD MULTPLY"); case Glfw.KeyCode.NumpadSubtract: return("KEYPAD SUBTRACT"); case Glfw.KeyCode.NumpadAdd: return("KEYPAD ADD"); case Glfw.KeyCode.NumpadDecimal: return("KEYPAD DECIMAL"); case Glfw.KeyCode.NumpadEqual: return("KEYPAD EQUAL"); case Glfw.KeyCode.NumpadEnter: return("KEYPAD ENTER"); case Glfw.KeyCode.PrintScreen: return("PRINT SCREEN"); case Glfw.KeyCode.NumLock: return("NUM LOCK"); case Glfw.KeyCode.CapsLock: return("CAPS LOCK"); case Glfw.KeyCode.ScrollLock: return("SCROLL LOCK"); case Glfw.KeyCode.Pause: return("PAUSE"); case Glfw.KeyCode.LeftSuper: return("LEFT SUPER"); case Glfw.KeyCode.RightSuper: return("RIGHT SUPER"); case Glfw.KeyCode.Menu: return("MENU"); default: return("UNKNOWN"); } }
static NkKeys ConvertToNkKey(Glfw.KeyCode KCode, Glfw.KeyMods Mods) { switch (KCode) { case Glfw.KeyCode.RightShift: case Glfw.KeyCode.LeftShift: return(NkKeys.Shift); case Glfw.KeyCode.LeftControl: case Glfw.KeyCode.RightControl: return(NkKeys.Ctrl); case Glfw.KeyCode.Delete: return(NkKeys.Del); case Glfw.KeyCode.Enter: case Glfw.KeyCode.NumpadEnter: return(NkKeys.Enter); case Glfw.KeyCode.Tab: return(NkKeys.Tab); case Glfw.KeyCode.Backspace: return(NkKeys.Backspace); case Glfw.KeyCode.Up: return(NkKeys.Up); case Glfw.KeyCode.Down: return(NkKeys.Down); case Glfw.KeyCode.Left: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.TextWordLeft); } return(NkKeys.Left); case Glfw.KeyCode.Right: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.TextWordRight); } return(NkKeys.Right); case Glfw.KeyCode.Home: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.TextStart); } return(NkKeys.LineStart); case Glfw.KeyCode.End: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.TextEnd); } return(NkKeys.LineEnd); case Glfw.KeyCode.PageUp: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.ScrollStart); } return(NkKeys.ScrollUp); case Glfw.KeyCode.PageDown: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.ScrollEnd); } return(NkKeys.ScrollDown); case Glfw.KeyCode.A: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.TextSelectAll); } return(NkKeys.None); case Glfw.KeyCode.Z: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.TextUndo); } return(NkKeys.None); case Glfw.KeyCode.Y: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.TextRedo); } return(NkKeys.None); case Glfw.KeyCode.C: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.Copy); } return(NkKeys.None); case Glfw.KeyCode.V: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.Paste); } return(NkKeys.None); case Glfw.KeyCode.X: if (Mods == Glfw.KeyMods.Control) { return(NkKeys.Cut); } return(NkKeys.None); default: return(NkKeys.None); } }
private void KeyInput(Glfw.Window window, Glfw.KeyCode key, int scancode, Glfw.InputState action, Glfw.KeyMods mods) { UpdateKeyStatus((Key)key, action == Glfw.InputState.Press || action == Glfw.InputState.Repeat); }
public static bool GetKey(Glfw.KeyCode Key) { return(Glfw.GetKey(Window, (int)Key)); }