예제 #1
0
        private void OnPromptChanged(object sender, EventArgs e)
        {
            var prompt           = m_updater.CurrentPrompt;
            var description      = m_updater.GameDescription;
            var previousUsername = m_updater.PreviouslyEnteredUsername;
            var previousPassword = m_updater.PreviouslyEnteredPassword;

            this.BeginInvoke((Action) delegate
            {
                if (prompt == GameUpdatePrompt.Username ||
                    prompt == GameUpdatePrompt.Password ||
                    prompt == GameUpdatePrompt.UsernameAndPassword)
                {
                    // Show the dialog
                    var dialog = new CredentialsForm(
                        (prompt != GameUpdatePrompt.Password) ?
                        ((previousUsername != null) ? previousUsername : "") :
                        null,
                        (prompt != GameUpdatePrompt.Username) ?
                        ((previousPassword != null) ? previousPassword : "") :
                        null
                        );
                    var result = dialog.ShowDialog(this);

                    // Inform the updater
                    if (result == DialogResult.OK)
                    {
                        m_updater.AnswerPrompt(true, dialog.Username, dialog.Password);
                    }
                    else
                    {
                        m_updater.AnswerPrompt(false);
                    }
                }
                else
                {
                    // Show the messagebox
                    var result = MessageBox.Show(
                        this,
                        prompt.GetQuestion(Program.Language, description),
                        Program.Language.Translate("window.title", description),
                        //MessageBoxButtons.YesNoCancel,
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Question
                        );

                    // Inform the updater
                    if (result == DialogResult.Cancel)
                    {
                        m_updater.Cancel();
                        m_updater.AnswerPrompt(false);
                    }
                    else
                    {
                        m_updater.AnswerPrompt(result == DialogResult.Yes);
                    }
                }
            });
        }
예제 #2
0
        private void OnPromptChanged(object sender, EventArgs e)
        {
            var prompt           = m_updater.CurrentPrompt;
            var description      = m_updater.GameDescription;
            var customMessage    = m_updater.CustomMessage;
            var previousUsername = m_updater.PreviouslyEnteredUsername;
            var previousPassword = m_updater.PreviouslyEnteredPassword;

            Application.Invoke(delegate
            {
                if (prompt == GameUpdatePrompt.Username ||
                    prompt == GameUpdatePrompt.Password ||
                    prompt == GameUpdatePrompt.UsernameAndPassword)
                {
                    // Show credentials dialog
                    var dialog = new CredentialsDialog(
                        this,
                        (prompt != GameUpdatePrompt.Password) ?
                        ((previousUsername != null) ? previousUsername : "") :
                        null,
                        (prompt != GameUpdatePrompt.Username) ?
                        ((previousPassword != null) ? previousPassword : "") :
                        null
                        );
                    dialog.ShowAll();
                    int response    = dialog.Run();
                    string username = dialog.Username;
                    string password = dialog.Password;
                    dialog.Destroy();

                    // Inform the updater
                    if (response == (int)ResponseType.Close ||
                        response == (int)ResponseType.DeleteEvent)
                    {
                        m_updater.Cancel();
                        m_updater.AnswerPrompt(false);
                    }
                    else
                    {
                        m_updater.AnswerPrompt(
                            response == (int)ResponseType.Ok,
                            username,
                            password
                            );
                    }
                }
                else if (prompt == GameUpdatePrompt.CustomMessage)
                {
                    // Show message dialog
                    Console.WriteLine(customMessage);
                    var dialog = new MessageDialog(
                        this,
                        DialogFlags.Modal,
                        MessageType.Info,
                        ButtonsType.Ok,
                        customMessage
                        );
                    dialog.ShowAll();
                    int response = dialog.Run();
                    dialog.Destroy();

                    // Inform the updater
                    m_updater.AnswerPrompt(true);
                }
                else
                {
                    // Show question dialog
                    var dialog = new MessageDialog(
                        this,
                        DialogFlags.Modal,
                        MessageType.Question,
                        ButtonsType.YesNo,
                        prompt.GetQuestion(Program.Language, description)
                        );
                    dialog.ShowAll();
                    int response = dialog.Run();
                    dialog.Destroy();

                    // Inform the updater
                    if (response == (int)ResponseType.Close ||
                        response == (int)ResponseType.DeleteEvent)
                    {
                        m_updater.Cancel();
                        m_updater.AnswerPrompt(false);
                    }
                    else
                    {
                        m_updater.AnswerPrompt(response == (int)ResponseType.Yes);
                    }
                }
            });
        }