diff options
Diffstat (limited to 'lib/src/turns-turn-order.cpp')
| -rw-r--r-- | lib/src/turns-turn-order.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/lib/src/turns-turn-order.cpp b/lib/src/turns-turn-order.cpp index 538ff11..287e19c 100644 --- a/lib/src/turns-turn-order.cpp +++ b/lib/src/turns-turn-order.cpp @@ -5,6 +5,7 @@ #include <array> #include <cstddef> +#include <limits> G_BEGIN_DECLS @@ -12,6 +13,7 @@ struct _TurnsTurnOrder { GObject parent_instance; + gsize participant_count; gboolean running; }; @@ -23,7 +25,8 @@ namespace { enum struct property { - Running = 1, + ParticipantCount = 1, + Running, N_PROPERTIES, }; @@ -35,6 +38,8 @@ namespace switch (static_cast<property>(id)) { + case property::ParticipantCount: + return g_value_set_uint64(value, turns_turn_order_get_participant_count(instance)); case property::Running: return g_value_set_boolean(value, turns_turn_order_get_running(instance)); default: @@ -52,18 +57,29 @@ static void turns_turn_order_class_init(TurnsTurnOrderClass * klass) object_class->get_property = get_property; + properties[static_cast<std::size_t>(property::ParticipantCount)] = + g_param_spec_uint64("participant-count", + "Participant Count", + "The number of participants in this turn order.", + 0, + std::numeric_limits<gsize>::max(), + 0, + static_cast<GParamFlags>(G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY)); + properties[static_cast<std::size_t>(property::Running)] = g_param_spec_boolean("running", "Running", "Whether or not the turn order is running (e.g. has been started)", false, - static_cast<GParamFlags>(G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY)); + static_cast<GParamFlags>(G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY)); g_object_class_install_properties(object_class, properties.size(), properties.data()); } -static void turns_turn_order_init(TurnsTurnOrder *) +static void turns_turn_order_init(TurnsTurnOrder * self) { + self->participant_count = 0; + self->running = false; } TurnsTurnOrder * turns_turn_order_new() @@ -71,6 +87,12 @@ TurnsTurnOrder * turns_turn_order_new() return TURNS_TURN_ORDER(g_object_new(TURNS_TYPE_TURN_ORDER, nullptr)); } +gsize turns_turn_order_get_participant_count(TurnsTurnOrder const * self) +{ + g_return_val_if_fail(TURNS_IS_TURN_ORDER(const_cast<TurnsTurnOrder *>(self)), 0); + return self->participant_count; +} + gboolean turns_turn_order_get_running(TurnsTurnOrder const * self) { g_return_val_if_fail(TURNS_IS_TURN_ORDER(const_cast<TurnsTurnOrder *>(self)), false); |
