Internal: Tabbing: Tweaks to FocusableItemRegister and using the standard mechanism to allow/block Tab being interpreting by tabbing instead of InputText() widget.
window->FocusIdxTabRequestNext=window->FocusIdxTabCounter+(g.IO.KeyShift?(is_tab_stop?-1:0):+1);// Modulo on index will be applied at the end of frame once we've got the total counter of items.
// Process TAB/Shift-TAB to tab *OUT* of the currently focused item.
// (Note that we can always TAB out of a widget that doesn't allow tabbing in)
window->FocusIdxTabRequestNext=window->FocusIdxTabCounter+(g.IO.KeyShift?(is_tab_stop?-1:0):+1);// Modulo on index will be applied at the end of frame once we've got the total counter of items.
// (This code is old and will be redesigned for Nav. In the meanwhile we use g.NavTabRequest as storage but this doesn't need ImGuiConfigFlags_NavEnableKeyboard to work!)
// [Internal] Don't use directly! This is used internally to differentiate keyboard from gamepad inputs for behaviors that require to differentiate them.
// Keyboard behavior that have no corresponding gamepad mapping (e.g. CTRL+TAB) will be directly reading from io.KeysDown[] instead of io.NavInputs[].
ImGuiNavInput_KeyMenu_,// toggle menu // = io.KeyAlt
ImGuiNavInput_KeyTab_,// tab // = Tab key
ImGuiNavInput_KeyLeft_,// move left // = Arrow keys
ImGuiNavMoveResultNavMoveResultLocalVisibleSet;// Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag)
ImGuiNavMoveResultNavMoveResultOther;// Best move request candidate within NavWindow's flattened hierarchy (when using ImGuiWindowFlags_NavFlattened flag)
// Tabbing system (older than Nav, active when Nav is disabled. Probably needs a redesign)
boolFocusTabPressed;//
// Render
ImDrawDataDrawData;// Main ImDrawData instance to pass render information to the user