summaryrefslogtreecommitdiff
path: root/gui/include
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-06-08 22:03:14 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-06-08 22:03:14 +0200
commit4466f721192844fe542d02aced2c8b3860e1433c (patch)
treec5e8d219b71b25d0b6a7b60b4f5a798792926b68 /gui/include
parenta9605c42349394bba021ed9f02ac512eee8c95ae (diff)
downloadturns-4466f721192844fe542d02aced2c8b3860e1433c.tar.xz
turns-4466f721192844fe542d02aced2c8b3860e1433c.zip
gui: make TurnOrderView default constructible
Diffstat (limited to 'gui/include')
-rw-r--r--gui/include/turn_order_view.hpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/gui/include/turn_order_view.hpp b/gui/include/turn_order_view.hpp
index eaa8501..603c6c5 100644
--- a/gui/include/turn_order_view.hpp
+++ b/gui/include/turn_order_view.hpp
@@ -11,6 +11,8 @@
#include <turnsmm/turn-order.hpp>
#include <glibmm/object.h>
+#include <glibmm/property.h>
+#include <glibmm/propertyproxy.h>
#include <glibmm/refptr.h>
#include <gtkmm/box.h>
#include <gtkmm/listbox.h>
@@ -23,21 +25,27 @@ namespace Turns::gui
{
struct TurnOrderView : template_widget<TurnOrderView, Gtk::Box>
{
- using model_type = TurnOrder;
-
auto constexpr inline static children = std::array{
"progress",
"view",
};
- explicit TurnOrderView(Glib::RefPtr<model_type> model = {});
+ TurnOrderView();
+ explicit TurnOrderView(Glib::RefPtr<TurnOrder> const & turn_order);
+
+ [[nodiscard]] auto get_turn_order() const -> Glib::RefPtr<TurnOrder>;
+
+ auto set_turn_order(Glib::RefPtr<TurnOrder> const & turn_order) -> void;
+
+ auto property_turn_order() -> Glib::PropertyProxy<Glib::RefPtr<TurnOrder>>;
+ auto property_turn_order() const -> Glib::PropertyProxy_ReadOnly<Glib::RefPtr<TurnOrder>>;
private:
auto handle_create_row(Glib::RefPtr<Glib::Object> const item) -> Gtk::Widget *;
- Glib::RefPtr<model_type> m_model;
- Gtk::ProgressBar * m_progress;
- Gtk::ListBox * m_view;
+ Glib::Property<Glib::RefPtr<TurnOrder>> m_turn_order{*this, "turn-order", nullptr};
+ Gtk::ProgressBar * m_progress{get_widget<Gtk::ProgressBar>("progress")};
+ Gtk::ListBox * m_view{get_widget<Gtk::ListBox>("view")};
};
} // namespace Turns::gui