Fixes for macOS

This commit is contained in:
David Chavez 2025-03-14 23:00:12 +01:00
parent dcc42fc596
commit 6d105ecbec
2 changed files with 13 additions and 9 deletions

View file

@ -49,16 +49,16 @@ namespace recompui {
void Slider::update_label_text() { void Slider::update_label_text() {
char text_buffer[32]; 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<int>(value));
} else {
std::snprintf(text_buffer, sizeof(text_buffer), "%d", static_cast<int>(value));
} }
value_label->set_text(text_buffer);
} }
Slider::Slider(Element *parent, SliderType type) : Element(parent) { Slider::Slider(Element *parent, SliderType type) : Element(parent) {

View file

@ -1,5 +1,6 @@
#include "ui_mod_menu.h" #include "ui_mod_menu.h"
#include "recomp_ui.h" #include "recomp_ui.h"
#include "zelda_support.h"
#include "librecomp/mods.hpp" #include "librecomp/mods.hpp"
@ -223,6 +224,9 @@ void ModMenu::open_mods_folder() {
#elif defined(__linux__) #elif defined(__linux__)
std::string command = "xdg-open " + mods_directory.string() + " &"; std::string command = "xdg-open " + mods_directory.string() + " &";
std::system(command.c_str()); std::system(command.c_str());
#elif defined(__APPLE__)
std::string command = "open " + mods_directory.string();
std::system(command.c_str());
#else #else
static_assert(false, "Not implemented for this platform."); static_assert(false, "Not implemented for this platform.");
#endif #endif
@ -540,7 +544,7 @@ ModMenu::ModMenu(Element *parent) : Element(parent) {
context.close(); 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(); sub_menu_context.open();
Rml::ElementDocument* sub_menu_doc = sub_menu_context.get_document(); Rml::ElementDocument* sub_menu_doc = sub_menu_context.get_document();
Rml::Element* config_sub_menu_generic = sub_menu_doc->GetElementById("config_sub_menu"); Rml::Element* config_sub_menu_generic = sub_menu_doc->GetElementById("config_sub_menu");