Event.lua 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. class "Event"
  2. Event.EVENTBASE_EVENT = 0x100
  3. Event.COMPLETE_EVENT = Event.EVENTBASE_EVENT + 0
  4. Event.CHANGE_EVENT = Event.EVENTBASE_EVENT + 1
  5. Event.CANCEL_EVENT = Event.EVENTBASE_EVENT + 2
  6. Event.NOTIFY_EVENT = Event.EVENTBASE_EVENT + 3
  7. Event.FIRE_EVENT = Event.EVENTBASE_EVENT + 4
  8. Event.RESOURCE_RELOAD_EVENT = Event.EVENTBASE_EVENT + 5
  9. Event.SELECT_EVENT = Event.EVENTBASE_EVENT + 6
  10. Event.REMOVE_EVENT = Event.EVENTBASE_EVENT + 7
  11. Event.RESOURCE_CHANGE_EVENT = Event.EVENTBASE_EVENT + 8
  12. Event.EVENTBASE_NONPOLYCODE = 0x10000
  13. function Event:__getvar(name)
  14. if name == "deleteOnDispatch" then
  15. return Polycode.Event_get_deleteOnDispatch(self.__ptr)
  16. elseif name == "cancelEventFlag" then
  17. return Polycode.Event_get_cancelEventFlag(self.__ptr)
  18. end
  19. end
  20. function Event:__setvar(name,value)
  21. if name == "deleteOnDispatch" then
  22. Polycode.Event_set_deleteOnDispatch(self.__ptr, value)
  23. return true
  24. elseif name == "cancelEventFlag" then
  25. Polycode.Event_set_cancelEventFlag(self.__ptr, value)
  26. return true
  27. end
  28. return false
  29. end
  30. function Event:Event(...)
  31. local arg = {...}
  32. for k,v in pairs(arg) do
  33. if type(v) == "table" then
  34. if v.__ptr ~= nil then
  35. arg[k] = v.__ptr
  36. end
  37. end
  38. end
  39. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  40. self.__ptr = Polycode.Event(unpack(arg))
  41. end
  42. end
  43. function Event:getEventCode()
  44. local retVal = Polycode.Event_getEventCode(self.__ptr)
  45. return retVal
  46. end
  47. function Event:getDispatcher()
  48. local retVal = Polycode.Event_getDispatcher(self.__ptr)
  49. if retVal == nil then return nil end
  50. local __c = _G["EventDispatcher"]("__skip_ptr__")
  51. __c.__ptr = retVal
  52. return __c
  53. end
  54. function Event:setEventCode(eventCode)
  55. local retVal = Polycode.Event_setEventCode(self.__ptr, eventCode)
  56. end
  57. function Event:setDispatcher(dispatcher)
  58. local retVal = Polycode.Event_setDispatcher(self.__ptr, dispatcher.__ptr)
  59. end
  60. function Event:getEventType()
  61. local retVal = Polycode.Event_getEventType(self.__ptr)
  62. return retVal
  63. end
  64. function Event:cancelEvent()
  65. local retVal = Polycode.Event_cancelEvent(self.__ptr)
  66. end
  67. function Event:__delete()
  68. if self then Polycode.delete_Event(self.__ptr) end
  69. end