aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/native/input-range.reel/input-range.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage/ui/native/input-range.reel/input-range.js')
-rw-r--r--node_modules/montage/ui/native/input-range.reel/input-range.js83
1 files changed, 83 insertions, 0 deletions
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 @@
1/* <copyright>
2 This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3 No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5 </copyright> */
6/*global require,exports */
7
8/**
9 @module "montage/ui/input-range.reel"
10 @requires montage/ui/component
11 @requires montage/ui/text-input
12 @requires montage/ui/composer/press-composer
13*/
14
15var Montage = require("montage").Montage,
16 Component = require("ui/component").Component,
17 TextInput = require("ui/text-input").TextInput,
18 PressComposer = require("ui/composer/press-composer").PressComposer;
19
20/**
21 * Wraps the a &lt;input type="range"> element with binding support for the element's standard attributes.
22 @class module:"montage/ui/input-range.reel".InputRange
23 @extends module:montage/ui/text-input.TextInput
24 */
25var InputRange = exports.InputRange = Montage.create(TextInput, {
26 prepareForActivationEvents: {
27 value: function() {
28 var pressComposer = PressComposer.create();
29 pressComposer.delegate = this;
30 this.addComposer(pressComposer);
31 pressComposer.addEventListener("pressStart", this, false);
32 pressComposer.addEventListener("press", this, false);
33 pressComposer.addEventListener("pressCancel", this, false);
34 }
35 },
36
37 handlePressStart: {
38 value: function(e) {
39 var interactionStartEvent = document.createEvent("CustomEvent");
40 interactionStartEvent.initCustomEvent("montage_range_interaction_start", true, true, null);
41 this.dispatchEvent(interactionStartEvent);
42 }
43 },
44
45 handlePress: {
46 value: function(e) {
47 var interactionEndEvent = document.createEvent("CustomEvent");
48 interactionEndEvent.initCustomEvent("montage_range_interaction_end", true, true, null);
49 this.dispatchEvent(interactionEndEvent);
50 }
51 },
52
53 surrenderPointer: {
54 value: function(pointer, composer) {
55 // If the user is sliding us then we do not want anyone using
56 // the pointer
57 return false;
58 }
59 }
60});
61
62InputRange.addAttributes( /** @lends module:"montage/ui/input-range.reel".InputRange# */ {
63/**
64 The maximum value displayed but the input control.
65 @type {number}
66 @default null
67*/
68 max: {dataType: 'number'},
69
70/**
71 The minimum value displayed but the input control.
72 @type {number}
73 @default null
74*/
75 min: {dataType: 'number'},
76
77/**
78 The amount the number changes with each step. The step size can be a number, or the string 'any'.
79 @type {number|string}
80 @default null
81*/
82 step: null // number or 'any'
83});