BsGUIMouseEvent.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. #include "BsGUIMouseEvent.h"
  2. namespace BansheeEngine
  3. {
  4. GUIMouseEvent::GUIMouseEvent()
  5. :mType(GUIMouseEventType::MouseMove), mButton(GUIMouseButton::Left),
  6. mShift(false), mCtrl(false), mAlt(false), mWheelScrollAmount(0.0f)
  7. {
  8. }
  9. GUIMouseEvent::GUIMouseEvent(bool buttonStates[(int)GUIMouseButton::Count], bool shift, bool ctrl, bool alt)
  10. :mType(GUIMouseEventType::MouseMove), mButton(GUIMouseButton::Left),
  11. mShift(shift), mCtrl(ctrl), mAlt(alt)
  12. {
  13. memcpy(mButtonStates, buttonStates, sizeof(mButtonStates));
  14. }
  15. void GUIMouseEvent::setMouseOverData(const Vector2I& position)
  16. {
  17. mType = GUIMouseEventType::MouseOver;
  18. mPosition = position;
  19. mButton = GUIMouseButton::Left;
  20. mDragAmount = Vector2I();
  21. mDragStartPosition = Vector2I();
  22. mWheelScrollAmount = 0.0f;
  23. }
  24. void GUIMouseEvent::setMouseOutData(const Vector2I& position)
  25. {
  26. mType = GUIMouseEventType::MouseOut;
  27. mPosition = position;
  28. mButton = GUIMouseButton::Left;
  29. mDragAmount = Vector2I();
  30. mDragStartPosition = Vector2I();
  31. mWheelScrollAmount = 0.0f;
  32. }
  33. void GUIMouseEvent::setMouseMoveData(const Vector2I& position)
  34. {
  35. mType = GUIMouseEventType::MouseMove;
  36. mPosition = position;
  37. mButton = GUIMouseButton::Left;
  38. mDragAmount = Vector2I();
  39. mDragStartPosition = Vector2I();
  40. mWheelScrollAmount = 0.0f;
  41. }
  42. void GUIMouseEvent::setMouseWheelScrollData(float scrollAmount)
  43. {
  44. mType = GUIMouseEventType::MouseWheelScroll;
  45. mPosition = Vector2I();
  46. mButton = GUIMouseButton::Left;
  47. mDragAmount = Vector2I();
  48. mDragStartPosition = Vector2I();
  49. mWheelScrollAmount = scrollAmount;
  50. }
  51. void GUIMouseEvent::setMouseUpData(const Vector2I& position, GUIMouseButton button)
  52. {
  53. mType = GUIMouseEventType::MouseUp;
  54. mPosition = position;
  55. mButton = button;
  56. mDragAmount = Vector2I();
  57. mDragStartPosition = Vector2I();
  58. mWheelScrollAmount = 0.0f;
  59. }
  60. void GUIMouseEvent::setMouseDownData(const Vector2I& position, GUIMouseButton button)
  61. {
  62. mType = GUIMouseEventType::MouseDown;
  63. mPosition = position;
  64. mButton = button;
  65. mDragAmount = Vector2I();
  66. mDragStartPosition = Vector2I();
  67. mWheelScrollAmount = 0.0f;
  68. }
  69. void GUIMouseEvent::setMouseDoubleClickData(const Vector2I& position, GUIMouseButton button)
  70. {
  71. mType = GUIMouseEventType::MouseDoubleClick;
  72. mPosition = position;
  73. mButton = button;
  74. mDragAmount = Vector2I();
  75. mDragStartPosition = Vector2I();
  76. mWheelScrollAmount = 0.0f;
  77. }
  78. void GUIMouseEvent::setMouseDragData(const Vector2I& position, const Vector2I& dragAmount)
  79. {
  80. mType = GUIMouseEventType::MouseDrag;
  81. mPosition = position;
  82. mButton = GUIMouseButton::Left;
  83. mDragAmount = dragAmount;
  84. mDragStartPosition = Vector2I();
  85. mWheelScrollAmount = 0.0f;
  86. }
  87. void GUIMouseEvent::setMouseDragStartData(const Vector2I& position, const Vector2I& dragStartPosition)
  88. {
  89. mType = GUIMouseEventType::MouseDragStart;
  90. mPosition = position;
  91. mButton = GUIMouseButton::Left;
  92. mDragAmount = Vector2I();
  93. mDragStartPosition = dragStartPosition;
  94. mWheelScrollAmount = 0.0f;
  95. }
  96. void GUIMouseEvent::setMouseDragEndData(const Vector2I& position)
  97. {
  98. mType = GUIMouseEventType::MouseDragEnd;
  99. mPosition = position;
  100. mButton = GUIMouseButton::Left;
  101. mDragAmount = Vector2I();
  102. mDragStartPosition = Vector2I();
  103. mWheelScrollAmount = 0.0f;
  104. }
  105. void GUIMouseEvent::setDragAndDropDroppedData(const Vector2I& position, UINT32 dragTypeId, void* dragData)
  106. {
  107. mType = GUIMouseEventType::MouseDragAndDropDropped;
  108. mPosition = position;
  109. mButton = GUIMouseButton::Left;
  110. mDragAmount = Vector2I();
  111. mDragStartPosition = Vector2I();
  112. mWheelScrollAmount = 0.0f;
  113. mDragTypeId = dragTypeId;
  114. mDragData = dragData;
  115. }
  116. void GUIMouseEvent::setDragAndDropDraggedData(const Vector2I& position, UINT32 dragTypeId, void* dragData)
  117. {
  118. mType = GUIMouseEventType::MouseDragAndDropDragged;
  119. mPosition = position;
  120. mButton = GUIMouseButton::Left;
  121. mDragAmount = Vector2I();
  122. mDragStartPosition = Vector2I();
  123. mWheelScrollAmount = 0.0f;
  124. mDragTypeId = dragTypeId;
  125. mDragData = dragData;
  126. }
  127. void GUIMouseEvent::setDragAndDropLeftData(const Vector2I& position, UINT32 dragTypeId, void* dragData)
  128. {
  129. mType = GUIMouseEventType::MouseDragAndDropLeft;
  130. mPosition = position;
  131. mButton = GUIMouseButton::Left;
  132. mDragAmount = Vector2I();
  133. mDragStartPosition = Vector2I();
  134. mWheelScrollAmount = 0.0f;
  135. mDragTypeId = dragTypeId;
  136. mDragData = dragData;
  137. }
  138. }