// Non-flags members are NOT cleared by ItemAdd() meaning they are still valid during NavProcessItem()
ImGuiSelectionUserDataSelectionUserData;// Set by SetNextItemSelectionUserData() (note that NULL/0 is a valid value, we use -1 == ImGuiSelectionUserData_Invalid to mark invalid values)
floatWidth;// Set by SetNextItemWidth()
ImGuiKeyChordShortcut;// Set by SetNextItemShortcut()
boolOpenVal;// Set by SetNextItemOpen()
ImGuiCondOpenCond:8;
@ -1518,6 +1520,7 @@ enum ImGuiActivateFlags_
ImGuiActivateFlags_PreferTweak=1<<1,// Favor activation for tweaking with arrows or gamepad (e.g. for Slider/Drag). Default for Space key and if keyboard is not used.
ImGuiActivateFlags_TryToPreserveState=1<<2,// Request widget to preserve state if it can (e.g. InputText will try to preserve cursor/selection)
ImGuiActivateFlags_FromTabbing=1<<3,// Activation requested by a tabbing request
ImGuiActivateFlags_FromShortcut=1<<4,// Activation requested by an item shortcut via SetNextItemShortcut() function.
};
// Early work-in-progress API for ScrollToItem()
@ -1963,6 +1966,7 @@ struct ImGuiContext
boolActiveIdHasBeenPressedBefore;// Track whether the active id led to a press (this is to allow changing between PressOnClick and PressOnRelease without pressing twice). Used by range_select branch.
boolActiveIdHasBeenEditedBefore;// Was the value associated to the widget Edited over the course of the Active state.
boolActiveIdHasBeenEditedThisFrame;
boolActiveIdFromShortcut;
intActiveIdMouseButton:8;
ImVec2ActiveIdClickOffset;// Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior)
ImGuiWindow*ActiveIdWindow;
@ -2267,6 +2271,7 @@ struct ImGuiContext
ActiveIdHasBeenPressedBefore=false;
ActiveIdHasBeenEditedBefore=false;
ActiveIdHasBeenEditedThisFrame=false;
ActiveIdFromShortcut=false;
ActiveIdClickOffset=ImVec2(-1,-1);
ActiveIdWindow=NULL;
ActiveIdSource=ImGuiInputSource_None;
@ -3225,6 +3230,7 @@ namespace ImGui
// - IsKeyChordPressed() compares mods + call IsKeyPressed() -> function has no side-effect.
// - Shortcut() submits a route then if currently can be routed calls IsKeyChordPressed() -> function has (desirable) side-effects.
// FIXME: For refactor we could output flags, incl mouse hovered vs nav keyboard vs nav triggered etc.
// And better standardize how widgets use 'GetColor32((held && hovered) ? ... : hovered ? ...)' vs 'GetColor32(held ? ... : hovered ? ...);'
// For mouse feedback we typically prefer the 'held && hovered' test, but for nav feedback not always. Outputting hovered=true on Activation may be misleading.