MouseBinding.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. namespace Terminal.Gui.Input;
  2. /// <summary>
  3. /// Provides a collection of <see cref="MouseFlags"/> bound to <see cref="Command"/>s.
  4. /// </summary>
  5. /// <seealso cref="MouseBindings"/>
  6. /// <seealso cref="Command"/>
  7. public record struct MouseBinding : IInputBinding
  8. {
  9. /// <summary>Initializes a new instance.</summary>
  10. /// <param name="commands">The commands this mouse binding will invoke.</param>
  11. /// <param name="mouseFlags">The mouse flags that triggered this binding.</param>
  12. public MouseBinding (Command [] commands, MouseFlags mouseFlags)
  13. {
  14. Commands = commands;
  15. MouseEventArgs = new MouseEventArgs()
  16. {
  17. Flags = mouseFlags
  18. };
  19. }
  20. /// <summary>Initializes a new instance.</summary>
  21. /// <param name="commands">The commands this mouse binding will invoke.</param>
  22. /// <param name="args">The mouse event that triggered this binding.</param>
  23. public MouseBinding (Command [] commands, MouseEventArgs args)
  24. {
  25. Commands = commands;
  26. MouseEventArgs = args;
  27. }
  28. /// <summary>The commands this binding will invoke.</summary>
  29. public Command [] Commands { get; set; }
  30. /// <inheritdoc />
  31. public object? Data { get; set; }
  32. /// <summary>
  33. /// The mouse event arguments.
  34. /// </summary>
  35. public MouseEventArgs? MouseEventArgs { get; set; }
  36. }