mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-08 00:04:54 +08:00
[libgdx] SkeletonViewer reload button retries last file if it failed. Smaller minimized size.
This commit is contained in:
parent
351d42f511
commit
55bb8fc65a
@ -79,7 +79,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
SkeletonData skeletonData;
|
||||
Skeleton skeleton;
|
||||
AnimationState state;
|
||||
FileHandle skeletonFile;
|
||||
FileHandle skeletonFile, lastFile;
|
||||
long skeletonModified, atlasModified;
|
||||
float lastModifiedCheck, reloadTimer;
|
||||
final StringBuilder status = new StringBuilder();
|
||||
@ -131,6 +131,7 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
|
||||
FileHandle oldSkeletonFile = this.skeletonFile;
|
||||
this.skeletonFile = skeletonFile;
|
||||
lastFile = skeletonFile;
|
||||
reloadTimer = 0;
|
||||
|
||||
try {
|
||||
|
||||
@ -86,11 +86,12 @@ class SkeletonViewerUI {
|
||||
Window window = new Window("Skeleton", skin);
|
||||
Table root = new Table(skin);
|
||||
TextButton openButton = new TextButton("Open", skin);
|
||||
TextButton reloadButton = new TextButton("Reload", skin);
|
||||
TextButton minimizeButton = new TextButton("-", skin);
|
||||
|
||||
Slider loadScaleSlider = new Slider(0.1f, 3, 0.01f, false, skin);
|
||||
Label loadScaleLabel = new Label("100%", skin);
|
||||
TextButton loadScaleResetButton = new TextButton("Reload", skin);
|
||||
TextButton loadScaleResetButton = new TextButton("Reset", skin);
|
||||
|
||||
Slider zoomSlider = new Slider(0.01f, 10, 0.01f, false, skin);
|
||||
Label zoomLabel = new Label("100%", skin);
|
||||
@ -207,7 +208,8 @@ class SkeletonViewerUI {
|
||||
window.setY(-2);
|
||||
|
||||
window.getTitleLabel().setColor(new Color(0xc1ffffff));
|
||||
window.getTitleTable().add(openButton).space(3);
|
||||
window.getTitleTable().add(openButton).spaceLeft(10);
|
||||
window.getTitleTable().add(reloadButton).space(3);
|
||||
window.getTitleTable().add(minimizeButton).width(20);
|
||||
|
||||
skinScroll.setFadeScrollBars(false);
|
||||
@ -383,6 +385,13 @@ class SkeletonViewerUI {
|
||||
}
|
||||
});
|
||||
|
||||
reloadButton.addListener(new ChangeListener() {
|
||||
public void changed (ChangeEvent event, Actor actor) {
|
||||
viewer.resetCameraPosition();
|
||||
if (viewer.loadSkeleton(viewer.lastFile)) toast("Reloaded.");
|
||||
}
|
||||
});
|
||||
|
||||
minimizeButton.addListener(new ClickListener() {
|
||||
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
|
||||
event.cancel();
|
||||
@ -399,6 +408,7 @@ class SkeletonViewerUI {
|
||||
window.setHeight(Gdx.graphics.getHeight() / SkeletonViewer.uiScale + 8);
|
||||
minimizeButton.setText("-");
|
||||
}
|
||||
window.setWidth(window.getPrefWidth());
|
||||
}
|
||||
});
|
||||
|
||||
@ -406,17 +416,12 @@ class SkeletonViewerUI {
|
||||
public void changed (ChangeEvent event, Actor actor) {
|
||||
loadScaleLabel.setText(Integer.toString((int)(loadScaleSlider.getValue() * 100)) + "%");
|
||||
if (!loadScaleSlider.isDragging() && viewer.loadSkeleton(viewer.skeletonFile)) toast("Reloaded.");
|
||||
loadScaleResetButton.setText(loadScaleSlider.getValue() == 1 ? "Reload" : "Reset");
|
||||
}
|
||||
});
|
||||
loadScaleResetButton.addListener(new ChangeListener() {
|
||||
public void changed (ChangeEvent event, Actor actor) {
|
||||
viewer.resetCameraPosition();
|
||||
if (loadScaleSlider.getValue() == 1) {
|
||||
if (viewer.loadSkeleton(viewer.skeletonFile)) toast("Reloaded.");
|
||||
} else
|
||||
loadScaleSlider.setValue(1);
|
||||
loadScaleResetButton.setText("Reload");
|
||||
loadScaleSlider.setValue(1);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user