diff options
Diffstat (limited to 'domain/include')
| -rw-r--r-- | domain/include/turns/domain/disposition.hpp | 44 |
1 files changed, 44 insertions, 0 deletions
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 <compare> +#include <cstdint> + +#include <glibmm/object.h> +#include <glibmm/property.h> +#include <glibmm/refptr.h> +#include <glibmm/ustring.h> + +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>; + + disposition(values value); + + auto operator<=>(disposition const & other) const -> std::strong_ordering; + + auto property_value() -> Glib::PropertyProxy<values>; + auto property_value() const -> Glib::PropertyProxy_ReadOnly<values>; + auto get_value() const -> values; + auto set_value(values value) -> void; + + auto get_presentation_name() const -> Glib::ustring; + + private: + Glib::Property<values> m_value; + }; + +} // namespace turns::domain + +#endif
\ No newline at end of file |
