Listeners for the various events involved in dragging (onDragBy, onDragStart, etc.). Also handles click events when the mouse was not moved.
Register a DragEnd event listener. It will not trigger if the mouse has not moved while it was pressed.
Register a DragBy event listener. It will trigger every time the mouse is moved. The sent message will contain a Delta, which is the distance between the current position and the previous one.
Note The delta values are Float, so the code bellow assumes that the point is of type { x: Float, y: Float }. If you want to use a Mouse.Position instead (which has Int coordinates), you might want to convert the Delta to a Position, using deltaToPosition
case Msg of
OnDragBy (dx, dy) ->
{ model | point = { x = point.x + dx, y = point.y + dy } }Register a Click event listener. It will trigger if the mouse is pressed and immediately release, without any move.
Register a MouseDown event listener. It will trigger whenever the mouse is pressed.
Register a MouseUp event listener. It will trigger whenever the mouse is released.
Register a
DragStartevent listener. It will not trigger if the mouse has not moved while it was pressed.