forked from NativeScript/NativeScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogress-common.ts
More file actions
45 lines (38 loc) · 1.34 KB
/
progress-common.ts
File metadata and controls
45 lines (38 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import definition = require("ui/progress");
import view = require("ui/core/view");
import dependencyObservable = require("ui/core/dependency-observable");
import proxy = require("ui/core/proxy");
export class Progress extends view.View implements definition.Progress {
public static valueProperty = new dependencyObservable.Property(
"value",
"Progress",
new proxy.PropertyMetadata(0, dependencyObservable.PropertyMetadataSettings.AffectsLayout)
);
public static maxValueProperty = new dependencyObservable.Property(
"maxValue",
"Progress",
new proxy.PropertyMetadata(100, dependencyObservable.PropertyMetadataSettings.AffectsLayout)
);
constructor() {
super();
this.maxValue = 100;
this.value = 0;
}
get maxValue(): number {
return this._getValue(Progress.maxValueProperty);
}
set maxValue(newMaxValue: number) {
this._setValue(Progress.maxValueProperty, newMaxValue);
// Adjust value if needed.
if (this.value > newMaxValue) {
this.value = newMaxValue;
}
}
get value(): number {
return this._getValue(Progress.valueProperty);
}
set value(value: number) {
value = Math.min(value, this.maxValue);
this._setValue(Progress.valueProperty, value);
}
}