InputEvent.lua 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. Polycore.__ptr_lookup[self.__ptr] = self
  42. end
  43. end
  44. function InputEvent:keyCode()
  45. local retVal = Polycore.InputEvent_keyCode(self.__ptr)
  46. return retVal
  47. end