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();
}