mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
BeginChild: half-fixed child window name longer than 255 conflicting, merely raised the limit by using our shared large buffer. Comments.
This commit is contained in:
parent
6737037743
commit
3b409d2b68
@ -4835,16 +4835,15 @@ bool ImGui::BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, b
|
|||||||
SetNextWindowSize(size);
|
SetNextWindowSize(size);
|
||||||
|
|
||||||
// Build up name. If you need to append to a same child from multiple location in the ID stack, use BeginChild(ImGuiID id) with a stable value.
|
// Build up name. If you need to append to a same child from multiple location in the ID stack, use BeginChild(ImGuiID id) with a stable value.
|
||||||
char title[256];
|
|
||||||
if (name)
|
if (name)
|
||||||
ImFormatString(title, IM_ARRAYSIZE(title), "%s/%s_%08X", parent_window->Name, name, id);
|
ImFormatString(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), "%s/%s_%08X", parent_window->Name, name, id);
|
||||||
else
|
else
|
||||||
ImFormatString(title, IM_ARRAYSIZE(title), "%s/%08X", parent_window->Name, id);
|
ImFormatString(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), "%s/%08X", parent_window->Name, id);
|
||||||
|
|
||||||
const float backup_border_size = g.Style.ChildBorderSize;
|
const float backup_border_size = g.Style.ChildBorderSize;
|
||||||
if (!border)
|
if (!border)
|
||||||
g.Style.ChildBorderSize = 0.0f;
|
g.Style.ChildBorderSize = 0.0f;
|
||||||
bool ret = Begin(title, NULL, flags);
|
bool ret = Begin(g.TempBuffer, NULL, flags);
|
||||||
g.Style.ChildBorderSize = backup_border_size;
|
g.Style.ChildBorderSize = backup_border_size;
|
||||||
|
|
||||||
ImGuiWindow* child_window = g.CurrentWindow;
|
ImGuiWindow* child_window = g.CurrentWindow;
|
||||||
|
@ -1639,8 +1639,8 @@ struct IMGUI_API ImGuiWindowTempData
|
|||||||
ImVec2 CursorPos; // Current emitting position, in absolute coordinates.
|
ImVec2 CursorPos; // Current emitting position, in absolute coordinates.
|
||||||
ImVec2 CursorPosPrevLine;
|
ImVec2 CursorPosPrevLine;
|
||||||
ImVec2 CursorStartPos; // Initial position after Begin(), generally ~ window position + WindowPadding.
|
ImVec2 CursorStartPos; // Initial position after Begin(), generally ~ window position + WindowPadding.
|
||||||
ImVec2 CursorMaxPos; // Used to implicitly calculate ContentSize at the beginning of next frame. Always growing during the frame.
|
ImVec2 CursorMaxPos; // Used to implicitly calculate ContentSize at the beginning of next frame, for scrolling range and auto-resize. Always growing during the frame.
|
||||||
ImVec2 IdealMaxPos; // Used to implicitly calculate ContentSizeIdeal.
|
ImVec2 IdealMaxPos; // Used to implicitly calculate ContentSizeIdeal at the beginning of next frame, for auto-resize only. Always growing during the frame.
|
||||||
ImVec2 CurrLineSize;
|
ImVec2 CurrLineSize;
|
||||||
ImVec2 PrevLineSize;
|
ImVec2 PrevLineSize;
|
||||||
float CurrLineTextBaseOffset; // Baseline offset (0.0f by default on a new line, generally == style.FramePadding.y when a framed item has been added).
|
float CurrLineTextBaseOffset; // Baseline offset (0.0f by default on a new line, generally == style.FramePadding.y when a framed item has been added).
|
||||||
|
@ -76,7 +76,7 @@ Index of this file:
|
|||||||
// Its meaning needs to differ slightly depending of if we are using ScrollX/ScrollY flags.
|
// Its meaning needs to differ slightly depending of if we are using ScrollX/ScrollY flags.
|
||||||
// Default value is ImVec2(-FLT_MIN, 0.0f). When binding this in a scripting language please follow this default value.
|
// Default value is ImVec2(-FLT_MIN, 0.0f). When binding this in a scripting language please follow this default value.
|
||||||
// X
|
// X
|
||||||
// - outer_size.x < 0.0f -> Right-align from window/work-rect right-most edge. With -FLT_MIN will right-align exactly on right-most edge. With -1.0f will right-align one pixel away from right-most edge.
|
// - outer_size.x < 0.0f -> Right-align from window/work-rect right-most edge. With -FLT_MIN will right-align exactly on right-most edge.
|
||||||
// - outer_size.x = 0.0f -> Auto width. Generally use all available width. When NOT using scrolling and NOT using any Stretch column, use only necessary width, otherwise same as -FLT_MIN.
|
// - outer_size.x = 0.0f -> Auto width. Generally use all available width. When NOT using scrolling and NOT using any Stretch column, use only necessary width, otherwise same as -FLT_MIN.
|
||||||
// - outer_size.x > 0.0f -> Fixed width.
|
// - outer_size.x > 0.0f -> Fixed width.
|
||||||
// Y with ScrollX/ScrollY disabled: we output table directly in current window
|
// Y with ScrollX/ScrollY disabled: we output table directly in current window
|
||||||
@ -93,7 +93,7 @@ Index of this file:
|
|||||||
// About 'inner_width':
|
// About 'inner_width':
|
||||||
// With ScrollX disabled:
|
// With ScrollX disabled:
|
||||||
// - inner_width -> *ignored*
|
// - inner_width -> *ignored*
|
||||||
// With ScrollX enable:
|
// With ScrollX enabled:
|
||||||
// - inner_width < 0.0f -> *illegal* fit in known width (right align from outer_size.x) <-- weird
|
// - inner_width < 0.0f -> *illegal* fit in known width (right align from outer_size.x) <-- weird
|
||||||
// - inner_width = 0.0f -> fit in outer_width: Fixed size columns will take space they need (if avail, otherwise shrink down), Stretch columns becomes Fixed columns.
|
// - inner_width = 0.0f -> fit in outer_width: Fixed size columns will take space they need (if avail, otherwise shrink down), Stretch columns becomes Fixed columns.
|
||||||
// - inner_width > 0.0f -> override scrolling width, generally to be larger than outer_size.x. Fixed column take space they need (if avail, otherwise shrink down), Stretch columns share remaining space!
|
// - inner_width > 0.0f -> override scrolling width, generally to be larger than outer_size.x. Fixed column take space they need (if avail, otherwise shrink down), Stretch columns share remaining space!
|
||||||
@ -1175,7 +1175,7 @@ void ImGui::EndTable()
|
|||||||
|
|
||||||
// Context menu in columns body
|
// Context menu in columns body
|
||||||
if (flags & ImGuiTableFlags_ContextMenuInBody)
|
if (flags & ImGuiTableFlags_ContextMenuInBody)
|
||||||
if (table->HoveredColumnBody != -1 && !ImGui::IsAnyItemHovered() && ImGui::IsMouseReleased(ImGuiMouseButton_Right))
|
if (table->HoveredColumnBody != -1 && !IsAnyItemHovered() && IsMouseReleased(ImGuiMouseButton_Right))
|
||||||
TableOpenContextMenu((int)table->HoveredColumnBody);
|
TableOpenContextMenu((int)table->HoveredColumnBody);
|
||||||
|
|
||||||
// Finalize table height
|
// Finalize table height
|
||||||
@ -1303,6 +1303,7 @@ void ImGui::EndTable()
|
|||||||
if (table->IsOuterRectMinFitX)
|
if (table->IsOuterRectMinFitX)
|
||||||
{
|
{
|
||||||
// FIXME-TABLE: Could we remove this section?
|
// FIXME-TABLE: Could we remove this section?
|
||||||
|
// ColumnsAutoFitWidth may be one frame ahead here since for Fixed+NoResize is calculated from latest contents
|
||||||
IM_ASSERT((table->Flags & ImGuiTableFlags_ScrollX) == 0);
|
IM_ASSERT((table->Flags & ImGuiTableFlags_ScrollX) == 0);
|
||||||
outer_window->DC.CursorMaxPos.x = ImMax(backup_outer_max_pos.x, table->OuterRect.Min.x + table->ColumnsAutoFitWidth);
|
outer_window->DC.CursorMaxPos.x = ImMax(backup_outer_max_pos.x, table->OuterRect.Min.x + table->ColumnsAutoFitWidth);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user