EventExtensions.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. namespace O3DWB
  4. {
  5. public static class EventExtensions
  6. {
  7. #region Extension Methods
  8. public static bool IsUndoRedo(this Event e)
  9. {
  10. return (e.type == EventType.ValidateCommand && e.commandName == "UndoRedoPerformed");
  11. }
  12. public static bool IsDuplicateSelectionCommand(this Event e)
  13. {
  14. return e.type == EventType.ExecuteCommand && e.commandName == "Duplicate";
  15. }
  16. public static bool IsMouseSpecific(this Event e)
  17. {
  18. return e.type == EventType.MouseDown || e.type == EventType.MouseUp ||
  19. e.type == EventType.MouseDrag || e.type == EventType.MouseMove;
  20. }
  21. public static bool InvolvesLeftMouseButton(this Event e)
  22. {
  23. return e.button == (int)MouseButton.Left;
  24. }
  25. public static bool InvolvesRightMouseButton(this Event e)
  26. {
  27. return e.button == (int)MouseButton.Right;
  28. }
  29. public static bool InvolvesMiddleMouseButton(this Event e)
  30. {
  31. return e.button == (int)MouseButton.Middle;
  32. }
  33. public static bool InvolvesMouseButton(this Event e, MouseButton mouseButton)
  34. {
  35. return e.button == (int)mouseButton;
  36. }
  37. public static Vector2 InvMousePos(this Event e, Camera camera)
  38. {
  39. return new Vector2(e.mousePosition.x, camera.pixelHeight - e.mousePosition.y);
  40. }
  41. public static void DisableInSceneView(this Event e)
  42. {
  43. GUIUtility.hotControl = GUIUtility.GetControlID(FocusType.Passive);
  44. e.Use();
  45. GUIUtility.hotControl = 0;
  46. }
  47. #endregion
  48. }
  49. }
  50. #endif