void SDL_ShowOpenFolderDialog(SDL_DialogFileCallback callback, void *userdata, SDL_Window *window, const char *default_location, bool allow_many);
| SDL_DialogFileCallback | callback | ユーザがファイルを選択して決定した, またはダイアログをキャンセルした, またはエラーが発生したとき呼ばれる関数へのポインタ |
| void * | userdata | コールバック関数が呼ばれたとき渡せるポインタ |
| SDL_Window * | window | このウィンドウに対してモーダルにする. NULLも可. 全ての環境が対応しているとは限らない |
| const char * | default_location | ダイアログが開いたときのデフォルトのフォルダまたはファイル. NULLも可. 全ての環境がこのオプションに対応しているとは限らない |
| bool | allow_many | 真のときユーザは複数の項目を選択できる. 全ての環境がこのオプションに対応しているとは限らない |
これは非同期の関数である. この関数からはすぐに戻り, 結果はコールバックに渡される.
コールバックはユーザが選択したNUL終端のファイルの一覧と共に呼ばれる. 一覧は, ユーザがダイアログをキャンセルした場合は空になり, エラーが発生した場合はNULLになる.
コールバックは設定したスレッドとは別のスレッドから呼ばれる場合もあるので注意すること.
環境によってはユーザは存在しないパスを選択できる.
Linuxでは, ダイアログはイベントループ処理のためにDBusが必要なXDGポータルを必要とする. SDLイベントハンドルを使用しないアプリケーションはメインループでSDL_PumpEventsを呼ぶ必要がある.
この関数を呼べるのはメインスレッドのみである. コールバックはOSの制約により同じスレッドと別のスレッドの両方から呼ばれることがある.