From f32c13eae686023303392f0440ed529ff3b51c5a Mon Sep 17 00:00:00 2001 From: Swrup Date: Tue, 12 Apr 2022 15:26:49 +0200 Subject: [PATCH] add point --- src/dune | 2 +- src/event.ml | 8 ++++---- src/event.mli | 4 ++-- src/point.ml | 11 +++++++++++ src/point.mli | 9 +++++++++ 5 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 src/point.ml create mode 100644 src/point.mli diff --git a/src/dune b/src/dune index ed4515f..4e2d45f 100644 --- a/src/dune +++ b/src/dune @@ -1,6 +1,6 @@ (library (public_name leaflet) - (modules event global latlng layer map popup) + (modules event global latlng layer map popup point) (private_modules global) (libraries brr) (js_of_ocaml diff --git a/src/event.ml b/src/event.ml index 2b39417..2b9cb77 100644 --- a/src/event.ml +++ b/src/event.ml @@ -43,11 +43,11 @@ let original_event : [ `Keyboard | `Mouse ] t -> Jv.t = function (** Mouse events *) -let container_point : [ `Mouse ] t -> Jv.t = function - | Mouse e -> Jv.get e "containerPoint" +let container_point : [ `Mouse ] t -> Point.t = function + | Mouse e -> Jv.get e "containerPoint" |> Point.of_jv -let layer_point : [ `Mouse ] t -> Jv.t = function - | Mouse e -> Jv.get e "layerPoint" +let layer_point : [ `Mouse ] t -> Point.t = function + | Mouse e -> Jv.get e "layerPoint" |> Point.of_jv let latlng : [ `Mouse ] t -> Latlng.t = function | Mouse e -> Jv.get e "latlng" |> Latlng.of_jv diff --git a/src/event.mli b/src/event.mli index 8723a09..5793744 100644 --- a/src/event.mli +++ b/src/event.mli @@ -31,9 +31,9 @@ val original_event : [ `Keyboard | `Mouse ] t -> Jv.t (** Mouse events *) -val container_point : [ `Mouse ] t -> Jv.t +val container_point : [ `Mouse ] t -> Point.t -val layer_point : [ `Mouse ] t -> Jv.t +val layer_point : [ `Mouse ] t -> Point.t val latlng : [ `Mouse ] t -> Latlng.t diff --git a/src/point.ml b/src/point.ml new file mode 100644 index 0000000..0191894 --- /dev/null +++ b/src/point.ml @@ -0,0 +1,11 @@ +(* BSD-2-Clause License *) + +type t = + { x : int + ; y : int + } + +let of_jv point = + let x = Jv.get point "x" |> Jv.to_int in + let y = Jv.get point "y" |> Jv.to_int in + { x; y } diff --git a/src/point.mli b/src/point.mli new file mode 100644 index 0000000..2ca4de2 --- /dev/null +++ b/src/point.mli @@ -0,0 +1,9 @@ +(* BSD-2-Clause License *) + +type t = + { x : int + ; y : int + } + +(** [of_jv jv] is [jv] as {!t} *) +val of_jv : Jv.t -> t