HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
dialog.hpp
1// Copyright Take Vos 2020-2021.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include <string_view>
8#include <iostream>
9#include <format>
10
11namespace tt {
12
13enum class dialog_type {
14 ok,
15 yes_no,
16 yes_no_cancel
17};
18
26bool _dialog(dialog_type type, char const *title, std::string_view text);
27
28template<typename... Args>
29void dialog_ok(char const *title, char const *fmt, Args const &...args) noexcept
30{
31 _dialog(dialog_type::ok, title, std::format(fmt, args...));
32}
33
34template<typename... Args>
35[[nodiscard]] bool dialog_yes_no(char const *title, char const *fmt, Args const &...args) noexcept
36{
37 return _dialog(dialog_type::yes_no, title, std::format(fmt, args...));
38}
39
40template<typename... Args>
41[[nodiscard]] bool dialog_yes_no_cancel(char const *title, char const *fmt, Args const &...args)
42{
43 return _dialog(dialog_type::yes_no_cancel, title, std::format(fmt, args...));
44}
45
46} // namespace tt