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/include/turns/domain/disposition.hpp | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 domain/include/turns/domain/disposition.hpp (limited to 'domain/include/turns') diff --git a/domain/include/turns/domain/disposition.hpp b/domain/include/turns/domain/disposition.hpp new file mode 100644 index 0000000..32f3aca --- /dev/null +++ b/domain/include/turns/domain/disposition.hpp @@ -0,0 +1,44 @@ +#ifndef TURNS_DOMAIN_PARTICIPANT_HPP +#define TURNS_DOMAIN_PARTICIPANT_HPP + +#include +#include + +#include +#include +#include +#include + +namespace turns::domain +{ + + struct disposition : Glib::Object + { + enum struct values : std::uint8_t + { + neutral, + friendly, + hostile, + secret, + }; + + auto static create(values value) -> Glib::RefPtr; + + disposition(values value); + + auto operator<=>(disposition const & other) const -> std::strong_ordering; + + auto property_value() -> Glib::PropertyProxy; + auto property_value() const -> Glib::PropertyProxy_ReadOnly; + auto get_value() const -> values; + auto set_value(values value) -> void; + + auto get_presentation_name() const -> Glib::ustring; + + private: + Glib::Property m_value; + }; + +} // namespace turns::domain + +#endif \ No newline at end of file -- cgit v1.2.3