diff --git a/src/core/fullscreen_ui.cpp b/src/core/fullscreen_ui.cpp index d5b119e07..2bb12d76c 100644 --- a/src/core/fullscreen_ui.cpp +++ b/src/core/fullscreen_ui.cpp @@ -97,6 +97,7 @@ using ImGuiFullscreen::LAYOUT_MENU_BUTTON_Y_PADDING; using ImGuiFullscreen::LAYOUT_SCREEN_HEIGHT; using ImGuiFullscreen::LAYOUT_SCREEN_WIDTH; using ImGuiFullscreen::LAYOUT_SMALL_POPUP_PADDING; +using ImGuiFullscreen::LAYOUT_WIDGET_FRAME_ROUNDING; using ImGuiFullscreen::UIStyle; using ImGuiFullscreen::AddNotification; @@ -2940,6 +2941,9 @@ void FullscreenUI::DrawIntRangeSetting(SettingsInterface* bsi, std::string_view BeginMenuButtons(); + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(LAYOUT_WIDGET_FRAME_ROUNDING)); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); + ImGui::SetNextItemWidth(ImGui::GetCurrentWindow()->WorkRect.GetWidth()); s32 dlg_value = static_cast(value.value_or(default_value)); if (ImGui::SliderInt("##value", &dlg_value, min_value, max_value, format, ImGuiSliderFlags_NoInput)) @@ -2952,6 +2956,8 @@ void FullscreenUI::DrawIntRangeSetting(SettingsInterface* bsi, std::string_view SetSettingsChanged(bsi); } + ImGui::PopStyleVar(2); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + LayoutScale(10.0f)); if (MenuButtonWithoutSummary(FSUI_VSTR("OK"), true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY, UIStyle.LargeFont, ImVec2(0.5f, 0.0f))) @@ -2986,6 +2992,9 @@ void FullscreenUI::DrawFloatRangeSetting(SettingsInterface* bsi, std::string_vie BeginMenuButtons(); + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(LAYOUT_WIDGET_FRAME_ROUNDING)); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); + const float end = ImGui::GetCurrentWindow()->WorkRect.GetWidth(); ImGui::SetNextItemWidth(end); float dlg_value = value.value_or(default_value) * multiplier; @@ -3002,6 +3011,8 @@ void FullscreenUI::DrawFloatRangeSetting(SettingsInterface* bsi, std::string_vie SetSettingsChanged(bsi); } + ImGui::PopStyleVar(2); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + LayoutScale(10.0f)); if (MenuButtonWithoutSummary(FSUI_VSTR("OK"), true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY, UIStyle.LargeFont, ImVec2(0.5f, 0.0f))) @@ -3059,12 +3070,17 @@ void FullscreenUI::DrawFloatSpinBoxSetting(SettingsInterface* bsi, std::string_v ((tmp_value.value() - std::floor(tmp_value.value())) < 0.01f) ? "%.0f" : "%f", tmp_value.value()); } + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(LAYOUT_WIDGET_FRAME_ROUNDING)); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); + if (ImGui::InputText("##value", str_value, std::size(str_value), ImGuiInputTextFlags_CharsDecimal)) { dlg_value = StringUtil::FromChars(str_value).value_or(dlg_value); dlg_value_changed = true; } + ImGui::PopStyleVar(2); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + LayoutScale(10.0f)); } else @@ -3172,6 +3188,9 @@ bool FullscreenUI::DrawIntRectSetting(SettingsInterface* bsi, std::string_view t BeginMenuButtons(); + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(LAYOUT_WIDGET_FRAME_ROUNDING)); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); + const float midpoint = LayoutScale(150.0f); const float end = (ImGui::GetCurrentWindow()->WorkRect.GetWidth() - midpoint) + ImGui::GetStyle().WindowPadding.x; ImGui::TextUnformatted("Left: "); @@ -3231,6 +3250,8 @@ bool FullscreenUI::DrawIntRectSetting(SettingsInterface* bsi, std::string_view t if (changed) SetSettingsChanged(bsi); + ImGui::PopStyleVar(2); + if (MenuButtonWithoutSummary(FSUI_VSTR("OK"), true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY, UIStyle.LargeFont, ImVec2(0.5f, 0.0f))) { @@ -3285,6 +3306,9 @@ void FullscreenUI::DrawIntSpinBoxSetting(SettingsInterface* bsi, std::string_vie const float end = ImGui::GetCurrentWindow()->WorkRect.GetWidth(); ImGui::SetNextItemWidth(end); + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(LAYOUT_WIDGET_FRAME_ROUNDING)); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); + std::snprintf(str_value, std::size(str_value), "%d", dlg_value); if (ImGui::InputText("##value", str_value, std::size(str_value), ImGuiInputTextFlags_CharsDecimal)) { @@ -3292,6 +3316,8 @@ void FullscreenUI::DrawIntSpinBoxSetting(SettingsInterface* bsi, std::string_vie dlg_value_changed = true; } + ImGui::PopStyleVar(2); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + LayoutScale(10.0f)); } else @@ -6391,7 +6417,7 @@ void FullscreenUI::DrawAchievementsLoginWindow() BeginMenuButtons(); ImGui::PushStyleColor(ImGuiCol_Text, DarkerColor(ImGui::GetStyle().Colors[ImGuiCol_Text])); - ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(20.0f)); + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(LAYOUT_WIDGET_FRAME_ROUNDING)); ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); if (!login_error) diff --git a/src/util/imgui_fullscreen.cpp b/src/util/imgui_fullscreen.cpp index de335c6ea..428a849da 100644 --- a/src/util/imgui_fullscreen.cpp +++ b/src/util/imgui_fullscreen.cpp @@ -1926,8 +1926,13 @@ bool ImGuiFullscreen::RangeButton(std::string_view title, std::string_view summa const float end = ImGui::GetCurrentWindow()->WorkRect.GetWidth(); ImGui::SetNextItemWidth(end); + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(LAYOUT_WIDGET_FRAME_ROUNDING)); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); + changed = ImGui::SliderInt("##value", value, min, max, format, ImGuiSliderFlags_NoInput); + ImGui::PopStyleVar(2); + ImGui::SetCursorPosY(ImGui::GetCursorPosY() + LayoutScale(10.0f)); if (MenuButtonWithoutSummary(ok_text, true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY, UIStyle.LargeFont, ImVec2(0.5f, 0.0f))) @@ -1987,8 +1992,13 @@ bool ImGuiFullscreen::RangeButton(std::string_view title, std::string_view summa const float end = ImGui::GetCurrentWindow()->WorkRect.GetWidth(); ImGui::SetNextItemWidth(end); + ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, LayoutScale(LAYOUT_WIDGET_FRAME_ROUNDING)); + ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); + changed = ImGui::SliderFloat("##value", value, min, max, format, ImGuiSliderFlags_NoInput); + ImGui::PopStyleVar(2); + if (MenuButtonWithoutSummary(ok_text, true, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY, UIStyle.LargeFont, ImVec2(0.5f, 0.0f))) { @@ -2285,7 +2295,7 @@ bool ImGuiFullscreen::BeginHorizontalMenu(const char* name, const ImVec2& positi const float item_padding = LayoutScale(LAYOUT_HORIZONTAL_MENU_PADDING); const float item_width = LayoutScale(LAYOUT_HORIZONTAL_MENU_ITEM_WIDTH); - const float item_spacing = LayoutScale(30.0f); + const float item_spacing = LayoutScale(40.0f); const float menu_width = static_cast(num_items) * (item_width + item_spacing) - item_spacing; const float menu_height = LayoutScale(LAYOUT_HORIZONTAL_MENU_HEIGHT); diff --git a/src/util/imgui_fullscreen.h b/src/util/imgui_fullscreen.h index 508ac4ffc..7dd3cf01f 100644 --- a/src/util/imgui_fullscreen.h +++ b/src/util/imgui_fullscreen.h @@ -51,6 +51,7 @@ static constexpr float LAYOUT_SHADOW_OFFSET = 1.0f; static constexpr float LAYOUT_SMALL_POPUP_PADDING = 20.0f; static constexpr float LAYOUT_LARGE_POPUP_PADDING = 30.0f; static constexpr float LAYOUT_LARGE_POPUP_ROUNDING = 40.0f; +static constexpr float LAYOUT_WIDGET_FRAME_ROUNDING = 20.0f; struct ALIGN_TO_CACHE_LINE UIStyles {