feat: add utility to go from VK to ImGui
This commit is contained in:
parent
8576208ace
commit
565e5ecd08
|
@ -1,5 +1,6 @@
|
|||
using System.Numerics;
|
||||
using System.Text;
|
||||
using Dalamud.Game.ClientState.Keys;
|
||||
using Dalamud.Game.Text.SeStringHandling;
|
||||
using Dalamud.Interface;
|
||||
using Dalamud.Interface.Style;
|
||||
|
@ -222,4 +223,119 @@ internal static class ImGuiUtil {
|
|||
ImGui.SetNextItemWidth(-1);
|
||||
return ImGui.DragFloat($"##{label}", ref value, vSpeed, vMin, vMax, format, flags);
|
||||
}
|
||||
|
||||
internal static bool TryToImGui(this VirtualKey key, out ImGuiKey result) {
|
||||
result = key switch {
|
||||
VirtualKey.NO_KEY => ImGuiKey.None,
|
||||
VirtualKey.BACK => ImGuiKey.Backspace,
|
||||
VirtualKey.TAB => ImGuiKey.Tab,
|
||||
VirtualKey.RETURN => ImGuiKey.Enter,
|
||||
VirtualKey.SHIFT => ImGuiKey.ModShift,
|
||||
VirtualKey.CONTROL => ImGuiKey.ModCtrl,
|
||||
VirtualKey.MENU => ImGuiKey.ModAlt,
|
||||
VirtualKey.PAUSE => ImGuiKey.Pause,
|
||||
VirtualKey.CAPITAL => ImGuiKey.CapsLock,
|
||||
VirtualKey.ESCAPE => ImGuiKey.Escape,
|
||||
VirtualKey.SPACE => ImGuiKey.Space,
|
||||
VirtualKey.PRIOR => ImGuiKey.PageUp,
|
||||
VirtualKey.NEXT => ImGuiKey.PageDown,
|
||||
VirtualKey.END => ImGuiKey.End,
|
||||
VirtualKey.HOME => ImGuiKey.Home,
|
||||
VirtualKey.LEFT => ImGuiKey.LeftArrow,
|
||||
VirtualKey.UP => ImGuiKey.UpArrow,
|
||||
VirtualKey.RIGHT => ImGuiKey.RightArrow,
|
||||
VirtualKey.DOWN => ImGuiKey.DownArrow,
|
||||
VirtualKey.SNAPSHOT => ImGuiKey.PrintScreen,
|
||||
VirtualKey.INSERT => ImGuiKey.Insert,
|
||||
VirtualKey.DELETE => ImGuiKey.Delete,
|
||||
VirtualKey.KEY_0 => ImGuiKey._0,
|
||||
VirtualKey.KEY_1 => ImGuiKey._1,
|
||||
VirtualKey.KEY_2 => ImGuiKey._2,
|
||||
VirtualKey.KEY_3 => ImGuiKey._3,
|
||||
VirtualKey.KEY_4 => ImGuiKey._4,
|
||||
VirtualKey.KEY_5 => ImGuiKey._5,
|
||||
VirtualKey.KEY_6 => ImGuiKey._6,
|
||||
VirtualKey.KEY_7 => ImGuiKey._7,
|
||||
VirtualKey.KEY_8 => ImGuiKey._8,
|
||||
VirtualKey.KEY_9 => ImGuiKey._9,
|
||||
VirtualKey.A => ImGuiKey.A,
|
||||
VirtualKey.B => ImGuiKey.B,
|
||||
VirtualKey.C => ImGuiKey.C,
|
||||
VirtualKey.D => ImGuiKey.D,
|
||||
VirtualKey.E => ImGuiKey.E,
|
||||
VirtualKey.F => ImGuiKey.F,
|
||||
VirtualKey.G => ImGuiKey.G,
|
||||
VirtualKey.H => ImGuiKey.H,
|
||||
VirtualKey.I => ImGuiKey.I,
|
||||
VirtualKey.J => ImGuiKey.J,
|
||||
VirtualKey.K => ImGuiKey.K,
|
||||
VirtualKey.L => ImGuiKey.L,
|
||||
VirtualKey.M => ImGuiKey.M,
|
||||
VirtualKey.N => ImGuiKey.N,
|
||||
VirtualKey.O => ImGuiKey.O,
|
||||
VirtualKey.P => ImGuiKey.P,
|
||||
VirtualKey.Q => ImGuiKey.Q,
|
||||
VirtualKey.R => ImGuiKey.R,
|
||||
VirtualKey.S => ImGuiKey.S,
|
||||
VirtualKey.T => ImGuiKey.T,
|
||||
VirtualKey.U => ImGuiKey.U,
|
||||
VirtualKey.V => ImGuiKey.V,
|
||||
VirtualKey.W => ImGuiKey.W,
|
||||
VirtualKey.X => ImGuiKey.X,
|
||||
VirtualKey.Y => ImGuiKey.Y,
|
||||
VirtualKey.Z => ImGuiKey.Z,
|
||||
VirtualKey.LWIN => ImGuiKey.LeftSuper,
|
||||
VirtualKey.RWIN => ImGuiKey.RightSuper,
|
||||
VirtualKey.NUMPAD0 => ImGuiKey.Keypad0,
|
||||
VirtualKey.NUMPAD1 => ImGuiKey.Keypad1,
|
||||
VirtualKey.NUMPAD2 => ImGuiKey.Keypad2,
|
||||
VirtualKey.NUMPAD3 => ImGuiKey.Keypad3,
|
||||
VirtualKey.NUMPAD4 => ImGuiKey.Keypad4,
|
||||
VirtualKey.NUMPAD5 => ImGuiKey.Keypad5,
|
||||
VirtualKey.NUMPAD6 => ImGuiKey.Keypad6,
|
||||
VirtualKey.NUMPAD7 => ImGuiKey.Keypad7,
|
||||
VirtualKey.NUMPAD8 => ImGuiKey.Keypad8,
|
||||
VirtualKey.NUMPAD9 => ImGuiKey.Keypad9,
|
||||
VirtualKey.MULTIPLY => ImGuiKey.KeypadMultiply,
|
||||
VirtualKey.ADD => ImGuiKey.KeypadAdd,
|
||||
VirtualKey.SUBTRACT => ImGuiKey.KeypadSubtract,
|
||||
VirtualKey.DECIMAL => ImGuiKey.KeypadDecimal,
|
||||
VirtualKey.DIVIDE => ImGuiKey.KeypadDivide,
|
||||
VirtualKey.F1 => ImGuiKey.F1,
|
||||
VirtualKey.F2 => ImGuiKey.F2,
|
||||
VirtualKey.F3 => ImGuiKey.F3,
|
||||
VirtualKey.F4 => ImGuiKey.F4,
|
||||
VirtualKey.F5 => ImGuiKey.F5,
|
||||
VirtualKey.F6 => ImGuiKey.F6,
|
||||
VirtualKey.F7 => ImGuiKey.F7,
|
||||
VirtualKey.F8 => ImGuiKey.F8,
|
||||
VirtualKey.F9 => ImGuiKey.F9,
|
||||
VirtualKey.F10 => ImGuiKey.F10,
|
||||
VirtualKey.F11 => ImGuiKey.F11,
|
||||
VirtualKey.F12 => ImGuiKey.F12,
|
||||
VirtualKey.NUMLOCK => ImGuiKey.NumLock,
|
||||
VirtualKey.SCROLL => ImGuiKey.ScrollLock,
|
||||
VirtualKey.OEM_NEC_EQUAL => ImGuiKey.KeypadEqual,
|
||||
VirtualKey.LSHIFT => ImGuiKey.LeftShift,
|
||||
VirtualKey.RSHIFT => ImGuiKey.RightShift,
|
||||
VirtualKey.LCONTROL => ImGuiKey.LeftCtrl,
|
||||
VirtualKey.RCONTROL => ImGuiKey.RightCtrl,
|
||||
VirtualKey.LMENU => ImGuiKey.LeftAlt,
|
||||
VirtualKey.RMENU => ImGuiKey.RightAlt,
|
||||
VirtualKey.OEM_1 => ImGuiKey.Semicolon,
|
||||
VirtualKey.OEM_PLUS => ImGuiKey.Equal,
|
||||
VirtualKey.OEM_COMMA => ImGuiKey.Comma,
|
||||
VirtualKey.OEM_MINUS => ImGuiKey.Minus,
|
||||
VirtualKey.OEM_PERIOD => ImGuiKey.Period,
|
||||
VirtualKey.OEM_2 => ImGuiKey.Slash,
|
||||
VirtualKey.OEM_3 => ImGuiKey.GraveAccent,
|
||||
VirtualKey.OEM_4 => ImGuiKey.LeftBracket,
|
||||
VirtualKey.OEM_5 => ImGuiKey.Backslash,
|
||||
VirtualKey.OEM_6 => ImGuiKey.RightBracket,
|
||||
VirtualKey.OEM_7 => ImGuiKey.Apostrophe,
|
||||
_ => 0,
|
||||
};
|
||||
|
||||
return result != 0 || key == VirtualKey.NO_KEY;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue