MouseBinds.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include "LuaStack.h"
  2. #include "Device.h"
  3. #include "LuaEnvironment.h"
  4. #include "Mouse.h"
  5. #include "Log.h"
  6. namespace crown
  7. {
  8. extern "C"
  9. {
  10. extern Vec2* next_vec2();
  11. //-----------------------------------------------------------------------------
  12. int32_t mouse_button_pressed(lua_State* L)
  13. {
  14. LuaStack stack(L);
  15. int32_t button = stack.get_int(1);
  16. stack.push_bool(device()->mouse()->button_pressed((MouseButton) button));
  17. return 1;
  18. }
  19. //-----------------------------------------------------------------------------
  20. int32_t mouse_button_released(lua_State* L)
  21. {
  22. LuaStack stack(L);
  23. int32_t button = stack.get_int(1);
  24. stack.push_bool(device()->mouse()->button_released((MouseButton) button));
  25. return 1;
  26. }
  27. //-----------------------------------------------------------------------------
  28. int32_t mouse_cursor_xy(lua_State* L)
  29. {
  30. }
  31. //-----------------------------------------------------------------------------
  32. int32_t mouse_set_cursor_xy(lua_State* L)
  33. {
  34. }
  35. //-----------------------------------------------------------------------------
  36. int32_t mouse_cursor_relative_xy(lua_State* L)
  37. {
  38. LuaStack stack(L);
  39. Vec2* xy = next_vec2();
  40. *xy = device()->mouse()->cursor_relative_xy();
  41. stack.push_lightudata(xy);
  42. return 1;
  43. }
  44. //-----------------------------------------------------------------------------
  45. int32_t mouse_set_cursor_relative_xy(lua_State* L)
  46. {
  47. LuaStack stack(L);
  48. Vec2* xy = (Vec2*) stack.get_lightudata(1);
  49. device()->mouse()->set_cursor_relative_xy(*xy);
  50. return 0;
  51. }
  52. } // extern "C"
  53. //-----------------------------------------------------------------------------
  54. void load_mouse(LuaEnvironment& env)
  55. {
  56. env.load_module_function("Mouse", "button_pressed", mouse_button_pressed);
  57. env.load_module_function("Mouse", "button_released", mouse_button_released);
  58. env.load_module_function("Mouse", "cursor_relative_xy", mouse_cursor_relative_xy);
  59. env.load_module_function("Mouse", "set_cursor_relative_xy", mouse_set_cursor_relative_xy);
  60. }
  61. } // namespace crown