From November 2014 to December 2019, ongoing development has also been financially supported by its users on Patreon and through individual donations. Please see [detailed list of Dear ImGui supporters](https://github.com/ocornut/imgui/wiki/Sponsors).
From November 2014 to December 2019, ongoing development has also been financially supported by its users on Patreon and through individual donations. Please see [detailed list of Dear ImGui supporters](https://github.com/ocornut/imgui/wiki/Sponsors).
@ -26,7 +26,6 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
- window: GetWindowSize() returns (0,0) when not calculated? (#1045)
- window: GetWindowSize() returns (0,0) when not calculated? (#1045)
- window: investigate better auto-positioning for new windows.
- window: investigate better auto-positioning for new windows.
- window: top most window flag? (#2574)
- window: top most window flag? (#2574)
- window: the size_on_first_use path of Begin() can probably be removed
- window/size: manually triggered auto-fit (double-click on grip) shouldn't resize window down to viewport size?
- window/size: manually triggered auto-fit (double-click on grip) shouldn't resize window down to viewport size?
- window/opt: freeze window flag: if not focused/hovered, return false, render with previous ImDrawList. and/or reduce refresh rate. -> this may require enforcing that it is illegal to submit contents if Begin returns false.
- window/opt: freeze window flag: if not focused/hovered, return false, render with previous ImDrawList. and/or reduce refresh rate. -> this may require enforcing that it is illegal to submit contents if Begin returns false.
ImVec2size_on_first_use=(g.NextWindowData.Flags&ImGuiNextWindowDataFlags_HasSize)?g.NextWindowData.SizeVal:ImVec2(0.0f,0.0f);// Any condition flag will do since we are creating a new window here.
ImU8Data[8];// Can fit any data up to ImGuiDataType_COUNT
};
// Type information associated to one ImGuiDataType. Retrieve with DataTypeGetInfo().
// Type information associated to one ImGuiDataType. Retrieve with DataTypeGetInfo().
structImGuiDataTypeInfo
structImGuiDataTypeInfo
{
{
@ -839,8 +844,9 @@ struct ImGuiWindowSettings
ImGuiIDClassId;// ID of window class if specified
ImGuiIDClassId;// ID of window class if specified
shortDockOrder;// Order of the last time the window was visible within its DockNode. This is used to reorder windows that are reappearing on the same frame. Same value between windows that were active and windows that were none are possible.
shortDockOrder;// Order of the last time the window was visible within its DockNode. This is used to reorder windows that are reappearing on the same frame. Same value between windows that were active and windows that were none are possible.
boolCollapsed;
boolCollapsed;
boolWantApply;// Set when loaded from .ini data (to enable merging/loading .ini data into an already running context)
constchar*TypeName;// Short description stored in .ini file. Disallowed characters: '[' ']'
constchar*TypeName;// Short description stored in .ini file. Disallowed characters: '[' ']'
ImGuiIDTypeHash;// == ImHashStr(TypeName)
ImGuiIDTypeHash;// == ImHashStr(TypeName)
void(*ClearAllFn)(ImGuiContext*ctx,ImGuiSettingsHandler*handler);// Clear all settings data
void(*ApplyAllFn)(ImGuiContext*ctx,ImGuiSettingsHandler*handler);// Read: Called after reading (in registration order)
void*(*ReadOpenFn)(ImGuiContext*ctx,ImGuiSettingsHandler*handler,constchar*name);// Read: Called when entering into a new ini entry e.g. "[Window][Name]"
void*(*ReadOpenFn)(ImGuiContext*ctx,ImGuiSettingsHandler*handler,constchar*name);// Read: Called when entering into a new ini entry e.g. "[Window][Name]"
void(*ReadLineFn)(ImGuiContext*ctx,ImGuiSettingsHandler*handler,void*entry,constchar*line);// Read: Called for every line of text within an ini entry
void(*ReadLineFn)(ImGuiContext*ctx,ImGuiSettingsHandler*handler,void*entry,constchar*line);// Read: Called for every line of text within an ini entry
void(*WriteAllFn)(ImGuiContext*ctx,ImGuiSettingsHandler*handler,ImGuiTextBuffer*out_buf);// Write: Output every entries into 'out_buf'
void(*WriteAllFn)(ImGuiContext*ctx,ImGuiSettingsHandler*handler,ImGuiTextBuffer*out_buf);// Write: Output every entries into 'out_buf'
inlineImGuiInputTextState*GetInputTextState(ImGuiIDid){ImGuiContext&g=*GImGui;return(g.InputTextState.ID==id)?&g.InputTextState:NULL;}// Get input text state if active
inlineImGuiInputTextState*GetInputTextState(ImGuiIDid){ImGuiContext&g=*GImGui;return(g.InputTextState.ID==id)?&g.InputTextState:NULL;}// Get input text state if active
IM_ASSERT(!((flags&ImGuiInputTextFlags_CallbackHistory)&&(flags&ImGuiInputTextFlags_Multiline)));// Can't use both together (they both use up/down keys)
IM_ASSERT(!((flags&ImGuiInputTextFlags_CallbackHistory)&&(flags&ImGuiInputTextFlags_Multiline)));// Can't use both together (they both use up/down keys)
IM_ASSERT(!((flags&ImGuiInputTextFlags_CallbackCompletion)&&(flags&ImGuiInputTextFlags_AllowTabInput)));// Can't use both together (they both use tab key)
IM_ASSERT(!((flags&ImGuiInputTextFlags_CallbackCompletion)&&(flags&ImGuiInputTextFlags_AllowTabInput)));// Can't use both together (they both use tab key)