Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aaronmjacobs/Boxer
Boxer is a simple library that allows for easy cross-platform creation of message boxes / alerts / what have you.
https://github.com/aaronmjacobs/Boxer
Last synced: 28 days ago
JSON representation
Boxer is a simple library that allows for easy cross-platform creation of message boxes / alerts / what have you.
- Host: GitHub
- URL: https://github.com/aaronmjacobs/Boxer
- Owner: aaronmjacobs
- License: mit
- Created: 2014-12-17T01:00:36.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2023-09-25T06:49:12.000Z (about 1 year ago)
- Last Synced: 2024-08-04T02:09:52.225Z (4 months ago)
- Language: C++
- Homepage:
- Size: 44.9 KB
- Stars: 151
- Watchers: 5
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- AwesomeCppGameDev - Boxer - platform creation of message boxes / alerts / what have you. (C++)
README
# Boxer 🥊
## Introduction
Boxer is a simple library that allows for easy cross-platform creation of message boxes / alerts / what have you.
## Example
macOS:
![macOS](https://user-images.githubusercontent.com/1409522/213894782-72c37b24-bdb3-4b29-a847-cbff7748b1fe.png)
Windows:
![Windows](https://user-images.githubusercontent.com/1409522/213894790-55cf2be8-bcc0-4867-95e0-7741993f07eb.png)
Linux:
![Linux](https://user-images.githubusercontent.com/1409522/213894798-1bb1c279-5190-4108-b49c-08a28c7dfc29.png)
## Language
Boxer is written in C++, though it has a C branch available as well.
## Compiling Boxer
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.
## Including Boxer
Wherever you want to use Boxer, just include the header:
```c++
#include
```## Linking Against Boxer
### Static
If Boxer was built statically, just link against the generated static library.
### CMake
To compile Boxer along with another application using CMake, first add the Boxer subdirectory:
```cmake
add_subdirectory("path/to/Boxer")
```Then link against the Boxer library:
```cmake
target_link_libraries( Boxer)
```## Using Boxer
To create a message box using Boxer, call the 'show' method in the 'boxer' namespace and provide a message and title:
```c++
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:
```c++
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.
### Encoding
Boxer accepts strings encoded in UTF-8:
```c++
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:
```cmake
if (WIN32)
target_compile_definitions(Boxer PRIVATE UNICODE)
endif (WIN32)
```