aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/native/input-range.reel
diff options
context:
space:
mode:
authorArmen Kesablyan2012-06-20 15:16:30 -0700
committerArmen Kesablyan2012-06-20 15:16:30 -0700
commit65b989c7759af923fb9456d34bff89f91831ea1e (patch)
treee408be732a3eee71229bfc7dbf7cace998ce18de /node_modules/montage/ui/native/input-range.reel
parent38f571d1fdf02d36c3816637af7b2ca2493809da (diff)
parentfc818d31de267d2b77fda3b3029ad38d48698be8 (diff)
downloadninja-65b989c7759af923fb9456d34bff89f91831ea1e.tar.gz
Merge branch 'refs/heads/master' into binding
Conflicts: node_modules/montage/ui/application.js Signed-off-by: Armen Kesablyan <armen@motorola.com>
Diffstat (limited to 'node_modules/montage/ui/native/input-range.reel')
-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});