Ejemplo n.º 1
0
 public DebugItemViewer(Rect canvas)
 {
     this.GuiCanvas = canvas;
     colourPicker = new ColourPicker("Colour");
     globalPosPicker = new Vector3Picker("Global Pos", -10f, 10f);
     localPosPicker = new Vector3Picker("Local Pos", -10f, 10f);
     scalePicker = new Vector3Picker("Scale", 0.001f, 5f);
     rotationPicker = new RotationPicker("Rotation");
 }
Ejemplo n.º 2
0
 public DebugItemViewer(Rect canvas)
 {
     this.GuiCanvas  = canvas;
     colourPicker    = new ColourPicker("Colour");
     globalPosPicker = new Vector3Picker("Global Pos", -10f, 10f);
     localPosPicker  = new Vector3Picker("Local Pos", -10f, 10f);
     scalePicker     = new Vector3Picker("Scale", 0.001f, 5f);
     rotationPicker  = new RotationPicker("Rotation");
 }
Ejemplo n.º 3
0
        private Widget buildFieldEditor(EffectConfig.ConfigField field)
        {
            if (field.AllowedValues != null)
            {
                var widget = new Selectbox(Manager)
                {
                    Value      = field.Value,
                    Options    = field.AllowedValues,
                    AnchorFrom = BoxAlignment.Right,
                    AnchorTo   = BoxAlignment.Right,
                    CanGrow    = false,
                };
                widget.OnValueChanged += (sender, e) => setFieldValue(field, widget.Value);
                return(widget);
            }
            else if (field.Type == typeof(bool))
            {
                var widget = new Selectbox(Manager)
                {
                    Value   = field.Value,
                    Options = new NamedValue[]
                    {
                        new NamedValue()
                        {
                            Name = true.ToString(), Value = true,
                        },
                        new NamedValue()
                        {
                            Name = false.ToString(), Value = false,
                        },
                    },
                    AnchorFrom = BoxAlignment.Right,
                    AnchorTo   = BoxAlignment.Right,
                    CanGrow    = false,
                };
                widget.OnValueChanged += (sender, e) => setFieldValue(field, widget.Value);
                return(widget);
            }
            else if (field.Type == typeof(string))
            {
                var widget = new Textbox(Manager)
                {
                    Value           = field.Value?.ToString(),
                    AnchorFrom      = BoxAlignment.Right,
                    AnchorTo        = BoxAlignment.Right,
                    AcceptMultiline = true,
                    CanGrow         = false,
                };
                widget.OnValueCommited += (sender, e) =>
                {
                    setFieldValue(field, widget.Value);
                    widget.Value = effect.Config.GetValue(field.Name).ToString();
                };
                return(widget);
            }
            else if (field.Type == typeof(Vector2))
            {
                var widget = new Vector2Picker(Manager)
                {
                    Value      = (Vector2)field.Value,
                    AnchorFrom = BoxAlignment.Right,
                    AnchorTo   = BoxAlignment.Right,
                    CanGrow    = false,
                };
                widget.OnValueCommited += (sender, e) =>
                {
                    setFieldValue(field, widget.Value);
                    widget.Value = (Vector2)effect.Config.GetValue(field.Name);
                };
                return(widget);
            }
            else if (field.Type == typeof(Vector3))
            {
                var widget = new Vector3Picker(Manager)
                {
                    Value      = (Vector3)field.Value,
                    AnchorFrom = BoxAlignment.Right,
                    AnchorTo   = BoxAlignment.Right,
                    CanGrow    = false,
                };
                widget.OnValueCommited += (sender, e) =>
                {
                    setFieldValue(field, widget.Value);
                    widget.Value = (Vector3)effect.Config.GetValue(field.Name);
                };
                return(widget);
            }
            else if (field.Type == typeof(Color4))
            {
                var widget = new HsbColorPicker(Manager)
                {
                    Value      = (Color4)field.Value,
                    AnchorFrom = BoxAlignment.Right,
                    AnchorTo   = BoxAlignment.Right,
                    CanGrow    = false,
                };
                widget.OnValueCommited += (sender, e) =>
                {
                    setFieldValue(field, widget.Value);
                    widget.Value = (Color4)effect.Config.GetValue(field.Name);
                };
                return(widget);
            }
            else if (field.Type.GetInterface(nameof(IConvertible)) != null)
            {
                var widget = new Textbox(Manager)
                {
                    Value      = Convert.ToString(field.Value, CultureInfo.InvariantCulture),
                    AnchorFrom = BoxAlignment.Right,
                    AnchorTo   = BoxAlignment.Right,
                    CanGrow    = false,
                };
                widget.OnValueCommited += (sender, e) =>
                {
                    try
                    {
                        var value = Convert.ChangeType(widget.Value, field.Type, CultureInfo.InvariantCulture);
                        setFieldValue(field, value);
                    }
                    catch { }
                    widget.Value = Convert.ToString(effect.Config.GetValue(field.Name), CultureInfo.InvariantCulture);
                };
                return(widget);
            }

            return(new Label(Manager)
            {
                StyleName = "listItem",
                Text = field.Value.ToString(),
                Tooltip = $"Values of type {field.Type.Name} cannot be edited",
                AnchorFrom = BoxAlignment.Right,
                AnchorTo = BoxAlignment.Right,
                CanGrow = false,
            });
        }