InputEvent.lua 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. require "Polycode/Event"
  2. class "InputEvent" (Event)
  3. InputEvent.EVENTBASE_INPUTEVENT = 0x400
  4. InputEvent.EVENT_MOUSEDOWN = InputEvent.EVENTBASE_INPUTEVENT + 0
  5. InputEvent.EVENT_MOUSEUP = InputEvent.EVENTBASE_INPUTEVENT + 1
  6. InputEvent.EVENT_MOUSEMOVE = InputEvent.EVENTBASE_INPUTEVENT + 2
  7. InputEvent.EVENT_MOUSEOVER = InputEvent.EVENTBASE_INPUTEVENT + 3
  8. InputEvent.EVENT_MOUSEOUT = InputEvent.EVENTBASE_INPUTEVENT + 4
  9. InputEvent.EVENT_DOUBLECLICK = InputEvent.EVENTBASE_INPUTEVENT + 5
  10. InputEvent.EVENT_MOUSEUP_OUTSIDE = InputEvent.EVENTBASE_INPUTEVENT + 6
  11. InputEvent.EVENT_MOUSEWHEEL_UP = InputEvent.EVENTBASE_INPUTEVENT + 7
  12. InputEvent.EVENT_MOUSEWHEEL_DOWN = InputEvent.EVENTBASE_INPUTEVENT + 8
  13. InputEvent.EVENT_KEYDOWN = InputEvent.EVENTBASE_INPUTEVENT + 13
  14. InputEvent.EVENT_KEYUP = InputEvent.EVENTBASE_INPUTEVENT + 14
  15. InputEvent.EVENT_JOYBUTTON_DOWN = InputEvent.EVENTBASE_INPUTEVENT + 15
  16. InputEvent.EVENT_JOYBUTTON_UP = InputEvent.EVENTBASE_INPUTEVENT + 16
  17. InputEvent.EVENT_JOYAXIS_MOVED = InputEvent.EVENTBASE_INPUTEVENT + 17
  18. InputEvent.EVENT_JOYDEVICE_ATTACHED = InputEvent.EVENTBASE_INPUTEVENT + 18
  19. InputEvent.EVENT_JOYDEVICE_DETACHED = InputEvent.EVENTBASE_INPUTEVENT + 19
  20. InputEvent.EVENT_TOUCHES_BEGAN = InputEvent.EVENTBASE_INPUTEVENT + 20
  21. InputEvent.EVENT_TOUCHES_MOVED = InputEvent.EVENTBASE_INPUTEVENT + 21
  22. InputEvent.EVENT_TOUCHES_ENDED = InputEvent.EVENTBASE_INPUTEVENT + 22
  23. InputEvent.EVENT_TEXTINPUT = InputEvent.EVENTBASE_INPUTEVENT + 23
  24. function InputEvent:__getvar(name)
  25. if name == "mouseButton" then
  26. return Polycode.InputEvent_get_mouseButton(self.__ptr)
  27. elseif name == "mousePosition" then
  28. local retVal = Polycode.InputEvent_get_mousePosition(self.__ptr)
  29. if retVal == nil then return nil end
  30. local __c = _G["Vector2"]("__skip_ptr__")
  31. __c.__ptr = retVal
  32. return __c
  33. elseif name == "key" then
  34. return Polycode.InputEvent_get_key(self.__ptr)
  35. elseif name == "timestamp" then
  36. return Polycode.InputEvent_get_timestamp(self.__ptr)
  37. elseif name == "text" then
  38. return Polycode.InputEvent_get_text(self.__ptr)
  39. elseif name == "touch" then
  40. local retVal = Polycode.InputEvent_get_touch(self.__ptr)
  41. if retVal == nil then return nil end
  42. local __c = _G["TouchInfo"]("__skip_ptr__")
  43. __c.__ptr = retVal
  44. return __c
  45. elseif name == "touchType" then
  46. return Polycode.InputEvent_get_touchType(self.__ptr)
  47. elseif name == "joystickDeviceID" then
  48. return Polycode.InputEvent_get_joystickDeviceID(self.__ptr)
  49. elseif name == "joystickAxisValue" then
  50. return Polycode.InputEvent_get_joystickAxisValue(self.__ptr)
  51. elseif name == "joystickButton" then
  52. return Polycode.InputEvent_get_joystickButton(self.__ptr)
  53. elseif name == "joystickAxis" then
  54. return Polycode.InputEvent_get_joystickAxis(self.__ptr)
  55. elseif name == "joystickIndex" then
  56. return Polycode.InputEvent_get_joystickIndex(self.__ptr)
  57. elseif name == "hitDistance" then
  58. return Polycode.InputEvent_get_hitDistance(self.__ptr)
  59. end
  60. if Event["__getvar"] ~= nil then
  61. return Event.__getvar(self, name)
  62. end
  63. end
  64. function InputEvent:__setvar(name,value)
  65. if name == "mouseButton" then
  66. Polycode.InputEvent_set_mouseButton(self.__ptr, value)
  67. return true
  68. elseif name == "mousePosition" then
  69. Polycode.InputEvent_set_mousePosition(self.__ptr, value.__ptr)
  70. return true
  71. elseif name == "key" then
  72. Polycode.InputEvent_set_key(self.__ptr, value)
  73. return true
  74. elseif name == "timestamp" then
  75. Polycode.InputEvent_set_timestamp(self.__ptr, value)
  76. return true
  77. elseif name == "text" then
  78. Polycode.InputEvent_set_text(self.__ptr, value)
  79. return true
  80. elseif name == "touch" then
  81. Polycode.InputEvent_set_touch(self.__ptr, value.__ptr)
  82. return true
  83. elseif name == "touchType" then
  84. Polycode.InputEvent_set_touchType(self.__ptr, value)
  85. return true
  86. elseif name == "joystickDeviceID" then
  87. Polycode.InputEvent_set_joystickDeviceID(self.__ptr, value)
  88. return true
  89. elseif name == "joystickAxisValue" then
  90. Polycode.InputEvent_set_joystickAxisValue(self.__ptr, value)
  91. return true
  92. elseif name == "joystickButton" then
  93. Polycode.InputEvent_set_joystickButton(self.__ptr, value)
  94. return true
  95. elseif name == "joystickAxis" then
  96. Polycode.InputEvent_set_joystickAxis(self.__ptr, value)
  97. return true
  98. elseif name == "joystickIndex" then
  99. Polycode.InputEvent_set_joystickIndex(self.__ptr, value)
  100. return true
  101. elseif name == "hitDistance" then
  102. Polycode.InputEvent_set_hitDistance(self.__ptr, value)
  103. return true
  104. end
  105. if Event["__setvar"] ~= nil then
  106. return Event.__setvar(self, name, value)
  107. else
  108. return false
  109. end
  110. end
  111. function InputEvent:InputEvent(...)
  112. local arg = {...}
  113. if type(arg[1]) == "table" and count(arg) == 1 then
  114. if ""..arg[1].__classname == "Event" then
  115. self.__ptr = arg[1].__ptr
  116. return
  117. end
  118. end
  119. for k,v in pairs(arg) do
  120. if type(v) == "table" then
  121. if v.__ptr ~= nil then
  122. arg[k] = v.__ptr
  123. end
  124. end
  125. end
  126. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  127. self.__ptr = Polycode.InputEvent(unpack(arg))
  128. end
  129. end
  130. function InputEvent:getMousePosition()
  131. local retVal = Polycode.InputEvent_getMousePosition(self.__ptr)
  132. if retVal == nil then return nil end
  133. local __c = _G["Vector2"]("__skip_ptr__")
  134. __c.__ptr = retVal
  135. return __c
  136. end
  137. function InputEvent:getKey()
  138. local retVal = Polycode.InputEvent_getKey(self.__ptr)
  139. return retVal
  140. end
  141. function InputEvent:getMouseButton()
  142. local retVal = Polycode.InputEvent_getMouseButton(self.__ptr)
  143. return retVal
  144. end
  145. function InputEvent:keyCode()
  146. local retVal = Polycode.InputEvent_keyCode(self.__ptr)
  147. return retVal
  148. end
  149. function InputEvent:__delete()
  150. if self then Polycode.delete_InputEvent(self.__ptr) end
  151. end