package com.csound.wizard.layout.unit;
import android.view.View;
import com.csound.wizard.Const;
import com.csound.wizard.csound.listener.CachedSlide;
import com.csound.wizard.layout.LayoutContext;
import com.csound.wizard.layout.SetLayoutParam.LayoutParent;
import com.csound.wizard.layout.UnitUtils;
import com.csound.wizard.layout.UnitUtils.WithId;
import com.csound.wizard.layout.Units.Unit;
import com.csound.wizard.layout.param.Param;
import com.csound.wizard.model.TrackState;
public class Slider implements Unit {
@Override
public String getTag() {
return Const.SLIDER;
}
@Override
public View getView(final LayoutContext ctx, final Object tagValue, final Param param, final Param defaults, final TrackState trackState, final LayoutParent layoutParent) {
return UnitUtils.run(this, ctx, tagValue, new WithId() {
@Override
public View apply(String id) {
float initVal = UnitUtils.getState(id, trackState, com.csound.wizard.view.unit.Slider.defaultState());
boolean isHor = getIsHor(param, layoutParent);
com.csound.wizard.view.unit.Slider slider = new com.csound.wizard.view.unit.Slider(
ctx.getContext(), id, initVal,
param.getRange().getRange(),
param.getColor(), isHor);
new CachedSlide(id, initVal, slider).addToCsound(ctx.getCsoundObj());
return slider;
}
});
}
public static boolean getIsHor(Param param, LayoutParent layoutParent) {
if (param.getLayout() != null && param.getLayout().getOrient() != null) {
return param.getLayout().getOrient();
} else {
return layoutParent == LayoutParent.VER;
}
}
}