void OnEnable() { CreateUI(); ImplantAsset data = target as ImplantAsset; if (data != null) { if (data.Objects != null) { foreach (var item in data.Objects) { if (item != null) { ImplantObjectListItem field = new ImplantObjectListItem(this, item); _ItemsList.Controls.Add(field); } } } } else { _ItemsList.Controls.Clear(); } if (_ItemsList.Controls.Count > 0) { _ItemsList.SelectedIndex = 0; } }
void _ChangeCheck_Changed(object sender, EventArgs e) { ImplantAsset data = target as ImplantAsset; if (data != null) { EditorUtility.SetDirty(data); } }
private void ApplyChanges() { if (_IsCollectionChanged) { ImplantAsset data = target as ImplantAsset; if (data != null) { data.Objects = new ImplantObject[_ItemsList.Controls.Count]; for (int i = 0; i < _ItemsList.Controls.Count; i++) { ImplantObjectListItem field = (ImplantObjectListItem)_ItemsList.Controls[i]; data.Objects[i] = field.Object; } EditorUtility.SetDirty(data); } _IsCollectionChanged = false; } }
private void CreateUI() { _ObjectField = new ImplantObjectField(this) { Row = 4, Column = 1 }; _MainPanel = new ChangeCheck(); _MainPanel.RowDefinitions.Add(26, GridUnitType.Pixel); // property lable _MainPanel.RowDefinitions.Add(124, GridUnitType.Pixel); // properties _MainPanel.RowDefinitions.Add(ButtonRowHeight, GridUnitType.Pixel); // button add _MainPanel.RowDefinitions.Add(1, GridUnitType.Star); // object list _MainPanel.RowDefinitions.Add(_ObjectField.LayoutHeight, GridUnitType.Pixel); // object filed _LblDefaultProperties = new DropShadowLabel() { Row = 0, Column = 0, Margin = new Thickness(0, 0, 0, 6) }; _LblDefaultProperties.Text = "Default properties"; ImplantAsset asset = target as ImplantAsset; if (asset.DefaultObject == null) { asset.DefaultObject = CreateNew(); } asset.DefaultObject.OverrideProperties = true; _PropertiesField = new ImplantObjectPropertiesField() { Row = 1, Column = 0, Object = asset.DefaultObject }; _ItemsList = new ListBox() { Row = 3, Column = 0, Margin = new Thickness(0, 2) }; _ItemsList.BackgroundVisible = true; _ItemsList.DisableFocusable(); _BtnAdd = new Skill.Framework.UI.Button() { Row = 2, Column = 0, Margin = new Thickness(2) }; _BtnAdd.Content.text = "Add"; _BtnAdd.Click += new System.EventHandler(_BtnAdd_Click); _MainPanel.Controls.Add(new Box() { Row = 4, Column = 0 }); _MainPanel.Controls.Add(new Box() { Row = 0, Column = 0, RowSpan = 2 }); _MainPanel.Controls.Add(_LblDefaultProperties); _MainPanel.Controls.Add(_PropertiesField); _MainPanel.Controls.Add(_BtnAdd); _MainPanel.Controls.Add(_ItemsList); _MainPanel.Controls.Add(_ObjectField); _Frame = new Frame("MainFrame"); _Frame.Grid.Controls.Add(_MainPanel); _MainPanel.Changed += new EventHandler(_ChangeCheck_Changed); _ItemsList.SelectionChanged += _ItemsList_SelectionChanged; }