Files

37 lines
1.2 KiB
TypeScript

import definition = require("ui/progress");
import {View} from "ui/core/view";
import {Property} from "ui/core/dependency-observable";
import proxy = require("ui/core/proxy");
export class Progress extends View implements definition.Progress {
public static valueProperty = new Property("value", "Progress", new proxy.PropertyMetadata(0));
public static maxValueProperty = new Property("maxValue", "Progress", new proxy.PropertyMetadata(100));
constructor() {
super();
// This calls make both platforms have default values from 0 to 100.
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);
}
}