Command.h 683 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include <Atomic/Core/Object.h>
  3. using namespace Atomic;
  4. namespace ToolCore
  5. {
  6. EVENT(E_COMMANDERROR, CommandError)
  7. {
  8. PARAM(P_MESSAGE, Message); // string
  9. }
  10. EVENT(E_COMMANDFINISHED, CommandFinished)
  11. {
  12. }
  13. class Command : public Object
  14. {
  15. OBJECT(Command);
  16. public:
  17. Command(Context* context);
  18. virtual ~Command();
  19. virtual bool Parse(const Vector<String>& arguments, unsigned startIndex, String& errorMsg) = 0;
  20. virtual void Run() = 0;
  21. virtual void Finished();
  22. virtual void Error(const String& errorMsg);
  23. virtual void Cancel() {}
  24. virtual bool RequiresProjectLoad() { return true; }
  25. private:
  26. float timeOut_;
  27. };
  28. }