Pointer (mouse/touch/pointer) events community coordination attempt

67 views
Skip to first unread message

Matthieu Pizenberg

unread,
Nov 30, 2017, 3:06:46 AM11/30/17
to Elm Discuss
PS: duplicate of reddit for people not using reddit (https://www.reddit.com/r/elm/comments/7gksya/pointer_mousetouchpointer_events_community/)

Hi folks,

I've been browsing the elm packages repository in search of packages dealing with pointer events in general, mouse / touch / pointer. My conclusion is that we are all doing more or less the same things over and over. The timeline is the following:

First publication:

* 2016-08: knledg/touch-events
* 2016-10: mbr/elm-mouse-events
* 2016-11: mpizenberg/elm-touch-events
* 2017-05: mpizenberg/elm-mouse-events
* 2017-06: Elm-Canvas/element-relative-mouse-events
* 2017-07: zwilias/elm-touch-events
* 2017-10: mpizenberg/elm-pointer-events

Last update:

* 2017-05: 1.0.4 of mbr/elm-mouse/events
* 2017-05: 2.1.2 of knledg/touch-events
* 2017-06: 3.0.1 of mpizenberg/elm-touch-events
* 2017-06: 1.0.0 of Elm-Canvas/element-relative-mouse-events
* 2017-10: 1.0.4 of mpizenberg/elm-pointer-events
* 2017-11: 1.1.1 of mpizenberg/elm-mouse-events
* 2017-11: 1.1.0 of zwilias/elm-touch-events

As you can see, I'm partially (mpizenberg) responsible for starting additional mouse and touch packages. Of course, I had reasons to do so at the time, but now, I feel that it would be a good time to coordinate and have a united approach before the switch to 0.19.

To start this coordinating discussion, if you have been using some of these, could you explain why? for what needs? Please provide examples if possible. I will start with myself.

* mpizenberg/elm-touch-events:
  That's the first package I created. I needed multitouch support, which was not available in knledg/touch-events.
* mpizenberg/elm-mouse-events:
  My main need was to get the reliable relative positions of mouse move events, the most efficient way possible. It meant using the "offsetX/offsetY" properties of mouse events, which are not exposed by mbr/elm-mouse-events. Example usage was a user study, demo still available at http://mm17-otis.pizenberg.fr .
* mpizenberg/elm-pointer-events:
  Eventually, after having implemented both mouse and touch behaviors for each of my projects, I got tired of doing the job twice each time. So this library is to support the web pointer events API, that inherit from mouse events but support mouse, touch, and others (pens, ...) pointer events. Unfortunately, the API is not well supported by Safari and Firefox yet (https://caniuse.com/#feat=pointer) so I also made a minimalist polyfill, compatible with elm (https://github.com/mpizenberg/elm-pep). Example usage at http://elm-image-annotation.pizenberg.fr/ (code at https://github.com/mpizenberg/demo-elm-image-annotation).
Reply all
Reply to author
Forward
0 new messages