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();
            }
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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 = "";
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        public override void onEndCompoundEdit()
        {
            GuiEditorGui.GuiEditor GuiEditor = "GuiEditor";

            GuiEditor.getUndoManager().popCompound();
        }
Exemplo n.º 7
0
        public override void onBeginCompoundEdit()
        {
            GuiEditorGui.GuiEditor GuiEditor = "GuiEditor";

            GuiEditor.getUndoManager().pushCompound("Multiple Field Edits");
        }