Reverse and hold previous checkboxes for Skeleton Viewer.

This commit is contained in:
NathanSweet 2019-11-22 16:17:25 +01:00
parent aebe8d3fb6
commit ede4ac7b45

View File

@ -279,6 +279,8 @@ public class SkeletonViewer extends ApplicationAdapter {
entry = state.setAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked());
}
entry.setMixBlend(ui.addCheckbox.isChecked() ? MixBlend.add : MixBlend.replace);
entry.setReverse(ui.reverseCheckbox.isChecked());
entry.setHoldPrevious(ui.holdPrevCheckbox.isChecked());
entry.setAlpha(ui.alphaSlider.getValue());
}
@ -479,6 +481,9 @@ public class SkeletonViewer extends ApplicationAdapter {
Label speedLabel = new Label("1.0x", skin);
TextButton speedResetButton = new TextButton("Reset", skin);
CheckBox reverseCheckbox = new CheckBox("Reverse", skin);
CheckBox holdPrevCheckbox = new CheckBox("Hold previous", skin);
Slider mixSlider = new Slider(0, 4, 0.01f, false, skin);
Label mixLabel = new Label("0.3s", skin);
@ -531,6 +536,7 @@ public class SkeletonViewer extends ApplicationAdapter {
alphaSlider.setDisabled(true);
addCheckbox.setDisabled(true);
holdPrevCheckbox.setDisabled(true);
window.setMovable(false);
window.setResizable(false);
@ -616,6 +622,13 @@ public class SkeletonViewer extends ApplicationAdapter {
for (TextButton button : trackButtons.getButtons())
table.add(button);
table.add(loopCheckbox);
root.add(table).row();
}
root.add();
{
Table table = table();
table.add(reverseCheckbox);
table.add(holdPrevCheckbox);
table.add(addCheckbox);
root.add(table).row();
}
@ -628,6 +641,9 @@ public class SkeletonViewer extends ApplicationAdapter {
}
root.add("Animation:");
root.add(animationScroll).grow().minHeight(64).row();
root.add(new Image(skin.newDrawable("white", new Color(0x4e4e4eff)))).height(1).fillX().colspan(2).pad(1, 0, 1, 0).row();
root.add("Speed:");
{
Table table = table();
@ -844,17 +860,15 @@ public class SkeletonViewer extends ApplicationAdapter {
});
animationScroll.addListener(scrollFocusListener);
loopCheckbox.addListener(new ChangeListener() {
ChangeListener setAnimation = new ChangeListener() {
public void changed (ChangeEvent event, Actor actor) {
setAnimation();
}
});
addCheckbox.addListener(new ChangeListener() {
public void changed (ChangeEvent event, Actor actor) {
setAnimation();
}
});
};
loopCheckbox.addListener(setAnimation);
reverseCheckbox.addListener(setAnimation);
holdPrevCheckbox.addListener(setAnimation);
addCheckbox.addListener(setAnimation);
linearCheckbox.addListener(new ChangeListener() {
public void changed (ChangeEvent event, Actor actor) {
@ -892,10 +906,13 @@ public class SkeletonViewer extends ApplicationAdapter {
alphaSlider.setValue(current == null ? 1 : current.alpha);
addCheckbox.setDisabled(track == 0);
holdPrevCheckbox.setDisabled(track == 0);
if (current != null) {
loopCheckbox.setChecked(current.getLoop());
addCheckbox.setChecked(current.getMixBlend() == MixBlend.add);
reverseCheckbox.setChecked(current.getReverse());
holdPrevCheckbox.setChecked(current.getHoldPrevious());
}
}
};
@ -954,6 +971,8 @@ public class SkeletonViewer extends ApplicationAdapter {
premultipliedCheckbox.addListener(savePrefsListener);
loopCheckbox.addListener(savePrefsListener);
addCheckbox.addListener(savePrefsListener);
holdPrevCheckbox.addListener(savePrefsListener);
reverseCheckbox.addListener(savePrefsListener);
speedSlider.addListener(savePrefsListener);
speedResetButton.addListener(savePrefsListener);
mixSlider.addListener(savePrefsListener);
@ -1019,6 +1038,8 @@ public class SkeletonViewer extends ApplicationAdapter {
prefs.putBoolean("premultiplied", premultipliedCheckbox.isChecked());
prefs.putBoolean("loop", loopCheckbox.isChecked());
prefs.putBoolean("add", addCheckbox.isChecked());
prefs.putBoolean("holdPrev", holdPrevCheckbox.isChecked());
prefs.putBoolean("reverse", reverseCheckbox.isChecked());
prefs.putFloat("speed", speedSlider.getValue());
prefs.putFloat("mix", mixSlider.getValue());
prefs.putFloat("scale", loadScaleSlider.getValue());
@ -1049,6 +1070,8 @@ public class SkeletonViewer extends ApplicationAdapter {
premultipliedCheckbox.setChecked(prefs.getBoolean("premultiplied", true));
loopCheckbox.setChecked(prefs.getBoolean("loop", true));
addCheckbox.setChecked(prefs.getBoolean("add", false));
holdPrevCheckbox.setChecked(prefs.getBoolean("holdPrev", false));
reverseCheckbox.setChecked(prefs.getBoolean("reverse", false));
speedSlider.setValue(prefs.getFloat("speed", 0.3f));
mixSlider.setValue(prefs.getFloat("mix", 0.3f));