Plugin: JS9MouseTouch

### Mouse and Touch Actions

JS9 supports the following configurable mouse and touch actions:

- mouse movement with no buttons pressed
- mouse movement with one button pressed
- mouse movement with two buttons pressed
- touch with one finger
- touch with two fingers
- touch with three fingers

The initial actions are defined by the JS9.globalOpts.mouseActions and JS9.globalOpts.touchActions arrays. In addition, the JS9.globalOpts.mousetouchZoom property specifies whether a mouse wheel or touch/pinch will zoom the image. The default actions are:

- mouseActions: ["display value/position", "change contrast/bias", "pan the image"]
- touchActions: ["display value/position", "change contrast/bias", "pan the image"]
- mousetouchZoom: false

where the array elements map to an increasing numbers of buttons/fingers. You can change the default actions of the elements in either array in your js9Prefs.json file. For example, to make pan and zoom the default one-touch and pinch actions respectively:

- touchActions: ["pan the image", "display value/position", "change contrast/bias"]
- mousetouchZoom: true

As usual, the defaults in js9Prefs.json are used by all JS9 displays in a web page.

Users can change the action assignments using the MouseTouch plugin, which displays the current mapping between mouse/touch gesture and its action. Simply drag and drop an action to a different gesture in order to change the mapping. You also can toggle the scroll/pinch to zoom capability by clicking its button.