Event.cpp 1.9 KB

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