Noah Petherbridge
640e75ba4d
* You can now browse for a custom wallpaper image to use with your levels. A platform-native file picker dialog is used (no WASM support) * In the New/Edit Level Properties dialog, the Wallpaper drop-down includes an option to browse for a custom map. * When editing an existing level: the wallpaper takes effect immediately in your level once the file is picked. For NEW levels, the wallpaper will appear once the "Continue" button is pressed. * All common image types supported: png, jpeg, gif. * The wallpaper is embedded in the level using the filepath "assets/wallpapers/custom.b64img" as a Base64-encoded blob of the image data. * The `doodad show` command will list the names and sizes of files embedded in levels. `doodad show --attachment <name>` will get an attachment and print it to the console window. * To extract a wallpaper image from a level: `doodad show -a assets/wallpapers/custom.b64img | base64 -d > out.png`
31 lines
602 B
Go
31 lines
602 B
Go
// +build !js
|
|
|
|
package native
|
|
|
|
import (
|
|
"github.com/gen2brain/dlgs"
|
|
"errors"
|
|
)
|
|
|
|
func init() {
|
|
FileDialogsReady = true
|
|
}
|
|
|
|
// OpenFile invokes a native File Chooser dialog with the title
|
|
// and a set of file filters. The filters are a sequence of label
|
|
// and comma-separated file extensions.
|
|
//
|
|
// Example:
|
|
// OpenFile("Pick a file", "Images", "png,gif,jpg", "Audio", "mp3")
|
|
func OpenFile(title string, filter string) (string, error) {
|
|
filename, ok, err := dlgs.File(title, filter, false)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
if ok {
|
|
return filename, nil
|
|
}
|
|
return "", errors.New("canceled")
|
|
}
|