internal static PressedButton BackupRegistryQuestion(Form owner)
        {
            if (!Settings.Default.MessagesAskToBackup)
            {
                return(PressedButton.No);
            }

            var check = new CmbCheckboxSettings(Localisable.MessageBoxes_RememberChoiceCheckbox)
            {
                DisableRightButton = true, DisableLeftButton = true
            };

            switch (
                CustomMessageBox.ShowDialog(owner ?? DefaultOwner,
                                            new CmbBasicSettings(Localisable.MessageBoxes_Title_Leftover_removal,
                                                                 Localisable.MessageBoxes_BackupRegistryQuestion_Message,
                                                                 Localisable.MessageBoxes_BackupRegistryQuestion_Details,
                                                                 SystemIcons.Question, Buttons.ButtonCreate, Buttons.ButtonDontCreate, Buttons.ButtonCancel),
                                            check))
            {
            case CustomMessageBox.PressedButton.Left:
                return(PressedButton.Yes);

            case CustomMessageBox.PressedButton.Middle:
                if (check.Result.HasValue && check.Result.Value)
                {
                    Settings.Default.MessagesAskToBackup = false;
                }
                return(PressedButton.No);

            default:
                return(PressedButton.Cancel);
            }
        }
        /// <summary>
        ///     True if user wants to look for junk
        /// </summary>
        /// <returns></returns>
        internal static bool LookForJunkQuestion()
        {
            switch (Settings.Default.MessagesRemoveJunk)
            {
            case YesNoAsk.Yes:
                return(true);

            case YesNoAsk.No:
                return(false);
            }

            var check  = new CmbCheckboxSettings(Localisable.MessageBoxes_RememberChoiceCheckbox);
            var result =
                CustomMessageBox.ShowDialog(DefaultOwner,
                                            new CmbBasicSettings(Localisable.MessageBoxes_Title_Junk_Leftover_removal,
                                                                 Localisable.MessageBoxes_LookForJunkQuestion_Message,
                                                                 Localisable.MessageBoxes_LookForJunkQuestion_Details,
                                                                 SystemIcons.Question, Buttons.ButtonYes, Buttons.ButtonNo), check);

            if (check.Result.HasValue && check.Result.Value)
            {
                Settings.Default.MessagesRemoveJunk = result == CustomMessageBox.PressedButton.Middle
                    ? YesNoAsk.Yes
                    : YesNoAsk.No;
            }

            return(result == CustomMessageBox.PressedButton.Middle);
        }
        internal static PressedButton SysRestoreBeginQuestion()
        {
            switch (Settings.Default.MessagesRestorePoints)
            {
            case YesNoAsk.Yes:
                return(PressedButton.Yes);

            case YesNoAsk.No:
                return(PressedButton.No);
            }

            var check = new CmbCheckboxSettings(Localisable.MessageBoxes_RememberChoiceCheckbox)
            {
                DisableRightButton = true
            };

            switch (
                CustomMessageBox.ShowDialog(DefaultOwner,
                                            new CmbBasicSettings(Localisable.MessageBoxes_Title_Create_restore_point,
                                                                 Localisable.MessageBoxes_SysRestoreBeginQuestion_Message,
                                                                 Localisable.MessageBoxes_SysRestoreBeginQuestion_Details,
                                                                 SystemIcons.Question, Buttons.ButtonCreate, Buttons.ButtonDontCreate, Buttons.ButtonCancel),
                                            check))
            {
            case CustomMessageBox.PressedButton.Left:
                if (check.Result.HasValue && check.Result.Value)
                {
                    Settings.Default.MessagesRestorePoints = YesNoAsk.Yes;
                }
                return(PressedButton.Yes);

            case CustomMessageBox.PressedButton.Middle:
                if (check.Result.HasValue && check.Result.Value)
                {
                    Settings.Default.MessagesRestorePoints = YesNoAsk.No;
                }
                return(PressedButton.No);

            default:
                return(PressedButton.Cancel);
            }
        }
        internal static PressedButton QuietUninstallersNotAvailableQuestion(string[] nonQuiet)
        {
            if (!Settings.Default.MessagesAskRemoveLoudItems)
            {
                return(PressedButton.Yes);
            }

            var check = new CmbCheckboxSettings(Localisable.MessageBoxes_RememberChoiceCheckbox)
            {
                DisableRightButton  = true,
                DisableMiddleButton = true
            };
            var result =
                CustomMessageBox.ShowDialog(DefaultOwner,
                                            new CmbBasicSettings(Localisable.MessageBoxes_Title_Quiet_uninstall,
                                                                 Localisable.MessageBoxes_QuietUninstallersNotAvailableQuestion_Message,
                                                                 string.Format(CultureInfo.InvariantCulture, Localisable.MessageBoxes_QuietUninstallersNotAvailableQuestion_Details,
                                                                               string.Join("\n", nonQuiet)),
                                                                 SystemIcons.Question, Buttons.ButtonUseLoud, Buttons.ButtonRemove, Buttons.ButtonCancel), check);

            switch (result)
            {
            case CustomMessageBox.PressedButton.Left:
                if (check.Result.HasValue && check.Result.Value)
                {
                    Settings.Default.MessagesAskRemoveLoudItems = false;
                }
                return(PressedButton.Yes);

            case CustomMessageBox.PressedButton.Middle:
                return(PressedButton.No);

            default:
                return(PressedButton.Cancel);
            }
        }