AboutWindow.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using Gtk;
  2. using System;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Reflection;
  6. using System.Runtime.InteropServices;
  7. using Utf8Json;
  8. using Utf8Json.Resolvers;
  9. using GUI = Gtk.Builder.ObjectAttribute;
  10. namespace Ryujinx.Ui
  11. {
  12. public class AboutWindow : Window
  13. {
  14. #pragma warning disable CS0649
  15. #pragma warning disable IDE0044
  16. [GUI] Window _aboutWin;
  17. [GUI] Label _versionText;
  18. [GUI] Image _ryujinxLogo;
  19. [GUI] Image _patreonLogo;
  20. [GUI] Image _gitHubLogo;
  21. [GUI] Image _discordLogo;
  22. [GUI] Image _twitterLogo;
  23. #pragma warning restore CS0649
  24. #pragma warning restore IDE0044
  25. public AboutWindow() : this(new Builder("Ryujinx.Ui.AboutWindow.glade")) { }
  26. private AboutWindow(Builder builder) : base(builder.GetObject("_aboutWin").Handle)
  27. {
  28. builder.Autoconnect(this);
  29. _aboutWin.Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png");
  30. _ryujinxLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png" , 100, 100);
  31. _patreonLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.PatreonLogo.png", 30 , 30 );
  32. _gitHubLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.GitHubLogo.png" , 30 , 30 );
  33. _discordLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.DiscordLogo.png", 30 , 30 );
  34. _twitterLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.TwitterLogo.png", 30 , 30 );
  35. _versionText.Text = Program.Version;
  36. }
  37. private static void OpenUrl(string url)
  38. {
  39. if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
  40. {
  41. Process.Start(new ProcessStartInfo("cmd", $"/c start {url}"));
  42. }
  43. else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
  44. {
  45. Process.Start("xdg-open", url);
  46. }
  47. else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
  48. {
  49. Process.Start("open", url);
  50. }
  51. }
  52. //Events
  53. private void RyujinxButton_Pressed(object sender, ButtonPressEventArgs args)
  54. {
  55. OpenUrl("https://ryujinx.org");
  56. }
  57. private void PatreonButton_Pressed(object sender, ButtonPressEventArgs args)
  58. {
  59. OpenUrl("https://www.patreon.com/ryujinx");
  60. }
  61. private void GitHubButton_Pressed(object sender, ButtonPressEventArgs args)
  62. {
  63. OpenUrl("https://github.com/Ryujinx/Ryujinx");
  64. }
  65. private void DiscordButton_Pressed(object sender, ButtonPressEventArgs args)
  66. {
  67. OpenUrl("https://discordapp.com/invite/N2FmfVc");
  68. }
  69. private void TwitterButton_Pressed(object sender, ButtonPressEventArgs args)
  70. {
  71. OpenUrl("https://twitter.com/RyujinxEmu");
  72. }
  73. private void ContributorsButton_Pressed(object sender, ButtonPressEventArgs args)
  74. {
  75. OpenUrl("https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a");
  76. }
  77. private void CloseToggle_Activated(object sender, EventArgs args)
  78. {
  79. Dispose();
  80. }
  81. }
  82. }