2
0

Event.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #include "EventParametersProxy.h"
  2. #include <RmlUi/Core/Dictionary.h>
  3. #include <RmlUi/Core/Element.h>
  4. #include <RmlUi/Core/Event.h>
  5. #include <RmlUi/Lua/IncludeLua.h>
  6. #include <RmlUi/Lua/LuaType.h>
  7. namespace Rml {
  8. namespace Lua {
  9. template <>
  10. void ExtraInit<Event>(lua_State* /*L*/, int /*metatable_index*/)
  11. {
  12. return;
  13. }
  14. // methods
  15. int EventStopPropagation(lua_State* /*L*/, Event* obj)
  16. {
  17. obj->StopPropagation();
  18. return 0;
  19. }
  20. int EventStopImmediatePropagation(lua_State* /*L*/, Event* obj)
  21. {
  22. obj->StopImmediatePropagation();
  23. return 0;
  24. }
  25. // getters
  26. int EventGetAttrcurrent_element(lua_State* L)
  27. {
  28. Event* evt = LuaType<Event>::check(L, 1);
  29. RMLUI_CHECK_OBJ(evt);
  30. Element* ele = evt->GetCurrentElement();
  31. LuaType<Element>::push(L, ele, false);
  32. return 1;
  33. }
  34. int EventGetAttrtype(lua_State* L)
  35. {
  36. Event* evt = LuaType<Event>::check(L, 1);
  37. RMLUI_CHECK_OBJ(evt);
  38. String type = evt->GetType();
  39. lua_pushstring(L, type.c_str());
  40. return 1;
  41. }
  42. int EventGetAttrtarget_element(lua_State* L)
  43. {
  44. Event* evt = LuaType<Event>::check(L, 1);
  45. RMLUI_CHECK_OBJ(evt);
  46. Element* target = evt->GetTargetElement();
  47. LuaType<Element>::push(L, target, false);
  48. return 1;
  49. }
  50. int EventGetAttrparameters(lua_State* L)
  51. {
  52. Event* evt = LuaType<Event>::check(L, 1);
  53. RMLUI_CHECK_OBJ(evt);
  54. EventParametersProxy* proxy = new EventParametersProxy();
  55. proxy->owner = evt;
  56. LuaType<EventParametersProxy>::push(L, proxy, true);
  57. return 1;
  58. }
  59. RegType<Event> EventMethods[] = {
  60. RMLUI_LUAMETHOD(Event, StopPropagation),
  61. RMLUI_LUAMETHOD(Event, StopImmediatePropagation),
  62. {nullptr, nullptr},
  63. };
  64. luaL_Reg EventGetters[] = {
  65. RMLUI_LUAGETTER(Event, current_element),
  66. RMLUI_LUAGETTER(Event, type),
  67. RMLUI_LUAGETTER(Event, target_element),
  68. RMLUI_LUAGETTER(Event, parameters),
  69. {nullptr, nullptr},
  70. };
  71. luaL_Reg EventSetters[] = {
  72. {nullptr, nullptr},
  73. };
  74. RMLUI_LUATYPE_DEFINE(Event)
  75. } // namespace Lua
  76. } // namespace Rml