mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 03:31:45 +08:00
71 lines
1.9 KiB
TypeScript
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);
|
|
}
|
|
}
|
|
} |