[libgdx] SkeletonViewer reload button retries last file if it failed. Smaller minimized size.

This commit is contained in:
Nathan Sweet 2023-10-08 13:49:41 -04:00
parent 351d42f511
commit 55bb8fc65a
2 changed files with 15 additions and 9 deletions

View File

@ -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 {

View File

@ -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);
}
});