public override void onEndReparenting() { GuiEditorGui.GuiEditor GuiEditor = "GuiEditor"; UndoActionReparentObjects action = this.reparentUndoAction; this.reparentUndoAction = ""; if (action.numObjects > 0) { if (action.numObjects == 1) { action.actionName = "Reparent Control"; } else { action.actionName = "Reparent Controls"; } action.addToManager(GuiEditor.getUndoManager()); GuiEditor.updateUndoMenu(); } else { action.delete(); } }
public void onInspectorPostFieldModification() { GuiEditorGui.GuiEditor GuiEditor = "GuiEditor"; if (this.currentFieldEditAction.isMemberOfClass("CompoundUndoAction")) { // Finish multiple field edit. GuiEditor.getUndoManager().popCompound(); } else { // Queue single field undo. this.currentFieldEditAction.addToManager(GuiEditor.getUndoManager()); } this.currentFieldEditAction = ""; GuiEditor.updateUndoMenu(); }
public void onInspectorPreFieldModification(string fieldName, string arrayIndex) { GuiEditorGui.GuiEditor GuiEditor = "GuiEditor"; Util.pushInstantGroup(); UndoManager undoManager = GuiEditor.getUndoManager(); string action = ""; int numObjects = this.getNumInspectObjects(); if (numObjects > 1) { action = undoManager.pushCompound("Multiple Field Edit"); } for (uint i = 0; i < numObjects; i++) { SimObject obj = this.getInspectObject(i); string nameOrClass = obj.getName(); if (nameOrClass == "") { nameOrClass = obj.getClassName(); } ObjectCreator oc = new ObjectCreator("InspectorFieldUndoAction"); oc["actionName"] = nameOrClass + "." + fieldName + " Change"; oc["objectId"] = obj.getId(); oc["fieldName"] = fieldName; oc["fieldValue"] = obj.getFieldValue(fieldName, arrayIndex == "(null)" ? -1 : arrayIndex.AsInt()); oc["arrayIndex"] = arrayIndex; oc["inspectorGui"] = this; InspectorFieldUndoAction undo = oc.Create(); if (numObjects > 1) { undo.addToManager(undoManager); } else { action = undo; break; } } this.currentFieldEditAction = action; Util.popInstantGroup(); }
public void onInspectorDiscardFieldModification() { GuiEditorGui.GuiEditor GuiEditor = "GuiEditor"; this.currentFieldEditAction.undo(); if (this.currentFieldEditAction.isMemberOfClass("CompoundUndoAction")) { // Multiple field editor. Pop and discard. GuiEditor.getUndoManager().popCompound(true); } else { // Single field edit. Just kill undo action. this.currentFieldEditAction.delete(); } this.currentFieldEditAction = ""; }
public override void onInspectorFieldModified(string objectx, string fieldName, string arrayIndex, string oldValue, string newValue) { SimObject obj = objectx; GuiEditorGui.GuiEditor GuiEditor = "GuiEditor"; // The instant group will try to add our // UndoAction if we don't disable it. Util.pushInstantGroup(); string nameOrClass = obj.getName(); if (nameOrClass == "") { nameOrClass = obj.getClassName(); } ObjectCreator oc = new ObjectCreator("InspectorFieldUndoAction"); oc["actionName"] = nameOrClass + "." + fieldName + " Change"; oc["objectId"] = obj.getId(); oc["fieldName"] = fieldName; oc["fieldValue"] = oldValue; oc["arrayIndex"] = arrayIndex; oc["inspectorGui"] = this; InspectorFieldUndoAction action = oc.Create(); // Restore the instant group. Util.popInstantGroup(); action.addToManager(GuiEditor.getUndoManager()); GuiEditor.updateUndoMenu(); }
public override void onEndCompoundEdit() { GuiEditorGui.GuiEditor GuiEditor = "GuiEditor"; GuiEditor.getUndoManager().popCompound(); }
public override void onBeginCompoundEdit() { GuiEditorGui.GuiEditor GuiEditor = "GuiEditor"; GuiEditor.getUndoManager().pushCompound("Multiple Field Edits"); }