Example #1
0
        public static OperStruct OperSet(Action <int> _operFunc, int _operValue)
        {
            OperStruct operStru = new OperStruct();

            operStru.OperFunc  = _operFunc;
            operStru.OperValue = _operValue;
            return(operStru);
        }
Example #2
0
    public void Undo()
    {
        OperStruct operFunc = stack.Pop();

        if (operFunc.OperFunc != null && _reverseOper.ContainsKey(operFunc.OperFunc))
        {
            _reverseOper[operFunc.OperFunc](operFunc.OperValue);
            _undo = true;
        }
    }
Example #3
0
    public void RepeatLastCommand()
    {
        OperStruct topOfStack = stack.Peek();

        if (stack.Count > 1)
        {
            if (topOfStack.OperFunc != null)
            {
                if (!_undo)     // if not called undo
                {
                    _reverseOper[topOfStack.OperFunc](topOfStack.OperValue);
                }
                else     // called undo
                {
                    stack.Pop();
                    topOfStack = stack.Pop();
                    _reverseOper[topOfStack.OperFunc](topOfStack.OperValue);
                    _undo = true;
                }
            }
        }
    }
Example #4
0
 public void Division(int value)
 {
     _total /= value;
     _undo   = false;
     stack.Push(OperStruct.OperSet(Division, value));
 }
Example #5
0
 public void Multiply(int value)
 {
     _total *= value;
     _undo   = false;
     stack.Push(OperStruct.OperSet(Multiply, value));
 }
Example #6
0
 public void Subtract(int value)
 {
     _total -= value;
     _undo   = false;
     stack.Push(OperStruct.OperSet(Subtract, value));
 }
Example #7
0
 public void Add(int value)
 {
     _total += value;
     _undo   = false;
     stack.Push(OperStruct.OperSet(Add, value));
 }