From 92c1772d555eee91ff86cda9c0179b64fa2a5522 Mon Sep 17 00:00:00 2001 From: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com> Date: Mon, 18 Nov 2024 13:25:44 +0300 Subject: [PATCH] Draw selection triangles. --- UnleashedRecomp/ui/options_menu.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/UnleashedRecomp/ui/options_menu.cpp b/UnleashedRecomp/ui/options_menu.cpp index 49e43df8..3e7432cf 100644 --- a/UnleashedRecomp/ui/options_menu.cpp +++ b/UnleashedRecomp/ui/options_menu.cpp @@ -332,8 +332,10 @@ static void DrawConfigOption(int32_t rowIndex, const ConfigDef* config) auto optionWidth = gridSize * 56.0f; auto optionHeight = gridSize * 5.5f; auto optionPadding = gridSize * 0.5f; - auto valueWidth = gridSize * 24.0f; + auto valueWidth = Scale(192.0f); auto valueHeight = gridSize * 3.0f; + auto triangleWidth = gridSize * 2.5f; + auto trianglePadding = gridSize; // Left side ImVec2 min = { clipRectMin.x, clipRectMin.y + (optionHeight + optionPadding) * rowIndex }; @@ -369,6 +371,26 @@ static void DrawConfigOption(int32_t rowIndex, const ConfigDef* config) SetShaderModifier(IMGUI_SHADER_MODIFIER_NONE); + // Selection triangles + if (g_selectedItem == config) + { + constexpr uint32_t COLOR = IM_COL32(0, 97, 0, 255); + + // Left + drawList->AddTriangleFilled( + { min.x - trianglePadding, min.y }, + { min.x - trianglePadding, max.y }, + { min.x - trianglePadding - triangleWidth, (min.y + max.y) / 2.0f }, + COLOR); + + // Right + drawList->AddTriangleFilled( + { max.x + trianglePadding, max.y }, + { max.x + trianglePadding, min.y }, + { max.x + trianglePadding + triangleWidth, (min.y + max.y) / 2.0f }, + COLOR); + } + auto valueText = config->GetValueLocalised(); size = Scale(20.0f);