From 471ed347f4a4115ca6f3dfd321cdc14a2a2e4ac3 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Thu, 12 Mar 2026 03:22:35 +0300 Subject: [PATCH] overlay/settings: Use switch element instead of checkbox --- .../HomeMenu/overlay_home_menu_components.cpp | 31 ++++++------------- .../HomeMenu/overlay_home_menu_components.h | 5 +-- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_components.cpp b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_components.cpp index 52e34ea2b2..8a16255a70 100644 --- a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_components.cpp +++ b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_components.cpp @@ -58,7 +58,8 @@ namespace rsx add_element(text_stack); } - home_menu_checkbox::home_menu_checkbox(cfg::_bool* setting, const std::string& text) : home_menu_setting(setting, text) + home_menu_checkbox::home_menu_checkbox(cfg::_bool* setting, const std::string& text) + : home_menu_setting(setting, text) {} void home_menu_checkbox::set_size(u16 w, u16 h) @@ -66,35 +67,23 @@ namespace rsx set_reserved_width(w / 2 + menu_entry_margin); home_menu_setting::set_size(w, h); - auto box = std::make_unique(); - m_background = box->add_element(); - m_checkbox = box->add_element(); - - m_background->set_size(menu_checkbox_size, menu_checkbox_size); - m_checkbox->set_size(m_background->w - 2, m_background->h - 2); - m_checkbox->set_pos(1, 1); - - box->set_pos(0, 16); - add_element(box); + auto checkbox_ = std::make_unique(); + checkbox_->set_size(menu_checkbox_size, menu_checkbox_size); + checkbox_->set_pos(0, 16); + m_checkbox = add_element(checkbox_); } compiled_resource& home_menu_checkbox::get_compiled() { update_value(); - if (!is_compiled()) + if (is_compiled()) { - m_background->back_color = { 1.f }; - m_checkbox->back_color = { 0.3f }; - m_checkbox->back_color.a = 1.f; - m_checkbox->set_visible(!m_last_value); - - compiled_resources = horizontal_layout::get_compiled(); - compiled_resources.add(m_background->get_compiled()); - compiled_resources.add(m_checkbox->get_compiled()); + return compiled_resources; } - return compiled_resources; + m_checkbox->set_checked(m_last_value); + return horizontal_layout::get_compiled(); } } } diff --git a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_components.h b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_components.h index 167c9d918c..01fcf75957 100644 --- a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_components.h +++ b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_components.h @@ -1,6 +1,8 @@ #pragma once #include "Emu/RSX/Overlays/overlays.h" +#include "Emu/RSX/Overlays/overlay_checkbox.h" + #include "Emu/System.h" #include "Utilities/Config.h" @@ -109,8 +111,7 @@ namespace rsx compiled_resource& get_compiled() override; private: - overlay_element* m_background = nullptr; - overlay_element* m_checkbox = nullptr; + checkbox* m_checkbox = nullptr; }; template