diff options
Diffstat (limited to 'lib/src/turnsmm')
| -rw-r--r-- | lib/src/turnsmm/enums.cpp | 5 | ||||
| -rw-r--r-- | lib/src/turnsmm/enums.hpp | 7 | ||||
| -rw-r--r-- | lib/src/turnsmm/turn-order.cpp | 21 | ||||
| -rw-r--r-- | lib/src/turnsmm/turn-order.hpp | 6 |
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; |
