diff --git a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java index 30d436903..6225ef9e6 100644 --- a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java +++ b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java @@ -250,6 +250,13 @@ public class SkeletonViewer extends ApplicationAdapter { if (skeleton.scaleY == 0) skeleton.scaleY = 0.01f; skeleton.setScale(scaleX, scaleY); + if (ui.setupPoseButton.isChecked()) + skeleton.setToSetupPose(); + else if (ui.bonesSetupPoseButton.isChecked()) + skeleton.setBonesToSetupPose(); + else if (ui.slotsSetupPoseButton.isChecked()) // + skeleton.setSlotsToSetupPose(); + delta = Math.min(delta, 0.032f) * ui.speedSlider.getValue(); skeleton.update(delta); state.update(delta); diff --git a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewerUI.java b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewerUI.java index 37f2c0a49..090bbd62d 100644 --- a/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewerUI.java +++ b/spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewerUI.java @@ -88,9 +88,9 @@ class SkeletonViewerUI { CheckBox linearCheckbox = new CheckBox("Linear", skin); - TextButton bonesSetupPoseButton = new TextButton("Bones", skin); - TextButton slotsSetupPoseButton = new TextButton("Slots", skin); - TextButton setupPoseButton = new TextButton("Both", skin); + TextButton bonesSetupPoseButton = new TextButton("Bones", skin, "toggle"); + TextButton slotsSetupPoseButton = new TextButton("Slots", skin, "toggle"); + TextButton setupPoseButton = new TextButton("Both", skin, "toggle"); List skinList = new List(skin); ScrollPane skinScroll = new ScrollPane(skinList, skin, "bg"); @@ -136,6 +136,8 @@ class SkeletonViewerUI { linearCheckbox.setChecked(true); + new ButtonGroup(bonesSetupPoseButton, slotsSetupPoseButton, setupPoseButton).setMinCheckCount(0); + loopCheckbox.setChecked(true); loadScaleSlider.setValue(1); @@ -347,7 +349,6 @@ class SkeletonViewerUI { }); slotsSetupPoseButton.addListener(new ChangeListener() { public void changed (ChangeEvent event, Actor actor) { - viewer.skeleton.getRootBone().getChildren(); if (viewer.skeleton != null) viewer.skeleton.setSlotsToSetupPose(); } }); @@ -594,6 +595,10 @@ class SkeletonViewerUI { debugPointsCheckbox.addListener(savePrefsListener); debugClippingCheckbox.addListener(savePrefsListener); pmaCheckbox.addListener(savePrefsListener); + linearCheckbox.addListener(savePrefsListener); + bonesSetupPoseButton.addListener(savePrefsListener); + slotsSetupPoseButton.addListener(savePrefsListener); + setupPoseButton.addListener(savePrefsListener); loopCheckbox.addListener(savePrefsListener); addCheckbox.addListener(savePrefsListener); holdPrevCheckbox.addListener(savePrefsListener); @@ -662,6 +667,15 @@ class SkeletonViewerUI { prefs.putBoolean("debugPoints", debugPointsCheckbox.isChecked()); prefs.putBoolean("debugClipping", debugClippingCheckbox.isChecked()); prefs.putBoolean("premultiplied", pmaCheckbox.isChecked()); + prefs.putBoolean("linear", linearCheckbox.isChecked()); + if (bonesSetupPoseButton.isChecked()) + prefs.putString("setupPose", "bones"); + else if (slotsSetupPoseButton.isChecked()) + prefs.putString("setupPose", "slots"); + else if (setupPoseButton.isChecked()) // + prefs.putString("setupPose", "both"); + else + prefs.remove("setupPose"); prefs.putBoolean("loop", loopCheckbox.isChecked()); prefs.putBoolean("add", addCheckbox.isChecked()); prefs.putBoolean("holdPrev", holdPrevCheckbox.isChecked()); @@ -695,6 +709,11 @@ class SkeletonViewerUI { debugPointsCheckbox.setChecked(prefs.getBoolean("debugPoints", true)); debugClippingCheckbox.setChecked(prefs.getBoolean("debugClipping", true)); pmaCheckbox.setChecked(prefs.getBoolean("premultiplied", true)); + linearCheckbox.setChecked(prefs.getBoolean("linear", true)); + String setupPose = prefs.getString("setupPose", ""); + bonesSetupPoseButton.setChecked(setupPose.equals("bones")); + slotsSetupPoseButton.setChecked(setupPose.equals("slots")); + setupPoseButton.setChecked(setupPose.equals("both")); loopCheckbox.setChecked(prefs.getBoolean("loop", true)); addCheckbox.setChecked(prefs.getBoolean("add", false)); holdPrevCheckbox.setChecked(prefs.getBoolean("holdPrev", false));