Boxer is a simple library that allows for easy cross-platform creation of message boxes / alerts / what have you.
macOS:
Windows:
Linux:
Boxer is written in C++, though it has a C branch available as well.
Boxer is set up to be built with CMake.
To generate a static library, execute CMake with the root of the repo as the source directory. Additionally, the example program can be built by enabling the BOXER_BUILD_EXAMPLES option.
On Linux, Boxer requires the gtk+-3.0 package.
Wherever you want to use Boxer, just include the header:
#include <boxer/boxer.h>
If Boxer was built statically, just link against the generated static library.
To compile Boxer along with another application using CMake, first add the Boxer subdirectory:
add_subdirectory("path/to/Boxer")
Then link against the Boxer library:
target_link_libraries(<target> <INTERFACE|PUBLIC|PRIVATE> Boxer)
To create a message box using Boxer, call the 'show' method in the 'boxer' namespace and provide a message and title:
boxer::show("Simple message boxes are very easy to create.", "Simple Example");
A style / set of buttons may also be specified, and the user's selection can be determined from the function's return value:
boxer::Selection sel = boxer::show("Make a choice:", "Decision", boxer::Style::Warning, boxer::Buttons::YesNo);
Calls to 'show' are blocking - execution of your program will not continue until the user dismisses the message box.
Boxer accepts strings encoded in UTF-8:
boxer::show(u8"Boxer accepts UTF-8 strings. 💯", u8"Unicode 👍");
On Windows, UNICODE
needs to be defined when compiling Boxer to enable UTF-8 support:
if (WIN32)
target_compile_definitions(Boxer PRIVATE UNICODE)
endif (WIN32)