public DialogOptionEditor(DialogOption option) { InitializeComponent(); _option = option; chkSay.DataBindings.Add("Checked", option, "Say", false, DataSourceUpdateMode.OnPropertyChanged); chkShow.DataBindings.Add("Checked", option, "Show", false, DataSourceUpdateMode.OnPropertyChanged); txtOptionText.DataBindings.Add("Text", option, "Text", false, DataSourceUpdateMode.OnPropertyChanged); lblOptionID.Text = option.ID.ToString() + ":"; txtOptionText.Focus(); }
private void btnNewOption_Click(object sender, EventArgs e) { DialogOption newOption = new DialogOption(); newOption.ID = _dialog.Options.Count + 1; if (_dialog.Options.Count > 0) { // Copy Show & Say settings from previous option newOption.Say = _dialog.Options[_dialog.Options.Count - 1].Say; newOption.Show = _dialog.Options[_dialog.Options.Count - 1].Show; } else { newOption.Say = true; newOption.Show = true; } _dialog.Options.Add(newOption); DialogOptionEditor newEditor = new DialogOptionEditor(newOption); _optionPanes.Add(newEditor); flowLayoutPanel1.Controls.Remove(btnNewOption); flowLayoutPanel1.Controls.Remove(btnDeleteOption); flowLayoutPanel1.Controls.Add(newEditor); flowLayoutPanel1.Controls.Add(btnNewOption); flowLayoutPanel1.Controls.Add(btnDeleteOption); newEditor.Focus(); if (_dialog.Options.Count >= Dialog.MAX_OPTIONS_PER_DIALOG) { btnNewOption.Visible = false; } else { btnDeleteOption.Visible = true; } SaveData(); // Ensure there is an entry point in the script for this if (!_dialog.Script.Contains(Environment.NewLine + "@" + newOption.ID)) { if (!_dialog.Script.EndsWith(Environment.NewLine)) { _dialog.Script += Environment.NewLine; } _dialog.Script += "@" + newOption.ID + Environment.NewLine + "return" + Environment.NewLine; scintillaEditor.SetText(_dialog.Script); } }