aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/progress.reel/progress.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage/ui/progress.reel/progress.js')
-rwxr-xr-xnode_modules/montage/ui/progress.reel/progress.js144
1 files changed, 12 insertions, 132 deletions
diff --git a/node_modules/montage/ui/progress.reel/progress.js b/node_modules/montage/ui/progress.reel/progress.js
index 8bc68b05..973ec5b7 100755
--- a/node_modules/montage/ui/progress.reel/progress.js
+++ b/node_modules/montage/ui/progress.reel/progress.js
@@ -3,137 +3,17 @@
3 No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<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. 4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5 </copyright> */ 5 </copyright> */
6/**
7 @module "montage/ui/bluemoon/progress.reel"
8 @requires montage/core/core
9 @requires montage/ui/component
10*/
11var Montage = require("montage").Montage, 6var Montage = require("montage").Montage,
12 Component = require("ui/component").Component; 7 Component = require("ui/component").Component,
13/** 8 NativeControl = require("ui/native-control").NativeControl;
14 @class module:montage/ui/progress.Progress 9
15 @extends module:montage/ui/component.Component 10
16*/ 11var Progress = exports.Progress = Montage.create(NativeControl, {
17exports.Progress = Montage.create(Component,/** @lends module:"montage/ui/bluemoon/progress.reel".Progress# */ { 12
18/**
19 Description TODO
20 @private
21*/
22 _barElement: {
23 enumerable: false,
24 value: null
25 },
26/**
27 Description TODO
28 @private
29*/
30 _value: {
31 enumerable: false,
32 value: 0
33 },
34/**
35 Description TODO
36 @type {Function}
37 @default {Number} 0
38 */
39 value: {
40 get: function() {
41 return this._value;
42 },
43 set: function(val) {
44 if(val !== this._value) {
45 this._value = val;
46 if(this._value > this._maximumValue) {
47 this._value = this._maximumValue;
48 }
49 if(this._value < 0) {
50 this._value = 0;
51 }
52 this.needsDraw = true;
53 }
54 }
55 },
56/**
57 Description TODO
58 @private
59*/
60 _maximumValue: {
61 enumerable: false,
62 value: 100
63 },
64/**
65 Description TODO
66 @type {Function}
67 @default {Number} 100
68 */
69 maximumValue: {
70 get: function() {
71 return this._maximumValue;
72 },
73 set: function(val) {
74 if(val !== this._maximumValue) {
75 this._maximumValue = val;
76 if(this._maximumValue <= 0) {
77 this._maximumValue = 1; // Prevent divide by zero errors
78 }
79 this.needsDraw = true;
80 }
81 }
82 },
83/**
84 Description TODO
85 @private
86*/
87 _scrollingChanged: {
88 enumerable: false,
89 value: true
90 },
91/**
92 Description TODO
93 @private
94*/
95 _scrolling: {
96 enumerable: false,
97 value: false
98 },
99/**
100 Description TODO
101 @type {Function}
102 @default {Boolean} false
103 */
104 scrolling: {
105 get: function() {
106 return this._scrolling;
107 },
108 set: function(value) {
109 if(this._scrolling !== value) {
110 this._scrollingChanged = true;
111 this._scrolling = value;
112 this.needsDraw = true;
113 }
114 }
115 },
116/**
117 Description TODO
118 @function
119 */
120 draw: {
121 enumerable: false,
122 value: function() {
123 var ratio = this._value / this._maximumValue;
124 // constrain to interval [0, 1]
125 ratio = Math.min(Math.max(ratio, 0), 1);
126 // map into [0, 100]
127 var percentage = ratio * 100;
128 this._barElement.style.width = percentage + '%';
129 if(this._scrollingChanged) {
130 if(this._scrolling) {
131 this._barElement.classList.add("scrolling");
132 } else {
133 this._barElement.classList.remove("scrolling");
134 }
135 this._scrollingChanged = false;
136 }
137 }
138 }
139}); 13});
14
15Progress.addAttributes({
16 form: null,
17 max: {dataType: 'number'},
18 value: {dataType: 'number'}
19}); \ No newline at end of file