/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package automenta.spacenet.space.widget.slider; import automenta.spacenet.space.geom.text3d.Font3D; import automenta.spacenet.space.widget.spinner.Spinner; import automenta.spacenet.var.physical.Color; import automenta.spacenet.var.scalar.DoubleRange; import automenta.spacenet.var.scalar.DoubleVar; /** * * @author seh */ public class Slider extends Spinner { private final DoubleVar knobWidth; private final SliderDirection direction; public static enum SliderDirection { Horizontal, Vertical } public Slider(SliderDirection direction, Font3D font, DoubleRange range, double spinIncrement, double knobWidth) { this(direction, font, range, new DoubleVar(spinIncrement), new DoubleVar(knobWidth)); } public Slider(SliderDirection direction, Font3D font, DoubleRange range, DoubleVar spinIncrement, DoubleVar knobWidth) { super(font, range, spinIncrement); this.direction = direction; this.knobWidth = knobWidth; valueChanged(); } public DoubleVar getKnobWidth() { return knobWidth; } @Override protected void arrange() { //super.arrange(); if (direction == SliderDirection.Horizontal) { upButton.span(0.5, -0.5, 0.4, 0.5).moveDZ(0.05); downButton.span(-0.5, -0.5, -0.4, 0.5).moveDZ(0.05); numberButton.span(-0.1, 0.5, 0.1, -0.5).moveDZ(0.05); numberButton.color(Color.White); } } @Override protected void valueChanged() { super.valueChanged(); arrange(); } }