From 442d2d75d71bbc057e667edc301a79fa1cc813be Mon Sep 17 00:00:00 2001 From: rtk0c Date: Sat, 27 Mar 2021 23:01:07 -0700 Subject: Initial setup --- core/src/Utils/Dialog/Dialog.hpp | 52 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 core/src/Utils/Dialog/Dialog.hpp (limited to 'core/src/Utils/Dialog/Dialog.hpp') diff --git a/core/src/Utils/Dialog/Dialog.hpp b/core/src/Utils/Dialog/Dialog.hpp new file mode 100644 index 0000000..e8989e3 --- /dev/null +++ b/core/src/Utils/Dialog/Dialog.hpp @@ -0,0 +1,52 @@ +// Adapted from https://github.com/aaronmjacobs/Boxer/blob/master/include/boxer/boxer.h +#pragma once + +namespace Dialog { + +/// Options for styles to apply to a message box. +enum class Style { + Info, + Warning, + Error, + Question, +}; + +/// Options for buttons to provide on a message box. +enum class Buttons { + OK, + OKCancel, + YesNo, + Quit, +}; + +/// Possible responses from a message box. 'None' signifies that no option was chosen, and 'Error' signifies that an +/// error was encountered while creating the message box. +enum class Selection { + OK, + Cancel, + Yes, + No, + Quit, + None, + Error, +}; + +/// The default style to apply to a message box. +constexpr Style kDefaultStyle = Style::Info; + +/// The default buttons to provide on a message box. +constexpr Buttons kDefaultButtons = Buttons::OK; + +/// Blocking call to create a modal message box with the given message, title, style, and buttons. +Selection Show(const char* message, const char* title, Style style, Buttons buttons); + +/// Convenience function to call show() with the default buttons. +Selection Show(const char* message, const char* title, Style style); + +/// Convenience function to call show() with the default style. +Selection Show(const char* message, const char* title, Buttons buttons); + +/// Convenience function to call show() with the default style and buttons. +Selection Show(const char* message, const char* title); + +} // namespace Dialog -- cgit v1.2.3-70-g09d2