mirror of
https://github.com/Drezil/imgui.git
synced 2025-07-06 04:58:47 +02:00
Nav: Examples: DirectX11, Glfw+GL3: Basic code to map keyboard inputs when io.NavFlags & ImGuiNavFlags_EnableKeyboard is set. (will iterate/tweak before spreading to other examples). (#787)
This commit is contained in:
@ -605,6 +605,26 @@ void ImGui_ImplDX11_NewFrame()
|
||||
// io.MouseDown : filled by WM_*BUTTON* events
|
||||
// io.MouseWheel : filled by WM_MOUSEWHEEL events
|
||||
|
||||
// Gamepad/keyboard navigation mapping [BETA]
|
||||
memset(io.NavInputs, 0, sizeof(io.NavInputs));
|
||||
if (io.NavFlags & ImGuiNavFlags_EnableKeyboard)
|
||||
{
|
||||
// Update keyboard
|
||||
// FIXME-NAV: We are still using some of the ImGuiNavInput_PadXXX enums as keyboard support is incomplete.
|
||||
#define MAP_KEY(NAV_NO, KEY_NO) { if (io.KeysDown[KEY_NO]) io.NavInputs[NAV_NO] = 1.0f; }
|
||||
MAP_KEY(ImGuiNavInput_KeyLeft, VK_LEFT);
|
||||
MAP_KEY(ImGuiNavInput_KeyRight, VK_RIGHT);
|
||||
MAP_KEY(ImGuiNavInput_KeyUp, VK_UP);
|
||||
MAP_KEY(ImGuiNavInput_KeyDown, VK_DOWN);
|
||||
MAP_KEY(ImGuiNavInput_KeyMenu, VK_MENU);
|
||||
MAP_KEY(ImGuiNavInput_PadActivate, VK_SPACE);
|
||||
MAP_KEY(ImGuiNavInput_PadCancel, VK_ESCAPE);
|
||||
MAP_KEY(ImGuiNavInput_PadInput, VK_RETURN);
|
||||
MAP_KEY(ImGuiNavInput_PadTweakFast, VK_SHIFT);
|
||||
MAP_KEY(ImGuiNavInput_PadTweakSlow, VK_CONTROL);
|
||||
#undef MAP_KEY
|
||||
}
|
||||
|
||||
// Set OS mouse position if requested last frame by io.WantMoveMouse flag (used when io.NavMovesTrue is enabled by user and using directional navigation)
|
||||
if (io.WantMoveMouse)
|
||||
{
|
||||
|
Reference in New Issue
Block a user