g.NavWindowingToggleLayer&=(g.NavWindowingDisplayAlpha<1.0f);// Once button is held long enough we don't consider it a tag-to-toggle-layer press anymore.
// Single press toggles NavLayer, long press with L/R apply actual focus on release (until then the window was merely rendered front-most)
if(!IsNavInputDown(ImGuiNavInput_PadMenu))
if(!IsNavInputDown(ImGuiNavInput_PadMenu))
{
{
// Apply actual focus only when releasing the NavMenu button (until then the window was merely rendered front-most)
g.NavWindowingToggleLayer&=(g.NavWindowingHighlightAlpha<1.0f);// Once button was held long enough we don't consider it a tap-to-toggle-layer press anymore.
ImGuiNavFlags_EnableGamepad=1<<0,// Master gamepad navigation enable flag. This is to instruct your imgui binding whether to fill in gamepad navigation inputs. imgui itself won't use this flag.
ImGuiNavFlags_EnableGamepad=1<<0,// Master gamepad navigation enable flag. This is mostly to instruct your imgui binding whether to fill in gamepad navigation inputs.
ImGuiNavFlags_EnableKeyboard=1<<1,// Master keyboard navigation enable flag. This is to instruct your imgui binding whether to fill in keyboard navigation inputs. imgui itself won't use this flag.
ImGuiNavFlags_EnableKeyboard=1<<1,// Master keyboard navigation enable flag. This is mostly to instruct your imgui binding whether to fill in keyboard navigation inputs.
ImGuiNavFlags_MoveMouse=1<<2// Request navigation to allow move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantMoveMouse=true. If enabled you MUST honor io.WantMoveMouse requests in your binding, otherwise ImGui will react as if the mouse is jumping around back and forth.
ImGuiNavFlags_MoveMouse=1<<2// Request navigation to allow move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantMoveMouse=true. If enabled you MUST honor io.WantMoveMouse requests in your binding, otherwise ImGui will react as if the mouse is jumping around back and forth.
ImGuiIDNavJustMovedToId;// Just navigated to this id (result of a successfully MoveRequest)
ImGuiIDNavJustMovedToId;// Just navigated to this id (result of a successfully MoveRequest)
ImRectNavScoringRectScreen;// Rectangle used for scoring, in screen space. Based of window->DC.NavRefRectRel[], modified for directional navigation scoring.
ImRectNavScoringRectScreen;// Rectangle used for scoring, in screen space. Based of window->DC.NavRefRectRel[], modified for directional navigation scoring.
ImGuiWindow*NavWindowingTarget;// When selecting a window (holding Menu+FocusPrev/Next, or equivalent of CTRL-TAB) this window is temporarily displayed front-most.
ImGuiWindow*NavWindowingTarget;// When selecting a window (holding Menu+FocusPrev/Next, or equivalent of CTRL-TAB) this window is temporarily displayed front-most.
floatNavWindowingDisplayAlpha;
floatNavWindowingHighlightTimer;
floatNavWindowingHighlightAlpha;
boolNavWindowingToggleLayer;
boolNavWindowingToggleLayer;
boolNavWindowingIsKeyboardMode;// Gamepad or keyboard mode
intNavLayer;// Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later.
intNavLayer;// Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later.
intNavIdTabCounter;// == NavWindow->DC.FocusIdxTabCounter at time of NavId processing
intNavIdTabCounter;// == NavWindow->DC.FocusIdxTabCounter at time of NavId processing
boolNavIdIsAlive;// Nav widget has been seen this frame ~~ NavRefRectRel is valid
boolNavIdIsAlive;// Nav widget has been seen this frame ~~ NavRefRectRel is valid