mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
Reverse and hold previous checkboxes for Skeleton Viewer.
This commit is contained in:
parent
aebe8d3fb6
commit
ede4ac7b45
@ -279,6 +279,8 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
entry = state.setAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked());
|
entry = state.setAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked());
|
||||||
}
|
}
|
||||||
entry.setMixBlend(ui.addCheckbox.isChecked() ? MixBlend.add : MixBlend.replace);
|
entry.setMixBlend(ui.addCheckbox.isChecked() ? MixBlend.add : MixBlend.replace);
|
||||||
|
entry.setReverse(ui.reverseCheckbox.isChecked());
|
||||||
|
entry.setHoldPrevious(ui.holdPrevCheckbox.isChecked());
|
||||||
entry.setAlpha(ui.alphaSlider.getValue());
|
entry.setAlpha(ui.alphaSlider.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -479,6 +481,9 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
Label speedLabel = new Label("1.0x", skin);
|
Label speedLabel = new Label("1.0x", skin);
|
||||||
TextButton speedResetButton = new TextButton("Reset", 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);
|
Slider mixSlider = new Slider(0, 4, 0.01f, false, skin);
|
||||||
Label mixLabel = new Label("0.3s", skin);
|
Label mixLabel = new Label("0.3s", skin);
|
||||||
|
|
||||||
@ -531,6 +536,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
alphaSlider.setDisabled(true);
|
alphaSlider.setDisabled(true);
|
||||||
|
|
||||||
addCheckbox.setDisabled(true);
|
addCheckbox.setDisabled(true);
|
||||||
|
holdPrevCheckbox.setDisabled(true);
|
||||||
|
|
||||||
window.setMovable(false);
|
window.setMovable(false);
|
||||||
window.setResizable(false);
|
window.setResizable(false);
|
||||||
@ -616,6 +622,13 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
for (TextButton button : trackButtons.getButtons())
|
for (TextButton button : trackButtons.getButtons())
|
||||||
table.add(button);
|
table.add(button);
|
||||||
table.add(loopCheckbox);
|
table.add(loopCheckbox);
|
||||||
|
root.add(table).row();
|
||||||
|
}
|
||||||
|
root.add();
|
||||||
|
{
|
||||||
|
Table table = table();
|
||||||
|
table.add(reverseCheckbox);
|
||||||
|
table.add(holdPrevCheckbox);
|
||||||
table.add(addCheckbox);
|
table.add(addCheckbox);
|
||||||
root.add(table).row();
|
root.add(table).row();
|
||||||
}
|
}
|
||||||
@ -628,6 +641,9 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
}
|
}
|
||||||
root.add("Animation:");
|
root.add("Animation:");
|
||||||
root.add(animationScroll).grow().minHeight(64).row();
|
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:");
|
root.add("Speed:");
|
||||||
{
|
{
|
||||||
Table table = table();
|
Table table = table();
|
||||||
@ -844,17 +860,15 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
});
|
});
|
||||||
animationScroll.addListener(scrollFocusListener);
|
animationScroll.addListener(scrollFocusListener);
|
||||||
|
|
||||||
loopCheckbox.addListener(new ChangeListener() {
|
ChangeListener setAnimation = new ChangeListener() {
|
||||||
public void changed (ChangeEvent event, Actor actor) {
|
public void changed (ChangeEvent event, Actor actor) {
|
||||||
setAnimation();
|
setAnimation();
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
|
loopCheckbox.addListener(setAnimation);
|
||||||
addCheckbox.addListener(new ChangeListener() {
|
reverseCheckbox.addListener(setAnimation);
|
||||||
public void changed (ChangeEvent event, Actor actor) {
|
holdPrevCheckbox.addListener(setAnimation);
|
||||||
setAnimation();
|
addCheckbox.addListener(setAnimation);
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
linearCheckbox.addListener(new ChangeListener() {
|
linearCheckbox.addListener(new ChangeListener() {
|
||||||
public void changed (ChangeEvent event, Actor actor) {
|
public void changed (ChangeEvent event, Actor actor) {
|
||||||
@ -892,10 +906,13 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
alphaSlider.setValue(current == null ? 1 : current.alpha);
|
alphaSlider.setValue(current == null ? 1 : current.alpha);
|
||||||
|
|
||||||
addCheckbox.setDisabled(track == 0);
|
addCheckbox.setDisabled(track == 0);
|
||||||
|
holdPrevCheckbox.setDisabled(track == 0);
|
||||||
|
|
||||||
if (current != null) {
|
if (current != null) {
|
||||||
loopCheckbox.setChecked(current.getLoop());
|
loopCheckbox.setChecked(current.getLoop());
|
||||||
addCheckbox.setChecked(current.getMixBlend() == MixBlend.add);
|
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);
|
premultipliedCheckbox.addListener(savePrefsListener);
|
||||||
loopCheckbox.addListener(savePrefsListener);
|
loopCheckbox.addListener(savePrefsListener);
|
||||||
addCheckbox.addListener(savePrefsListener);
|
addCheckbox.addListener(savePrefsListener);
|
||||||
|
holdPrevCheckbox.addListener(savePrefsListener);
|
||||||
|
reverseCheckbox.addListener(savePrefsListener);
|
||||||
speedSlider.addListener(savePrefsListener);
|
speedSlider.addListener(savePrefsListener);
|
||||||
speedResetButton.addListener(savePrefsListener);
|
speedResetButton.addListener(savePrefsListener);
|
||||||
mixSlider.addListener(savePrefsListener);
|
mixSlider.addListener(savePrefsListener);
|
||||||
@ -1019,6 +1038,8 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
prefs.putBoolean("premultiplied", premultipliedCheckbox.isChecked());
|
prefs.putBoolean("premultiplied", premultipliedCheckbox.isChecked());
|
||||||
prefs.putBoolean("loop", loopCheckbox.isChecked());
|
prefs.putBoolean("loop", loopCheckbox.isChecked());
|
||||||
prefs.putBoolean("add", addCheckbox.isChecked());
|
prefs.putBoolean("add", addCheckbox.isChecked());
|
||||||
|
prefs.putBoolean("holdPrev", holdPrevCheckbox.isChecked());
|
||||||
|
prefs.putBoolean("reverse", reverseCheckbox.isChecked());
|
||||||
prefs.putFloat("speed", speedSlider.getValue());
|
prefs.putFloat("speed", speedSlider.getValue());
|
||||||
prefs.putFloat("mix", mixSlider.getValue());
|
prefs.putFloat("mix", mixSlider.getValue());
|
||||||
prefs.putFloat("scale", loadScaleSlider.getValue());
|
prefs.putFloat("scale", loadScaleSlider.getValue());
|
||||||
@ -1049,6 +1070,8 @@ public class SkeletonViewer extends ApplicationAdapter {
|
|||||||
premultipliedCheckbox.setChecked(prefs.getBoolean("premultiplied", true));
|
premultipliedCheckbox.setChecked(prefs.getBoolean("premultiplied", true));
|
||||||
loopCheckbox.setChecked(prefs.getBoolean("loop", true));
|
loopCheckbox.setChecked(prefs.getBoolean("loop", true));
|
||||||
addCheckbox.setChecked(prefs.getBoolean("add", false));
|
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));
|
speedSlider.setValue(prefs.getFloat("speed", 0.3f));
|
||||||
mixSlider.setValue(prefs.getFloat("mix", 0.3f));
|
mixSlider.setValue(prefs.getFloat("mix", 0.3f));
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user