From e75a6634e12c21b270b1f677f9d40c957c2b473c Mon Sep 17 00:00:00 2001 From: Ivan Gagis Date: Sun, 6 Oct 2024 15:42:29 +0300 Subject: [PATCH] add language settings file --- src/bedsidemon/gui.cpp | 3 +- src/bedsidemon/settings.cpp | 49 +++++++++++++++++++++++++++++++- src/bedsidemon/settings.hpp | 3 ++ src/bedsidemon/settings_menu.cpp | 6 ++-- 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/bedsidemon/gui.cpp b/src/bedsidemon/gui.cpp index 10e1ba0..69bebde 100644 --- a/src/bedsidemon/gui.cpp +++ b/src/bedsidemon/gui.cpp @@ -200,8 +200,7 @@ utki::shared_ref make_root_widget_structure(utki::shared_refsettings_v.sweep_speed_um_per_sec)); } + if (this->settings_v.cur_language_index != 0) { + add_setting(language_key, tml::leaf(language_index_to_id(this->settings_v.cur_language_index))); + } + std::filesystem::create_directories(ruisapp::application::inst().directory.config); papki::fs_file fi(filename); tml::write(tml, fi); } + +constexpr decltype(settings::language_id_to_name_mapping) settings::language_id_to_name_mapping{ + { + {"en"sv, U"English"sv}, + {"fi"sv, U"Suomi"sv}, + {"ru"sv, U"Русский"sv}, + } +}; diff --git a/src/bedsidemon/settings.hpp b/src/bedsidemon/settings.hpp index 2f21d17..989fd07 100644 --- a/src/bedsidemon/settings.hpp +++ b/src/bedsidemon/settings.hpp @@ -30,6 +30,9 @@ namespace bedsidemon { struct settings { constexpr static const auto default_sweep_speed_um_per_sec = 25000; uint32_t sweep_speed_um_per_sec = default_sweep_speed_um_per_sec; + + static const std::array, 3> language_id_to_name_mapping; + size_t cur_language_index = 0; }; class settings_storage : public utki::singleton diff --git a/src/bedsidemon/settings_menu.cpp b/src/bedsidemon/settings_menu.cpp index 23281a1..eebadb8 100644 --- a/src/bedsidemon/settings_menu.cpp +++ b/src/bedsidemon/settings_menu.cpp @@ -49,10 +49,10 @@ constexpr const std::array sweep_speeds_um_per_sec = { } // namespace namespace { -class selection_box_provider : public ruis::selection_box::provider +class sweep_speed_selection_box_provider : public ruis::selection_box::provider { public: - selection_box_provider() = default; + sweep_speed_selection_box_provider() = default; size_t count() const noexcept override { @@ -128,7 +128,7 @@ std::vector> make_menu_contents(utki::shared_ref< .id = "sweep_speed_selection_box"s }, .selection_params = { - .provider = std::make_shared() + .provider = std::make_shared() } } )