MouseBinds.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. //-----------------------------------------------------------------------------
  11. int32_t mouse_button_pressed(lua_State* L)
  12. {
  13. LuaStack stack(L);
  14. int32_t button = stack.get_int(1);
  15. stack.push_bool(device()->mouse()->button_pressed((MouseButton) button));
  16. return 1;
  17. }
  18. //-----------------------------------------------------------------------------
  19. int32_t mouse_button_released(lua_State* L)
  20. {
  21. LuaStack stack(L);
  22. int32_t button = stack.get_int(1);
  23. stack.push_bool(device()->mouse()->button_released((MouseButton) button));
  24. return 1;
  25. }
  26. //-----------------------------------------------------------------------------
  27. int32_t mouse_cursor_xy(lua_State* L)
  28. {
  29. LuaStack stack(L);
  30. Vec2* xy = next_vec2();
  31. *xy = device()->mouse()->cursor_xy();
  32. stack.push_vec2(xy);
  33. return 1;
  34. }
  35. //-----------------------------------------------------------------------------
  36. int32_t mouse_set_cursor_xy(lua_State* L)
  37. {
  38. LuaStack stack(L);
  39. Vec2* xy = stack.get_vec2(1);
  40. device()->mouse()->set_cursor_xy(*xy);
  41. return 0;
  42. }
  43. //-----------------------------------------------------------------------------
  44. int32_t mouse_cursor_relative_xy(lua_State* L)
  45. {
  46. LuaStack stack(L);
  47. Vec2* xy = next_vec2();
  48. *xy = device()->mouse()->cursor_relative_xy();
  49. stack.push_vec2(xy);
  50. return 1;
  51. }
  52. //-----------------------------------------------------------------------------
  53. int32_t mouse_set_cursor_relative_xy(lua_State* L)
  54. {
  55. LuaStack stack(L);
  56. Vec2* xy = (Vec2*) stack.get_vec2(1);
  57. device()->mouse()->set_cursor_relative_xy(*xy);
  58. return 0;
  59. }
  60. } // extern "C"
  61. //-----------------------------------------------------------------------------
  62. void load_mouse(LuaEnvironment& env)
  63. {
  64. env.load_module_function("Mouse", "button_pressed", mouse_button_pressed);
  65. env.load_module_function("Mouse", "button_released", mouse_button_released);
  66. env.load_module_function("Mouse", "cursor_xy", mouse_cursor_xy);
  67. env.load_module_function("Mouse", "set_cursor_xy", mouse_set_cursor_xy);
  68. env.load_module_function("Mouse", "cursor_relative_xy", mouse_cursor_relative_xy);
  69. env.load_module_function("Mouse", "set_cursor_relative_xy", mouse_set_cursor_relative_xy);
  70. }
  71. } // namespace crown