package com.codefixia.ui;
import com.codefixia.drumcloud.DrumCloud;
import com.codefixia.utils.FontAdjuster;
public class VerticalSlider extends Draggable{
float divisions=10;
float divHeight=0.0f;
int outStroke=3;
private String text="";
public VerticalSlider(float x, float y, float w, float h) {
super(x,y,w,h);
expandedFactor=1.2f;
}
public void limitY(float min,float max){
limitedY=true;
minY=min;
maxY=max;
calculateClickZone();
divHeight=(maxYZone-minYZone)/divisions;
//DrumCloud.println("totalH:"+(maxYZone-minYZone)+" divHeight:"+divHeight);
}
public float normalizedValue(){
return DrumCloud.map(getY(), minY, maxY, 1.0f, 0.0f);
}
public void draw() {
DrumCloud.X.strokeWeight(outStroke);
DrumCloud.X.stroke(100,100,100,255);
DrumCloud.X.fill(DrumCloud.map(normalizedValue(),0,1,50,127),255);
DrumCloud.X.rect(minXZone,minYZone,maxXZone-minXZone,maxYZone-minYZone);
DrumCloud.X.strokeWeight(2);
DrumCloud.X.stroke(255,255,255,255);
for(int i=1;i<divisions;i++){
float yPos=minYZone+i*divHeight;
if(i%2==0){
DrumCloud.X.line(minXZone+outStroke,yPos,minXZone+getW()*.5f,yPos);
DrumCloud.X.line(maxXZone-getW()*.5f,yPos,maxXZone-outStroke,yPos);
}
else{
DrumCloud.X.line(minXZone+outStroke,yPos,minXZone+getW()*.4f,yPos);
DrumCloud.X.line(maxXZone-getW()*.4f,yPos,maxXZone-outStroke,yPos);
}
}
DrumCloud.X.strokeWeight(outStroke);
DrumCloud.X.stroke(200);
if (isDragging()) DrumCloud.X.fill (50,180);
else if (rollover) DrumCloud.X.fill(140,180);
else DrumCloud.X.fill(100,180);
DrumCloud.X.rect(getX(),getY(),getW(),getH());
DrumCloud.X.fill(200);
//textSize(20);
//text(round(normalizedValue()*100)+"%",x+w*.5,maxYZone+h*.7);
DrumCloud.X.textSize(FontAdjuster.getSize(20));
float posY;
if(DrumCloud.isAndroidDevice())
posY=getY()+getH()*.73f;
else
posY=getY()+getH()*.785f;
DrumCloud.X.text(DrumCloud.round(normalizedValue()*100),getX()+getW()*.5f,posY);
DrumCloud.X.textSize(FontAdjuster.getSize(12));
DrumCloud.X.textLeading(FontAdjuster.getSize(12));
DrumCloud.X.text(getText(),getX()+getW()*.5f,maxYZone+getH()*.5f);
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
//The MIT License (MIT)