Exemplo n.º 1
0
        public SvgElement[] Redo()
        {
            ArrayList list1 = new ArrayList(0x10);

            if (this.redostack.Count > 0)
            {
                IUndoOperation[] operationArray1 = (IUndoOperation[])this.redostack.Pop();
                this.AcceptChanges = false;
                IUndoOperation[] operationArray2 = operationArray1;
                for (int num1 = 0; num1 < operationArray2.Length; num1++)
                {
                    IUndoOperation operation1 = operationArray2[num1];
                    SvgElement     element1   = null;
                    if (operation1 is UnDoOperation)
                    {
                        element1 = ((UnDoOperation)operation1).changeParent;
                    }
                    else if (operation1 is KeyUndoOperation)
                    {
                        element1 = ((KeyUndoOperation)operation1).ChangeElement;
                    }
                    if (!list1.Contains(element1))
                    {
                        list1.Add(element1);
                    }
                    operation1.Redo();
                }
                Array.Reverse(operationArray1);
                this.undostack.Push(operationArray1);
                this.OnActionRedone();
                this.AcceptChanges = true;
            }
            if (list1.Count > 0)
            {
                SvgElement[] elementArray1 = new SvgElement[list1.Count];
                list1.CopyTo(elementArray1);
                return(elementArray1);
            }
            return(null);
        }