diff --git a/Walnut/Platform/GUI/Walnut/UI/UI.cpp b/Walnut/Platform/GUI/Walnut/UI/UI.cpp index 31efeb01..fb5b8cda 100644 --- a/Walnut/Platform/GUI/Walnut/UI/UI.cpp +++ b/Walnut/Platform/GUI/Walnut/UI/UI.cpp @@ -552,6 +552,20 @@ namespace Walnut::UI { return ImGui::Button(label); } + bool ButtonLeft(const char* label, const ImVec2& size) + { + ImGuiStyle& style = ImGui::GetStyle(); + + float actualSize = ImGui::CalcTextSize(label).x + style.FramePadding.x * 2.0f; + float avail = ImGui::GetContentRegionAvail().x; + + float off = (avail - actualSize); + if (off > 0.0f) + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + off); + + return ImGui::Button(label); + } + void DrawBorder(ImRect rect, float thickness, float rounding, float offsetX, float offsetY) { auto min = rect.Min; diff --git a/Walnut/Platform/GUI/Walnut/UI/UI.h b/Walnut/Platform/GUI/Walnut/UI/UI.h index cc241c96..ab528254 100644 --- a/Walnut/Platform/GUI/Walnut/UI/UI.h +++ b/Walnut/Platform/GUI/Walnut/UI/UI.h @@ -49,6 +49,7 @@ namespace Walnut::UI { void EndMenubar(); bool ButtonCentered(const char* label, const ImVec2& size = ImVec2(0, 0)); + bool ButtonLeft(const char* label, const ImVec2& size = ImVec2(0, 0)); // Utilities class ScopedStyle