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);
}
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<box_layout>();
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<switchbox>();
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();
}
}
}

View file

@ -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 <typename T>