gdx-nativefilechooser

Choose files with libgdx. Natively.

License

License

Categories

Categories

Native Development Tools
GroupId

GroupId

games.spooky.gdx
ArtifactId

ArtifactId

gdx-nativefilechooser-desktop
Last Version

Last Version

2.0.0
Release Date

Release Date

Type

Type

pom.sha512
Description

Description

gdx-nativefilechooser
Choose files with libgdx. Natively.
Project URL

Project URL

https://github.com/spookygames/gdx-nativefilechooser
Project Organization

Project Organization

Spooky Games
Source Code Management

Source Code Management

https://github.com/spookygames/gdx-nativefilechooser

Download gdx-nativefilechooser-desktop

Dependencies

compile (3)

Group / Artifact Type Version
games.spooky.gdx : gdx-nativefilechooser jar 2.0.0
com.badlogicgames.gdx : gdx-backend-lwjgl jar 1.5.5
com.badlogicgames.gdx : gdx-platform jar 1.5.5

Project Modules

There are no modules declared in this project.

gdx-nativefilechooser

Choose files with LibGDX. Just like in the title. Natively. Also, asynchronously.

This library allows you to asynchronously browse files with the native file chooser available on the platform.

Stuff is asynchronous.

Setup

Add the pretty bold parts into your build.gradle file:

    project(":desktop") {
        
        ...
        
        dependencies {
            compile project(":core")
            ...
            compile "games.spooky.gdx:gdx-nativefilechooser-desktop:1.0.0"
        }
    }
    
    project(":android") {
        
        ...
        
        dependencies {
            compile project(":core")
            ...
            compile "games.spooky.gdx:gdx-nativefilechooser-android:1.0.0"
        }
    }
    
    project(":core") {
        
        ...
        
        dependencies {
            ...
            compile "games.spooky.gdx:gdx-nativefilechooser:1.0.0"
        }
    }

Usage

Add a NativeFileChooser

A more detailed version of this can be found in libGDX documentation.

It is assumed here that your project follows the basic structure of a libGDX project. You should then have a core project and as many platform-specific projects as intended.

Core

In the central class of your core project, the one that implements ApplicationListener, add a property of type NativeFileChooser like so:

public class MyAwesomeGame implements ApplicationListener {
    NativeFileChooser fileChooser;
    public MyAwesomeGame(NativeFileChooser fileChooser) {
        super();
        this.fileChooser = fileChooser;
    }
    ...
}

Platform-specific

In the launcher class of your platform-specific project, pass the implementation of NativeFileChooser for this platform to the core class constructor.

On Android, it gives:

public class MyAwesomeGameAndroid extends AndroidApplication {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        initialize(new MyAwesomeGame(new AndroidFileChooser(this)), new AndroidApplicationConfiguration());
    }
}

Use it

  • Create a (mandatory) NativeFileChooserConfiguration object, stuff it with configuration details if you like.
  • Create a (also mandatory) NativeFileChooserCallback object ready to react to anything that may happen.
  • Call the chooseFile method from your NativeFileChooser, giving the two objects above as arguments.
  • Live a fulfilling life.

Example - go get me some oggs

// Configure
NativeFileChooserConfiguration conf = new NativeFileChooserConfiguration();

// Starting from user's dir
conf.directory = Gdx.files.absolute(System.getProperty("user.home"));

// Filter out all files which do not have the .ogg extension and are not of an audio MIME type - belt and braces
conf.mimeFilter = "audio/*";
conf.nameFilter = new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith("ogg");
    }
};

// Add a nice title
conf.title = "Choose audio file";

fileChooser.chooseFile(conf, new NativeFileChooserCallback() {
    @Override
    public void onFileChosen(FileHandle file) {
        // Do stuff with file, yay!
    }
    
    @Override
    public void onCancellation() {
        // Warn user how rude it can be to cancel developer's effort
    }
    
    @Override
    public void onError(Exception exception) {
        // Handle error (hint: use exception type)
    }
});

Platform support

  • Desktop (awt)
  • Android
  • iOS
  • HTML

Moar 2 com plz?

Nope.

games.spooky.gdx

Spooky Games

Versions

Version
2.0.0
1.0.0
0.0.1