overlay/settings: Use switch element instead of checkbox

This commit is contained in:
kd-11 2026-03-12 03:22:35 +03:00 committed by kd-11
parent cff9b5b65e
commit 471ed347f4
2 changed files with 13 additions and 23 deletions

View file

@ -58,7 +58,8 @@ namespace rsx
add_element(text_stack); 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) void home_menu_checkbox::set_size(u16 w, u16 h)
@ -66,35 +67,23 @@ namespace rsx
set_reserved_width(w / 2 + menu_entry_margin); set_reserved_width(w / 2 + menu_entry_margin);
home_menu_setting::set_size(w, h); home_menu_setting::set_size(w, h);
auto box = std::make_unique<box_layout>(); auto checkbox_ = std::make_unique<switchbox>();
m_background = box->add_element(); checkbox_->set_size(menu_checkbox_size, menu_checkbox_size);
m_checkbox = box->add_element(); checkbox_->set_pos(0, 16);
m_checkbox = add_element(checkbox_);
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);
} }
compiled_resource& home_menu_checkbox::get_compiled() compiled_resource& home_menu_checkbox::get_compiled()
{ {
update_value(); update_value();
if (!is_compiled()) if (is_compiled())
{ {
m_background->back_color = { 1.f }; return compiled_resources;
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; m_checkbox->set_checked(m_last_value);
return horizontal_layout::get_compiled();
} }
} }
} }

View file

@ -1,6 +1,8 @@
#pragma once #pragma once
#include "Emu/RSX/Overlays/overlays.h" #include "Emu/RSX/Overlays/overlays.h"
#include "Emu/RSX/Overlays/overlay_checkbox.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Utilities/Config.h" #include "Utilities/Config.h"
@ -109,8 +111,7 @@ namespace rsx
compiled_resource& get_compiled() override; compiled_resource& get_compiled() override;
private: private:
overlay_element* m_background = nullptr; checkbox* m_checkbox = nullptr;
overlay_element* m_checkbox = nullptr;
}; };
template <typename T> template <typename T>