diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2024-07-24 19:47:52 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2024-07-24 19:47:52 +0200 |
| commit | eec83198b5dfdfe9a0db71b410383697eb58930c (patch) | |
| tree | e2a1d890431c4c23f754236f33a909b521932afb /ui | |
| parent | 7546a80eccb64b6ac38b3f22ae83fa1c6af1f1c5 (diff) | |
| download | turns-eec83198b5dfdfe9a0db71b410383697eb58930c.tar.xz turns-eec83198b5dfdfe9a0db71b410383697eb58930c.zip | |
app: add progress bar for turn order
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/include/turns/ui/widgets/turn_order_view.hpp | 9 | ||||
| -rw-r--r-- | ui/res/ui.cmb | 41 | ||||
| -rw-r--r-- | ui/src/widgets/turn_order_view.cpp | 14 |
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 * |
