MCPcopy Create free account
hub / github.com/KebsCS/KBotExt / UpdateKeyboardInputs

Method UpdateKeyboardInputs

KBotExt/imgui/imgui.cpp:8474–8590  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8472}
8473
8474static void ImGui::UpdateKeyboardInputs()
8475{
8476 ImGuiContext& g = *GImGui;
8477 ImGuiIO& io = g.IO;
8478
8479 // Import legacy keys or verify they are not used
8480#ifndef IMGUI_DISABLE_OBSOLETE_KEYIO
8481 if (io.BackendUsingLegacyKeyArrays == 0)
8482 {
8483 // Backend used new io.AddKeyEvent() API: Good! Verify that old arrays are never written to externally.
8484 for (int n = 0; n < ImGuiKey_LegacyNativeKey_END; n++)
8485 IM_ASSERT((io.KeysDown[n] == false || IsKeyDown((ImGuiKey)n)) && "Backend needs to either only use io.AddKeyEvent(), either only fill legacy io.KeysDown[] + io.KeyMap[]. Not both!");
8486 }
8487 else
8488 {
8489 if (g.FrameCount == 0)
8490 for (int n = ImGuiKey_LegacyNativeKey_BEGIN; n < ImGuiKey_LegacyNativeKey_END; n++)
8491 IM_ASSERT(g.IO.KeyMap[n] == -1 && "Backend is not allowed to write to io.KeyMap[0..511]!");
8492
8493 // Build reverse KeyMap (Named -> Legacy)
8494 for (int n = ImGuiKey_NamedKey_BEGIN; n < ImGuiKey_NamedKey_END; n++)
8495 if (io.KeyMap[n] != -1)
8496 {
8497 IM_ASSERT(IsLegacyKey((ImGuiKey)io.KeyMap[n]));
8498 io.KeyMap[io.KeyMap[n]] = n;
8499 }
8500
8501 // Import legacy keys into new ones
8502 for (int n = ImGuiKey_LegacyNativeKey_BEGIN; n < ImGuiKey_LegacyNativeKey_END; n++)
8503 if (io.KeysDown[n] || io.BackendUsingLegacyKeyArrays == 1)
8504 {
8505 const ImGuiKey key = (ImGuiKey)(io.KeyMap[n] != -1 ? io.KeyMap[n] : n);
8506 IM_ASSERT(io.KeyMap[n] == -1 || IsNamedKey(key));
8507 io.KeysData[key].Down = io.KeysDown[n];
8508 if (key != n)
8509 io.KeysDown[key] = io.KeysDown[n]; // Allow legacy code using io.KeysDown[GetKeyIndex()] with old backends
8510 io.BackendUsingLegacyKeyArrays = 1;
8511 }
8512 if (io.BackendUsingLegacyKeyArrays == 1)
8513 {
8514 GetKeyData(ImGuiMod_Ctrl)->Down = io.KeyCtrl;
8515 GetKeyData(ImGuiMod_Shift)->Down = io.KeyShift;
8516 GetKeyData(ImGuiMod_Alt)->Down = io.KeyAlt;
8517 GetKeyData(ImGuiMod_Super)->Down = io.KeySuper;
8518 }
8519 }
8520
8521#ifndef IMGUI_DISABLE_OBSOLETE_KEYIO
8522 const bool nav_gamepad_active = (io.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad) != 0 && (io.BackendFlags & ImGuiBackendFlags_HasGamepad) != 0;
8523 if (io.BackendUsingLegacyNavInputArray && nav_gamepad_active)
8524 {
8525#define MAP_LEGACY_NAV_INPUT_TO_KEY1(_KEY, _NAV1) do { io.KeysData[_KEY].Down = (io.NavInputs[_NAV1] > 0.0f); io.KeysData[_KEY].AnalogValue = io.NavInputs[_NAV1]; } while (0)
8526#define MAP_LEGACY_NAV_INPUT_TO_KEY2(_KEY, _NAV1, _NAV2) do { io.KeysData[_KEY].Down = (io.NavInputs[_NAV1] > 0.0f) || (io.NavInputs[_NAV2] > 0.0f); io.KeysData[_KEY].AnalogValue = ImMax(io.NavInputs[_NAV1], io.NavInputs[_NAV2]); } while (0)
8527 MAP_LEGACY_NAV_INPUT_TO_KEY1(ImGuiKey_GamepadFaceDown, ImGuiNavInput_Activate);
8528 MAP_LEGACY_NAV_INPUT_TO_KEY1(ImGuiKey_GamepadFaceRight, ImGuiNavInput_Cancel);
8529 MAP_LEGACY_NAV_INPUT_TO_KEY1(ImGuiKey_GamepadFaceLeft, ImGuiNavInput_Menu);
8530 MAP_LEGACY_NAV_INPUT_TO_KEY1(ImGuiKey_GamepadFaceUp, ImGuiNavInput_Input);
8531 MAP_LEGACY_NAV_INPUT_TO_KEY1(ImGuiKey_GamepadDpadLeft, ImGuiNavInput_DpadLeft);

Callers

nothing calls this directly

Calls 6

IsLegacyKeyFunction · 0.85
IsNamedKeyFunction · 0.85
GetKeyDataFunction · 0.85
UpdateAliasKeyFunction · 0.85
MouseButtonToKeyFunction · 0.85
GetMergedModsFromKeysFunction · 0.85

Tested by

no test coverage detected