diff --git a/ui/xemu-hud.cc b/ui/xemu-hud.cc index 1f4fcde1e2..55f7a14824 100644 --- a/ui/xemu-hud.cc +++ b/ui/xemu-hud.cc @@ -31,6 +31,9 @@ #include "xemu-version.h" #include "xemu-data.h" #include "xemu-net.h" +#include "xemu-os-utils.h" +#include "xemu-xbe.h" + #include "imgui/imgui.h" #include "imgui/examples/imgui_impl_sdl.h" @@ -1140,7 +1143,7 @@ struct AboutWindow AboutWindow() { snprintf(build_info_text, sizeof(build_info_text), - "Verson: %s\n" "Branch: %s\n" "Commit: %s\n" "Date: %s\n", + "Verson: %s\n" "Branch: %s\n" "Commit: %s\n" "Date: %s", xemu_version, xemu_branch, xemu_commit, xemu_date); // FIXME: Show platform // FIXME: Show driver @@ -1185,18 +1188,22 @@ struct AboutWindow ImGui::SetCursorPosX(10*ui_scale); ImGui::SetCursorPosY(ImGui::GetCursorPosY()-100*ui_scale); - ImGui::SetCursorPosX((ImGui::GetWindowWidth()-ImGui::CalcTextSize(xemu_version).x)/2); ImGui::Text("%s", xemu_version); ImGui::SetCursorPosX(10*ui_scale); - ImGui::Dummy(ImVec2(0,35*ui_scale)); + ImGui::Dummy(ImVec2(0,20*ui_scale)); const char *msg = "Visit https://xemu.app for more information"; - ImGui::SetCursorPosX((ImGui::GetWindowWidth()-ImGui::CalcTextSize(msg).x)/2); - ImGui::Text("%s", msg); + float button_width = ImGui::GetStyle().FramePadding.x*2 + ImGui::CalcTextSize(msg).x; + ImGui::SetCursorPosX((ImGui::GetWindowWidth()-button_width)/2); + // ImGui::Text("%s", msg); - ImGui::Dummy(ImVec2(0,35*ui_scale)); + if (ImGui::Button(msg, ImVec2(button_width, 0))) { + xemu_open_web_browser("https://xemu.app"); + } + + ImGui::Dummy(ImVec2(0,40*ui_scale)); ImGui::PushFont(fixed_width_font); ImGui::InputTextMultiline("##build_info", build_info_text, IM_ARRAYSIZE(build_info_text), ImVec2(-FLT_MIN, ImGui::GetTextLineHeight() * 6), ImGuiInputTextFlags_ReadOnly); @@ -1433,9 +1440,6 @@ const char *get_cpu_info(void) return cpu_info; } -#include "xemu-os-utils.h" -#include "xemu-xbe.h" - struct CompatibilityReporter { CompatibilityReporter() diff --git a/ui/xemu-os-utils-linux.c b/ui/xemu-os-utils-linux.c index ff74b8030e..80d5539996 100644 --- a/ui/xemu-os-utils-linux.c +++ b/ui/xemu-os-utils-linux.c @@ -65,3 +65,10 @@ const char *xemu_get_os_info(void) return os_info; } + +void xemu_open_web_browser(const char *url) +{ + char *cmd = g_strdup_printf("xdg-open %s", url); + system(cmd); + free(cmd); +} diff --git a/ui/xemu-os-utils-macos.m b/ui/xemu-os-utils-macos.m index bc05ced262..829a8c81cf 100644 --- a/ui/xemu-os-utils-macos.m +++ b/ui/xemu-os-utils-macos.m @@ -1,4 +1,5 @@ #import <Foundation/Foundation.h> +#import <AppKit/AppKit.h> #include "xemu-os-utils.h" const char *xemu_get_os_info(void) @@ -6,3 +7,7 @@ const char *xemu_get_os_info(void) return [[[NSProcessInfo processInfo] operatingSystemVersionString] UTF8String]; } +void xemu_open_web_browser(const char *url) +{ + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:[NSString stringWithUTF8String:url]]]; +} diff --git a/ui/xemu-os-utils-windows.c b/ui/xemu-os-utils-windows.c index b097a2903d..daee16b450 100644 --- a/ui/xemu-os-utils-windows.c +++ b/ui/xemu-os-utils-windows.c @@ -5,3 +5,7 @@ const char *xemu_get_os_info(void) return "Windows"; } +void xemu_open_web_browser(const char *url) +{ + ShellExecute(0, "open", url, 0, 0 , SW_SHOW); +} diff --git a/ui/xemu-os-utils.h b/ui/xemu-os-utils.h index abe4482fd4..cb7afdef05 100644 --- a/ui/xemu-os-utils.h +++ b/ui/xemu-os-utils.h @@ -6,6 +6,7 @@ extern "C" { #endif const char *xemu_get_os_info(void); +void xemu_open_web_browser(const char *url); #ifdef __cplusplus }