示例#1
0
            protected override void CreateCustomFileds()
            {
                base.CreateCustomFileds();
                TreeViewItem item = (TreeViewItem)Object;

                if (item.Data is IParameterData)
                {
                    TreeViewFolder parent = item.Parent as TreeViewFolder;
                    if (parent != null)
                    {
                        var parameters = parent.Data.GetParameters(parent.Controls.IndexOf(item));
                        var difinition = ((IParameterData)item.Data).ParameterDifinition;
                        parameters.Match(difinition);
                        _Editor = new ParameterEditor(item, difinition, parameters);
                        this.Controls.Add(_Editor);
                    }
                }
            }
示例#2
0
            public ParameterField(ParameterEditor owner, ParameterData data)
            {
                this._Owner   = owner;
                this._Data    = data;
                this.UserData = data;
                this.Height   = 22;

                this.ColumnDefinitions.Add(22, Framework.UI.GridUnitType.Pixel);
                this.ColumnDefinitions.Add(1, Framework.UI.GridUnitType.Star);
                this.ColumnDefinitions.Add(1, Framework.UI.GridUnitType.Star);

                _Icon = new Framework.UI.Image()
                {
                    Column = 0, Scale = UnityEngine.ScaleMode.ScaleToFit, Texture = UnityEditor.EditorGUIUtility.FindTexture("Toolbar Minus")
                };
                this.Controls.Add(_Icon);

                _ParameterName = new UI.TextField()
                {
                    Column = 1, Margin = new Framework.UI.Thickness(2), Text = _Data.Name
                };
                this.Controls.Add(_ParameterName);
                _ParameterName.TextChanged += _ParameterName_TextChanged;

                switch (_Data.Type)
                {
                case ParameterType.Int:
                    _ParameterField = new UI.IntField();
                    int v = 0;
                    if (int.TryParse(_Data.Value, out v))
                    {
                        ((UI.IntField)_ParameterField).Value = v;
                    }
                    else
                    {
                        ((UI.IntField)_ParameterField).Value = 0;
                        _Data.Value = "0";
                    }
                    ((UI.IntField)_ParameterField).ValueChanged += intField_ValueChanged;
                    break;

                case ParameterType.Bool:
                    _ParameterField = new UI.ToggleButton();

                    bool b = false;
                    if (bool.TryParse(_Data.Value, out b))
                    {
                        ((UI.ToggleButton)_ParameterField).IsChecked = b;
                    }
                    else
                    {
                        ((UI.ToggleButton)_ParameterField).IsChecked = false;
                        _Data.Value = "false";
                    }
                    ((UI.ToggleButton)_ParameterField).Changed += boolField_Changed;
                    break;

                case ParameterType.Float:
                    _ParameterField = new UI.FloatField();

                    float f = 0;
                    if (float.TryParse(_Data.Value, out f))
                    {
                        ((UI.FloatField)_ParameterField).Value = f;
                    }
                    else
                    {
                        ((UI.FloatField)_ParameterField).Value = 0;
                        _Data.Value = "0";
                    }
                    ((UI.FloatField)_ParameterField).ValueChanged += floatField_ValueChanged;
                    break;

                case ParameterType.String:
                    _ParameterField = new UI.TextField();
                    ((UI.TextField)_ParameterField).Text         = _Data.Value;
                    ((UI.TextField)_ParameterField).TextChanged += textField_TextChanged;
                    break;
                }
                if (_ParameterField != null)
                {
                    _ParameterField.Column = 2;
                    _ParameterField.Margin = new Framework.UI.Thickness(2);
                    this.Controls.Add(_ParameterField);
                }
            }