MouseBinds.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #include "Device.h"
  2. #include "ScriptSystem.h"
  3. #include "Mouse.h"
  4. #include "OS.h"
  5. namespace crown
  6. {
  7. extern "C"
  8. {
  9. bool mouse_button_pressed(uint32_t button);
  10. bool mouse_button_released(uint32_t button);
  11. Vec2& mouse_cursor_xy();
  12. void mouse_set_cursor_xy(const Vec2& position);
  13. Vec2& mouse_cursor_relative_xy();
  14. void mouse_set_cursor_relative_xy(const Vec2& position);
  15. }
  16. bool mouse_button_pressed(uint32_t button)
  17. {
  18. MouseButton b;
  19. switch(button)
  20. {
  21. case MB_LEFT:
  22. {
  23. b = MB_LEFT;
  24. }
  25. case MB_MIDDLE:
  26. {
  27. b = MB_MIDDLE;
  28. }
  29. case MB_RIGHT:
  30. {
  31. b = MB_RIGHT;
  32. }
  33. default:
  34. {
  35. return false;
  36. }
  37. }
  38. return device()->mouse()->button_pressed(b);
  39. }
  40. bool mouse_button_released(uint32_t button)
  41. {
  42. MouseButton b;
  43. switch(button)
  44. {
  45. case MB_LEFT:
  46. {
  47. b = MB_LEFT;
  48. }
  49. case MB_MIDDLE:
  50. {
  51. b = MB_MIDDLE;
  52. }
  53. case MB_RIGHT:
  54. {
  55. b = MB_RIGHT;
  56. }
  57. default:
  58. {
  59. return false;
  60. }
  61. }
  62. return device()->mouse()->button_released(b);
  63. }
  64. Vec2& mouse_cursor_xy()
  65. {
  66. Point2 tmp = device()->mouse()->cursor_xy();
  67. return device()->script_system()->next_vec2(tmp.x, tmp.y);
  68. }
  69. void mouse_set_cursor_xy(const Vec2& position)
  70. {
  71. Point2 tmp;
  72. tmp.x = (uint32_t)position.x;
  73. tmp.y = (uint32_t)position.y;
  74. device()->mouse()->set_cursor_xy(tmp);
  75. }
  76. Vec2& mouse_cursor_relative_xy()
  77. {
  78. Vec2 tmp = device()->mouse()->cursor_relative_xy();
  79. return device()->script_system()->next_vec2(tmp.x, tmp.y);
  80. }
  81. void mouse_set_cursor_relative_xy(const Vec2& position)
  82. {
  83. device()->mouse()->set_cursor_relative_xy(position);
  84. }
  85. }