summaryrefslogtreecommitdiff
path: root/lib/src/turns-turn-order.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/src/turns-turn-order.cpp')
-rw-r--r--lib/src/turns-turn-order.cpp28
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);