Browse Source

[libgdx] Add drag & drop support to skeleton viewer. Closes #2015

Mario Zechner 3 years ago
parent
commit
21ae33555a

+ 2 - 0
.gitignore

@@ -155,3 +155,5 @@ spine-monogame/spine-monogame-example/Content/bin
 spine-monogame/spine-monogame-example/Content/obj
 spine-monogame/spine-monogame-example/bin
 spine-monogame/spine-monogame-example/obj
+spine-libgdx/spine-libgdx/out
+spine-libgdx/spine-skeletonviewer/out

+ 14 - 1
spine-libgdx/spine-skeletonviewer/src/com/esotericsoftware/spine/SkeletonViewer.java

@@ -37,6 +37,7 @@ import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.Preferences;
 import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
 import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3WindowAdapter;
 import com.badlogic.gdx.files.FileHandle;
 import com.badlogic.gdx.graphics.Color;
 import com.badlogic.gdx.graphics.GL20;
@@ -368,11 +369,23 @@ public class SkeletonViewer extends ApplicationAdapter {
 		}
 		if (dpiScale >= 2.0f) uiScale = 2;
 
+		SkeletonViewer skeletonViewer = new SkeletonViewer();
 		Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
 		config.disableAudio(true);
 		config.setWindowedMode((int)(800 * uiScale), (int)(600 * uiScale));
 		config.setTitle("Skeleton Viewer");
 		config.setBackBufferConfig(8, 8, 8, 8, 24, 0, 2);
-		new Lwjgl3Application(new SkeletonViewer(), config);
+		config.setWindowListener(new Lwjgl3WindowAdapter() {
+			@Override
+			public void filesDropped (String[] files) {
+				for (String file : files) {
+					if (file.endsWith(".json") || file.endsWith(".skel")) {
+						skeletonViewer.loadSkeleton(Gdx.files.absolute(file));
+						return;
+					}
+				}
+			}
+		});
+		new Lwjgl3Application(skeletonViewer, config);
 	}
 }