diff options
Diffstat (limited to 'lib/src/turnsmm/participant.cpp')
| -rw-r--r-- | lib/src/turnsmm/participant.cpp | 66 |
1 files changed, 58 insertions, 8 deletions
diff --git a/lib/src/turnsmm/participant.cpp b/lib/src/turnsmm/participant.cpp index 0086ada..5cc3db6 100644 --- a/lib/src/turnsmm/participant.cpp +++ b/lib/src/turnsmm/participant.cpp @@ -2,12 +2,14 @@ #include "turns-disposition.h" #include "turns-participant.h" +#include "turnsmm/enums.hpp" #include "turnsmm/private/participant_p.hpp" #include <glibmm/class.h> #include <glibmm/object.h> #include <glibmm/objectbase.h> #include <glibmm/private/object_p.h> +#include <glibmm/propertyproxy.h> #include <glibmm/refptr.h> #include <glibmm/ustring.h> #include <glibmm/utility.h> @@ -23,8 +25,6 @@ namespace Turns namespace { auto constinit _class = Participant_Class{}; - - auto constexpr type_name = "TurnsParticipant"; } // namespace auto Participant_Class::init() -> Glib::Class const & @@ -49,13 +49,13 @@ namespace Turns } Participant::Participant() - : Glib::ObjectBase{type_name} + : Glib::ObjectBase{nullptr} , Glib::Object{Glib::ConstructParams{_class.init()}} { } - Participant::Participant(Glib::ustring const & name, float priority, int disposition) - : Glib::ObjectBase{type_name} + Participant::Participant(Glib::ustring const & name, float priority, Disposition disposition) + : Glib::ObjectBase{nullptr} , Glib::Object{Glib::ConstructParams{_class.init(), "name", name.c_str(), "priority", priority, "disposition", disposition, nullptr}} { } @@ -86,9 +86,9 @@ namespace Turns return turns_participant_get_defeated(const_cast<BaseObjectType *>(unwrap(this))); } - auto Participant::get_disposition() const noexcept -> int + auto Participant::get_disposition() const noexcept -> Disposition { - return turns_participant_get_disposition(const_cast<BaseObjectType *>(unwrap(this))); + return static_cast<Disposition>(turns_participant_get_disposition(const_cast<BaseObjectType *>(unwrap(this)))); } auto Participant::get_name() const -> Glib::ustring @@ -111,7 +111,7 @@ namespace Turns return turns_participant_set_defeated(unwrap(this), value); } - auto Participant::set_disposition(int value) noexcept -> void + auto Participant::set_disposition(Disposition value) noexcept -> void { return turns_participant_set_disposition(unwrap(this), static_cast<TurnsDisposition>(value)); } @@ -126,6 +126,56 @@ namespace Turns return turns_participant_set_priority(unwrap(this), value); } + auto Participant::property_active() const noexcept -> Glib::PropertyProxy_ReadOnly<bool> + { + return {this, "active"}; + } + + auto Participant::property_active() noexcept -> Glib::PropertyProxy<bool> + { + return {this, "active"}; + } + + auto Participant::property_defeated() const noexcept -> Glib::PropertyProxy_ReadOnly<bool> + { + return {this, "defeated"}; + } + + auto Participant::property_defeated() noexcept -> Glib::PropertyProxy<bool> + { + return {this, "defeated"}; + } + + auto Participant::property_disposition() const noexcept -> Glib::PropertyProxy_ReadOnly<Disposition> + { + return {this, "disposition"}; + } + + auto Participant::property_disposition() noexcept -> Glib::PropertyProxy<Disposition> + { + return {this, "disposition"}; + } + + auto Participant::property_name() const noexcept -> Glib::PropertyProxy_ReadOnly<Glib::ustring const &> + { + return {this, "name"}; + } + + auto Participant::property_name() noexcept -> Glib::PropertyProxy<Glib::ustring const &> + { + return {this, "name"}; + } + + auto Participant::property_priority() const noexcept -> Glib::PropertyProxy_ReadOnly<float> + { + return {this, "priority"}; + } + + auto Participant::property_priority() noexcept -> Glib::PropertyProxy<float> + { + return {this, "priority"}; + } + Participant::Participant(BaseObjectType * gobj) : Glib::Object((GObject *)gobj) { |
