v0.10.0: Mouse support

- mouse-mixin class with on-mouse-down/up/move/scroll handler slots
- handle-mouse-event dispatches to the right handler by event type
- hit-test finds deepest component at (x,y) coordinates
- selection struct + get-selection + copy-to-clipboard
- SGR mouse parsing already existed in input system (mouse-event struct,
  parse-sgr-mouse function, CSI dispatch in %read-escape-sequence)
- 3 tests, 100% passing
This commit is contained in:
Hermes
2026-05-11 20:03:59 +00:00
parent 14193b8c92
commit 949bfe46bf
5 changed files with 179 additions and 3 deletions

View File

@@ -0,0 +1,9 @@
(defpackage :cl-tty.mouse
(:use :cl :cl-tty.input :cl-tty.box)
(:export
#:mouse-mixin
#:on-mouse-down #:on-mouse-up #:on-mouse-move #:on-mouse-scroll
#:handle-mouse-event
#:hit-test
#:selection #:get-selection #:copy-to-clipboard
#:make-selection #:selection-p))