From 5845e43c503f306a653754303573af421207e90c Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 16 Jul 2024 00:35:35 +0200 Subject: domain: add disposition type --- domain/src/disposition.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 domain/src/disposition.cpp (limited to 'domain/src') diff --git a/domain/src/disposition.cpp b/domain/src/disposition.cpp new file mode 100644 index 0000000..887d70f --- /dev/null +++ b/domain/src/disposition.cpp @@ -0,0 +1,64 @@ +#include "turns/domain/disposition.hpp" + +#include + +#include +#include + +namespace turns::domain +{ + + auto disposition::create(values value) -> Glib::RefPtr + { + return Glib::make_refptr_for_instance(new disposition(value)); + } + + disposition::disposition(values value) + : Glib::ObjectBase{typeid(disposition)} + , m_value{*this, "value", value} + { + } + + auto disposition::operator<=>(disposition const & other) const -> std::strong_ordering + { + return get_value() <=> other.get_value(); + } + + auto disposition::property_value() -> Glib::PropertyProxy + { + return m_value.get_proxy(); + } + + auto disposition::property_value() const -> Glib::PropertyProxy_ReadOnly + { + return m_value.get_proxy(); + } + + auto disposition::get_value() const -> values + { + return m_value; + } + + auto disposition::set_value(values value) -> void + { + m_value = value; + } + + auto disposition::get_presentation_name() const -> Glib::ustring + { + switch (get_value()) + { + case values::neutral: + return _("Neutral"); + case values::friendly: + return _("Friendly"); + case values::hostile: + return _("Hostile"); + case values::secret: + return _("Secret"); + } + + return _("Unknown disposition value"); + } + +} // namespace turns::domain \ No newline at end of file -- cgit v1.2.3