CurveTessellationTol=1.25f;// Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
CurveTessellationTol=1.25f;// Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
CircleTessellationMaxError=0.30f;// Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
CircleTessellationMaxError=0.30f;// Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
// Behaviors
HoverDelayShort=0.15f;// Delay for IsItemHovered(ImGuiHoveredFlags_DelayShort). Usually used along with HoverStationaryDelay.
HoverDelayNormal=0.40f;// Delay for IsItemHovered(ImGuiHoveredFlags_DelayNormal). "
// Default theme
// Default theme
ImGui::StyleColorsDark(this);
ImGui::StyleColorsDark(this);
}
}
@ -1210,16 +1215,10 @@ ImGuiIO::ImGuiIO()
IniSavingRate=5.0f;
IniSavingRate=5.0f;
IniFilename="imgui.ini";// Important: "imgui.ini" is relative to current working dir, most apps will want to lock this to an absolute path (e.g. same path as executables).
IniFilename="imgui.ini";// Important: "imgui.ini" is relative to current working dir, most apps will want to lock this to an absolute path (e.g. same path as executables).
// This gives a little bit of leeway before clearing the hover timer, allowing mouse to cross gaps
// This gives a little bit of leeway before clearing the hover timer, allowing mouse to cross gaps
// We could expose 0.25f as io.HoverClearDelay but I am not sure of the logic yet, this is particularly subtle.
// We could expose 0.25f as style.HoverClearDelay but I am not sure of the logic yet, this is particularly subtle.
g.HoverItemDelayClearTimer+=g.IO.DeltaTime;
g.HoverItemDelayClearTimer+=g.IO.DeltaTime;
if(g.HoverItemDelayClearTimer>=ImMax(0.25f,g.IO.DeltaTime*2.0f))// ~7 frames at 30 Hz + allow for low framerate
if(g.HoverItemDelayClearTimer>=ImMax(0.25f,g.IO.DeltaTime*2.0f))// ~7 frames at 30 Hz + allow for low framerate
g.HoverItemDelayTimer=g.HoverItemDelayClearTimer=0.0f;// May want a decaying timer, in which case need to clamp at max first, based on max of caller last requested timer.
g.HoverItemDelayTimer=g.HoverItemDelayClearTimer=0.0f;// May want a decaying timer, in which case need to clamp at max first, based on max of caller last requested timer.
ImGuiHoveredFlags_DelayShort=1<<11,// IsItemHovered() only: Return true after io.HoverDelayShort elapsed (~0.15 sec)
ImGuiHoveredFlags_DelayShort=1<<11,// IsItemHovered() only: Return true after style.HoverDelayShort elapsed (~0.15 sec)
ImGuiHoveredFlags_DelayNormal=1<<12,// IsItemHovered() only: Return true after io.HoverDelayNormal elapsed (~0.40 sec)
ImGuiHoveredFlags_DelayNormal=1<<12,// IsItemHovered() only: Return true after style.HoverDelayNormal elapsed (~0.40 sec)
ImGuiHoveredFlags_NoSharedDelay=1<<13,// IsItemHovered() only: Disable shared delay system where moving from one item to the next keeps the previous timer for a short time (standard for tooltips with long delays)
ImGuiHoveredFlags_NoSharedDelay=1<<13,// IsItemHovered() only: Disable shared delay system where moving from one item to the next keeps the previous timer for a short time (standard for tooltips with long delays)
};
};
@ -1890,6 +1890,10 @@ struct ImGuiStyle
floatCircleTessellationMaxError;// Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
floatCircleTessellationMaxError;// Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
ImVec4Colors[ImGuiCol_COUNT];
ImVec4Colors[ImGuiCol_COUNT];
// Behaviors
floatHoverDelayShort;// Delay for IsItemHovered(ImGuiHoveredFlags_DelayShort). Usually used along with HoverStationaryDelay.
floatHoverDelayNormal;// Delay for IsItemHovered(ImGuiHoveredFlags_DelayNormal). "
IMGUI_APIImGuiStyle();
IMGUI_APIImGuiStyle();
IMGUI_APIvoidScaleAllSizes(floatscale_factor);
IMGUI_APIvoidScaleAllSizes(floatscale_factor);
};
};
@ -1924,13 +1928,6 @@ struct ImGuiIO
floatIniSavingRate;// = 5.0f // Minimum time between saving positions/sizes to .ini file, in seconds.
floatIniSavingRate;// = 5.0f // Minimum time between saving positions/sizes to .ini file, in seconds.
constchar*IniFilename;// = "imgui.ini" // Path to .ini file (important: default "imgui.ini" is relative to current working dir!). Set NULL to disable automatic .ini loading/saving or if you want to manually call LoadIniSettingsXXX() / SaveIniSettingsXXX() functions.
constchar*IniFilename;// = "imgui.ini" // Path to .ini file (important: default "imgui.ini" is relative to current working dir!). Set NULL to disable automatic .ini loading/saving or if you want to manually call LoadIniSettingsXXX() / SaveIniSettingsXXX() functions.
constchar*LogFilename;// = "imgui_log.txt"// Path to .log file (default parameter to ImGui::LogToFile when no file is specified).
constchar*LogFilename;// = "imgui_log.txt"// Path to .log file (default parameter to ImGui::LogToFile when no file is specified).
floatMouseDoubleClickTime;// = 0.30f // Time for a double-click, in seconds.
floatMouseDoubleClickMaxDist;// = 6.0f // Distance threshold to stay in to validate a double-click, in pixels.
floatMouseDragThreshold;// = 6.0f // Distance threshold before considering we are dragging.
floatKeyRepeatDelay;// = 0.275f // When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.).
floatKeyRepeatRate;// = 0.050f // When holding a key/button, rate at which it repeats, in seconds.
floatHoverDelayShort;// = 0.15 sec // Delay before IsItemHovered(ImGuiHoveredFlags_DelayShort) returns true.
floatHoverDelayNormal;// = 0.40 sec // Delay before IsItemHovered(ImGuiHoveredFlags_DelayNormal) returns true.
void*UserData;// = NULL // Store your own data.
void*UserData;// = NULL // Store your own data.
ImFontAtlas*Fonts;// <auto> // Font atlas: load, rasterize and pack one or more fonts into a single texture.
ImFontAtlas*Fonts;// <auto> // Font atlas: load, rasterize and pack one or more fonts into a single texture.
@ -1950,6 +1947,14 @@ struct ImGuiIO
boolConfigWindowsMoveFromTitleBarOnly;// = false // Enable allowing to move windows only when clicking on their title bar. Does not apply to windows without a title bar.
boolConfigWindowsMoveFromTitleBarOnly;// = false // Enable allowing to move windows only when clicking on their title bar. Does not apply to windows without a title bar.
floatConfigMemoryCompactTimer;// = 60.0f // Timer (in seconds) to free transient windows/tables memory buffers when unused. Set to -1.0f to disable.
floatConfigMemoryCompactTimer;// = 60.0f // Timer (in seconds) to free transient windows/tables memory buffers when unused. Set to -1.0f to disable.
// Inputs Behaviors
// (other variables, ones which are expected to be tweaked within UI code, are exposed in ImGuiStyle)
floatMouseDoubleClickTime;// = 0.30f // Time for a double-click, in seconds.
floatMouseDoubleClickMaxDist;// = 6.0f // Distance threshold to stay in to validate a double-click, in pixels.
floatMouseDragThreshold;// = 6.0f // Distance threshold before considering we are dragging.
floatKeyRepeatDelay;// = 0.275f // When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.).
floatKeyRepeatRate;// = 0.050f // When holding a key/button, rate at which it repeats, in seconds.
ImGui::SliderFloat2("DisplaySafeAreaPadding",(float*)&style.DisplaySafeAreaPadding,0.0f,30.0f,"%.0f");ImGui::SameLine();HelpMarker("Adjust if you cannot see the edges of your screen (e.g. on a TV where scaling has not been configured).");
ImGui::SliderFloat2("DisplaySafeAreaPadding",(float*)&style.DisplaySafeAreaPadding,0.0f,30.0f,"%.0f");ImGui::SameLine();HelpMarker("Adjust if you cannot see the edges of your screen (e.g. on a TV where scaling has not been configured).");