package com.badlogic.gdx.tests.lwjgl3;
import java.awt.image.BufferedImage;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputAdapter;
import com.badlogic.gdx.Graphics.DisplayMode;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3WindowAdapter;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3WindowListener;
import com.badlogic.gdx.graphics.FPSLogger;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.HdpiUtils;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.tests.utils.GdxTest;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.GdxRuntimeException;
/**
* Tests for GLFW's drop callback.
*
* External files (e.g from the desktop) can be dragged into the GLFW window.
*
* @author mbrlabs
*/
public class DragNDropTest extends GdxTest {
private Skin skin;
private Stage stage;
private Table root;
@Override
public void create () {
BufferedImage image = new BufferedImage(10, 10, BufferedImage.TYPE_4BYTE_ABGR);
stage = new Stage();
skin = new Skin(Gdx.files.internal("data/uiskin.json"));
Gdx.input.setInputProcessor(stage);
root = new Table();
root.setFillParent(true);
root.align(Align.left | Align.top);
stage.addActor(root);
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act();
stage.draw();
}
@Override
public void resize (int width, int height) {
}
@Override
public void resume () {
}
@Override
public void pause () {
}
@Override
public void dispose () {
}
public void addFiles(String[] files) {
for(String file : files) {
root.add(new Label(file, skin)).left().row();
}
}
public static void main (String[] argv) throws NoSuchFieldException, SecurityException, ClassNotFoundException {
final DragNDropTest test = new DragNDropTest();
Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
config.setWindowedMode(640, 480);
config.setTitle("Drag files in this window");
config.setWindowListener(new Lwjgl3WindowAdapter() {
@Override
public void filesDropped (String[] files) {
for(String file : files) {
Gdx.app.log("GLWF Drop", file);
}
test.addFiles(files);
}
});
new Lwjgl3Application(test, config);
}
}