Added WIP UndoRedoStack
This commit is contained in:
parent
70559204bf
commit
b3d15b6a39
|
@ -3,7 +3,7 @@
|
|||
\author Tng Kah Wei, kahwei.tng, 390009620
|
||||
\par email: kahwei.tng\@digipen.edu
|
||||
\date Sep 27, 2022
|
||||
\brief Contains the definition of the functions for the ScriptStore managed
|
||||
\brief Contains the definition of the functions for the Editor managed
|
||||
static class.
|
||||
|
||||
Note: This file is written in C++17/CLI.
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
/************************************************************************************//*!
|
||||
\file UndoRedoStack.cxx
|
||||
\author Tng Kah Wei, kahwei.tng, 390009620
|
||||
\par email: kahwei.tng\@digipen.edu
|
||||
\date Sep 29, 2022
|
||||
\brief Contains the definition of the functions for the UndoRedoStack managed
|
||||
class.
|
||||
|
||||
Note: This file is written in C++17/CLI.
|
||||
|
||||
Copyright (C) 2022 DigiPen Institute of Technology.
|
||||
Reproduction or disclosure of this file or its contents without the prior written consent
|
||||
of DigiPen Institute of Technology is prohibited.
|
||||
*//*************************************************************************************/
|
||||
// Precompiled Headers
|
||||
#include "SHpch.h"
|
||||
// Primary Header
|
||||
#include "UndoRedoStack.hxx"
|
||||
// External Dependencies
|
||||
#include "Editor/SHEditorUI.h"
|
||||
// Project Headers
|
||||
|
||||
namespace SHADE
|
||||
{
|
||||
void UndoRedoStack::Add(Command command)
|
||||
{
|
||||
// Erase any other actions ahead of the current action
|
||||
if (latestActionIndex < commandStack->Count - 1)
|
||||
{
|
||||
commandStack->RemoveRange(latestActionIndex + 1, commandStack->Count - latestActionIndex);
|
||||
}
|
||||
|
||||
// Add the command
|
||||
commandStack->Add(command);
|
||||
|
||||
// Increment latest command
|
||||
++latestActionIndex;
|
||||
}
|
||||
|
||||
void UndoRedoStack::Undo()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void UndoRedoStack::Redo()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
/************************************************************************************//*!
|
||||
\file UndoRedoStack.hxx
|
||||
\author Tng Kah Wei, kahwei.tng, 390009620
|
||||
\par email: kahwei.tng\@digipen.edu
|
||||
\date Sep 29, 2022
|
||||
\brief Contains the definition of the managed UndoRedoStack class.
|
||||
|
||||
Note: This file is written in C++17/CLI.
|
||||
|
||||
Copyright (C) 2022 DigiPen Institute of Technology.
|
||||
Reproduction or disclosure of this file or its contents without the prior written consent
|
||||
of DigiPen Institute of Technology is prohibited.
|
||||
*//*************************************************************************************/
|
||||
#pragma once
|
||||
|
||||
namespace SHADE
|
||||
{
|
||||
/// <summary>
|
||||
/// Class that is able to store a stack of actions that can be done and redone.
|
||||
/// </summary>
|
||||
private ref class UndoRedoStack sealed
|
||||
{
|
||||
public:
|
||||
/*-----------------------------------------------------------------------------*/
|
||||
/* Type Definitions */
|
||||
/*-----------------------------------------------------------------------------*/
|
||||
value struct Command
|
||||
{
|
||||
public:
|
||||
System::Action^ UndoAction;
|
||||
System::Action^ RedoAction;
|
||||
};
|
||||
|
||||
/*-----------------------------------------------------------------------------*/
|
||||
/* Usage Functions */
|
||||
/*-----------------------------------------------------------------------------*/
|
||||
void Add(Command command);
|
||||
void Undo();
|
||||
void Redo();
|
||||
|
||||
private:
|
||||
/*-----------------------------------------------------------------------------*/
|
||||
/* Data Members */
|
||||
/*-----------------------------------------------------------------------------*/
|
||||
int latestActionIndex = -1;
|
||||
System::Collections::Generic::List<Command>^ commandStack = gcnew System::Collections::Generic::List<Command>();
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue