summaryrefslogtreecommitdiff
path: root/lib/src/turnsmm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/src/turnsmm')
-rw-r--r--lib/src/turnsmm/enums.cpp5
-rw-r--r--lib/src/turnsmm/enums.hpp7
-rw-r--r--lib/src/turnsmm/turn-order.cpp21
-rw-r--r--lib/src/turnsmm/turn-order.hpp6
4 files changed, 39 insertions, 0 deletions
diff --git a/lib/src/turnsmm/enums.cpp b/lib/src/turnsmm/enums.cpp
index 91d6eb3..475d6f8 100644
--- a/lib/src/turnsmm/enums.cpp
+++ b/lib/src/turnsmm/enums.cpp
@@ -4,6 +4,7 @@
#include "turns-enums.h" // IWYU pragma: keep
#include <glib-object.h>
+#include <turns-turn-order.h>
#include <type_traits>
@@ -22,6 +23,9 @@ namespace Turns
static_assert(matches<Disposition::Hostile, TURNS_DISPOSITION_HOSTILE>);
static_assert(matches<Disposition::Secret, TURNS_DISPOSITION_SECRET>);
+ static_assert(matches<SortMode::Descending, TURNS_TURN_ORDER_SORT_MODE_DESCENDING>);
+ static_assert(matches<SortMode::Ascending, TURNS_TURN_ORDER_SORT_MODE_ASCENDING>);
+
} // namespace Turns
namespace Glib
@@ -33,6 +37,7 @@ namespace Glib
}
VALUE_SPECIALIZATION(Disposition, disposition)
+ VALUE_SPECIALIZATION(SortMode, turn_order_sort_mode)
#undef VALUE_SPECIALIZATION
} // namespace Glib \ No newline at end of file
diff --git a/lib/src/turnsmm/enums.hpp b/lib/src/turnsmm/enums.hpp
index f99a6f1..b866b33 100644
--- a/lib/src/turnsmm/enums.hpp
+++ b/lib/src/turnsmm/enums.hpp
@@ -15,6 +15,12 @@ namespace Turns
Secret,
};
+ enum struct SortMode
+ {
+ Descending,
+ Ascending,
+ };
+
} // namespace Turns
namespace Glib
@@ -29,6 +35,7 @@ namespace Glib
}
VALUE_SPECIALIZATION(Disposition);
+ VALUE_SPECIALIZATION(SortMode);
#undef VALUE_SPECIALIZATION
diff --git a/lib/src/turnsmm/turn-order.cpp b/lib/src/turnsmm/turn-order.cpp
index c89bd92..1f795d2 100644
--- a/lib/src/turnsmm/turn-order.cpp
+++ b/lib/src/turnsmm/turn-order.cpp
@@ -1,6 +1,7 @@
#include "turnsmm/turn-order.hpp"
#include "turns-turn-order.h"
+#include "turnsmm/enums.hpp"
#include "turnsmm/participant.hpp"
#include "turnsmm/private/turn-order_p.hpp"
@@ -100,6 +101,26 @@ namespace Turns
return {this, "running"};
}
+ auto TurnOrder::get_sort_mode() const noexcept -> SortMode
+ {
+ return static_cast<SortMode>(turns_turn_order_get_sort_mode(unwrap(this)));
+ }
+
+ auto TurnOrder::set_sort_mode(SortMode value) noexcept -> void
+ {
+ turns_turn_order_set_sort_mode(unwrap(this), static_cast<TurnsTurnOrderSortMode>(value));
+ }
+
+ auto TurnOrder::property_sort_mode() noexcept -> Glib::PropertyProxy<SortMode>
+ {
+ return {this, "sort_mode"};
+ }
+
+ auto TurnOrder::property_sort_mode() const noexcept -> Glib::PropertyProxy_ReadOnly<SortMode>
+ {
+ return {this, "sort_mode"};
+ }
+
TurnOrder::TurnOrder(BaseObjectType * gobj)
: Glib::Object(G_OBJECT(gobj))
{
diff --git a/lib/src/turnsmm/turn-order.hpp b/lib/src/turnsmm/turn-order.hpp
index 9485275..c135ab2 100644
--- a/lib/src/turnsmm/turn-order.hpp
+++ b/lib/src/turnsmm/turn-order.hpp
@@ -2,6 +2,7 @@
#define TURNSMM_TURN_ORDER_HPP
#include "turns-turn-order.h"
+#include "turnsmm/enums.hpp"
#include "turnsmm/participant.hpp"
#include <glibmm/object.h>
@@ -40,8 +41,13 @@ namespace Turns
[[nodiscard]] auto get_participant_count() const noexcept -> std::size_t;
[[nodiscard]] auto get_running() const noexcept -> bool;
+ [[nodiscard]] auto get_sort_mode() const noexcept -> SortMode;
+
+ auto set_sort_mode(SortMode value) noexcept -> void;
[[nodiscard]] auto property_running() const noexcept -> Glib::PropertyProxy_ReadOnly<bool>;
+ [[nodiscard]] auto property_sort_mode() noexcept -> Glib::PropertyProxy<SortMode>;
+ [[nodiscard]] auto property_sort_mode() const noexcept -> Glib::PropertyProxy_ReadOnly<SortMode>;
protected:
friend TurnOrder_Class;