InputEvent.lua 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. require "Polycode/Event"
  2. class "InputEvent" (Event)
  3. EVENT_MOUSEDOWN = 0
  4. EVENT_MOUSEUP = 1
  5. EVENT_MOUSEMOVE = 2
  6. EVENT_MOUSEOVER = 3
  7. EVENT_MOUSEOUT = 4
  8. EVENT_DOUBLECLICK = 5
  9. EVENT_MOUSEUP_OUTSIDE = 6
  10. EVENT_MOUSEWHEEL_UP = 7
  11. EVENT_MOUSEWHEEL_DOWN = 8
  12. EVENT_KEYDOWN = 13
  13. EVENT_KEYUP = 14
  14. function InputEvent:__index__(name)
  15. if name == "mouseButton" then
  16. return Polycore.InputEvent_get_mouseButton(self.__ptr)
  17. elseif name == "timestamp" then
  18. return Polycore.InputEvent_get_timestamp(self.__ptr)
  19. end
  20. end
  21. function InputEvent:__set_callback(name,value)
  22. if name == "mouseButton" then
  23. Polycore.InputEvent_set_mouseButton(self.__ptr, value)
  24. return true
  25. elseif name == "timestamp" then
  26. Polycore.InputEvent_set_timestamp(self.__ptr, value)
  27. return true
  28. end
  29. return false
  30. end
  31. function InputEvent:InputEvent(...)
  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 = Polycore.InputEvent(unpack(arg))
  41. end
  42. end
  43. function InputEvent:keyCode()
  44. local retVal = Polycore.InputEvent_keyCode(self.__ptr)
  45. return retVal
  46. end