/// <summary> /// Ask if really continue if unsaved changes. /// </summary> /// <param name="act">What we would do ("quit", "close", "open another file" or such)</param> /// <returns>True if continue otherwise false</returns> private bool ChangeConfirm(string act) { if (UndoManager.IsDirty) { Gtk.MessageDialog md = new Gtk.MessageDialog(MainWindow, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Warning, Gtk.ButtonsType.None, "Continue without saving changes?" + Environment.NewLine + Environment.NewLine + "If you " + act + " without saving, changes since the last save will be discarded."); md.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); md.AddButton("Save and close", Gtk.ResponseType.Accept); md.AddButton("Discard Changes", Gtk.ResponseType.Yes); Gtk.ResponseType result = (Gtk.ResponseType)md.Run(); md.Destroy(); if (result == Gtk.ResponseType.Accept) { Save(false); return(true); } else if (result != Gtk.ResponseType.Yes) { return(false); } } return(true); }
public static bool CloseProject() { if (Project.Modified) { string msg = Catalog.GetString ("Do you want to save the project before closing?"); Gtk.MessageDialog dlg = new Gtk.MessageDialog (null, Gtk.DialogFlags.Modal, Gtk.MessageType.Question, ButtonsType.None, msg); dlg.AddButton (Catalog.GetString ("Close without saving"), Gtk.ResponseType.No); dlg.AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); dlg.AddButton (Gtk.Stock.Save, Gtk.ResponseType.Yes); Gtk.ResponseType res = (Gtk.ResponseType) dlg.Run (); dlg.Destroy (); if (res == Gtk.ResponseType.Cancel) return false; if (res == Gtk.ResponseType.Yes) { if (!SaveProject ()) return false; } } object[] obs = new object [openWindows.Count]; openWindows.Values.CopyTo (obs, 0); foreach (Gtk.Widget page in obs) { WidgetNotebook.Remove (page); page.Destroy (); } openWindows.Clear (); Project.Close (); MainWindow.Title = "Stetic"; ProjectView.Clear (); return true; }
private void ShowCertDialog () { Logger.Debug ("Showing Cert Dialog: " + Handler.UserMessage); CertPolicyHandler.Response ret = CertPolicyHandler.Response.None; using (var handle = new AutoResetEvent(false)) { Application.Invoke (delegate { try { using (MessageDialog md = new MessageDialog (null, DialogFlags.Modal, MessageType.Warning, ButtonsType.None, Handler.UserMessage + "\n\nDo you trust this certificate?") { Title = "Untrusted Certificate"}) { using (var noButton = md.AddButton("No", (int)CertPolicyHandler.Response.CertDeny)) using (var justNowButton = md.AddButton("Just now", (int)CertPolicyHandler.Response.CertAcceptSession)) using (var alwaysButton = md.AddButton("Always", (int)CertPolicyHandler.Response.CertAcceptAlways)) { ret = (CertPolicyHandler.Response)md.Run (); md.Destroy (); } } } finally { handle.Set (); } } ); handle.WaitOne (); } Logger.Debug ("Cert Dialog return:" + ret.ToString ()); Handler.UserResponse = ret; }
private void brisiSveClicked(object sender, EventArgs e) { if (currentKategorija != null) { Dialog d = new Gtk.MessageDialog(this, DialogFlags.Modal, MessageType.Warning, ButtonsType.None, "Time ćete obrisati sve postojeće troškove. Jeste li sigurni da želite obrisati sve troškove u kategoriji " + currentKategorija + "?"); d.AddButton("Da", Gtk.ResponseType.Yes); d.AddButton("Ne", Gtk.ResponseType.No); var odgovor = (Gtk.ResponseType)d.Run(); if (odgovor == Gtk.ResponseType.Yes) { d.Destroy(); trosakPresenter.brisiSveTroskove(currentKategorija); MessageBox.Popout("Izbrisano", 2, this); } else { d.Destroy(); } } else { MessageBox.Popout("Odaberite kategoriju ukoliko želite\n obrisati sve troškove u kategoriji", 2, this); } }
void SetLabel() { Gtk.MessageDialog md = new Gtk.MessageDialog(null, 0, Gtk.MessageType.Question, Gtk.ButtonsType.None, "<b>" + Catalog.GetString("Set the timer's label to:") + "</b>"); md.Title = "Docky Timer"; md.Icon = DockServices.Drawing.LoadIcon("docky", 22); md.Modal = false; md.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); md.AddButton(Catalog.GetString("_Set Label"), Gtk.ResponseType.Ok); md.DefaultResponse = Gtk.ResponseType.Ok; Gtk.Entry labelEntry = new Gtk.Entry("" + label); labelEntry.Activated += delegate { Label = labelEntry.Text; md.Destroy(); }; labelEntry.Show(); md.VBox.PackEnd(labelEntry); md.Response += (o, args) => { if (args.ResponseId != Gtk.ResponseType.Cancel) { Label = labelEntry.Text; } md.Destroy(); }; md.Show(); }
public static ResponseType ShowYesNoCancelDialog(Window parent, string message) { var dialog = new MessageDialog (parent, DialogFlags.Modal, MessageType.Question, ButtonsType.None, message); dialog.AddButton ("Close without Saving", (int) ResponseType.No); dialog.AddButton ("Cancel", (int) ResponseType.Cancel); dialog.AddButton ("Save", (int) ResponseType.Yes); ResponseType ret = (ResponseType) dialog.Run (); dialog.Destroy (); return ret; }
static ResponseType PromptEmptyTrash(this Mount m, out MessageDialog dialog) { dialog = new Gtk.MessageDialog(null, DialogFlags.Modal, MessageType.Question, ButtonsType.None, EmptyTrashMessage); dialog.Title = EmptyTrashTitle; dialog.AddButton("Do _not Empty Trash", ResponseType.Reject); dialog.AddButton(Gtk.Stock.Cancel, ResponseType.Cancel); dialog.AddButton("Empty _Trash", ResponseType.Accept); dialog.DefaultResponse = ResponseType.Accept; dialog.SkipTaskbarHint = true; return((ResponseType)dialog.Run()); }
protected void showQuestionIzlaz(object sender, EventArgs e) { Dialog d = new Gtk.MessageDialog(this, DialogFlags.Modal, MessageType.Question, ButtonsType.None, "Jeste li sigurni da želite izaći iz programa?"); d.AddButton("Da", Gtk.ResponseType.Yes); d.AddButton("Ne", Gtk.ResponseType.No); var odgovor = (Gtk.ResponseType)d.Run(); d.Destroy(); if (odgovor == ResponseType.Yes) { Application.Quit(); } }
private void Activated(object sender, EventArgs e) { // Commit any pending changes PintaCore.Tools.Commit (); // If it's not dirty, just close it if (!PintaCore.Workspace.ActiveDocument.IsDirty) { PintaCore.Workspace.CloseActiveDocument (); return; } var primary = Catalog.GetString ("Save the changes to image \"{0}\" before closing?"); var secondary = Catalog.GetString ("If you don't save, all changes will be permanently lost."); var message = string.Format (markup, primary, secondary); var md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Warning, ButtonsType.None, true, message, System.IO.Path.GetFileName (PintaCore.Workspace.ActiveDocument.Filename)); // Use the standard button order for each OS. if (PintaCore.System.OperatingSystem == OS.Windows) { md.AddButton (Stock.Save, ResponseType.Yes); md.AddButton (Catalog.GetString ("Close without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); } else { md.AddButton (Catalog.GetString ("Close without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Yes); } // so that user won't accidentally overwrite md.DefaultResponse = ResponseType.Cancel; ResponseType response = (ResponseType)md.Run (); md.Destroy (); if (response == ResponseType.Yes) { PintaCore.Workspace.ActiveDocument.Save (false); // If the image is still dirty, the user // must have cancelled the Save dialog if (!PintaCore.Workspace.ActiveDocument.IsDirty) PintaCore.Workspace.CloseActiveDocument (); } else if (response == ResponseType.No) { PintaCore.Workspace.CloseActiveDocument (); } }
public override bool Execute() { var message = new MessageDialog(null, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.None, Markup.EscapeText(_message)); if (_continue) { message.AddButton("Continue", ResponseType.Ok); } message.AddButton("Stop", ResponseType.Cancel); var response = (ResponseType) message.Run(); message.Destroy(); return response == ResponseType.Ok; }
public static bool ShowDaNe(Window w, MessageType msgType, string message) { Dialog d = new Gtk.MessageDialog(w, DialogFlags.Modal, msgType, ButtonsType.None, message); d.AddButton("Da", Gtk.ResponseType.Yes); d.AddButton("Ne", Gtk.ResponseType.No); d.SetPosition(WindowPosition.Center); d.Icon = Gdk.Pixbuf.LoadFromResource("NewRestoran.images.logo.png"); ResponseType rt = (ResponseType)d.Run(); d.Destroy(); if (rt == ResponseType.Yes) { return(true); } return(false); }
public static bool ShowYesNo(Window prozor, string message) { Dialog d = new Gtk.MessageDialog(prozor, DialogFlags.Modal, MessageType.Question, ButtonsType.None, message); d.AddButton("Da", Gtk.ResponseType.Yes); d.AddButton("Ne", Gtk.ResponseType.No); //d.SetPosition(WindowPosition.Center); ResponseType rt = (ResponseType)d.Run(); d.Destroy(); if (rt == ResponseType.Yes) { return(true); } return(false); }
protected virtual void OnDeleteDockButtonClicked(object sender, System.EventArgs e) { if (!(Docky.Controller.Docks.Count() > 1)) { return; } if (ActiveDock != null) { Gtk.MessageDialog md = new Gtk.MessageDialog(null, 0, Gtk.MessageType.Warning, Gtk.ButtonsType.None, "<b><big>" + Catalog.GetString("Delete the currently selected dock?") + "</big></b>"); md.Icon = DockServices.Drawing.LoadIcon("docky", 22); md.SecondaryText = Catalog.GetString("If you choose to delete the dock, all settings\n" + "for the deleted dock will be permanently lost."); md.Modal = true; md.KeepAbove = true; md.Stick(); md.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); md.AddButton(Catalog.GetString("_Delete Dock"), Gtk.ResponseType.Ok); md.DefaultResponse = Gtk.ResponseType.Ok; if ((ResponseType)md.Run() == Gtk.ResponseType.Ok) { ActiveDock.ConfigurationClick -= HandleDockConfigurationClick; ActiveDock.LeaveConfigurationMode(); Docky.Controller.DeleteDock(ActiveDock); if (Docky.Controller.Docks.Count() == 1) { ActiveDock = Docky.Controller.Docks.First(); } else { ActiveDock = null; } } md.Destroy(); } }
public static bool CloseProject() { if (Project.Modified) { string msg = Catalog.GetString("Do you want to save the project before closing?"); Gtk.MessageDialog dlg = new Gtk.MessageDialog(null, Gtk.DialogFlags.Modal, Gtk.MessageType.Question, ButtonsType.None, msg); dlg.AddButton(Catalog.GetString("Close without saving"), Gtk.ResponseType.No); dlg.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); dlg.AddButton(Gtk.Stock.Save, Gtk.ResponseType.Yes); Gtk.ResponseType res = (Gtk.ResponseType)dlg.Run(); dlg.Destroy(); if (res == Gtk.ResponseType.Cancel) { return(false); } if (res == Gtk.ResponseType.Yes) { if (!SaveProject()) { return(false); } } } object[] obs = new object [openWindows.Count]; openWindows.Values.CopyTo(obs, 0); foreach (Gtk.Widget page in obs) { WidgetNotebook.Remove(page); page.Destroy(); } openWindows.Clear(); Project.Close(); MainWindow.Title = "Stetic"; ProjectView.Clear(); return(true); }
public static void ShowConfirmationDialog (string title, string text, string icon_name, System.Action action) { MessageDialog md = new MessageDialog (null, 0, MessageType.Question, ButtonsType.None, text); md.Title = title; md.Image = Image.NewFromIconName (icon_name, Gtk.IconSize.Dialog); md.Image.Visible = true; md.Image.Show (); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (title, ResponseType.Ok); md.DefaultResponse = ResponseType.Ok; md.Response += (o, args) => { if (args.ResponseId == ResponseType.Ok) action.Invoke (); md.Destroy (); }; md.Show (); }
protected void showCustomQuestion(object sender, EventArgs e) { // instanciranje dijaloga sa posebno definiranim gumbima // ButtonsType.None označuje da ne želimo koristiti preddefinirane gumbe Dialog d = new Gtk.MessageDialog(this, DialogFlags.Modal, MessageType.Question, ButtonsType.None, "Odgovorite na pitanje"); // Dodaj button "da" i poveži ga na pozitivan odgovor d.AddButton("Da", Gtk.ResponseType.Yes); // Dodaj button "ne" i poveži ga s negatvnim odgovorom d.AddButton("Ne", Gtk.ResponseType.No); // Još button za odustajanje d.AddButton("Odustani", Gtk.ResponseType.Cancel); // metoda koja prikazuje dijalog i čeka povratni odgovor korisnika // Tip koji metoda Run vraća je int te ga pretvaramo u Gtk.ResponseType enumeraciju da ga možemo isčitati var odgovor = (Gtk.ResponseType)d.Run(); if (odgovor == Gtk.ResponseType.Yes) { lOdgovor2.Text = "Da"; } else if (odgovor == Gtk.ResponseType.No) { lOdgovor2.Text = "Ne"; } else if (odgovor == Gtk.ResponseType.Cancel) { lOdgovor2.Text = "Korisnik je odustao"; } else { lOdgovor2.Text = "Korisnik je zatvorio dijalog"; } // nakon što korisnik odgovori, sakrij dijalog d.Destroy(); }
protected void brisiClicked(object sender, EventArgs e) { Dialog d = new Gtk.MessageDialog(this, DialogFlags.Modal, MessageType.Question, ButtonsType.None, "Jeste li sigurni da želite izbrisati trošak?"); d.AddButton("Da", Gtk.ResponseType.Yes); d.AddButton("Ne", Gtk.ResponseType.No); var odgovor = (Gtk.ResponseType)d.Run(); if (odgovor == Gtk.ResponseType.Yes) { presenter.brisiTrosak(trosakPresenter); d.Destroy(); MessageBox.Popout("Trošak izbrisan", 1, TransientFor); Destroy(); } else { d.Destroy(); } }
public System.Windows.Forms.DialogResult ShowSavePendingChangesDialog() { Gtk.MessageDialog dlg = new Gtk.MessageDialog(this, DialogFlags.Modal, MessageType.Question, ButtonsType.None, false, "Save pending changes?"); dlg.AddButton ("Yes", ResponseType.Yes); dlg.AddButton ("No", ResponseType.No); dlg.AddButton("Cancel", ResponseType.Cancel); int response = dlg.Run(); dlg.Destroy(); switch ((ResponseType)response) { case ResponseType.Yes: return System.Windows.Forms.DialogResult.Yes; case ResponseType.No: return System.Windows.Forms.DialogResult.No; case ResponseType.Cancel: case ResponseType.DeleteEvent: // dialog close button return System.Windows.Forms.DialogResult.Cancel; default: // should never happen return System.Windows.Forms.DialogResult.Abort; } }
protected void showQuestionAktivnost(object sender, EventArgs e) { var selectedNodeAktivnostKorisnika = (AktKorisnikaNode)nodeviewAktivnostiKorisnika.NodeSelection.SelectedNode; if (selectedNodeAktivnostKorisnika != null) { Dialog d = new Gtk.MessageDialog(this, DialogFlags.Modal, MessageType.Question, ButtonsType.None, "Jeste li sigurni da želite obrisati aktivnost?"); d.AddButton("Da", Gtk.ResponseType.Yes); d.AddButton("Ne", Gtk.ResponseType.No); var odgovor = (Gtk.ResponseType)d.Run(); if (odgovor == ResponseType.Yes) { if (Baza.DbProvjeriIdAktivnostiKorisnika(selectedNodeAktivnostKorisnika.id)) { Baza.BrisiAktivnostKorisnika(selectedNodeAktivnostKorisnika.id); aktKorisnikPresenter.Brisi(selectedNodeAktivnostKorisnika); } } d.Destroy(); } }
protected void showQuestionTip(object sender, EventArgs e) { var selectedNodeTipAktivnosti = (TipAktivnostiNode)nodeviewTip.NodeSelection.SelectedNode; if (selectedNodeTipAktivnosti != null) { Dialog d = new Gtk.MessageDialog(this, DialogFlags.Modal, MessageType.Question, ButtonsType.None, "Jeste li sigurni da želite obrisati tip aktivnosti?"); d.AddButton("Da", Gtk.ResponseType.Yes); d.AddButton("Ne", Gtk.ResponseType.No); var odgovor = (Gtk.ResponseType)d.Run(); if (odgovor == ResponseType.Yes) { if (Baza.DbProvjeriIdTipaAktivnosti(selectedNodeTipAktivnosti.id)) { Baza.BrisiTipAktivnosti(selectedNodeTipAktivnosti.id); tipPresenter.Brisi(selectedNodeTipAktivnosti); } } d.Destroy(); } }
private void ClipboardEmptyError() { var primary = Catalog.GetString ("Paste cancelled"); var secondary = Catalog.GetString ("The clipboard does not contain an image"); var markup = "<span weight=\"bold\" size=\"larger\">{0}</span>\n\n{1}\n"; markup = string.Format (markup, primary, secondary); var md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Error, ButtonsType.None, true, markup); md.AddButton (Stock.Ok, ResponseType.Yes); md.Run (); md.Destroy (); }
public override WindowResponse Show(object parent, string message, string title, MessageWindowType type, MessageWindowButtons bType) { Window p = (Window)parent; MessageType t = GtkHelper.GetWinType(type); MessageDialog md = new MessageDialog(p, DialogFlags.Modal, t, ButtonsType.None, message); md.Title = title; if (p != null && p.Icon != null) { md.Icon = p.Icon; } md.WindowPosition = WindowPosition.CenterOnParent; if (bType == MessageWindowButtons.Ok || bType == MessageWindowButtons.OkCancel) md.AddButton(Message.GetString("Ok"), ResponseType.Ok); if (bType == MessageWindowButtons.Close) md.AddButton(Message.GetString("Close"), ResponseType.Close); if (bType == MessageWindowButtons.YesNo || bType == MessageWindowButtons.YesNoCancel) { md.AddButton(Message.GetString("Yes"), ResponseType.Yes); md.AddButton(Message.GetString("No"), ResponseType.No); } if (bType == MessageWindowButtons.AbortRetryIgnore || bType == MessageWindowButtons.RetryCancel) md.AddButton(Message.GetString("Retry"), ResponseType.Accept); if (bType == MessageWindowButtons.AbortRetryIgnore) md.AddButton(Message.GetString("Ignore"), ResponseType.Reject); if (bType == MessageWindowButtons.Cancel || bType == MessageWindowButtons.OkCancel || bType == MessageWindowButtons.RetryCancel || bType == MessageWindowButtons.YesNoCancel || bType == MessageWindowButtons.AbortRetryIgnore) md.AddButton(Message.GetString("Cancel"), ResponseType.Cancel); ResponseType result = (ResponseType)md.Run(); md.Destroy(); return GtkHelper.GetResponse(result); }
private bool ConfirmReplaceImage() { bool canceled = false; if (PintaCore.Workspace.IsDirty) { var primary = Catalog.GetString ("Save the changes to image \"{0}\" before creating a new one?"); var secondary = Catalog.GetString ("If you don't save, all changes will be permanently lost."); var markup = "<span weight=\"bold\" size=\"larger\">{0}</span>\n\n{1}\n"; markup = string.Format (markup, primary, secondary); var md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, true, markup, System.IO.Path.GetFileName (PintaCore.Workspace.Filename)); md.AddButton (Catalog.GetString ("Continue without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Yes); md.DefaultResponse = ResponseType.Cancel; md.AlternativeButtonOrder = new int[] { (int) ResponseType.Yes, (int) ResponseType.No, (int) ResponseType.Cancel }; ResponseType saveResponse = (ResponseType)md.Run (); md.Destroy (); if (saveResponse == ResponseType.Yes) { PintaCore.Actions.File.Save.Activate (); } else { canceled = saveResponse == ResponseType.Cancel; } } return !canceled; }
private void HandlePintaCoreActionsFileOpenActivated(object sender, EventArgs e) { bool canceled = false; if (PintaCore.Workspace.IsDirty) { var primary = Catalog.GetString ("Save the changes to image \"{0}\" before opening a new image?"); var secondary = Catalog.GetString ("If you don't save, all changes will be permanently lost."); var markup = "<span weight=\"bold\" size=\"larger\">{0}</span>\n\n{1}\n"; markup = string.Format (markup, primary, secondary); var md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, true, markup, System.IO.Path.GetFileName (PintaCore.Workspace.Filename)); md.AddButton (Catalog.GetString ("Continue without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Yes); md.DefaultResponse = ResponseType.Cancel; ResponseType response = (ResponseType)md.Run (); md.Destroy (); if (response == ResponseType.Yes) { Save.Activate (); } else { canceled = response == ResponseType.Cancel; } } if (!canceled) { var fcd = new Gtk.FileChooserDialog (Catalog.GetString ("Open Image File"), PintaCore.Chrome.MainWindow, FileChooserAction.Open, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Open, Gtk.ResponseType.Ok); // Add image files filter FileFilter ff = new FileFilter (); ff.AddPixbufFormats (); ff.AddPattern ("*.ora"); ff.Name = Catalog.GetString ("Image files"); fcd.AddFilter (ff); FileFilter ff2 = new FileFilter (); ff2.Name = Catalog.GetString ("All files"); ff2.AddPattern ("*.*"); fcd.AddFilter (ff2); fcd.SetCurrentFolder (lastDialogDir); int response = fcd.Run (); if (response == (int)Gtk.ResponseType.Ok) { lastDialogDir = fcd.CurrentFolder; if (OpenFile (fcd.Filename)) { AddRecentFileUri (fcd.Uri); PintaCore.Workspace.ActiveDocument.HasFile = true; } } fcd.Destroy (); } }
private void HandlePintaCoreActionsFileExitActivated(object sender, EventArgs e) { bool canceled = false; if (PintaCore.Workspace.IsDirty) { var primary = Catalog.GetString ("Save the changes to image \"{0}\" before closing?"); var secondary = Catalog.GetString ("If you don't save, all changes will be permanently lost."); var markup = "<span weight=\"bold\" size=\"larger\">{0}</span>\n\n{1}\n"; markup = string.Format (markup, primary, secondary); var md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, true, markup, System.IO.Path.GetFileName (PintaCore.Workspace.Filename)); md.AddButton (Catalog.GetString ("Close without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Yes); // so that user won't accidentally overwrite md.DefaultResponse = ResponseType.Cancel; ResponseType response = (ResponseType)md.Run (); md.Destroy (); if (response == ResponseType.Yes) { Save.Activate (); } else { canceled = response == ResponseType.Cancel; } } if (!canceled) { if (BeforeQuit != null) BeforeQuit (this, EventArgs.Empty); PintaCore.History.Clear (); (PintaCore.Layers.SelectionPath as IDisposable).Dispose (); Application.Quit (); } }
private void HandleOpenRecentItemActivated(object sender, EventArgs e) { bool canceled = false; if (PintaCore.Workspace.IsDirty) { var primary = Catalog.GetString ("Save the changes to image \"{0}\" before opening a new image?"); var secondary = Catalog.GetString ("If you don't save, all changes will be permanently lost."); var markup = "<span weight=\"bold\" size=\"larger\">{0}</span>\n\n{1}\n"; markup = string.Format (markup, primary, secondary); var md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, true,markup, System.IO.Path.GetFileName (PintaCore.Workspace.Filename)); md.AddButton (Catalog.GetString ("Continue without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Yes); md.DefaultResponse = ResponseType.Cancel; var response = (ResponseType)md.Run (); md.Destroy (); if (response == ResponseType.Yes) { Save.Activate (); } else { canceled = response == ResponseType.Cancel; } } if (!canceled) { string fileUri = (sender as RecentAction).CurrentUri; OpenFile (new Uri (fileUri).LocalPath); PintaCore.Workspace.ActiveDocument.HasFile = true; } }
public UserResponse ShowCertDialog(String msg) { Logger.Debug("Showing Cert Dialog: " + msg); UserResponse ret = UserResponse.None; ManualResetEvent ev = new ManualResetEvent(false); #if __MonoCS__ Application.Invoke(delegate { MessageDialog md = new MessageDialog (null, DialogFlags.Modal, MessageType.Warning, ButtonsType.None, msg + "\n\nDo you trust this certificate?") { Title = "Untrusted Certificate" }; md.AddButton("No", (int)UserResponse.CertDeny); md.AddButton("Just now", (int)UserResponse.CertAcceptSession); md.AddButton("Always", (int)UserResponse.CertAcceptAlways); ret = (UserResponse)md.Run(); md.Destroy(); ev.Set(); }); #else var r = MessageBox.Show(msg + "\n\n"+ Properties_Resources.DoYouTrustTheCertificate, Properties_Resources.UntrustedCertificate, MessageBoxButton.YesNoCancel, MessageBoxImage.Warning); switch (r) { case MessageBoxResult.Yes: ret = UserResponse.CertAcceptAlways; break; case MessageBoxResult.No: ret = UserResponse.CertDeny; break; case MessageBoxResult.Cancel: ret = UserResponse.CertAcceptSession; break; } ev.Set(); #endif ev.WaitOne(); Logger.Debug("Cert Dialog return:" + ret.ToString()); return ret; }
private void HandlerPintaCoreActionsEditPasteActivated(object sender, EventArgs e) { Document doc = PintaCore.Workspace.ActiveDocument; PintaCore.Tools.Commit (); Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false)); Path p; // Don't dispose this, as we're going to give it to the history Gdk.Pixbuf image = cb.WaitForImage (); if (image == null) return; Gdk.Size canvas_size = PintaCore.Workspace.ImageSize; // If the image being pasted is larger than the canvas size, allow the user to optionally resize the canvas if (image.Width > canvas_size.Width || image.Height > canvas_size.Height) { string message = Catalog.GetString ("The image being pasted is larger than the canvas size. What would you like to do?"); var enlarge_dialog = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, message); enlarge_dialog.AddButton (Catalog.GetString ("Expand canvas"), ResponseType.Accept); enlarge_dialog.AddButton (Catalog.GetString ("Don't change canvas size"), ResponseType.Reject); enlarge_dialog.AddButton (Stock.Cancel, ResponseType.Cancel); enlarge_dialog.DefaultResponse = ResponseType.Accept; ResponseType response = (ResponseType)enlarge_dialog.Run (); enlarge_dialog.Destroy (); if (response == ResponseType.Accept) { PintaCore.Workspace.ResizeCanvas (image.Width, image.Height, Pinta.Core.Anchor.Center); PintaCore.Actions.View.UpdateCanvasScale (); } else if (response == ResponseType.Cancel || response == ResponseType.DeleteEvent) { return; } } // Copy the paste to the temp layer doc.CreateSelectionLayer (); doc.ShowSelectionLayer = true; using (Cairo.Context g = new Cairo.Context (doc.SelectionLayer.Surface)) { g.DrawPixbuf (image, new Cairo.Point (0, 0)); p = g.CreateRectanglePath (new Rectangle (0, 0, image.Width, image.Height)); } PintaCore.Tools.SetCurrentTool (Catalog.GetString ("Move Selected Pixels")); Path old_path = doc.SelectionPath; bool old_show_selection = doc.ShowSelection; doc.SelectionPath = p; doc.ShowSelection = true; doc.Workspace.Invalidate (); doc.History.PushNewItem (new PasteHistoryItem (image, old_path, old_show_selection)); }
private void HandlePintaCoreActionsFileCloseActivated(object sender, EventArgs e) { if (PintaCore.Workspace.ActiveDocument.IsDirty) { var primary = Catalog.GetString ("Save the changes to image \"{0}\" before closing?"); var secondary = Catalog.GetString ("If you don't save, all changes will be permanently lost."); var message = string.Format (markup, primary, secondary); var md = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, true, message, System.IO.Path.GetFileName (PintaCore.Workspace.ActiveDocument.Filename)); md.AddButton (Catalog.GetString ("Close without saving"), ResponseType.No); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Yes); // so that user won't accidentally overwrite md.DefaultResponse = ResponseType.Cancel; ResponseType response = (ResponseType)md.Run (); md.Destroy (); if (response == ResponseType.Yes) { PintaCore.Actions.File.Save.Activate (); // If the image is still dirty, the user // must have cancelled the Save dialog if (!PintaCore.Workspace.ActiveDocument.IsDirty) PintaCore.Workspace.CloseActiveDocument (); } else if (response == ResponseType.No) { PintaCore.Workspace.CloseActiveDocument (); } } else { PintaCore.Workspace.CloseActiveDocument (); } }
public AskResult AskSaveOrCancel () { var dialog = new MessageDialog(this, DialogFlags.Modal, MessageType.Question, ButtonsType.None, "Do you want to save the project first?"); dialog.Title = "Save"; dialog.AddButton("No", (int)ResponseType.No); dialog.AddButton("Cancel", (int)ResponseType.Cancel); dialog.AddButton("Save", (int)ResponseType.Yes); var result = dialog.Run (); dialog.Destroy (); if (result == (int)ResponseType.Yes) return AskResult.Yes; else if (result == (int)ResponseType.No) return AskResult.No; return AskResult.Cancel; }
public override void AskYesNoQuestion (string title, string message, Gdk.Pixbuf icon, string ok_string, string cancel_string, EventHandler ok_handler, EventHandler cancel_handler) { MessageDialog dialog = new MessageDialog (null, DialogFlags.DestroyWithParent | DialogFlags.Modal, MessageType.Other, ButtonsType.None, true, null); dialog.UseMarkup = true; dialog.Title = "Giver"; if (!String.IsNullOrEmpty (title)) dialog.Text = "<b>" + title + "</b>"; dialog.SecondaryText = message; if (icon != null) { dialog.Image = new Image (icon); dialog.Image.Show (); } dialog.AddButton (cancel_string, ResponseType.No); dialog.AddButton (ok_string, ResponseType.Yes); dialog.DefaultResponse = ResponseType.Yes; dialog.Response += delegate (object o, ResponseArgs args) { if (args.ResponseId == ResponseType.Yes && ok_handler != null) ok_handler (null, null); else if (args.ResponseId == ResponseType.No && cancel_handler != null) cancel_handler (null, null); }; dialog.Close += delegate { if (cancel_handler != null) cancel_handler (null, null); }; dialog.Run (); dialog.Destroy (); }
/// <summary> /// Ask if really continue if unsaved changes. /// </summary> /// <param name="act">What we would do ("quit", "close", "open another file" or such)</param> /// <returns>True if continue otherwise false</returns> private bool ChangeConfirm(string act) { if( UndoManager.IsDirty ) { Gtk.MessageDialog md = new Gtk.MessageDialog (MainWindow, Gtk.DialogFlags.DestroyWithParent, Gtk.MessageType.Warning, Gtk.ButtonsType.None, "Continue without saving changes?"+ Environment.NewLine + Environment.NewLine +"If you " + act + " without saving, changes since the last save will be discarded."); md.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); md.AddButton("Save and close", Gtk.ResponseType.Accept); md.AddButton("Discard Changes", Gtk.ResponseType.Yes); Gtk.ResponseType result = (Gtk.ResponseType)md.Run (); md.Destroy(); if (result == Gtk.ResponseType.Accept) { Save(false); return true; } else if (result != Gtk.ResponseType.Yes) { return false; } } return true; }
private bool ConfirmOverwrite (FileChooserDialog fcd, string file) { string primary = Catalog.GetString ("A file named \"{0}\" already exists. Do you want to replace it?"); string secondary = Catalog.GetString ("The file already exists in \"{1}\". Replacing it will overwrite its contents."); string message = string.Format (markup, primary, secondary); MessageDialog md = new MessageDialog (fcd, DialogFlags.Modal | DialogFlags.DestroyWithParent, MessageType.Question, ButtonsType.None, true, message, System.IO.Path.GetFileName (file), fcd.CurrentFolder); md.AddButton (Stock.Cancel, ResponseType.Cancel); md.AddButton (Stock.Save, ResponseType.Ok); md.DefaultResponse = ResponseType.Cancel; md.AlternativeButtonOrder = new int[] { (int)ResponseType.Ok, (int)ResponseType.Cancel }; int response = md.Run (); md.Destroy (); return response == (int)ResponseType.Ok; }
public void on_btnDelete_clicked(object o, EventArgs args) { dialog = new MessageDialog (winMainWindow, DialogFlags.DestroyWithParent,MessageType.Question,ButtonsType.None, "Are you sure you want to delete " + GetSelectedSite()); dialog.Modal = true; dialog.AddButton ("Cancel", Gtk.ResponseType.Cancel); dialog.AddButton ("Delete", Gtk.ResponseType.Ok); dialog.Response += new ResponseHandler (on_dialog_response); dialog.Run (); dialog.Destroy (); }
private ResponseType ShowExpandCanvasDialog () { const string markup = "<span weight=\"bold\" size=\"larger\">{0}</span>\n\n{1}"; string primary = Catalog.GetString ("Image larger than canvas"); string secondary = Catalog.GetString ("The image being pasted is larger than the canvas size. What would you like to do?"); string message = string.Format (markup, primary, secondary); var enlarge_dialog = new MessageDialog (PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, message); enlarge_dialog.AddButton (Catalog.GetString ("Expand canvas"), ResponseType.Accept); enlarge_dialog.AddButton (Catalog.GetString ("Don't change canvas size"), ResponseType.Reject); enlarge_dialog.AddButton (Stock.Cancel, ResponseType.Cancel); enlarge_dialog.DefaultResponse = ResponseType.Accept; ResponseType response = (ResponseType)enlarge_dialog.Run (); enlarge_dialog.Destroy (); return response; }
static ResponseType PromptEmptyTrash (this Mount m, out MessageDialog dialog) { dialog = new Gtk.MessageDialog (null, DialogFlags.Modal, MessageType.Question, ButtonsType.None, EmptyTrashMessage); dialog.Title = EmptyTrashTitle; dialog.AddButton ("Do _not Empty Trash", ResponseType.Reject); dialog.AddButton (Gtk.Stock.Cancel, ResponseType.Cancel); dialog.AddButton ("Empty _Trash", ResponseType.Accept); dialog.DefaultResponse = ResponseType.Accept; dialog.SkipTaskbarHint = true; return (ResponseType) dialog.Run (); }
public void AddFilesToProject() { Project project = CurrentNode.GetParentDataItem (typeof(Project), true) as Project; using (FileSelector fdiag = new FileSelector (GettextCatalog.GetString ("Add files"))) { fdiag.SelectMultiple = true; int result = fdiag.Run (); try { if (result != (int) ResponseType.Ok) return; int action = -1; foreach (string file in fdiag.Filenames) { if (file.StartsWith (project.BaseDirectory)) { MoveCopyFile (project, CurrentNode, file, true, true); } else { using (MessageDialog md = new MessageDialog ( (Window) WorkbenchSingleton.Workbench, DialogFlags.Modal | DialogFlags.DestroyWithParent, MessageType.Question, ButtonsType.None, String.Format (GettextCatalog.GetString ("{0} is outside the project directory, what should I do?"), file))) { CheckButton remember = null; if (fdiag.Filenames.Length > 1) { remember = new CheckButton (GettextCatalog.GetString ("Use the same action for all selected files.")); md.VBox.PackStart (remember, false, false, 0); } md.AddButton (Gtk.Stock.Copy, 1); md.AddButton (GettextCatalog.GetString ("_Move"), 2); md.AddButton (Gtk.Stock.Cancel, ResponseType.Cancel); md.VBox.ShowAll (); int ret = -1; if (action < 0) { ret = md.Run (); md.Hide (); if (ret < 0) return; if (remember != null && remember.Active) action = ret; } else { ret = action; } try { MoveCopyFile (project, CurrentNode, file, ret == 2, false); } catch (Exception ex) { Runtime.MessageService.ShowError (ex, GettextCatalog.GetString ("An error occurred while attempt to move/copy that file. Please check your permissions.")); } } } } } finally { fdiag.Hide (); } } }
void SetLabel () { Gtk.MessageDialog md = new Gtk.MessageDialog (null, 0, Gtk.MessageType.Question, Gtk.ButtonsType.None, "<b>" + Catalog.GetString ("Set the timer's label to:") + "</b>"); md.Title = "Docky Timer"; md.Icon = DockServices.Drawing.LoadIcon ("docky", 22); md.Modal = false; md.AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); md.AddButton (Catalog.GetString ("_Set Label"), Gtk.ResponseType.Ok); md.DefaultResponse = Gtk.ResponseType.Ok; Gtk.Entry labelEntry = new Gtk.Entry ("" + label); labelEntry.Activated += delegate { Label = labelEntry.Text; md.Destroy (); }; labelEntry.Show (); md.VBox.PackEnd (labelEntry); md.Response += (o, args) => { if (args.ResponseId != Gtk.ResponseType.Cancel) Label = labelEntry.Text; md.Destroy (); }; md.Show (); }
private void OnMirageDuplicateSearchHandler(object sender, EventArgs args) { MessageDialog md = new MessageDialog (null, DialogFlags.Modal, MessageType.Question, ButtonsType.Cancel, AddinManager.CurrentLocalizer.GetString ( "<b>Mirage can search your music library for duplicate music pieces.</b>\n\n"+ "· To do so, your music library needs to be analyzed completely from Mirage.\n" + "· This process will take a long time depending on the size of your library.")); md.AddButton (AddinManager.CurrentLocalizer.GetString ("Scan for Duplicates"), ResponseType.Yes); ResponseType result = (ResponseType)md.Run(); md.Destroy(); if (result == ResponseType.Yes) { try { DuplicateSearch(); } catch (Exception) { Log.Warning("Mirage - Error scanning for duplicates."); } } }
private void HandlerPintaCoreActionsEditPasteIntoNewImageActivated(object sender, EventArgs e) { Gtk.Clipboard cb = Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false)); if (cb.WaitIsImageAvailable()) { bool canceled = false; Gdk.Pixbuf image = cb.WaitForImage(); Gdk.Size size = new Gdk.Size(image.Width, image.Height); if (PintaCore.Workspace.IsDirty) { var primary = Catalog.GetString("Save the changes to image \"{0}\" before creating a new image?"); var secondary = Catalog.GetString("If you don't save, all changes will be permanently lost."); var markup = "<span weight=\"bold\" size=\"larger\">{0}</span>\n\n{1}\n"; markup = string.Format(markup, primary, secondary); var md = new MessageDialog(PintaCore.Chrome.MainWindow, DialogFlags.Modal, MessageType.Question, ButtonsType.None, true, markup, System.IO.Path.GetFileName(PintaCore.Workspace.Filename)); md.AddButton(Catalog.GetString("Close without saving"), ResponseType.No); md.AddButton(Stock.Cancel, ResponseType.Cancel); md.AddButton(Stock.Save, ResponseType.Yes); // so that user won't accidentally overwrite md.DefaultResponse = ResponseType.Cancel; ResponseType response = (ResponseType)md.Run(); md.Destroy(); if (response == ResponseType.Yes) { PintaCore.Actions.File.Save.Activate(); } else { canceled = response == ResponseType.Cancel; } PintaCore.Actions.File.NewFile(size); } else { PintaCore.Workspace.ResizeImage(image.Width, image.Height); } PintaCore.Layers.FinishSelection(); Cairo.ImageSurface old = PintaCore.Layers.CurrentLayer.Surface.Clone(); Path p; using (Cairo.Context g = new Cairo.Context(PintaCore.Layers.CurrentLayer.Surface)) { g.DrawPixbuf(image, new Cairo.Point(0, 0)); p = g.CreateRectanglePath(new Rectangle(0, 0, image.Width, image.Height)); } PintaCore.Workspace.Invalidate(); PintaCore.History.PushNewItem(new SimpleHistoryItem(Stock.Paste, Catalog.GetString("Paste into new image"), old, PintaCore.Layers.CurrentLayerIndex)); } else { ClipboardEmptyError(); } }
protected virtual void OnDeleteDockButtonClicked (object sender, System.EventArgs e) { if (!(Docky.Controller.Docks.Count () > 1)) return; if (ActiveDock != null) { Gtk.MessageDialog md = new Gtk.MessageDialog (null, 0, Gtk.MessageType.Warning, Gtk.ButtonsType.None, "<b><big>" + Catalog.GetString ("Delete the currently selected dock?") + "</big></b>"); md.Icon = DockServices.Drawing.LoadIcon ("docky", 22); md.SecondaryText = Catalog.GetString ("If you choose to delete the dock, all settings\n" + "for the deleted dock will be permanently lost."); md.Modal = true; md.KeepAbove = true; md.Stick (); md.AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); md.AddButton (Catalog.GetString ("_Delete Dock"), Gtk.ResponseType.Ok); md.DefaultResponse = Gtk.ResponseType.Ok; if ((ResponseType)md.Run () == Gtk.ResponseType.Ok) { ActiveDock.ConfigurationClick -= HandleDockConfigurationClick; ActiveDock.LeaveConfigurationMode (); Docky.Controller.DeleteDock (ActiveDock); if (Docky.Controller.Docks.Count () == 1) ActiveDock = Docky.Controller.Docks.First (); else ActiveDock = null; } md.Destroy (); } }
private void OnMirageResetHandler(object sender, EventArgs args) { MessageDialog md = new MessageDialog (null, DialogFlags.Modal, MessageType.Question, ButtonsType.Cancel, AddinManager.CurrentLocalizer.GetString ( "Do you really want to reset the Mirage Extension?\n" + "All extracted information will be lost. Your music will have to be re-analyzed to use Mirage again.")); md.AddButton (AddinManager.CurrentLocalizer.GetString ("Reset Mirage"), ResponseType.Yes); ResponseType result = (ResponseType)md.Run(); md.Destroy(); if (result == ResponseType.Yes) { try { Analyzer.CancelAnalyze(); TrackAnalysis.Provider.Delete ("1"); md = new MessageDialog(null, DialogFlags.Modal, MessageType.Info, ButtonsType.Ok, AddinManager.CurrentLocalizer.GetString ("Mirage was reset. Your music will have to be re-analyzed to use Mirage again.")); md.Run(); md.Destroy(); } catch (Exception) { Log.Warning("Mirage - Error resetting Mirage."); } } }
//--------------------// #region MessageDialog /// <summary>Displays a message using a <see cref="MessageDialog"/>.</summary> /// <param name="owner">The parent window the displayed window is modal to; can be <c>null</c>.</param> /// <param name="text">The message to be displayed.</param> /// <param name="severity">How severe/important the message is.</param> /// <param name="buttons">The buttons the user can click.</param> /// <param name="addCancel">Add an additional "Cancel" button.</param> private static ResponseType ShowMessageDialog([CanBeNull] Window owner, [NotNull, Localizable(true)] string text, MsgSeverity severity, ButtonsType buttons, bool addCancel = false) { // Select icon based on message severity MessageType type; switch (severity) { case MsgSeverity.Warn: type = MessageType.Warning; break; case MsgSeverity.Error: type = MessageType.Error; break; default: case MsgSeverity.Info: type = buttons.HasFlag(ButtonsType.YesNo) ? MessageType.Question : MessageType.Info; break; } // Display MessageDialog using (var dialog = new MessageDialog(owner, DialogFlags.Modal, type, buttons, text)) { if (addCancel) dialog.AddButton(Stock.Cancel, 2); dialog.Title = AppInfo.Current.ProductName; var response = (ResponseType)dialog.Run(); dialog.Destroy(); return response; } }