示例#1
0
        void ToggleButton_Changed(object sender, System.EventArgs e)
        {
            Skill.Editor.UI.ToggleButton tb = (Skill.Editor.UI.ToggleButton)sender;
            MatchComponent match            = (MatchComponent)tb.UserData;

            match.Copy = tb.IsChecked;
        }
示例#2
0
                    public ParameterItem(ListItem owner, ParameterData data)
                    {
                        this._OwnerListItem = owner;
                        this._Data          = data;
                        this.Height         = 24;
                        this.Padding        = new Thickness(0, 4);

                        this.ColumnDefinitions.Add(1, GridUnitType.Star);
                        this.ColumnDefinitions.Add(2, GridUnitType.Star);
                        this.ColumnDefinitions.Add(2, GridUnitType.Star);

                        _EnumType = new UI.EnumPopup()
                        {
                            Column = 0, Margin = new Thickness(2, 0)
                        };
                        _EnumType.Value         = _Data.Type;
                        _EnumType.ValueChanged += _EnumType_ValueChanged;
                        this.Controls.Add(_EnumType);

                        _TxtName = new UI.TextField()
                        {
                            Column = 1, Text = data.Name, Margin = new Thickness(2, 0)
                        };
                        _TxtName.TextChanged += _TxtName_TextChanged;
                        this.Controls.Add(_TxtName);

                        _IntValue = new UI.IntField()
                        {
                            Column = 2, Margin = new Thickness(2, 0, 6, 0), Visibility = Framework.UI.Visibility.Hidden
                        };
                        this.Controls.Add(_IntValue);
                        _IntValue.ValueChanged += _IntField_ValueChanged;


                        _BoolValue = new UI.ToggleButton()
                        {
                            Column = 2, Margin = new Thickness(2, 0, 6, 0), Visibility = Framework.UI.Visibility.Hidden
                        };
                        this.Controls.Add(_BoolValue);
                        _BoolValue.Changed += _ToggleButton_Changed;

                        _FloatValue = new UI.FloatField()
                        {
                            Column = 2, Margin = new Thickness(2, 0, 6, 0), Visibility = Framework.UI.Visibility.Hidden
                        };
                        this.Controls.Add(_FloatValue);
                        _FloatValue.ValueChanged += _FloatField_ValueChanged;

                        _StringValue = new UI.TextField()
                        {
                            Column = 2, Text = _Data.Value, Margin = new Thickness(2, 0, 6, 0), Visibility = Framework.UI.Visibility.Hidden
                        };
                        this.Controls.Add(_StringValue);
                        _StringValue.TextChanged += _TextField_TextChanged;

                        UpdateValue();
                    }
示例#3
0
 public TreeViewFolder(string label)
 {
     this.Foldout.Content.text = string.Format("   {0}", label);
     this.Foldout.IsOpen       = true;
     Toggle = new UI.ToggleButton()
     {
         Parent = this
     };
 }
示例#4
0
 public BooleanProperties(ExposeProperties owner, PropertyInfo info, ExposePropertyAttribute attribute)
     : base(owner, attribute.Order, info)
 {
     _Field               = new Skill.Editor.UI.ToggleButton();
     _Field.Left          = false;
     _Field.Label.text    = attribute.Name;
     _Field.Label.tooltip = attribute.Description;
     _Field.Changed      += ToggleButton_Changed;
 }
示例#5
0
        private void Rebuild()
        {
            _SourceComponents.Controls.Clear();
            _DestinationComponents.Controls.Clear();

            if (_Source.Object != null && _Destination.Object != null)
            {
                EnableControls(true);

                Component[] sourceComponents = _Source.Object.GetComponents <Component>();
                Component[] destComponents   = _Destination.Object.GetComponents <Component>();

                _MatchedComponents.Clear();
                for (int i = 0; i < sourceComponents.Length; i++)
                {
                    MatchComponent match = new MatchComponent();
                    match.Source      = sourceComponents[i];
                    match.Destination = FindMatch(destComponents, match.Source.GetType());
                    match.Copy        = true;
                    if (match.Source is Transform)
                    {
                        match.Copy = false;
                    }
                    _MatchedComponents.Add(match);
                }

                Skill.Framework.UI.Thickness margin = new Skill.Framework.UI.Thickness(2, 2, 2, 6);
                foreach (var item in _MatchedComponents)
                {
                    Skill.Editor.UI.ToggleButton tb = new Skill.Editor.UI.ToggleButton()
                    {
                        Margin = margin, Left = true
                    };
                    tb.IsChecked  = item.Copy;
                    tb.UserData   = item;
                    tb.Label.text = item.Source.GetType().Name;
                    _SourceComponents.Controls.Add(tb);

                    Skill.Framework.UI.Label lbl = new Skill.Framework.UI.Label()
                    {
                        Margin = margin
                    };
                    if (item.Destination != null)
                    {
                        lbl.Text = item.Destination.GetType().Name;
                    }
                    _DestinationComponents.Controls.Add(lbl);

                    tb.Changed += ToggleButton_Changed;
                }
            }
            else
            {
                EnableControls(false);
            }
        }
示例#6
0
        public TabHeader(int tabCount = 2, bool multiSelect = false)
        {
            this.MultiSelect = multiSelect;
            this.Height      = 16;
            this.TabCount    = Math.Max(2, tabCount);
            for (int i = 0; i < this.TabCount; i++)
            {
                this.ColumnDefinitions.Add(1, GridUnitType.Star);
            }

            this.LabelStyle = new GUIStyle()
            {
                alignment = TextAnchor.MiddleCenter
            }; this.LabelStyle.normal.textColor = new Color(0.7f, 0.7f, 0.7f, 1);
            if (!multiSelect)
            {
                _Group = new ToggleButtonGroup();
            }
            this._Toggles = new Skill.Editor.UI.ToggleButton[this.TabCount];
            this._Labels  = new Label[this.TabCount];
            for (int i = 0; i < this.TabCount; i++)
            {
                _Toggles[i] = new Skill.Editor.UI.ToggleButton()
                {
                    Row = 0, Column = i, Group = _Group
                };
                _Labels[i] = new Skill.Framework.UI.Label()
                {
                    Row = 0, Column = i, Style = LabelStyle
                };

                this.Controls.Add(_Toggles[i]);
                this.Controls.Add(_Labels[i]);

                if (multiSelect)
                {
                    _Toggles[i].Changed += TabHeader_Changed;
                }
                else
                {
                    _Toggles[i].Checked += TabHeader_Checked;
                }
            }
            this._SelectedTab             = -1;
            this.SelectedTab              = 0;
            this._FirstTryLoadEditorStyle = false;
        }
示例#7
0
        void Bone_Changed(object sender, System.EventArgs e)
        {
            if (_AnimationList.SelectedItem == null || _IgnoreChanges)
            {
                return;
            }
            AnimationClipData data = ((AnimationClipListItem)_AnimationList.SelectedItem).Data;

            if (data != null)
            {
                Skill.Editor.UI.ToggleButton item = (Skill.Editor.UI.ToggleButton)sender;
                if (item.IsChecked)
                {
                    if (item.UserData == item.Parent.UserData)
                    {
                        AddMixingTransformRecursive(item.Parent as BaseControl);
                    }
                    else
                    {
                        AddMixingTransform(item);
                    }
                }
                else
                {
                    if (item.UserData == item.Parent.UserData)
                    {
                        RemoveMixingTransformRecursive(item.Parent as BaseControl);
                    }
                    else
                    {
                        RemoveMixingTransform(item);
                    }
                }

                data.MixingTransforms = new MixingTransformData[_MixingTransforms.Count];
                _MixingTransforms.Values.CopyTo(data.MixingTransforms, 0);

                RefreshToggles();
            }
        }
示例#8
0
        private void CreateUI()
        {
            _LableStyle = new GUIStyle()
            {
                normal = new GUIStyleState()
                {
                    textColor = Color.black, background = Resources.UITextures.Colors.White
                },
                padding = new RectOffset(2, 2, 2, 2)
            };

            _Frame = new Skill.Editor.UI.EditorFrame("Frame", this)
            {
                Location = FrameLocation.Fill
            };

            _Frame.Grid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(30, GridUnitType.Pixel)
            });
            _Frame.Grid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(30, GridUnitType.Pixel)
            });
            _Frame.Grid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(44, GridUnitType.Pixel)
            });
            _Frame.Grid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(64, GridUnitType.Pixel)
            });
            _Frame.Grid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(30, GridUnitType.Pixel)
            });
            _Frame.Grid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(20, GridUnitType.Pixel)
            });
            _Frame.Grid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(1, GridUnitType.Star)
            });

            _Help = new UI.HelpBox()
            {
                Row = 0, Column = 0, Margin = new Thickness(2)
            };
            _Help.Message = "Measure distance of two points";

            _Layers = new Skill.Editor.UI.LayerMaskField()
            {
                Layers = 0xFFFFFFF, Row = 1, Column = 0, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(2)
            };
            _Layers.Label.text = "Raycast layers";

            _PnlMeter = new Grid()
            {
                Row = 2, Padding = new Thickness(2)
            };
            _PnlMeter.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(20, GridUnitType.Pixel)
            });
            _PnlMeter.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(20, GridUnitType.Pixel)
            });
            _PnlMeter.ColumnDefinitions.Add(1, GridUnitType.Star);
            _PnlMeter.ColumnDefinitions.Add(1, GridUnitType.Star);
            _PnlMeterBg = new Box()
            {
                Row = 0, Column = 0, RowSpan = 2, ColumnSpan = 2
            };
            _TfMeterName = new UI.TextField()
            {
                Row = 0, Column = 1, Text = "New Meter", IsEnabled = false
            };
            _TbCreateMeter = new UI.ToggleButton()
            {
                Row = 0, Column = 0, Margin = new Thickness(2, 1)
            }; _TbCreateMeter.Label.text = "Create Meter";
            _TbAttachMeter = new UI.ToggleButton()
            {
                Row = 1, Column = 0, ColumnSpan = 2, Margin = new Thickness(2, 0, 2, 1), IsEnabled = false
            }; _TbAttachMeter.Label.text = "Attached Meter"; _TbAttachMeter.Label.tooltip = "Attach created meter to picked colliders";
            _PnlMeter.Controls.Add(_PnlMeterBg);
            _PnlMeter.Controls.Add(_TfMeterName);
            _PnlMeter.Controls.Add(_TbCreateMeter);
            _PnlMeter.Controls.Add(_TbAttachMeter);

            _PnlInfo = new Grid()
            {
                Row = 3, Padding = new Thickness(2)
            };
            _PnlInfo.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(20, GridUnitType.Pixel)
            });
            _PnlInfo.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(20, GridUnitType.Pixel)
            });
            _PnlInfo.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(20, GridUnitType.Pixel)
            });
            _PnlInfo.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = new GridLength(316, GridUnitType.Pixel)
            });
            _PnlInfo.ColumnDefinitions.Add(new ColumnDefinition()
            {
                Width = new GridLength(1, GridUnitType.Star)
            });

            _PnlInfoBg = new Box()
            {
                Row = 0, Column = 0, RowSpan = 3, ColumnSpan = 2
            };

            _LblStartPoint = new Skill.Editor.UI.LabelField()
            {
                Row = 0, Column = 0, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(2)
            };
            _LblStartPoint.Label.text = "Start Point";

            _LblEndPoint = new Skill.Editor.UI.LabelField()
            {
                Row = 1, Column = 0, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(2)
            };
            _LblEndPoint.Label.text = "End Point";

            _LblDistance = new Skill.Editor.UI.LabelField()
            {
                Row = 2, Column = 0, VerticalAlignment = VerticalAlignment.Center, Margin = new Thickness(2)
            };
            _LblDistance.Label.text = "Distance";

            _PnlInfo.Controls.Add(_PnlInfoBg);
            _PnlInfo.Controls.Add(_LblStartPoint);
            _PnlInfo.Controls.Add(_LblEndPoint);
            _PnlInfo.Controls.Add(_LblDistance);


            _BtnEnabled = new Skill.Framework.UI.Button()
            {
                Margin = new Thickness(2), Row = 4, Column = 0
            };
            _BtnEnabled.Content.text = "Enable";
            _BtnEnabled.Click       += new System.EventHandler(_BtnEnabled_Click);

            _InfoBox = new UI.HelpBox()
            {
                Row = 5, Column = 0
            };

            _Frame.Grid.Controls.Add(_Help);
            _Frame.Grid.Controls.Add(_Layers);
            _Frame.Grid.Controls.Add(_PnlMeter);
            _Frame.Grid.Controls.Add(_PnlInfo);
            _Frame.Grid.Controls.Add(_BtnEnabled);
            _Frame.Grid.Controls.Add(_InfoBox);

            _TbCreateMeter.Changed += _TbCreateMeter_Changed;
        }
示例#9
0
        private void CreateUI()
        {
            _Frame = new Skill.Editor.UI.EditorFrame("Frame", this);
            _Frame.Grid.RowDefinitions.Add(120, Skill.Framework.UI.GridUnitType.Pixel); // Panel
            _Frame.Grid.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);    // Empty
            _Frame.Grid.Padding = new Skill.Framework.UI.Thickness(2, 4);


            _Panel = new Skill.Framework.UI.Grid();
            _Panel.RowDefinitions.Add(36, Skill.Framework.UI.GridUnitType.Pixel); // Axis step
            _Panel.RowDefinitions.Add(24, Skill.Framework.UI.GridUnitType.Pixel); // _BtnLocal
            _Panel.RowDefinitions.Add(22, Skill.Framework.UI.GridUnitType.Pixel); // Duplicate
            _Panel.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);   // MoveButton
            _Panel.ColumnDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);
            _Panel.ColumnDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);
            _Frame.Controls.Add(_Panel);

            var margin    = new Skill.Framework.UI.Thickness(0, 4, 0, 0);
            var alignment = Skill.Framework.UI.VerticalAlignment.Top;

            Grid xyzStep = new Grid()
            {
                Row = 0, Column = 0, ColumnSpan = 2
            };

            xyzStep.ColumnDefinitions.Add(1, GridUnitType.Star);
            xyzStep.ColumnDefinitions.Add(1, GridUnitType.Star);
            xyzStep.ColumnDefinitions.Add(1, GridUnitType.Star);
            _Panel.Controls.Add(xyzStep);

            _XStep = new FieldComponent()
            {
                Column = 0, Value = _SerializedStep.x, Label = "X", Margin = new Thickness()
            };
            xyzStep.Controls.Add(_XStep);

            _YStep = new FieldComponent()
            {
                Column = 1, Value = _SerializedStep.y, Label = "Y", Margin = new Thickness(4, 0, 0, 0)
            };
            xyzStep.Controls.Add(_YStep);

            _ZStep = new FieldComponent()
            {
                Column = 2, Value = _SerializedStep.z, Label = "Z", Margin = new Thickness(4, 0, 0, 0)
            };
            xyzStep.Controls.Add(_ZStep);


            _BtnLocal = new Framework.UI.Button()
            {
                Row = 1, Column = 0, ColumnSpan = 2, Margin = margin
            };
            _BtnLocal.Content.text    = _SerializedLocal ? "Local" : "Global";
            _BtnLocal.Content.tooltip = "local or global space";
            _Panel.Controls.Add(_BtnLocal);

            _TbDuplicate = new Skill.Editor.UI.ToggleButton()
            {
                Row = 2, Column = 0, Left = true, IsChecked = _SerializedDuplicate, Margin = margin, VerticalAlignment = alignment
            };
            _TbDuplicate.Label.text    = "Duplicate";
            _TbDuplicate.Label.tooltip = "duplicate instance";
            _Panel.Controls.Add(_TbDuplicate);

            _IntInstance = new Skill.Editor.UI.IntField()
            {
                Row = 2, Column = 1, Value = _SerializedInstances, IsEnabled = false, Margin = margin, VerticalAlignment = alignment, ChangeOnReturn = false
            };
            _IntInstance.Label.tooltip = "duplicate instance";
            _Panel.Controls.Add(_IntInstance);

            _BtnMove = new Skill.Framework.UI.Button()
            {
                Row = 3, Column = 0, ColumnSpan = 2
            };
            SetMoveText();
            _Panel.Controls.Add(_BtnMove);

            _TbDuplicate.Changed      += _TbDuplicate_Changed;
            _IntInstance.ValueChanged += _IntInstance_ValueChanged;
            _XStep.ValueChanged       += _XYZStep_ValueChanged;
            _YStep.ValueChanged       += _XYZStep_ValueChanged;
            _ZStep.ValueChanged       += _XYZStep_ValueChanged;
            _BtnMove.Click            += _BtnMove_Click;
            _BtnLocal.Click           += _BtnLocal_Click;
        }