forked from Mirror/Ryujinx
63b24b4af2
* Use savedata FS commands from LibHac * Add EnsureSaveData. Use ApplicationControlProperty struct * Add a function to migrate to the new directory layout * LibHac update * Change backup structure * Don't create UI files in the save path * Update RyuFs paths * Add GetProgramIndexForAccessLog Ryujinx only runs one program at a time, so always return values reflecting that * Load control NCA when loading from an NSP * Skip over UI stats when exiting * Set TitleName and TitleId in more cases. Fix TitleID naming style * Completely comment out GUI play stats code * rebase * Update LibHac * Update LibHac * Revert UI changes * Do migration automatically at startup * Rename RyuFs directory to Ryujinx * Update RyuFs text * Store savedata paths in the GUI * Make "Open Save Directory" work * Use a dummy NACP in EnsureSaveData if one is not loaded * Remove manual migration button * Respond to feedback * Don't read the installer config to get a version string * Delete nuget.config * Exclude 'sdcard' and 'bis' during migration Co-authored-by: Thog <thog@protonmail.com>
99 lines
3.4 KiB
C#
99 lines
3.4 KiB
C#
using Gtk;
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Runtime.InteropServices;
|
|
using Utf8Json;
|
|
using Utf8Json.Resolvers;
|
|
|
|
using GUI = Gtk.Builder.ObjectAttribute;
|
|
|
|
namespace Ryujinx.Ui
|
|
{
|
|
public class AboutWindow : Window
|
|
{
|
|
private static AboutInfo AboutInformation { get; set; }
|
|
|
|
#pragma warning disable CS0649
|
|
#pragma warning disable IDE0044
|
|
[GUI] Window _aboutWin;
|
|
[GUI] Label _versionText;
|
|
[GUI] Image _ryujinxLogo;
|
|
[GUI] Image _patreonLogo;
|
|
[GUI] Image _gitHubLogo;
|
|
[GUI] Image _discordLogo;
|
|
[GUI] Image _twitterLogo;
|
|
#pragma warning restore CS0649
|
|
#pragma warning restore IDE0044
|
|
|
|
public AboutWindow() : this(new Builder("Ryujinx.Ui.AboutWindow.glade")) { }
|
|
|
|
private AboutWindow(Builder builder) : base(builder.GetObject("_aboutWin").Handle)
|
|
{
|
|
builder.Autoconnect(this);
|
|
|
|
_aboutWin.Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png");
|
|
_ryujinxLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png" , 100, 100);
|
|
_patreonLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.PatreonLogo.png", 30 , 30 );
|
|
_gitHubLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.GitHubLogo.png" , 30 , 30 );
|
|
_discordLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.DiscordLogo.png", 30 , 30 );
|
|
_twitterLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.TwitterLogo.png", 30 , 30 );
|
|
|
|
// todo: Get version string
|
|
_versionText.Text = "Unknown Version";
|
|
}
|
|
|
|
private static void OpenUrl(string url)
|
|
{
|
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|
{
|
|
Process.Start(new ProcessStartInfo("cmd", $"/c start {url}"));
|
|
}
|
|
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
|
{
|
|
Process.Start("xdg-open", url);
|
|
}
|
|
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
|
{
|
|
Process.Start("open", url);
|
|
}
|
|
}
|
|
|
|
//Events
|
|
private void RyujinxButton_Pressed(object sender, ButtonPressEventArgs args)
|
|
{
|
|
OpenUrl("https://ryujinx.org");
|
|
}
|
|
|
|
private void PatreonButton_Pressed(object sender, ButtonPressEventArgs args)
|
|
{
|
|
OpenUrl("https://www.patreon.com/ryujinx");
|
|
}
|
|
|
|
private void GitHubButton_Pressed(object sender, ButtonPressEventArgs args)
|
|
{
|
|
OpenUrl("https://github.com/Ryujinx/Ryujinx");
|
|
}
|
|
|
|
private void DiscordButton_Pressed(object sender, ButtonPressEventArgs args)
|
|
{
|
|
OpenUrl("https://discordapp.com/invite/N2FmfVc");
|
|
}
|
|
|
|
private void TwitterButton_Pressed(object sender, ButtonPressEventArgs args)
|
|
{
|
|
OpenUrl("https://twitter.com/RyujinxEmu");
|
|
}
|
|
|
|
private void ContributorsButton_Pressed(object sender, ButtonPressEventArgs args)
|
|
{
|
|
OpenUrl("https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a");
|
|
}
|
|
|
|
private void CloseToggle_Activated(object sender, EventArgs args)
|
|
{
|
|
Dispose();
|
|
}
|
|
}
|
|
}
|