diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2024-07-16 00:35:35 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2024-07-16 00:35:35 +0200 |
| commit | 5845e43c503f306a653754303573af421207e90c (patch) | |
| tree | 1ef94c028e5ba304dde3ab0e0cc263c9378fb823 /domain/include | |
| parent | 4ca57dcae2291a09dcd84ccf056a65a2cf906c46 (diff) | |
| download | turns-5845e43c503f306a653754303573af421207e90c.tar.xz turns-5845e43c503f306a653754303573af421207e90c.zip | |
domain: add disposition type
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 |
