Module: reefvision.event

Source: ./reefvision/event.reef


Overview

reefvision.event — KeyCode, KeyEvent, MouseEvent, Event, toolkit command IDs

Design §7.5 + Phase 2 mouse. Commands: 0 = none, 1–99 toolkit, 100+ app. No ui/gameui. Bytes decoded by reefvision.input (keys + SGR mouse).


Types

KeyCode (enum)

Char payload lives on KeyEvent.ch (Unicode code point when code is Char).

Variants:

  • Char
  • Enter
  • Esc
  • Tab
  • BackTab
  • Backspace
  • Delete
  • Left
  • Right
  • Up
  • Down
  • Home
  • End
  • PageUp
  • PageDown
  • F1
  • F2
  • F3
  • F4
  • F5
  • F6
  • F7
  • F8
  • F9
  • F10
  • F11
  • F12
  • Unknown

KeyEvent

Fields:

Name Type
code KeyCode
ch int
ctrl bool
alt bool
shift bool

MouseButton (enum)

Variants:

  • None
  • Left
  • Middle
  • Right
  • WheelUp
  • WheelDown

MouseEvent

Cell coordinates are 0-based (terminal SGR reports are 1-based).

Fields:

Name Type
x int
y int
button MouseButton
pressed bool
motion bool
ctrl bool
alt bool
shift bool

EventKind (enum)

Variants:

  • Key
  • Mouse
  • Command
  • Resize
  • Quit

Event

Fields:

Name Type
kind EventKind
key KeyEvent
mouse MouseEvent
command int
resize_w int
resize_h int

Functions

fn CMD_NONE(): int

fn CMD_OK(): int

fn CMD_CANCEL(): int

fn CMD_YES(): int

fn CMD_NO(): int

fn CMD_CLOSE(): int

fn CMD_QUIT(): int

fn CMD_MINIMIZE(): int

fn CMD_MAXIMIZE(): int

fn key_char(): KeyCode

fn key_enter(): KeyCode

fn key_esc(): KeyCode

fn key_tab(): KeyCode

fn key_backtab(): KeyCode

fn key_backspace(): KeyCode

fn key_delete(): KeyCode

fn key_left(): KeyCode

fn key_right(): KeyCode

fn key_up(): KeyCode

fn key_down(): KeyCode

fn key_home(): KeyCode

fn key_end(): KeyCode

fn key_page_up(): KeyCode

fn key_page_down(): KeyCode

fn key_f(n: int): KeyCode

fn key_unknown(): KeyCode

fn keycode_tag(k: KeyCode): int

Stable tag for equality / tests (Char=0 … Unknown=27).

fn keycode_eq(a: KeyCode, b: KeyCode): bool

fn empty_key(): KeyEvent

fn key_event(code: KeyCode, ch: int, ctrl: bool, alt: bool, shift: bool): KeyEvent

fn key_event_plain(code: KeyCode): KeyEvent

fn key_event_char(cp: int): KeyEvent

fn key_event_ctrl_letter(letter: int): KeyEvent

Ctrl+letter: ch is uppercase 'A'..'Z' (65..90). Ctrl-C → ch=67, ctrl=true.

fn keyevent_eq(a: KeyEvent, b: KeyEvent): bool

fn empty_mouse(): MouseEvent

fn mouse_none(): MouseButton

fn mouse_left(): MouseButton

fn mouse_middle(): MouseButton

fn mouse_right(): MouseButton

fn mouse_wheel_up(): MouseButton

fn mouse_wheel_down(): MouseButton

fn mouse_button_eq(a: MouseButton, b: MouseButton): bool

fn mouse_event(x: int, y: int, button: MouseButton, pressed: bool, motion: bool, ctrl: bool, alt: bool, shift: bool): MouseEvent

fn event_key(ke: KeyEvent): Event

fn event_mouse(me: MouseEvent): Event

fn event_command(cmd: int): Event

fn event_resize(w: int, h: int): Event

fn event_quit(): Event

fn is_key_event(e: Event): bool

fn is_mouse_event(e: Event): bool

fn is_command_event(e: Event): bool

fn is_resize_event(e: Event): bool

fn is_quit_event(e: Event): bool


Generated by reefc doc