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

KeyEvent

Fields:

Name Type
code keys.KeyCode
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 empty_key(): KeyEvent

fn key_event(code: keys.KeyCode, ctrl: bool, alt: bool, shift: bool): KeyEvent

ROADMAP 8.2a: the ch parameter is gone. A printable key is keys.key_char(codepoint) and carries its own codepoint; there is no longer a second place to put one, and so no longer a way for the two to disagree.

fn key_event_plain(code: keys.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

fn is_left_click(e: Event): bool

A completed left-button press: a mouse event, pressed, not a drag.

fn is_activate_key(e: Event): bool

Enter, or an unmodified Space. Space arrives as a Char code point (32) rather than a dedicated KeyCode.


Generated by reefc doc