https://github.com/samhocevar/portable-file-dialogs
💬 Portable GUI dialogs library, C++11, single-header
https://github.com/samhocevar/portable-file-dialogs
Last synced: 7 days ago
JSON representation
💬 Portable GUI dialogs library, C++11, single-header
- Host: GitHub
- URL: https://github.com/samhocevar/portable-file-dialogs
- Owner: samhocevar
- License: wtfpl
- Created: 2018-10-12T11:04:17.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-03-21T13:56:06.000Z (25 days ago)
- Last Synced: 2025-04-01T14:17:17.014Z (14 days ago)
- Language: C++
- Homepage:
- Size: 166 KB
- Stars: 1,071
- Watchers: 25
- Forks: 102
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
- awesome-game-engine-dev - Portable File Dialogs - Single-header C++11 native dialogs on Windows, macOS, and Linux. (Libraries / C++)
- awesome-audio-plugin-framework - Portable File Dialogs
- AwesomeCppGameDev - portable-file-dialogs - header (C++)
README
# Portable File Dialogs
A free C++11 file dialog library.
- works on Windows, Mac OS X, Linux
- **single-header**, no extra library dependencies
- **synchronous *or* asynchronous** (does not block the rest of your program!)
- **cancelable** (kill asynchronous dialogues without user interaction)
- **secure** (immune to shell-quote vulnerabilities)[](https://www.codacy.com/manual/samhocevar/portable-file-dialogs?utm_source=github.com&utm_medium=referral&utm_content=samhocevar/portable-file-dialogs&utm_campaign=Badge_Grade)
## Status
The library is now pretty robust. It is not as feature-complete as
[Tiny File Dialogs](https://sourceforge.net/projects/tinyfiledialogs/),
but has asynchonous dialogs, more maintainable code, and fewer potential
security issues.The currently available backends are:
- Win32 API (all known versions of Windows)
- Mac OS X (using AppleScript)
- GNOME desktop (using [Zenity](https://en.wikipedia.org/wiki/Zenity) or its clones Matedialog and Qarma)
- KDE desktop (using [KDialog](https://github.com/KDE/kdialog))Experimental support for Emscripten is on its way.
## Documentation
- [`pfd`](doc/pfd.md) general documentation
- [`pfd::message`](doc/message.md) message box
- [`pfd::notify`](doc/notify.md) notification
- [`pfd::open_file`](doc/open_file.md) file open
- [`pfd::save_file`](doc/save_file.md) file save
- [`pfd::select_folder`](doc/select_folder.md) folder selection## History
- 0.1.0 (July 16, 2020): first public release
## Screenshots (Windows 10)


## Screenshots (Mac OS X, dark theme)


## Screenshots (Linux, GNOME desktop)


## Screenshots (Linux, KDE Plasma desktop)


