sdlShowFileDialogWithProperties function

void sdlShowFileDialogWithProperties(
  1. int type,
  2. Pointer<NativeFunction<SdlDialogFileCallback>> callback,
  3. Pointer<NativeType> userdata,
  4. int props,
)

Create and launch a file dialog with the specified properties.

These are the supported properties:

  • SDL_PROP_FILE_DIALOG_FILTERS_POINTER: a pointer to a list of SDL_DialogFileFilter structs, which will be used as filters for file-based selections. Ignored if the dialog is an "Open Folder" dialog. If non-NULL, the array of filters must remain valid at least until the callback is invoked.
  • SDL_PROP_FILE_DIALOG_NFILTERS_NUMBER: the number of filters in the array of filters, if it exists.
  • SDL_PROP_FILE_DIALOG_WINDOW_POINTER: the window that the dialog should be modal for.
  • SDL_PROP_FILE_DIALOG_LOCATION_STRING: the default folder or file to start the dialog at.
  • SDL_PROP_FILE_DIALOG_MANY_BOOLEAN: true to allow the user to select more than one entry.
  • SDL_PROP_FILE_DIALOG_TITLE_STRING: the title for the dialog.
  • SDL_PROP_FILE_DIALOG_ACCEPT_STRING: the label that the accept button should have.
  • SDL_PROP_FILE_DIALOG_CANCEL_STRING: the label that the cancel button should have.

Note that each platform may or may not support any of the properties.

\param type the type of file dialog. \param callback a function pointer to be invoked when the user selects a file and accepts, or cancels the dialog, or an error occurs. \param userdata an optional pointer to pass extra data to the callback when it will be invoked. \param props the properties to use.

\threadsafety This function should be called only from the main thread. The callback may be invoked from the same thread or from a different one, depending on the OS's constraints.

\since This function is available since SDL 3.2.0.

\sa SDL_FileDialogType \sa SDL_DialogFileCallback \sa SDL_DialogFileFilter \sa SDL_ShowOpenFileDialog \sa SDL_ShowSaveFileDialog \sa SDL_ShowOpenFolderDialog

extern SDL_DECLSPEC void SDLCALL SDL_ShowFileDialogWithProperties(SDL_FileDialogType type, SDL_DialogFileCallback callback, void *userdata, SDL_PropertiesID props)

Implementation

void sdlShowFileDialogWithProperties(
    int type,
    Pointer<NativeFunction<SdlDialogFileCallback>> callback,
    Pointer<NativeType> userdata,
    int props) {
  final sdlShowFileDialogWithPropertiesLookupFunction = libSdl3.lookupFunction<
      Void Function(
          Int32 type,
          Pointer<NativeFunction<SdlDialogFileCallback>> callback,
          Pointer<NativeType> userdata,
          Uint32 props),
      void Function(
          int type,
          Pointer<NativeFunction<SdlDialogFileCallback>> callback,
          Pointer<NativeType> userdata,
          int props)>('SDL_ShowFileDialogWithProperties');
  return sdlShowFileDialogWithPropertiesLookupFunction(
      type, callback, userdata, props);
}