From f38661593795e51e45e2dc2ead8a7bf897d226f6 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 9 Dec 2024 16:29:36 +0100 Subject: Start on global settings, add tint color setting --- src/Config.cpp | 1 + src/Overlay.cpp | 19 +++++++++- src/Theme.cpp | 48 +++++++++++++++--------- src/gui/Button.cpp | 44 ++++++++++++++++++++-- src/gui/GlobalSettingsPage.cpp | 83 ++++++++++++++++++++++++++++++++++++++++++ src/gui/SettingsPage.cpp | 3 +- src/gui/Utils.cpp | 17 +++++++++ 7 files changed, 190 insertions(+), 25 deletions(-) create mode 100644 src/gui/GlobalSettingsPage.cpp (limited to 'src') diff --git a/src/Config.cpp b/src/Config.cpp index 2263df7..4deaaf4 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -49,6 +49,7 @@ namespace gsr { return { {"main.config_file_version", &config.main_config.config_file_version}, {"main.software_encoding_warning_shown", &config.main_config.software_encoding_warning_shown}, + {"main.tint_color", &config.main_config.tint_color}, {"streaming.record_options.record_area_option", &config.streaming_config.record_options.record_area_option}, {"streaming.record_options.record_area_width", &config.streaming_config.record_options.record_area_width}, diff --git a/src/Overlay.cpp b/src/Overlay.cpp index 555c1d4..e10b1e4 100644 --- a/src/Overlay.cpp +++ b/src/Overlay.cpp @@ -7,8 +7,10 @@ #include "../include/gui/DropdownButton.hpp" #include "../include/gui/CustomRendererWidget.hpp" #include "../include/gui/SettingsPage.hpp" +#include "../include/gui/GlobalSettingsPage.hpp" #include "../include/gui/Utils.hpp" #include "../include/gui/PageStack.hpp" +#include "../include/gui/GsrPage.hpp" #include "../include/WindowUtils.hpp" #include "../include/GlobalHotkeys.hpp" @@ -420,7 +422,7 @@ namespace gsr { if(new_config) config = std::move(new_config.value()); - init_color_theme(this->gsr_info); + init_color_theme(config, this->gsr_info); power_supply_online_filepath = get_power_supply_online_filepath(); @@ -863,6 +865,7 @@ namespace gsr { const int button_width = button_height; auto main_buttons_list = std::make_unique(List::Orientation::HORIZONTAL); + List * main_buttons_list_ptr = main_buttons_list.get(); main_buttons_list->set_spacing(0.0f); { auto button = std::make_unique(&get_theme().title_font, &get_theme().body_font, "Instant Replay", "Off", &get_theme().replay_button_texture, @@ -928,6 +931,20 @@ namespace gsr { main_buttons_list->set_position((mgl::vec2f(window_size.x * 0.5f, window_size.y * 0.25f) - main_buttons_list_size * 0.5f).floor()); front_page_ptr->add_widget(std::move(main_buttons_list)); + { + const mgl::vec2f main_buttons_size = main_buttons_list_ptr->get_size(); + const int settings_button_size = main_buttons_size.y * 0.2f; + auto button = std::make_unique