NavMoveRequestSubmit(ImGuiDir_None,ImGuiDir_None,ImGuiNavMoveFlags_Tabbing,scroll_flags);// FIXME-NAV: Once we refactor tabbing, add LegacyApi flag to not activate non-inputable.
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens)
ImGuiItemStatusFlags_FocusedByTabbing=1<<8// Set when the Focusable item just got focused by Tabbing (FIXME: to be removed soon)
#ifdef IMGUI_ENABLE_TEST_ENGINE
,// [imgui_tests only]
@ -1219,7 +1217,10 @@ enum ImGuiNavMoveFlags_
ImGuiNavMoveFlags_AlsoScoreVisibleSet=1<<5,// Store alternate result in NavMoveResultLocalVisible that only comprise elements that are already fully visible (used by PageUp/PageDown)
ImGuiNavMoveFlags_ScrollToEdgeY=1<<6,// Force scrolling to min/max (used by Home/End) // FIXME-NAV: Aim to remove or reword, probably unnecessary
ImGuiNavMoveFlags_Forwarded=1<<7,
ImGuiNavMoveFlags_DebugNoResult=1<<8
ImGuiNavMoveFlags_DebugNoResult=1<<8,// Dummy scoring for debug purpose, don't apply result
ImGuiNavMoveFlags_Tabbing=1<<9,// == Focus + Activate if item is Inputable + DontChangeNavHighlight
ImGuiNavMoveFlags_Activate=1<<10,
ImGuiNavMoveFlags_DontSetNavHighlight=1<<11// Do not alter the visible state of keyboard vs mouse nav highlight
};
enumImGuiNavLayer
@ -1235,12 +1236,13 @@ struct ImGuiNavItemData
ImGuiIDID;// Init,Move // Best candidate item ID
ImGuiIDFocusScopeId;// Init,Move // Best candidate focus scope ID
ImRectRectRel;// Init,Move // Best candidate bounding box in window relative space
ImGuiItemFlagsInFlags;// ????,Move // Best candidate item flags
floatDistBox;// Move // Best candidate box distance to current NavId
floatDistCenter;// Move // Best candidate center distance to current NavId
floatDistAxial;// Move // Best candidate axial distance to current NavId
ImGuiDirNavMoveClipDir;// FIXME-NAV: Describe the purpose of this better. Might want to rename?
ImRectNavScoringRect;// Rectangle used for scoring, in screen space. Based of window->NavRectRel[], modified for directional navigation scoring.
intNavScoringDebugCount;// Metrics for debugging
intNavTabbingInputableRemaining;// >0 when counting items for tabbing
ImGuiNavItemDataNavMoveResultLocal;// Best move request candidate within NavWindow
ImGuiNavItemDataNavMoveResultLocalVisible;// Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag)
ImGuiNavItemDataNavMoveResultOther;// Best move request candidate within NavWindow's flattened hierarchy (when using ImGuiWindowFlags_NavFlattened flag)
@ -1597,9 +1600,7 @@ struct ImGuiContext
// Legacy Focus/Tabbing system (older than Nav, active even if Nav is disabled, misnamed. FIXME-NAV: This needs a redesign!)
ImGuiWindow*TabFocusRequestCurrWindow;//
ImGuiWindow*TabFocusRequestNextWindow;//
intTabFocusRequestCurrCounterRegular;// Any item being requested for focus, stored as an index (we on layout to be stable between the frame pressing TAB and the next frame, semi-ouch)
intTabFocusRequestCurrCounterTabStop;// Tab item being requested for focus, stored as an index
intTabFocusRequestNextCounterRegular;// Stored for next frame
intTabFocusRequestNextCounterTabStop;// "
boolTabFocusPressed;// Set in NewFrame() when user pressed Tab
// Widget code are simplified as there's no need to call FocusableItemUnregister() while managing the transition from regular widget to TempInputText()
inlineboolFocusableItemRegister(ImGuiWindow*window,ImGuiIDid){IM_ASSERT(0);IM_UNUSED(window);IM_UNUSED(id);returnfalse;}// -> pass ImGuiItemAddFlags_Inputable flag to ItemAdd()