private List<NativeMethods.TASKDIALOG_BUTTON> SetupRadioButtons() { _radioButtonsById = new Dictionary<int, TaskDialogRadioButton>(); List<NativeMethods.TASKDIALOG_BUTTON> radioButtons = new List<NativeMethods.TASKDIALOG_BUTTON>(); _config.nDefaultRadioButton = 0; foreach( TaskDialogRadioButton radioButton in RadioButtons ) { if( string.IsNullOrEmpty(radioButton.Text) ) throw new InvalidOperationException(Properties.Resources.TaskDialogEmptyButtonLabelError); if( radioButton.Id < 1 ) throw new InvalidOperationException(Properties.Resources.InvalidTaskDialogItemIdError); _radioButtonsById.Add(radioButton.Id, radioButton); if( radioButton.Checked ) _config.nDefaultRadioButton = radioButton.Id; NativeMethods.TASKDIALOG_BUTTON taskDialogButton = new NativeMethods.TASKDIALOG_BUTTON(); taskDialogButton.nButtonID = radioButton.Id; taskDialogButton.pszButtonText = radioButton.Text; radioButtons.Add(taskDialogButton); } SetFlag(NativeMethods.TaskDialogFlags.NoDefaultRadioButton, _config.nDefaultRadioButton == 0); return radioButtons; }
private List<NativeMethods.TASKDIALOG_BUTTON> SetupButtons() { _buttonsById = new Dictionary<int, TaskDialogButton>(); List<NativeMethods.TASKDIALOG_BUTTON> buttons = new List<NativeMethods.TASKDIALOG_BUTTON>(); _config.nDefaultButton = 0; foreach( TaskDialogButton button in Buttons ) { if( button.Id < 1 ) throw new InvalidOperationException(Properties.Resources.InvalidTaskDialogItemIdError); _buttonsById.Add(button.Id, button); if( button.Default ) _config.nDefaultButton = button.Id; if( button.ButtonType == ButtonType.Custom ) { if( string.IsNullOrEmpty(button.Text) ) throw new InvalidOperationException(Properties.Resources.TaskDialogEmptyButtonLabelError); NativeMethods.TASKDIALOG_BUTTON taskDialogButton = new NativeMethods.TASKDIALOG_BUTTON(); taskDialogButton.nButtonID = button.Id; taskDialogButton.pszButtonText = button.Text; if( ButtonStyle == TaskDialogButtonStyle.CommandLinks || ButtonStyle == TaskDialogButtonStyle.CommandLinksNoIcon && !string.IsNullOrEmpty(button.CommandLinkNote) ) taskDialogButton.pszButtonText += "\n" + button.CommandLinkNote; buttons.Add(taskDialogButton); } else { _config.dwCommonButtons |= button.ButtonFlag; } } return buttons; }