void SetObjectData(ObjectData data) { activeData = data; Action handler = delegate() { if (RoomEditor != null) { RoomEditor.OnObjectsModified(); } UpdateDocumentation(); }; foreach (Gtk.Widget widget in objectDataContainer.Children) { objectDataContainer.Remove(widget); widget.Destroy(); } if (ObjectDataEditor != null) { ObjectDataEditor.RemoveDataModifiedHandler(handler); ObjectDataEditor = null; } if (RoomEditor != null) { RoomEditor.OnObjectsModified(); } if (data == null) { frameLabel.Text = ""; return; } frameLabel.Text = ObjectNames[(int)activeData.GetObjectType()]; ObjectDataEditor = new ValueReferenceEditor(Project, data); ObjectDataEditor.AddDataModifiedHandler(handler); if (SubEditor != null) { SubEditor.RoomEditor = RoomEditor; } objectDataContainer.Add(ObjectDataEditor); objectDataContainer.ShowAll(); UpdateDocumentation(); }