/// <summary> /// Do処理 コマンドの実行 /// </summary> /// <param name="command">実行するコマンド</param> /// <returns> /// コマンドを実行したか /// false : アンドゥ用スタックがいっぱい /// </returns> public bool Invoke(IUndoRedoCommand command) { bool ret = true; // アンドゥスタックのサイズチェック if(m_undoStack.Count >= m_maxSize) { // 最初の要素を削除して追加 _PushAndPopFront(m_undoStack, command); ret = false; } else { // アンドゥ用スタックに実行したコマンドを積んでおく _Push(m_undoStack, command); } // コマンドの実行 command.Invoke(); // リドゥ用スタックのクリア m_redoStack.Clear(); return ret; }