From 8fe92b94ce5e1e2857d088752d94e19db7e3d8a8 Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Sun, 17 Jun 2012 22:31:44 -0700 Subject: montage v11 merge into ninja Signed-off-by: Valerio Virgillito --- .../ui/native/input-range.reel/input-range.js | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 node_modules/montage/ui/native/input-range.reel/input-range.js (limited to 'node_modules/montage/ui/native/input-range.reel') diff --git a/node_modules/montage/ui/native/input-range.reel/input-range.js b/node_modules/montage/ui/native/input-range.reel/input-range.js new file mode 100644 index 00000000..d607d72c --- /dev/null +++ b/node_modules/montage/ui/native/input-range.reel/input-range.js @@ -0,0 +1,83 @@ +/* + This file contains proprietary software owned by Motorola Mobility, Inc.
+ No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+ (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ +/*global require,exports */ + +/** + @module "montage/ui/input-range.reel" + @requires montage/ui/component + @requires montage/ui/text-input + @requires montage/ui/composer/press-composer +*/ + +var Montage = require("montage").Montage, + Component = require("ui/component").Component, + TextInput = require("ui/text-input").TextInput, + PressComposer = require("ui/composer/press-composer").PressComposer; + +/** + * Wraps the a <input type="range"> element with binding support for the element's standard attributes. + @class module:"montage/ui/input-range.reel".InputRange + @extends module:montage/ui/text-input.TextInput + */ +var InputRange = exports.InputRange = Montage.create(TextInput, { + prepareForActivationEvents: { + value: function() { + var pressComposer = PressComposer.create(); + pressComposer.delegate = this; + this.addComposer(pressComposer); + pressComposer.addEventListener("pressStart", this, false); + pressComposer.addEventListener("press", this, false); + pressComposer.addEventListener("pressCancel", this, false); + } + }, + + handlePressStart: { + value: function(e) { + var interactionStartEvent = document.createEvent("CustomEvent"); + interactionStartEvent.initCustomEvent("montage_range_interaction_start", true, true, null); + this.dispatchEvent(interactionStartEvent); + } + }, + + handlePress: { + value: function(e) { + var interactionEndEvent = document.createEvent("CustomEvent"); + interactionEndEvent.initCustomEvent("montage_range_interaction_end", true, true, null); + this.dispatchEvent(interactionEndEvent); + } + }, + + surrenderPointer: { + value: function(pointer, composer) { + // If the user is sliding us then we do not want anyone using + // the pointer + return false; + } + } +}); + +InputRange.addAttributes( /** @lends module:"montage/ui/input-range.reel".InputRange# */ { +/** + The maximum value displayed but the input control. + @type {number} + @default null +*/ + max: {dataType: 'number'}, + +/** + The minimum value displayed but the input control. + @type {number} + @default null +*/ + min: {dataType: 'number'}, + +/** + The amount the number changes with each step. The step size can be a number, or the string 'any'. + @type {number|string} + @default null +*/ + step: null // number or 'any' +}); -- cgit v1.2.3