mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-22 03:47:00 +00:00
Bits / comments
This commit is contained in:
parent
561af15d67
commit
ab47efd9a0
@ -87,14 +87,15 @@ Other changes:
|
|||||||
- Windows:
|
- Windows:
|
||||||
- BeginChild(): Added ImGuiChildFlags_ResizeX and ImGuiChildFlags_ResizeY to allow resizing
|
- BeginChild(): Added ImGuiChildFlags_ResizeX and ImGuiChildFlags_ResizeY to allow resizing
|
||||||
child windows from the bottom/right border (toward layout direction). Resized child windows
|
child windows from the bottom/right border (toward layout direction). Resized child windows
|
||||||
settings are saved and persistent in .ini file. (#1666, #1496, #1395, #1710)
|
settings are saved and persistent in .ini file. (#1710)
|
||||||
- BeginChild(): Added ImGuiChildFlags_Border as a replacement for 'bool border = true' parameter.
|
- BeginChild(): Added ImGuiChildFlags_Border as a replacement for 'bool border = true' parameter.
|
||||||
- BeginChild(): Internal name used by child windows now omits the hash/id if the child
|
- BeginChild(): Internal name used by child windows now omits the hash/id if the child
|
||||||
window is submitted in root of id stack of parent window. Makes debugging/metrics easier
|
window is submitted in root of id stack of parent window.
|
||||||
and shorter to read in many cases.
|
So "Parent/Child_XXXXXXX" becomes "Parent/Child" when in root of id stack.
|
||||||
|
Makes debugging/metrics easier and shorter to read in many cases.
|
||||||
- Popups: clarified meaning of 'p_open != NULL' in BeginPopupModal() + set back user value
|
- Popups: clarified meaning of 'p_open != NULL' in BeginPopupModal() + set back user value
|
||||||
to false when popup is closed in ways other than clicking the close button. (#6900)
|
to false when popup is closed in ways other than clicking the close button. (#6900)
|
||||||
- Double-clicking lower-left resize grip auto-resize (like lower-rightone).
|
- Double-clicking lower-left resize grip auto-resize (like lower-right one).
|
||||||
- Double-clicking bottom or right window border auto-resize on a singles axis.
|
- Double-clicking bottom or right window border auto-resize on a singles axis.
|
||||||
- Use relative mouse movement for border resize when the border geometry has moved
|
- Use relative mouse movement for border resize when the border geometry has moved
|
||||||
(e.g. resizing a child window triggering parent scroll) in order to avoid resizing
|
(e.g. resizing a child window triggering parent scroll) in order to avoid resizing
|
||||||
@ -182,6 +183,7 @@ Other changes:
|
|||||||
- ImDrawList: Added AddEllipse(), AddEllipseFilled(), PathEllipticalArcTo(). (#2743) [@Doohl]
|
- ImDrawList: Added AddEllipse(), AddEllipseFilled(), PathEllipticalArcTo(). (#2743) [@Doohl]
|
||||||
- ImVector: Added find_index() helper.
|
- ImVector: Added find_index() helper.
|
||||||
- Demo: Added "Drag and Drop -> Tooltip at target location" demo.
|
- Demo: Added "Drag and Drop -> Tooltip at target location" demo.
|
||||||
|
- Demo: Added "Layout -> Child Windows -> Manual-resize" demo. (#1710)
|
||||||
- Backends: GLFW: Clear emscripten's MouseWheel callback before shutdown. (#6790, #6096, #4019) [@halx99]
|
- Backends: GLFW: Clear emscripten's MouseWheel callback before shutdown. (#6790, #6096, #4019) [@halx99]
|
||||||
- Backends: GLFW: Added support for F13 to F24 function keys. (#6891)
|
- Backends: GLFW: Added support for F13 to F24 function keys. (#6891)
|
||||||
- Backends: SDL2, SDL3: Added support for F13 to F24 function keys, AppBack, AppForward. (#6891)
|
- Backends: SDL2, SDL3: Added support for F13 to F24 function keys, AppBack, AppForward. (#6891)
|
||||||
|
16
imgui.h
16
imgui.h
@ -329,9 +329,9 @@ namespace ImGui
|
|||||||
// Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin().
|
// Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin().
|
||||||
// - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting
|
// - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting
|
||||||
// anything to the window. Always call a matching End() for each Begin() call, regardless of its return value!
|
// anything to the window. Always call a matching End() for each Begin() call, regardless of its return value!
|
||||||
// [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu,
|
// [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions
|
||||||
// BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function
|
// such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding
|
||||||
// returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
// BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
||||||
// - Note that the bottom of window stack always contains a window called "Debug".
|
// - Note that the bottom of window stack always contains a window called "Debug".
|
||||||
IMGUI_API bool Begin(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0);
|
IMGUI_API bool Begin(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0);
|
||||||
IMGUI_API void End();
|
IMGUI_API void End();
|
||||||
@ -339,11 +339,11 @@ namespace ImGui
|
|||||||
// Child Windows
|
// Child Windows
|
||||||
// - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child.
|
// - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child.
|
||||||
// - For each independent axis of 'size': ==0.0f: use remaining host window size / >0.0f: fixed size / <0.0f: use remaining window size minus abs(size) / Each axis can use a different mode, e.g. ImVec2(0,400).
|
// - For each independent axis of 'size': ==0.0f: use remaining host window size / >0.0f: fixed size / <0.0f: use remaining window size minus abs(size) / Each axis can use a different mode, e.g. ImVec2(0,400).
|
||||||
// - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window.
|
// - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting
|
||||||
// Always call a matching EndChild() for each BeginChild() call, regardless of its return value.
|
// anything to the window. Always call a matching EndChild() for each BeginChild() call, regardless of its return value.
|
||||||
// [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu,
|
// [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions
|
||||||
// BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function
|
// such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding
|
||||||
// returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
// BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]
|
||||||
IMGUI_API bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0, 0), ImGuiChildFlags child_flags = 0, ImGuiWindowFlags window_flags = 0);
|
IMGUI_API bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0, 0), ImGuiChildFlags child_flags = 0, ImGuiWindowFlags window_flags = 0);
|
||||||
IMGUI_API bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0, 0), ImGuiChildFlags child_flags = 0, ImGuiWindowFlags window_flags = 0);
|
IMGUI_API bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0, 0), ImGuiChildFlags child_flags = 0, ImGuiWindowFlags window_flags = 0);
|
||||||
IMGUI_API void EndChild();
|
IMGUI_API void EndChild();
|
||||||
|
@ -2769,10 +2769,10 @@ static void ShowDemoWindowLayout()
|
|||||||
{
|
{
|
||||||
HelpMarker("Drag bottom border to resize. Double-click bottom border to auto-fit to vertical contents.");
|
HelpMarker("Drag bottom border to resize. Double-click bottom border to auto-fit to vertical contents.");
|
||||||
ImGui::PushStyleColor(ImGuiCol_ChildBg, ImGui::GetStyleColorVec4(ImGuiCol_FrameBg));
|
ImGui::PushStyleColor(ImGuiCol_ChildBg, ImGui::GetStyleColorVec4(ImGuiCol_FrameBg));
|
||||||
ImGui::BeginChild("ResizableChild", ImVec2(-FLT_MIN, ImGui::GetTextLineHeightWithSpacing() * 8), ImGuiChildFlags_Border | ImGuiChildFlags_ResizeY);
|
if (ImGui::BeginChild("ResizableChild", ImVec2(-FLT_MIN, ImGui::GetTextLineHeightWithSpacing() * 8), ImGuiChildFlags_Border | ImGuiChildFlags_ResizeY))
|
||||||
ImGui::PopStyleColor();
|
|
||||||
for (int n = 0; n < 10; n++)
|
for (int n = 0; n < 10; n++)
|
||||||
ImGui::Text("Line %04d", n);
|
ImGui::Text("Line %04d", n);
|
||||||
|
ImGui::PopStyleColor();
|
||||||
ImGui::EndChild();
|
ImGui::EndChild();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5065,6 +5065,7 @@ static void ShowDemoWindowTables()
|
|||||||
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanFullWidth", &tree_node_flags, ImGuiTreeNodeFlags_SpanFullWidth);
|
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanFullWidth", &tree_node_flags, ImGuiTreeNodeFlags_SpanFullWidth);
|
||||||
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanAllColumns", &tree_node_flags, ImGuiTreeNodeFlags_SpanAllColumns);
|
ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanAllColumns", &tree_node_flags, ImGuiTreeNodeFlags_SpanAllColumns);
|
||||||
|
|
||||||
|
HelpMarker("See \"Columns flags\" section to configure how indentation is applied to individual columns.");
|
||||||
if (ImGui::BeginTable("3ways", 3, flags))
|
if (ImGui::BeginTable("3ways", 3, flags))
|
||||||
{
|
{
|
||||||
// The first column will use the default _WidthStretch when ScrollX is Off and _WidthFixed when ScrollX is On
|
// The first column will use the default _WidthStretch when ScrollX is Off and _WidthFixed when ScrollX is On
|
||||||
|
@ -321,7 +321,7 @@ bool ImGui::BeginTableEx(const char* name, ImGuiID id, int columns_count, ImG
|
|||||||
const ImVec2 avail_size = GetContentRegionAvail();
|
const ImVec2 avail_size = GetContentRegionAvail();
|
||||||
const ImVec2 actual_outer_size = CalcItemSize(outer_size, ImMax(avail_size.x, 1.0f), use_child_window ? ImMax(avail_size.y, 1.0f) : 0.0f);
|
const ImVec2 actual_outer_size = CalcItemSize(outer_size, ImMax(avail_size.x, 1.0f), use_child_window ? ImMax(avail_size.y, 1.0f) : 0.0f);
|
||||||
const ImRect outer_rect(outer_window->DC.CursorPos, outer_window->DC.CursorPos + actual_outer_size);
|
const ImRect outer_rect(outer_window->DC.CursorPos, outer_window->DC.CursorPos + actual_outer_size);
|
||||||
const bool outer_window_is_measuring_size = (outer_window->AutoFitFramesX > 0) || (outer_window->AutoFitFramesY > 0); // Doesn't apply to auto-fitting windows!
|
const bool outer_window_is_measuring_size = (outer_window->AutoFitFramesX > 0) || (outer_window->AutoFitFramesY > 0); // Doesn't apply to AlwaysAutoResize windows!
|
||||||
if (use_child_window && IsClippedEx(outer_rect, 0) && !outer_window_is_measuring_size)
|
if (use_child_window && IsClippedEx(outer_rect, 0) && !outer_window_is_measuring_size)
|
||||||
{
|
{
|
||||||
ItemSize(outer_rect);
|
ItemSize(outer_rect);
|
||||||
|
Loading…
Reference in New Issue
Block a user