Example #1
0
        void MapInput()
        {
            var io = ImGui.GetIO();

            io.KeyMap[GuiKey.Tab]        = (int)Key.Tab;
            io.KeyMap[GuiKey.LeftArrow]  = (int)Key.Left;
            io.KeyMap[GuiKey.RightArrow] = (int)Key.Right;
            io.KeyMap[GuiKey.UpArrow]    = (int)Key.Up;
            io.KeyMap[GuiKey.DownArrow]  = (int)Key.Down;
            io.KeyMap[GuiKey.PageUp]     = (int)Key.PageUp;
            io.KeyMap[GuiKey.PageDown]   = (int)Key.PageDown;
            io.KeyMap[GuiKey.Home]       = (int)Key.Home;
            io.KeyMap[GuiKey.End]        = (int)Key.End;
            io.KeyMap[GuiKey.Delete]     = (int)Key.Delete;
            io.KeyMap[GuiKey.Backspace]  = (int)Key.BackSpace;
            io.KeyMap[GuiKey.Enter]      = (int)Key.Enter;
            io.KeyMap[GuiKey.Escape]     = (int)Key.Escape;
            io.KeyMap[GuiKey.A]          = (int)Key.A;
            io.KeyMap[GuiKey.C]          = (int)Key.C;
            io.KeyMap[GuiKey.V]          = (int)Key.V;
            io.KeyMap[GuiKey.X]          = (int)Key.X;
            io.KeyMap[GuiKey.Y]          = (int)Key.Y;
            io.KeyMap[GuiKey.Z]          = (int)Key.Z;

            window.KeyDown += (sender, e) => {
                if (WantKeyboard)
                {
                    ImGui.GetIO().KeysDown[(int)e.Key] = true;
                }
                else
                {
                    engine.KeyDown(e);
                }
            };
            window.KeyUp += (sender, e) => {
                if (WantKeyboard)
                {
                    ImGui.GetIO().KeysDown[(int)e.Key] = false;
                }
                else
                {
                    engine.KeyUp(e);
                }
            };
            window.KeyPress += (sender, e) => {
                ImGui.AddInputCharacter(e.KeyChar);
            };
        }