private Control CreateInput(DialogField field) { field.Result = field.DefaultValue; switch (field.Type) { case DialogFieldType.DropDown: var cmb = new ComboBox { DataStore = field.Options, Text = field.DefaultValue, Tag = field }; cmb.SelectedIndexChanged += cmb_SelectedIndexChanged; return(cmb); case DialogFieldType.TextBox: var txt = new TextBox { Text = field.DefaultValue, Tag = field }; txt.TextChanged += txt_TextChanged; return(txt); default: throw new InvalidOperationException($"Unsupported dialog field type {field.Text}."); } }
private void GetDropDownArgument(DialogField field) { for (var i = 0; i < field.Options.Length; i++) { Console.WriteLine($"[{i}] " + field.Options[i]); } while (true) { var optionIndexArgument = _argumentGetter.GetNextArgument(); if (!int.TryParse(optionIndexArgument, out var optionIndex)) { Console.WriteLine($"'{optionIndexArgument}' is not a valid number."); continue; } if (optionIndex >= field.Options.Length) { Console.WriteLine($"Index '{optionIndexArgument}' was out of bounds."); continue; } field.Result = field.Options[optionIndex]; break; } }
public static string GetVersion(IDialogManager dialogManager) { var dialogField = new DialogField(DialogFieldType.DropDown, "Game Version:", "None", "None", "Ace Attorney Trilogy", "Apollo Justice"); dialogManager.ShowDialog(new[] { dialogField }); return(dialogField.Result); }
public static EncodingDefinition DetermineFormatMapping(IDialogManager dialogManager) { // Re-uses some of the code used in the Imgc plugin // Show a dialog to the user, selecting the platform var availablePlatforms = PlatformPaletteEncodingMapping.Keys.ToArray(); var dialogField = new DialogField(DialogFieldType.DropDown, "Select the platform:", availablePlatforms.First(), availablePlatforms); dialogManager.ShowDialog(new[] { dialogField }); var encodingDefinition = EncodingsV1.ToColorDefinition(); encodingDefinition.AddPaletteEncodings(PlatformPaletteEncodingMapping[dialogField.Result]); encodingDefinition.AddIndexEncodings(IndexEncodings); return(encodingDefinition); }
private void ProcessField(DialogField field) { Console.Clear(); var suffix = !string.IsNullOrEmpty(field.Text) ? $" for '{field.Text}'" : string.Empty; Console.WriteLine($"Input is requested{suffix}:"); switch (field.Type) { case DialogFieldType.TextBox: field.Result = _argumentGetter.GetNextArgument(); break; case DialogFieldType.DropDown: GetDropDownArgument(field); break; } }
private Point AddInput(DialogField field, Point position) { Control inputControl; switch (field.Type) { case DialogFieldType.DropDown: var cmb = new ComboBox { AutoSize = true, Text = field.DefaultValue, Location = position, Tag = field }; cmb.Items.AddRange(field.Options); cmb.SelectedIndexChanged += Cmb_SelectedIndexChanged; inputControl = cmb; break; case DialogFieldType.TextBox: var txt = new TextBox { AutoSize = true, Text = field.DefaultValue, Location = position, Tag = field }; txt.TextChanged += Txt_TextChanged; inputControl = txt; break; default: return(position); } field.Result = field.DefaultValue; Controls.Add(inputControl); return(new Point(position.X, position.Y + inputControl.Height + ControlPadding_)); }