From 6d105ecbecdc61b3682ce63e183cdaac0bfc2e78 Mon Sep 17 00:00:00 2001 From: David Chavez Date: Fri, 14 Mar 2025 23:00:12 +0100 Subject: [PATCH] Fixes for macOS --- src/ui/elements/ui_slider.cpp | 16 ++++++++-------- src/ui/ui_mod_menu.cpp | 6 +++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/ui/elements/ui_slider.cpp b/src/ui/elements/ui_slider.cpp index 4cd096c..afa890d 100644 --- a/src/ui/elements/ui_slider.cpp +++ b/src/ui/elements/ui_slider.cpp @@ -49,16 +49,16 @@ namespace recompui { void Slider::update_label_text() { char text_buffer[32]; - int precision = type == SliderType::Double ? 1 : 0; - auto result = std::to_chars(text_buffer, text_buffer + sizeof(text_buffer) - 1, value, std::chars_format::fixed, precision); - if (result.ec == std::errc()) { - if (type == SliderType::Percent) { - *result.ptr = '%'; - result.ptr++; - } - value_label->set_text(std::string(text_buffer, result.ptr)); + if (type == SliderType::Double) { + std::snprintf(text_buffer, sizeof(text_buffer), "%.1f", value); + } else if (type == SliderType::Percent) { + std::snprintf(text_buffer, sizeof(text_buffer), "%d%%", static_cast(value)); + } else { + std::snprintf(text_buffer, sizeof(text_buffer), "%d", static_cast(value)); } + + value_label->set_text(text_buffer); } Slider::Slider(Element *parent, SliderType type) : Element(parent) { diff --git a/src/ui/ui_mod_menu.cpp b/src/ui/ui_mod_menu.cpp index 701664b..57ecaa4 100644 --- a/src/ui/ui_mod_menu.cpp +++ b/src/ui/ui_mod_menu.cpp @@ -1,5 +1,6 @@ #include "ui_mod_menu.h" #include "recomp_ui.h" +#include "zelda_support.h" #include "librecomp/mods.hpp" @@ -223,6 +224,9 @@ void ModMenu::open_mods_folder() { #elif defined(__linux__) std::string command = "xdg-open " + mods_directory.string() + " &"; std::system(command.c_str()); +#elif defined(__APPLE__) + std::string command = "open " + mods_directory.string(); + std::system(command.c_str()); #else static_assert(false, "Not implemented for this platform."); #endif @@ -540,7 +544,7 @@ ModMenu::ModMenu(Element *parent) : Element(parent) { context.close(); - sub_menu_context = recompui::create_context("assets/config_sub_menu.rml"); + sub_menu_context = recompui::create_context(zelda64::get_asset_path("config_sub_menu.rml")); sub_menu_context.open(); Rml::ElementDocument* sub_menu_doc = sub_menu_context.get_document(); Rml::Element* config_sub_menu_generic = sub_menu_doc->GetElementById("config_sub_menu");