TermColor.Terminal.Input #
Pure decoding plus the small raw-input boundary used by interactive TUI applications.
- left : MouseButton
- middle : MouseButton
- right : MouseButton
- none : MouseButton
- other (value : Nat) : MouseButton
Instances For
Equations
- TermColor.Terminal.instBEqMouseButton.beq TermColor.Terminal.MouseButton.left TermColor.Terminal.MouseButton.left = true
- TermColor.Terminal.instBEqMouseButton.beq TermColor.Terminal.MouseButton.middle TermColor.Terminal.MouseButton.middle = true
- TermColor.Terminal.instBEqMouseButton.beq TermColor.Terminal.MouseButton.right TermColor.Terminal.MouseButton.right = true
- TermColor.Terminal.instBEqMouseButton.beq TermColor.Terminal.MouseButton.none TermColor.Terminal.MouseButton.none = true
- TermColor.Terminal.instBEqMouseButton.beq (TermColor.Terminal.MouseButton.other a) (TermColor.Terminal.MouseButton.other b) = (a == b)
- TermColor.Terminal.instBEqMouseButton.beq x✝¹ x✝ = false
Instances For
Equations
- One or more equations did not get rendered due to their size.
- TermColor.Terminal.instDecidableEqMouseButton.decEq TermColor.Terminal.MouseButton.left TermColor.Terminal.MouseButton.left = isTrue ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq TermColor.Terminal.MouseButton.left (TermColor.Terminal.MouseButton.other value) = isFalse ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq TermColor.Terminal.MouseButton.middle TermColor.Terminal.MouseButton.middle = isTrue ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq TermColor.Terminal.MouseButton.middle (TermColor.Terminal.MouseButton.other value) = isFalse ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq TermColor.Terminal.MouseButton.right TermColor.Terminal.MouseButton.right = isTrue ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq TermColor.Terminal.MouseButton.right (TermColor.Terminal.MouseButton.other value) = isFalse ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq TermColor.Terminal.MouseButton.none TermColor.Terminal.MouseButton.none = isTrue ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq TermColor.Terminal.MouseButton.none (TermColor.Terminal.MouseButton.other value) = isFalse ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq (TermColor.Terminal.MouseButton.other value) TermColor.Terminal.MouseButton.left = isFalse ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq (TermColor.Terminal.MouseButton.other value) TermColor.Terminal.MouseButton.middle = isFalse ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq (TermColor.Terminal.MouseButton.other value) TermColor.Terminal.MouseButton.right = isFalse ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq (TermColor.Terminal.MouseButton.other value) TermColor.Terminal.MouseButton.none = isFalse ⋯
- TermColor.Terminal.instDecidableEqMouseButton.decEq (TermColor.Terminal.MouseButton.other a) (TermColor.Terminal.MouseButton.other b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- press : MouseAction
- release : MouseAction
- drag : MouseAction
- scrollUp : MouseAction
- scrollDown : MouseAction
Instances For
Equations
- TermColor.Terminal.instBEqMouseAction.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- action : MouseAction
- column : Nat
- row : Nat
- modifiers : MouseModifiers
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
- TermColor.Terminal.instBEqMouseEvent.beq x✝¹ x✝ = false
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- key (value : Widgets.Key) : Event
- mouse (value : MouseEvent) : Event
Instances For
Equations
Instances For
Equations
Equations
- TermColor.Terminal.instDecidableEqEvent.decEq (TermColor.Terminal.Event.key a) (TermColor.Terminal.Event.key b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- TermColor.Terminal.instDecidableEqEvent.decEq (TermColor.Terminal.Event.key value) (TermColor.Terminal.Event.mouse value_1) = isFalse ⋯
- TermColor.Terminal.instDecidableEqEvent.decEq (TermColor.Terminal.Event.mouse value) (TermColor.Terminal.Event.key value_1) = isFalse ⋯
- TermColor.Terminal.instDecidableEqEvent.decEq (TermColor.Terminal.Event.mouse a) (TermColor.Terminal.Event.mouse b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- TermColor.Terminal.instBEqByteRead.beq (TermColor.Terminal.ByteRead.byte a) (TermColor.Terminal.ByteRead.byte b) = (a == b)
- TermColor.Terminal.instBEqByteRead.beq TermColor.Terminal.ByteRead.timeout TermColor.Terminal.ByteRead.timeout = true
- TermColor.Terminal.instBEqByteRead.beq TermColor.Terminal.ByteRead.eof TermColor.Terminal.ByteRead.eof = true
- TermColor.Terminal.instBEqByteRead.beq x✝¹ x✝ = false
Instances For
Equations
Equations
- TermColor.Terminal.instDecidableEqByteRead.decEq (TermColor.Terminal.ByteRead.byte a) (TermColor.Terminal.ByteRead.byte b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- TermColor.Terminal.instDecidableEqByteRead.decEq (TermColor.Terminal.ByteRead.byte value) TermColor.Terminal.ByteRead.timeout = isFalse ⋯
- TermColor.Terminal.instDecidableEqByteRead.decEq (TermColor.Terminal.ByteRead.byte value) TermColor.Terminal.ByteRead.eof = isFalse ⋯
- TermColor.Terminal.instDecidableEqByteRead.decEq TermColor.Terminal.ByteRead.timeout (TermColor.Terminal.ByteRead.byte value) = isFalse ⋯
- TermColor.Terminal.instDecidableEqByteRead.decEq TermColor.Terminal.ByteRead.timeout TermColor.Terminal.ByteRead.timeout = isTrue ⋯
- TermColor.Terminal.instDecidableEqByteRead.decEq TermColor.Terminal.ByteRead.timeout TermColor.Terminal.ByteRead.eof = isFalse TermColor.Terminal.instDecidableEqByteRead.decEq._proof_6
- TermColor.Terminal.instDecidableEqByteRead.decEq TermColor.Terminal.ByteRead.eof (TermColor.Terminal.ByteRead.byte value) = isFalse ⋯
- TermColor.Terminal.instDecidableEqByteRead.decEq TermColor.Terminal.ByteRead.eof TermColor.Terminal.ByteRead.timeout = isFalse TermColor.Terminal.instDecidableEqByteRead.decEq._proof_8
- TermColor.Terminal.instDecidableEqByteRead.decEq TermColor.Terminal.ByteRead.eof TermColor.Terminal.ByteRead.eof = isTrue ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
An effectful byte source suitable for terminal input adapters.
Instances For
Decode one complete terminal key sequence.
Equations
- One or more equations did not get rendered due to their size.
- TermColor.Terminal.parseKey "\x1b[A" = some TermColor.Widgets.Key.up
- TermColor.Terminal.parseKey "\x1b[B" = some TermColor.Widgets.Key.down
- TermColor.Terminal.parseKey "\x1b[C" = some TermColor.Widgets.Key.right
- TermColor.Terminal.parseKey "\x1b[D" = some TermColor.Widgets.Key.left
- TermColor.Terminal.parseKey "\x1b[H" = some TermColor.Widgets.Key.home
- TermColor.Terminal.parseKey "\x1b[1~" = some TermColor.Widgets.Key.home
- TermColor.Terminal.parseKey "\x1b[F" = some TermColor.Widgets.Key.end
- TermColor.Terminal.parseKey "\x1b[4~" = some TermColor.Widgets.Key.end
- TermColor.Terminal.parseKey "\x1b[5~" = some TermColor.Widgets.Key.pageUp
- TermColor.Terminal.parseKey "\x1b[6~" = some TermColor.Widgets.Key.pageDown
- TermColor.Terminal.parseKey "\x1b[Z" = some TermColor.Widgets.Key.shiftTab
- TermColor.Terminal.parseKey "\x1b[1;2A" = some TermColor.Widgets.Key.up
- TermColor.Terminal.parseKey "\x1b[1;5A" = some TermColor.Widgets.Key.up
- TermColor.Terminal.parseKey "\x1b[1;2B" = some TermColor.Widgets.Key.down
- TermColor.Terminal.parseKey "\x1b[1;5B" = some TermColor.Widgets.Key.down
- TermColor.Terminal.parseKey "\x1b[1;2C" = some TermColor.Widgets.Key.right
- TermColor.Terminal.parseKey "\x1b[1;5C" = some TermColor.Widgets.Key.right
- TermColor.Terminal.parseKey "\x1b[1;2D" = some TermColor.Widgets.Key.left
- TermColor.Terminal.parseKey "\x1b[1;5D" = some TermColor.Widgets.Key.left
- TermColor.Terminal.parseKey "\x0d" = some TermColor.Widgets.Key.enter
- TermColor.Terminal.parseKey "\n" = some TermColor.Widgets.Key.enter
- TermColor.Terminal.parseKey "\x08" = some TermColor.Widgets.Key.backspace
- TermColor.Terminal.parseKey "\x7f" = some TermColor.Widgets.Key.backspace
- TermColor.Terminal.parseKey "\t" = some TermColor.Widgets.Key.tab
- TermColor.Terminal.parseKey "\x1b" = some TermColor.Widgets.Key.escape
Instances For
Decode an SGR (1006) mouse sequence. Coordinates are one-based, like the protocol.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Decode either a complete key sequence or a complete SGR mouse event.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Return the first hit region for a left-button press; releases and wheels are ignored.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Hit-test a mouse event against the frame currently owned by a screen.
Equations
- screen.hitTest event = TermColor.Terminal.hitTest screen.frame event
Instances For
Move through an ordered set of focus slots, wrapping at either end.
Equations
- TermColor.Terminal.moveFocus count current TermColor.Widgets.Key.tab = if (count == 0) = true then 0 else (current + 1) % count
- TermColor.Terminal.moveFocus count current TermColor.Widgets.Key.down = if (count == 0) = true then 0 else (current + 1) % count
- TermColor.Terminal.moveFocus count current TermColor.Widgets.Key.right = if (count == 0) = true then 0 else (current + 1) % count
- TermColor.Terminal.moveFocus count current TermColor.Widgets.Key.pageDown = if (count == 0) = true then 0 else (current + 1) % count
- TermColor.Terminal.moveFocus count current TermColor.Widgets.Key.shiftTab = if (count == 0) = true then 0 else (current + count - 1) % count
- TermColor.Terminal.moveFocus count current TermColor.Widgets.Key.up = if (count == 0) = true then 0 else (current + count - 1) % count
- TermColor.Terminal.moveFocus count current TermColor.Widgets.Key.left = if (count == 0) = true then 0 else (current + count - 1) % count
- TermColor.Terminal.moveFocus count current TermColor.Widgets.Key.pageUp = if (count == 0) = true then 0 else (current + count - 1) % count
- TermColor.Terminal.moveFocus count current key = if (count == 0) = true then 0 else min current (count - 1)
Instances For
Run an action with character-at-a-time terminal input, restoring the prior mode afterward.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Read one complete terminal event while a caller-owned condition holds.
Equations
Instances For
Read one complete key or mouse event, waiting through raw-input timeouts.
Instances For
Read one ASCII terminal key, including the common arrow-key escape sequences.
Equations
- TermColor.Terminal.readKey = do let __do_lift ← TermColor.Terminal.readEvent match __do_lift with | some (TermColor.Terminal.Event.key key) => pure (some key) | x => pure none