2
0

LuaScriptEventInvoker.h 883 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright (c) 2008-2022 the Urho3D project
  2. // License: MIT
  3. #pragma once
  4. #include "../Core/Object.h"
  5. namespace Urho3D
  6. {
  7. class LuaFunction;
  8. class LuaScriptInstance;
  9. /// Lua script event invoker.
  10. class LuaScriptEventInvoker : public Object
  11. {
  12. URHO3D_OBJECT(LuaScriptEventInvoker, Object);
  13. public:
  14. /// Construct.
  15. explicit LuaScriptEventInvoker(Context* context);
  16. /// Construct from LuaScriptInstance.
  17. explicit LuaScriptEventInvoker(LuaScriptInstance* instance);
  18. /// Destruct.
  19. ~LuaScriptEventInvoker() override;
  20. /// Add a scripted event handler.
  21. void AddEventHandler(Object* sender, const StringHash& eventType, LuaFunction* function);
  22. private:
  23. /// Handle script event in Lua script.
  24. void HandleLuaScriptEvent(StringHash eventType, VariantMap& eventData);
  25. /// Lua script instance.
  26. WeakPtr<LuaScriptInstance> instance_;
  27. };
  28. }