Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
64 lines
1.5 KiB
JavaScript
Executable file
64 lines
1.5 KiB
JavaScript
Executable file
/* global Marionette */
|
|
(function(module, ns) {
|
|
'use strict';
|
|
|
|
/**
|
|
* For a multifinger gesture, we can use MultiActions.
|
|
* For example, one finger to hold down
|
|
* while the other finger moves from one element to another.
|
|
*
|
|
* @class Marionette.MultiActions
|
|
* @param {Marionette.Client} context of a client.
|
|
*/
|
|
function MultiActions(client) {
|
|
this.client = client;
|
|
this.multiActions = [];
|
|
this.maxLength = 0;
|
|
}
|
|
|
|
MultiActions.prototype = {
|
|
|
|
/**
|
|
* Adds a action chain for execution.
|
|
*
|
|
* @method add
|
|
* @param {Object} action {{#crossLink "Marionette.Actions"}}{{/crossLink}}.
|
|
*
|
|
* @return {Object} self.
|
|
*/
|
|
add: function add(action) {
|
|
this.multiActions.push(action.actionChain);
|
|
if (action.actionChain.length > this.maxLength) {
|
|
this.maxLength = action.actionChain.length;
|
|
}
|
|
return this;
|
|
},
|
|
|
|
/**
|
|
* Send multiple action chains that have been added
|
|
* to the server side for execution.
|
|
*
|
|
* @method perform
|
|
* @param {Function} callback callback when the perform completes.
|
|
*/
|
|
perform: function perform(callback) {
|
|
var cmd = {
|
|
type: 'multiAction',
|
|
value: this.multiActions,
|
|
max_length: this.maxLength
|
|
};
|
|
|
|
this.client._sendCommand(cmd, callback);
|
|
this.multiActions = [];
|
|
return this;
|
|
}
|
|
};
|
|
|
|
module.exports = MultiActions;
|
|
|
|
}.apply(
|
|
this,
|
|
(this.Marionette) ?
|
|
[Marionette('multi-actions'), Marionette] :
|
|
[module, require('../../lib/marionette/marionette')]
|
|
));
|