Exemplo n.º 1
0
        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}.");
            }
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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;
            }
        }
Exemplo n.º 6
0
        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_));
        }