ImGuiIDFocusScopeId;// Copied from g.CurrentFocusScopeId (unless another selection scope was pushed manually)
ImGuiIDFocusScopeId;// Copied from g.CurrentFocusScopeId (unless another selection scope was pushed manually)
ImGuiMultiSelectFlagsFlags;
ImGuiMultiSelectFlagsFlags;
ImGuiKeyChordKeyMods;
ImGuiKeyChordKeyMods;
ImGuiMultiSelectIOBeginIO;// Requests are set and returned by BeginMultiSelect(), written to by user during the loop.
ImGuiMultiSelectIOIO;// Requests are set and returned by BeginMultiSelect()/EndMultiSelect() + written to by user during the loop.
ImGuiMultiSelectIOEndIO;// Requests are set during the loop and returned by EndMultiSelect().
boolLoopRequestClear;
boolLoopRequestClear;
boolLoopRequestSelectAll;
boolLoopRequestSelectAll;
boolIsEndIO;// Set when switching IO from BeginMultiSelect() to EndMultiSelect() state.
boolIsFocused;// Set if currently focusing the selection scope (any item of the selection). May be used if you have custom shortcut associated to selection.
boolIsFocused;// Set if currently focusing the selection scope (any item of the selection). May be used if you have custom shortcut associated to selection.
boolIsSetRange;// Set by BeginMultiSelect() when using Shift+Navigation. Because scrolling may be affected we can't afford a frame of lag with Shift+Navigation.
boolIsSetRange;// Set by BeginMultiSelect() when using Shift+Navigation. Because scrolling may be affected we can't afford a frame of lag with Shift+Navigation.
// We currently don't allow user code to modify RangeSrcItem by writing to BeginIO's version, but that would be an easy change here.
// We currently don't allow user code to modify RangeSrcItem by writing to BeginIO's version, but that would be an easy change here.
if(ms->BeginIO.RangeSrcReset||(ms->RangeSrcPassedBy==false&&ms->BeginIO.RangeSrcItem!=ImGuiSelectionUserData_Invalid))// Can't read storage->RangeSrcItem here -> we want the state at begining of the scope (see tests for easy failure)
if(ms->IO.RangeSrcReset||(ms->RangeSrcPassedBy==false&&ms->IO.RangeSrcItem!=ImGuiSelectionUserData_Invalid))// Can't read storage->RangeSrcItem here -> we want the state at begining of the scope (see tests for easy failure)
{
{
IMGUI_DEBUG_LOG_SELECTION("[selection] EndMultiSelect: Reset RangeSrcItem.\n");// Will set be to NavId.
IMGUI_DEBUG_LOG_SELECTION("[selection] EndMultiSelect: Reset RangeSrcItem.\n");// Will set be to NavId.