using Gtk; using System.Reflection; namespace Ryujinx.Ui { internal class GtkDialog { internal static bool _isExitDialogOpen = false; internal static void CreateDialog(string title, string text, string secondaryText) { MessageDialog errorDialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, null) { Title = title, Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png"), Text = text, SecondaryText = secondaryText, WindowPosition = WindowPosition.Center }; errorDialog.SetSizeRequest(100, 20); errorDialog.Run(); errorDialog.Dispose(); } internal static void CreateWarningDialog(string text, string secondaryText) { CreateDialog("Ryujinx - Warning", text, secondaryText); } internal static void CreateErrorDialog(string errorMessage) { CreateDialog("Ryujinx - Error", "Ryujinx has encountered an error", errorMessage); } internal static bool CreateExitDialog() { if (_isExitDialogOpen) { return false; } _isExitDialogOpen = true; MessageDialog messageDialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Question, ButtonsType.OkCancel, null) { Title = "Ryujinx - Exit", Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.Icon.png"), Text = "Are you sure you want to stop emulation?", SecondaryText = "All unsaved data will be lost", WindowPosition = WindowPosition.Center }; messageDialog.SetSizeRequest(100, 20); ResponseType res = (ResponseType)messageDialog.Run(); messageDialog.Dispose(); _isExitDialogOpen = false; if (res == ResponseType.Ok) { return true; } return false; } } }