mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Internals: Refactor: Moved get height and contents regions functions, to Layout section. IF YOU GREAT CONFLICTS WHILE MERGING (NOT REBASING) THOSE 6 PREV COMMITS, TRY MERGING THEM INDIVIDUALLY 1 by 1 or 2 by 2 etc.
This commit is contained in:
parent
602df11f19
commit
8c683de33f
154
imgui.cpp
154
imgui.cpp
@ -6523,77 +6523,6 @@ void ImGui::SetNextWindowBgAlpha(float alpha)
|
|||||||
g.NextWindowData.BgAlphaVal = alpha;
|
g.NextWindowData.BgAlphaVal = alpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: This is in window space (not screen space!). We should try to obsolete all those functions.
|
|
||||||
ImVec2 ImGui::GetContentRegionMax()
|
|
||||||
{
|
|
||||||
ImGuiContext& g = *GImGui;
|
|
||||||
ImGuiWindow* window = g.CurrentWindow;
|
|
||||||
ImVec2 mx = window->ContentRegionRect.Max - window->Pos;
|
|
||||||
if (window->DC.CurrentColumns)
|
|
||||||
mx.x = window->WorkRect.Max.x - window->Pos.x;
|
|
||||||
return mx;
|
|
||||||
}
|
|
||||||
|
|
||||||
// [Internal] Absolute coordinate. Saner. This is not exposed until we finishing refactoring work rect features.
|
|
||||||
ImVec2 ImGui::GetContentRegionMaxAbs()
|
|
||||||
{
|
|
||||||
ImGuiContext& g = *GImGui;
|
|
||||||
ImGuiWindow* window = g.CurrentWindow;
|
|
||||||
ImVec2 mx = window->ContentRegionRect.Max;
|
|
||||||
if (window->DC.CurrentColumns)
|
|
||||||
mx.x = window->WorkRect.Max.x;
|
|
||||||
return mx;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImVec2 ImGui::GetContentRegionAvail()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GImGui->CurrentWindow;
|
|
||||||
return GetContentRegionMaxAbs() - window->DC.CursorPos;
|
|
||||||
}
|
|
||||||
|
|
||||||
// In window space (not screen space!)
|
|
||||||
ImVec2 ImGui::GetWindowContentRegionMin()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GImGui->CurrentWindow;
|
|
||||||
return window->ContentRegionRect.Min - window->Pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImVec2 ImGui::GetWindowContentRegionMax()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GImGui->CurrentWindow;
|
|
||||||
return window->ContentRegionRect.Max - window->Pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
float ImGui::GetWindowContentRegionWidth()
|
|
||||||
{
|
|
||||||
ImGuiWindow* window = GImGui->CurrentWindow;
|
|
||||||
return window->ContentRegionRect.GetWidth();
|
|
||||||
}
|
|
||||||
|
|
||||||
float ImGui::GetTextLineHeight()
|
|
||||||
{
|
|
||||||
ImGuiContext& g = *GImGui;
|
|
||||||
return g.FontSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
float ImGui::GetTextLineHeightWithSpacing()
|
|
||||||
{
|
|
||||||
ImGuiContext& g = *GImGui;
|
|
||||||
return g.FontSize + g.Style.ItemSpacing.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
float ImGui::GetFrameHeight()
|
|
||||||
{
|
|
||||||
ImGuiContext& g = *GImGui;
|
|
||||||
return g.FontSize + g.Style.FramePadding.y * 2.0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
float ImGui::GetFrameHeightWithSpacing()
|
|
||||||
{
|
|
||||||
ImGuiContext& g = *GImGui;
|
|
||||||
return g.FontSize + g.Style.FramePadding.y * 2.0f + g.Style.ItemSpacing.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImDrawList* ImGui::GetWindowDrawList()
|
ImDrawList* ImGui::GetWindowDrawList()
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
@ -6792,7 +6721,6 @@ static void ImGui::ErrorCheckEndFrame()
|
|||||||
IM_ASSERT_USER_ERROR(g.CurrentWindowStack.Size == 1, "Mismatched Begin/BeginChild vs End/EndChild calls: did you call End/EndChild too much?");
|
IM_ASSERT_USER_ERROR(g.CurrentWindowStack.Size == 1, "Mismatched Begin/BeginChild vs End/EndChild calls: did you call End/EndChild too much?");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save and compare stack sizes on Begin()/End() to detect usage errors
|
// Save and compare stack sizes on Begin()/End() to detect usage errors
|
||||||
@ -6837,6 +6765,15 @@ static void ImGui::ErrorCheckBeginEndCompareStacksSize(ImGuiWindow* window, bool
|
|||||||
// - PopItemWidth()
|
// - PopItemWidth()
|
||||||
// - CalcItemWidth()
|
// - CalcItemWidth()
|
||||||
// - CalcItemSize()
|
// - CalcItemSize()
|
||||||
|
// - GetTextLineHeight()
|
||||||
|
// - GetTextLineHeightWithSpacing()
|
||||||
|
// - GetFrameHeight()
|
||||||
|
// - GetFrameHeightWithSpacing()
|
||||||
|
// - GetContentRegionMax()
|
||||||
|
// - GetContentRegionMaxAbs() [Internal]
|
||||||
|
// - GetContentRegionAvail(),
|
||||||
|
// - GetWindowContentRegionMin(), GetWindowContentRegionMax()
|
||||||
|
// - GetWindowContentRegionWidth()
|
||||||
// - BeginGroup()
|
// - BeginGroup()
|
||||||
// - EndGroup()
|
// - EndGroup()
|
||||||
// Also see in imgui_widgets: tab bars, columns.
|
// Also see in imgui_widgets: tab bars, columns.
|
||||||
@ -7125,6 +7062,79 @@ ImVec2 ImGui::CalcItemSize(ImVec2 size, float default_w, float default_h)
|
|||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float ImGui::GetTextLineHeight()
|
||||||
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
return g.FontSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
float ImGui::GetTextLineHeightWithSpacing()
|
||||||
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
return g.FontSize + g.Style.ItemSpacing.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
float ImGui::GetFrameHeight()
|
||||||
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
return g.FontSize + g.Style.FramePadding.y * 2.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
float ImGui::GetFrameHeightWithSpacing()
|
||||||
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
return g.FontSize + g.Style.FramePadding.y * 2.0f + g.Style.ItemSpacing.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME: All the Contents Region function are messy or misleading. WE WILL AIM TO OBSOLETE ALL OF THEM WITH A NEW "WORK RECT" API. Thanks for your patience!
|
||||||
|
|
||||||
|
// FIXME: This is in window space (not screen space!).
|
||||||
|
ImVec2 ImGui::GetContentRegionMax()
|
||||||
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
ImGuiWindow* window = g.CurrentWindow;
|
||||||
|
ImVec2 mx = window->ContentRegionRect.Max - window->Pos;
|
||||||
|
if (window->DC.CurrentColumns)
|
||||||
|
mx.x = window->WorkRect.Max.x - window->Pos.x;
|
||||||
|
return mx;
|
||||||
|
}
|
||||||
|
|
||||||
|
// [Internal] Absolute coordinate. Saner. This is not exposed until we finishing refactoring work rect features.
|
||||||
|
ImVec2 ImGui::GetContentRegionMaxAbs()
|
||||||
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
ImGuiWindow* window = g.CurrentWindow;
|
||||||
|
ImVec2 mx = window->ContentRegionRect.Max;
|
||||||
|
if (window->DC.CurrentColumns)
|
||||||
|
mx.x = window->WorkRect.Max.x;
|
||||||
|
return mx;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImVec2 ImGui::GetContentRegionAvail()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GImGui->CurrentWindow;
|
||||||
|
return GetContentRegionMaxAbs() - window->DC.CursorPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
// In window space (not screen space!)
|
||||||
|
ImVec2 ImGui::GetWindowContentRegionMin()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GImGui->CurrentWindow;
|
||||||
|
return window->ContentRegionRect.Min - window->Pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImVec2 ImGui::GetWindowContentRegionMax()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GImGui->CurrentWindow;
|
||||||
|
return window->ContentRegionRect.Max - window->Pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
float ImGui::GetWindowContentRegionWidth()
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GImGui->CurrentWindow;
|
||||||
|
return window->ContentRegionRect.GetWidth();
|
||||||
|
}
|
||||||
|
|
||||||
// Lock horizontal starting position + capture group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.)
|
// Lock horizontal starting position + capture group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.)
|
||||||
void ImGui::BeginGroup()
|
void ImGui::BeginGroup()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user