From a194e05bac352833d267fdfc68ceb1f5b96d636d Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 30 Jan 2025 14:14:29 +0000 Subject: [PATCH] Add sdl3_dialog.odin --- vendor/sdl3/sdl3_dialog.odin | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 vendor/sdl3/sdl3_dialog.odin diff --git a/vendor/sdl3/sdl3_dialog.odin b/vendor/sdl3/sdl3_dialog.odin new file mode 100644 index 000000000..def649673 --- /dev/null +++ b/vendor/sdl3/sdl3_dialog.odin @@ -0,0 +1,33 @@ +package sdl3 + +import "core:c" + +DialogFileFilter :: struct { + name: cstring, + pattern: cstring, +} + +FileDialogType :: enum c.int { + OPENFILE, + SAVEFILE, + OPENFOLDER, +} + +DialogFileCallback :: #type proc "c" (userdata: rawptr, filelist: [^]cstring, filter: c.int) + +@(default_calling_convention="c", link_prefix="SDL_") +foreign lib { + ShowOpenFileDialog :: proc(callback: DialogFileCallback, userdata: rawptr, window: ^Window, filters: [^]DialogFileFilter, nfilters: c.int, default_location: cstring, allow_many: bool) --- + ShowSaveFileDialog :: proc(callback: DialogFileCallback, userdata: rawptr, window: ^Window, filters: [^]DialogFileFilter, nfilters: c.int, default_location: cstring) --- + ShowOpenFolderDialog :: proc(callback: DialogFileCallback, userdata: rawptr, window: ^Window, default_location: cstring, allow_many: bool) --- + ShowFileDialogWithProperties :: proc(type: FileDialogType, callback: DialogFileCallback, userdata: rawptr, props: PropertiesID) --- +} + +PROP_FILE_DIALOG_FILTERS_POINTER :: "SDL.filedialog.filters" +PROP_FILE_DIALOG_NFILTERS_NUMBER :: "SDL.filedialog.nfilters" +PROP_FILE_DIALOG_WINDOW_POINTER :: "SDL.filedialog.window" +PROP_FILE_DIALOG_LOCATION_STRING :: "SDL.filedialog.location" +PROP_FILE_DIALOG_MANY_BOOLEAN :: "SDL.filedialog.many" +PROP_FILE_DIALOG_TITLE_STRING :: "SDL.filedialog.title" +PROP_FILE_DIALOG_ACCEPT_STRING :: "SDL.filedialog.accept" +PROP_FILE_DIALOG_CANCEL_STRING :: "SDL.filedialog.cancel"