GtkDialog.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using Gtk;
  2. using System.Reflection;
  3. namespace Ryujinx.Ui
  4. {
  5. internal class GtkDialog
  6. {
  7. internal static bool _isExitDialogOpen = false;
  8. internal static void CreateDialog(string title, string text, string secondaryText)
  9. {
  10. MessageDialog errorDialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, null)
  11. {
  12. Title = title,
  13. Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png"),
  14. Text = text,
  15. SecondaryText = secondaryText,
  16. WindowPosition = WindowPosition.Center
  17. };
  18. errorDialog.SetSizeRequest(100, 20);
  19. errorDialog.Run();
  20. errorDialog.Dispose();
  21. }
  22. internal static void CreateWarningDialog(string text, string secondaryText)
  23. {
  24. CreateDialog("Ryujinx - Warning", text, secondaryText);
  25. }
  26. internal static void CreateErrorDialog(string errorMessage)
  27. {
  28. CreateDialog("Ryujinx - Error", "Ryujinx has encountered an error", errorMessage);
  29. }
  30. internal static bool CreateExitDialog()
  31. {
  32. if (_isExitDialogOpen)
  33. {
  34. return false;
  35. }
  36. _isExitDialogOpen = true;
  37. MessageDialog messageDialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, ButtonsType.OkCancel, null)
  38. {
  39. Title = "Ryujinx - Exit",
  40. Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png"),
  41. Text = "Are you sure you want to stop emulation?",
  42. SecondaryText = "All unsaved data will be lost",
  43. WindowPosition = WindowPosition.Center
  44. };
  45. messageDialog.SetSizeRequest(100, 20);
  46. ResponseType res = (ResponseType)messageDialog.Run();
  47. messageDialog.Dispose();
  48. _isExitDialogOpen = false;
  49. if (res == ResponseType.Ok)
  50. {
  51. return true;
  52. }
  53. return false;
  54. }
  55. }
  56. }