A small C library for opening a file dialog on Windows and Linux.
The library comes with CMakeLists.txt but you can just put sfd.c and sfd.h into an existing project and compiled along with it
#define SFD_BACKEND_WIN32 // Only For Windows (Make Sure To Link With 'comdlg32') #define SFD_BACKEND_ZENITY // Zenity Backend (Requires zenity) #define SFD_BACKEND_KDIALOG // KDialog Backend (Requires kdialog)sfd_Options opt = { .title = "Open Image File", .filter_name = "Image File", .filter = "*.png|*.jpg", .save = 0 }; const char* filename = sfd_open_dialog(&opt); if (filename) { printf("Got file: '%s'\n", filename); } else { const char* LastError = sfd_get_error(); if (LastError != NULL) { printf("Error: %s\n", LastError); } else { printf("Open canceled\n"); } }All fields of the sfd_Options struct are optional except for .save.
| Field | Description |
|---|---|
.title | Title for the file dialog window |
.path | Default directory |
.filter_name | Name used to describe the file filter |
.filter | File filters separated by | |
.save | Type of the dialog, 0 = Open & 1 = Save |
If the file dialog is canceled or an error occurs NULL is returned. sfd_get_error() will return an error string in the case of an error.
This library is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details.