portable-file-dialogs icon indicating copy to clipboard operation
portable-file-dialogs copied to clipboard

💬 Portable GUI dialogs library, C++11, single-header

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)

Codacy Badge

Status

The library is now pretty robust. It is not as feature-complete as Tiny File Dialogs, 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 or its clones Matedialog and Qarma)
  • KDE desktop (using KDialog)

Experimental support for Emscripten is on its way.

Documentation

  • pfd general documentation
  • pfd::message message box
  • pfd::notify notification
  • pfd::open_file file open
  • pfd::save_file file save
  • pfd::select_folder folder selection

History

  • 0.1.0 (July 16, 2020): first public release

Screenshots (Windows 10)

warning-win32 notify-win32 open-win32

Screenshots (Mac OS X, dark theme)

warning-osxdark notify-osxdark open-osxdark

Screenshots (Linux, GNOME desktop)

warning-gnome notify-gnome open-gnome

Screenshots (Linux, KDE Plasma desktop)

warning-kde notify-kde open-kde