aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/native/input-range.reel/input-range.js
diff options
context:
space:
mode:
authorArmen Kesablyan2012-06-20 15:04:25 -0700
committerArmen Kesablyan2012-06-20 15:04:25 -0700
commitfc818d31de267d2b77fda3b3029ad38d48698be8 (patch)
tree122ebf54d3378578c1ded4d786ba3940d4a911d2 /node_modules/montage/ui/native/input-range.reel/input-range.js
parent120e31dcf1e11eed11ee430d77c438e7b073e9f8 (diff)
parentc9852665eadc1acb9c1c881d207c4bd9ef88805f (diff)
downloadninja-fc818d31de267d2b77fda3b3029ad38d48698be8.tar.gz
Merge branch 'master' of github.com:Motorola-Mobility/ninja-internal
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});