Files
Panayot Cankov e135c20b14 Rename the files
2016-05-26 14:30:25 +03:00

71 lines
1.9 KiB
TypeScript

import view = require("ui/core/view");
import definition = require("ui/slider");
import dependencyObservable = require("ui/core/dependency-observable");
import proxy = require("ui/core/proxy");
// TODO: Extract base Range class for slider and progress
export class Slider extends view.View implements definition.Slider {
public static valueProperty = new dependencyObservable.Property(
"value",
"Slider",
new proxy.PropertyMetadata(0)
);
public static minValueProperty = new dependencyObservable.Property(
"minValue",
"Slider",
new proxy.PropertyMetadata(0)
);
public static maxValueProperty = new dependencyObservable.Property(
"maxValue",
"Slider",
new proxy.PropertyMetadata(100)
);
constructor() {
super();
}
get value(): number {
return this._getValue(Slider.valueProperty);
}
set value(value: number) {
var newValue = value;
newValue = Math.max(newValue, this.minValue);
newValue = Math.min(newValue, this.maxValue);
this._setValue(Slider.valueProperty, newValue);
}
get minValue(): number {
return this._getValue(Slider.minValueProperty);
}
set minValue(newValue: number) {
this._setValue(Slider.minValueProperty, newValue);
if (newValue > this.maxValue) {
this._setValue(Slider.maxValueProperty, newValue);
}
if (newValue > this.value) {
this._setValue(Slider.valueProperty, newValue);
}
}
get maxValue(): number {
return this._getValue(Slider.maxValueProperty);
}
set maxValue(newValue: number) {
this._setValue(Slider.maxValueProperty, newValue);
if (newValue < this.minValue) {
this._setValue(Slider.minValueProperty, newValue);
}
if (newValue < this.value) {
this._setValue(Slider.valueProperty, newValue);
}
}
}