1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#include "turns/core/disposition.hpp"
#include <glibmm/i18n.h>
#include <glibmm/ustring.h>
#include <glib-object.h>
#include <array>
#include <atomic>
namespace turns::core
{
auto presentation_name_for(Disposition value) -> Glib::ustring
{
switch (value)
{
case Disposition::neutral:
return _("Neutral");
case Disposition::friendly:
return _("Friendly");
case Disposition::hostile:
return _("Hostile");
case Disposition::secret:
return _("Secret");
default:
return _("Unknown disposition value");
}
}
} // namespace turns::core
namespace Glib
{
auto Value<turns::core::Disposition>::value_type() -> GType
{
auto static is_initialized = std::atomic_flag{false};
auto static const values = std::array{
GEnumValue{static_cast<int>(turns::core::Disposition::neutral), "TURNS_DISPOSITION_NEUTRAL", "neutral" },
GEnumValue{static_cast<int>(turns::core::Disposition::friendly), "TURNS_DISPOSITION_FRIENDLY", "friendly"},
GEnumValue{static_cast<int>(turns::core::Disposition::hostile), "TURNS_DISPOSITION_HOSTILE", "hostile" },
GEnumValue{static_cast<int>(turns::core::Disposition::secret), "TURNS_DISPOSITION_SECRET", "secret" },
GEnumValue{0, nullptr, nullptr },
};
if (!is_initialized.test_and_set())
{
gtype_ = g_enum_register_static("TurnsDisposition", values.data());
}
return gtype_;
}
} // namespace Glib
|