JSEventHelper.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include <Atomic/Core/Object.h>
  3. #include <Atomic/Core/Context.h>
  4. namespace Atomic
  5. {
  6. class ATOMIC_API JSEventDispatcher : public Object, public GlobalEventListener
  7. {
  8. OBJECT(JSEventDispatcher);
  9. public:
  10. /// Construct.
  11. JSEventDispatcher(Context* context);
  12. /// Destruct.
  13. virtual ~JSEventDispatcher();
  14. void RegisterJSEvent(StringHash hash) { jsEvents_[hash] = true; }
  15. private:
  16. void BeginSendEvent(Context* context, Object* sender, StringHash eventType, VariantMap& eventData);
  17. void EndSendEvent(Context* context, Object* sender, StringHash eventType, VariantMap& eventData);
  18. HashMap<StringHash, bool> jsEvents_;
  19. };
  20. class ATOMIC_API JSEventHelper : public Object
  21. {
  22. OBJECT(JSEventHelper);
  23. public:
  24. /// Construct.
  25. JSEventHelper(Context* context);
  26. /// Destruct.
  27. virtual ~JSEventHelper();
  28. void AddEventHandler(StringHash eventType);
  29. void AddEventHandler(Object* sender, StringHash eventType);
  30. private:
  31. void HandleEvent(StringHash eventType, VariantMap& eventData);
  32. };
  33. }