Command.h 723 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. bool Parse(const String& command);
  20. virtual bool Parse(const Vector<String>& arguments, unsigned startIndex, String& errorMsg) = 0;
  21. virtual void Run() = 0;
  22. virtual void Finished();
  23. virtual void Error(const String& errorMsg);
  24. virtual void Cancel() {}
  25. virtual bool RequiresProjectLoad() { return true; }
  26. private:
  27. float timeOut_;
  28. };
  29. }