Module Sub

type 'msg onesub =
  1. | SubTick of Time.posix -> 'msg
  2. | SubMouseMove of (float * float) -> 'msg
  3. | SubMouseMoveBy of (float * float) -> 'msg
  4. | SubMouseDown of unit -> 'msg
  5. | SubMouseUp of unit -> 'msg
  6. | SubRightMouseDown of unit -> 'msg
  7. | SubRightMouseUp of unit -> 'msg
  8. | SubKeyDown of Keyboard.key -> 'msg
  9. | SubKeyUp of Keyboard.key -> 'msg
  10. | SubTyped of string -> 'msg
  11. | SubMouseWheel of float -> 'msg
  12. | SubMouseDouble of unit -> 'msg
  13. | SubResize of int -> int -> 'msg
type 'msg t = 'msg onesub list
val none : 'a list
val batch : 'a list list -> 'a list
val on_animation_frame : (Time.posix -> 'msg) -> 'msg t
val on_mouse_move : ((float * float) -> 'msg) -> 'msg t
val on_mouse_move_by : ((float * float) -> 'msg) -> 'msg t
val on_mouse_down : (unit -> 'msg) -> 'msg t
val on_mouse_up : (unit -> 'msg) -> 'msg t
val on_right_mouse_down : (unit -> 'msg) -> 'msg t
val on_right_mouse_up : (unit -> 'msg) -> 'msg t
val on_key_down : (Keyboard.key -> 'msg) -> 'msg t
val on_key_up : (Keyboard.key -> 'msg) -> 'msg t
val on_typed : (string -> 'msg) -> 'msg t
val on_mouse_wheel : (float -> 'msg) -> 'msg t
val on_mouse_double : (unit -> 'msg) -> 'msg t
val on_resize : (int -> int -> 'msg) -> 'msg t
type event =
  1. | ETick of float
  2. | EMouseMove of int * int
  3. | EMouseMoveBy of float * float
  4. | EMouseButton of bool
  5. | ERightMouseButton of bool
  6. | EKeyChanged of bool * Keyboard.key
  7. | ETyped of string
  8. | EMouseWheel of float
  9. | EMouseDouble
  10. | EResized of int * int
val find_map_opt : ('a -> 'b option) -> 'a list -> 'b option
val event_to_msgopt : event -> 'a onesub list -> 'a option