diff options
author | rtk0c <[email protected]> | 2021-03-27 23:01:07 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2021-03-27 23:01:07 -0700 |
commit | 442d2d75d71bbc057e667edc301a79fa1cc813be (patch) | |
tree | b5d1e5068a4d481bc6bcd72dca851ac7a85bf7e4 /core/src/Utils/Dialog/Dialog.hpp |
Initial setup
Diffstat (limited to 'core/src/Utils/Dialog/Dialog.hpp')
-rw-r--r-- | core/src/Utils/Dialog/Dialog.hpp | 52 |
1 files changed, 52 insertions, 0 deletions
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
|