module LTerm_ui

: sig

High level function for writing full-screen applications

type t

Type of a user interface.

val create : LTerm.t -> ?save_state:bool -> (t -> LTerm_draw.matrix -> unit) -> t Lwt.t

create term ?save_state draw creates a new user interface. draw is used to draw the user interface. If save_state is true (the default) then the state of the terminal is saved.

val quit : t -> unit Lwt.t

quit () quit the given ui and restore the terminal state.

val size : t -> LTerm_geom.size

size ui returns the current size of the terminal used by the given user-interface. It is updated by wait.

val draw : t -> unit

draw ui enqueue a draw operation for the given UI.

val cursor_visible : t -> bool

cursor_visible ui returns true if the cursor is displayed in the UI. It is initially not visible.

val set_cursor_visible : t -> bool -> unit

set_cursor_visible ui visible sets the cursor visible state.

val cursor_position : t -> LTerm_geom.coord

cursor_position ui returns the position of the cursor inside the UI.

val set_cursor_position : t -> LTerm_geom.coord -> unit

set_cursor_position ui coord sets the position of the cursor inside the UI.

val wait : t -> LTerm_event.t Lwt.t

wait ui wait for an event.