summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/include/turns/ui/widgets/turn_order_view.hpp9
-rw-r--r--ui/res/ui.cmb41
-rw-r--r--ui/src/widgets/turn_order_view.cpp14
3 files changed, 41 insertions, 23 deletions
diff --git a/ui/include/turns/ui/widgets/turn_order_view.hpp b/ui/include/turns/ui/widgets/turn_order_view.hpp
index b174ce7..c14d239 100644
--- a/ui/include/turns/ui/widgets/turn_order_view.hpp
+++ b/ui/include/turns/ui/widgets/turn_order_view.hpp
@@ -1,25 +1,27 @@
#ifndef TURNS_APP_WIDGETS_TURN_ORDER_VIEW_HPP
#define TURNS_APP_WIDGETS_TURN_ORDER_VIEW_HPP
-#include "turns/ui/widgets/template_widget.hpp"
#include "turns/core/fwd.hpp"
+#include "turns/ui/widgets/template_widget.hpp"
#include <glibmm/object.h>
#include <glibmm/refptr.h>
+#include <gtkmm/box.h>
#include <gtkmm/listbox.h>
-#include <gtkmm/scrolledwindow.h>
+#include <gtkmm/progressbar.h>
#include <gtkmm/widget.h>
#include <array>
namespace turns::app::widgets
{
- struct turn_order_view : template_widget<turn_order_view, Gtk::ScrolledWindow>
+ struct turn_order_view : template_widget<turn_order_view, Gtk::Box>
{
using model_type = core::turn_order;
auto constexpr inline static children = std::array{
+ "progress",
"view",
};
@@ -29,6 +31,7 @@ namespace turns::app::widgets
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;
};
} // namespace turns::app::widgets
diff --git a/ui/res/ui.cmb b/ui/res/ui.cmb
index f3cc8e8..acf1687 100644
--- a/ui/res/ui.cmb
+++ b/ui/res/ui.cmb
@@ -12,7 +12,9 @@
(1,"libadwaita","1.5",None),
(2,"gtk","4.14",None),
(2,"libadwaita","1.5",None),
- (3,"gtk","4.14",None)
+ (3,"gtk","4.14",None),
+ (4,"gtk","4.14",None),
+ (4,"libadwaita","1.5",None)
</ui_library>
<object>
(1,1,"AdwApplicationWindow","tracker",None,None,None,None,-1,None,None),
@@ -54,9 +56,11 @@
(3,8,"GtkLabel","subtitle",4,None,None,None,-1,None,None),
(3,9,"GtkButton","delete",5,None,None,None,-1,None,None),
(3,10,"GtkButton","edit",5,None,None,None,-1,None,None),
- (4,1,"GtkScrolledWindow","gtkmm__CustomObject_turn_order_view",None,None,None,None,-1,None,None),
- (4,2,"AdwClamp",None,1,None,None,None,-1,None,None),
- (4,3,"GtkListBox","view",2,None,None,None,-1,None,None)
+ (4,1,"GtkBox","gtkmm__CustomObject_turn_order_view",None,None,None,None,-1,None,None),
+ (4,2,"GtkProgressBar","progress",1,None,None,None,None,None,None),
+ (4,3,"GtkScrolledWindow",None,1,None,None,None,1,None,None),
+ (4,4,"AdwClamp",None,3,None,None,None,-1,None,None),
+ (4,5,"GtkListBox","view",4,None,None,None,-1,None,None)
</object>
<object_property>
(1,1,"AdwApplicationWindow","content",None,None,None,None,None,2,None,None,None,None),
@@ -142,13 +146,15 @@
(3,9,"GtkWidget","tooltip-text","Delete participant",1,None,None,None,None,None,None,None,None),
(3,10,"GtkButton","icon-name","document-edit-symbolic",None,None,None,None,None,None,None,None,None),
(3,10,"GtkWidget","tooltip-text","Edit participant",1,None,None,None,None,None,None,None,None),
- (4,1,"GtkScrolledWindow","child",None,None,None,None,None,2,None,None,None,None),
- (4,2,"AdwClamp","child",None,None,None,None,None,3,None,None,None,None),
- (4,2,"GtkWidget","margin-bottom","18",None,None,None,None,None,None,None,None,None),
- (4,2,"GtkWidget","margin-end","12",None,None,None,None,None,None,None,None,None),
- (4,2,"GtkWidget","margin-start","12",None,None,None,None,None,None,None,None,None),
- (4,2,"GtkWidget","margin-top","12",None,None,None,None,None,None,None,None,None),
- (4,3,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None)
+ (4,1,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
+ (4,3,"GtkScrolledWindow","child",None,None,None,None,None,4,None,None,None,None),
+ (4,3,"GtkWidget","vexpand","True",None,None,None,None,None,None,None,None,None),
+ (4,4,"AdwClamp","child",None,None,None,None,None,5,None,None,None,None),
+ (4,4,"GtkWidget","margin-bottom","18",None,None,None,None,None,None,None,None,None),
+ (4,4,"GtkWidget","margin-end","12",None,None,None,None,None,None,None,None,None),
+ (4,4,"GtkWidget","margin-start","12",None,None,None,None,None,None,None,None,None),
+ (4,4,"GtkWidget","margin-top","12",None,None,None,None,None,None,None,None,None),
+ (4,5,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None)
</object_property>
<object_data>
(1,1,"GtkWidget",2,2,None,1,None,None,None,None),
@@ -180,8 +186,6 @@
(3,5,"GtkWidget",2,2,None,1,None,None,None,None),
(3,3,"GtkWidget",1,1,None,None,None,None,None,None),
(3,3,"GtkWidget",2,2,None,1,None,None,None,None),
- (4,3,"GtkWidget",1,1,None,None,None,None,None,None),
- (4,3,"GtkWidget",2,2,None,1,None,None,None,None),
(1,22,"GtkWidget",1,1,None,None,None,None,None,None),
(1,22,"GtkWidget",2,2,None,1,None,None,None,None),
(1,22,"GtkWidget",2,3,None,1,None,None,None,None),
@@ -192,7 +196,11 @@
(1,24,"GtkWidget",2,2,None,1,None,None,None,None),
(1,24,"GtkWidget",2,3,None,1,None,None,None,None),
(1,21,"GtkWidget",1,1,None,None,None,None,None,None),
- (1,21,"GtkWidget",2,2,None,1,None,None,None,None)
+ (1,21,"GtkWidget",2,2,None,1,None,None,None,None),
+ (4,2,"GtkWidget",1,1,None,None,None,None,None,None),
+ (4,2,"GtkWidget",2,2,None,1,None,None,None,None),
+ (4,5,"GtkWidget",1,1,None,None,None,None,None,None),
+ (4,5,"GtkWidget",2,2,None,1,None,None,None,None)
</object_data>
<object_data_arg>
(1,1,"GtkWidget",2,2,"name","background"),
@@ -211,13 +219,14 @@
(3,10,"GtkWidget",2,3,"name","suggested-action"),
(3,5,"GtkWidget",2,2,"name","suffixes"),
(3,3,"GtkWidget",2,2,"name","prefixes"),
- (4,3,"GtkWidget",2,2,"name","boxed-list"),
(1,22,"GtkWidget",2,2,"name","pill"),
(1,22,"GtkWidget",2,3,"name","suggested-action"),
(1,23,"GtkWidget",2,2,"name","pill"),
(1,23,"GtkWidget",2,3,"name","destructive-action"),
(1,24,"GtkWidget",2,2,"name","pill"),
(1,24,"GtkWidget",2,3,"name","suggested-action"),
- (1,21,"GtkWidget",2,2,"name","toolbar")
+ (1,21,"GtkWidget",2,2,"name","toolbar"),
+ (4,2,"GtkWidget",2,2,"name","osd"),
+ (4,5,"GtkWidget",2,2,"name","boxed-list")
</object_data_arg>
</cambalache-project>
diff --git a/ui/src/widgets/turn_order_view.cpp b/ui/src/widgets/turn_order_view.cpp
index 9456cbe..78d7c43 100644
--- a/ui/src/widgets/turn_order_view.cpp
+++ b/ui/src/widgets/turn_order_view.cpp
@@ -1,8 +1,8 @@
#include "turns/ui/widgets/turn_order_view.hpp"
-#include "turns/ui/widgets/participant_row.hpp"
#include "turns/core/participant.hpp"
#include "turns/core/turn_order.hpp"
+#include "turns/ui/widgets/participant_row.hpp"
#include <sigc++/functors/mem_fun.h>
@@ -20,14 +20,20 @@ namespace turns::app::widgets
turn_order_view::turn_order_view(Glib::RefPtr<model_type> model)
: Glib::ObjectBase(TYPE_NAME)
- , template_widget<turn_order_view, Gtk::ScrolledWindow>{TEMPLATE}
+ , template_widget{TEMPLATE}
, m_model{model}
+ , m_progress{get_widget<Gtk::ProgressBar>("progress")}
, m_view{get_widget<Gtk::ListBox>("view")}
{
- if (model)
+ if (!model)
{
- m_view->bind_model(m_model, sigc::mem_fun(*this, &turn_order_view::handle_create_row));
+ return;
}
+
+ set_orientation(Gtk::Orientation::VERTICAL);
+
+ m_view->bind_model(m_model, sigc::mem_fun(*this, &turn_order_view::handle_create_row));
+ Glib::Binding::bind_property(m_model->progress(), m_progress->property_fraction(), Glib::Binding::Flags::SYNC_CREATE);
}
auto turn_order_view::handle_create_row(Glib::RefPtr<Glib::Object> const item) -> Gtk::Widget *