65 lines
3.1 KiB
Markdown
65 lines
3.1 KiB
Markdown
![]() |
# 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)
|
||
|
|
||
|

|
||
|

|
||
|

|