Пример #1
0
        protected override bool RunDefault()
        {
            var alertDialog = new GtkAlertDialog(data.Message);

            alertDialog.FocusButton(data.Message.DefaultButton);
            MessageService.ShowCustomDialog(alertDialog, data.TransientFor);
            if (alertDialog.ApplyToAll)
            {
                data.ApplyToAll = true;
            }
            data.ResultButton = alertDialog.ResultButton;

            if (data.ResultButton == null)
            {
                // If the dialog is closed clicking the close window button we may have no result.
                // In that case, try to find a cancelling button
                if (data.Buttons.Contains(AlertButton.Cancel))
                {
                    data.ResultButton = AlertButton.Cancel;
                }
                else if (data.Buttons.Contains(AlertButton.No))
                {
                    data.ResultButton = AlertButton.No;
                }
                else if (data.Buttons.Contains(AlertButton.Close))
                {
                    data.ResultButton = AlertButton.Close;
                }
            }
            return(true);
        }
Пример #2
0
        protected override bool RunDefault()
        {
            var alertDialog = new GtkAlertDialog(data.Message);

            alertDialog.FocusButton(data.Message.DefaultButton);
            MessageService.ShowCustomDialog(alertDialog, data.TransientFor);
            if (alertDialog.ApplyToAll)
            {
                data.ApplyToAll = true;
            }
            data.ResultButton = alertDialog.ResultButton;
            return(true);
        }
Пример #3
0
        protected override bool RunDefault()
        {
            var alertDialog = new GtkAlertDialog(data.Message);

            alertDialog.FocusButton(data.Message.DefaultButton);

            if (data.Message.CancellationToken.CanBeCanceled)
            {
                data.Message.CancellationToken.Register(delegate {
                    Gtk.Application.Invoke((o, args) => {
                        if (alertDialog != null)
                        {
                            alertDialog.Respond(Gtk.ResponseType.DeleteEvent);
                        }
                    });
                });
            }

            if (!data.Message.CancellationToken.IsCancellationRequested)
            {
                using (alertDialog) {
                    MessageService.ShowCustomDialog(alertDialog, data.TransientFor);
                    if (alertDialog.ApplyToAll)
                    {
                        data.ApplyToAll = true;
                    }
                    data.ResultButton = alertDialog.ResultButton;
                }
            }
            alertDialog = null;

            if (data.ResultButton == null || data.Message.CancellationToken.IsCancellationRequested)
            {
                data.SetResultToCancelled();
            }

            return(true);
        }