From 92fc3900c9d3084dd4d0d2386ab4d823e356da20 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 16 Jul 2024 15:59:45 +0200 Subject: app/ui: add basic tracking UI definition As part of #5, this change adds the basic definition of the turn tracking UI. As of now, the UI is not functional due to several missing window actions. Additionally, the UI is not only revealed when a turn order is started (as there is no infrastructure in place to manage the lifecycle of a turn order yet), but when the turn order is not empty. --- app/include/turns/app/windows/main.hpp | 3 +++ app/src/windows/main.cpp | 5 +++++ res/ui.cmb | 38 ++++++++++++++++++++++++++++++++-- 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/app/include/turns/app/windows/main.hpp b/app/include/turns/app/windows/main.hpp index 5e13cf0..29bad85 100644 --- a/app/include/turns/app/windows/main.hpp +++ b/app/include/turns/app/windows/main.hpp @@ -17,6 +17,7 @@ #include #include #include +#include namespace turns::app::windows { @@ -31,6 +32,7 @@ namespace turns::app::windows auto handle_edit_participant(Glib::VariantBase param) -> void; AdwApplicationWindow * m_adw; + Gtk::Revealer * m_controls; Gtk::Widget * m_empty; Gtk::Stack * m_stack; AdwWindowTitle * m_title; @@ -39,6 +41,7 @@ namespace turns::app::windows Glib::PropertyProxy m_subtitle; Glib::RefPtr m_clear_action_enabled{}; + Glib::RefPtr m_controls_revealed{}; Glib::RefPtr m_visible_child_widget{}; Glib::RefPtr m_subtitle_text{}; diff --git a/app/src/windows/main.cpp b/app/src/windows/main.cpp index 04d7329..a532dc0 100644 --- a/app/src/windows/main.cpp +++ b/app/src/windows/main.cpp @@ -26,6 +26,7 @@ namespace turns::app::windows main::main(BaseObjectType * base, Glib::RefPtr const builder) : Gtk::ApplicationWindow{base} , m_adw{ADW_APPLICATION_WINDOW(gobj())} + , m_controls{builder->get_widget("controls")} , m_empty(builder->get_widget("empty")) , m_stack{builder->get_widget("stack")} , m_title(ADW_WINDOW_TITLE(builder->get_widget("title")->gobj())) @@ -40,6 +41,10 @@ namespace turns::app::windows m_clear_action->property_enabled(), Glib::Binding::Flags::SYNC_CREATE); + m_controls_revealed = Glib::Binding::bind_property(m_turn_order->property_n_items(), + m_controls->property_reveal_child(), + Glib::Binding::Flags::SYNC_CREATE); + m_visible_child_widget = Glib::Binding::bind_property(m_turn_order->property_n_items(), m_stack->property_visible_child(), Glib::Binding::Flags::SYNC_CREATE, diff --git a/res/ui.cmb b/res/ui.cmb index 119c828..9343018 100644 --- a/res/ui.cmb +++ b/res/ui.cmb @@ -28,6 +28,11 @@ (1,17,"GtkButton",None,16,None,None,None,-1,None,None), (1,18,"GtkButton","start",3,None,"start",None,2,None,None), (1,19,"(item)",None,9,None,None,None,None,None,None), + (1,20,"GtkRevealer","controls",2,None,"bottom",None,-1,None,None), + (1,21,"GtkActionBar",None,20,None,None,None,-1,None,None), + (1,22,"GtkButton",None,21,None,"start",None,-1,None,None), + (1,23,"GtkButton",None,21,None,"center",None,-1,None,None), + (1,24,"GtkButton",None,21,None,"end",None,-1,None,None), (2,1,"AdwDialog","participant_editor",None,None,None,None,-1,None,None), (2,2,"AdwToolbarView",None,1,None,None,None,-1,None,None), (2,3,"AdwHeaderBar",None,2,None,"top",None,-1,None,None), @@ -82,6 +87,17 @@ (1,18,"GtkWidget","tooltip-text","Start turn order",1,None,None,None,None,None,None,None,None), (1,19,"(item)","action","win.clear",None,None,None,None,None,None,None,None,None), (1,19,"(item)","label","_Clear",1,None,None,None,None,None,None,None,None), + (1,20,"GtkRevealer","child",None,None,None,None,None,21,None,None,None,None), + (1,20,"GtkRevealer","transition-type","slide-up",None,None,None,None,None,None,None,None,None), + (1,22,"GtkActionable","action-name","win.previous",None,None,None,None,None,None,None,None,None), + (1,22,"GtkButton","icon-name","media-skip-backward-symbolic",None,None,None,None,None,None,None,None,None), + (1,22,"GtkWidget","tooltip-markup","Previous participant",None,None,None,None,None,None,None,None,None), + (1,23,"GtkActionable","action-name","win.end",None,None,None,None,None,None,None,None,None), + (1,23,"GtkButton","icon-name","media-playback-stop-symbolic",None,None,None,None,None,None,None,None,None), + (1,23,"GtkWidget","tooltip-markup","End turn order",None,None,None,None,None,None,None,None,None), + (1,24,"GtkActionable","action-name","win.next",None,None,None,None,None,None,None,None,None), + (1,24,"GtkButton","icon-name","media-skip-forward-symbolic",None,None,None,None,None,None,None,None,None), + (1,24,"GtkWidget","tooltip-markup","Next participant",None,None,None,None,None,None,None,None,None), (2,1,"AdwDialog","child",None,None,None,None,None,2,None,None,None,None), (2,1,"AdwDialog","default-widget",None,None,None,None,None,None,None,None,None,None), (2,1,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None), @@ -163,7 +179,18 @@ (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) + (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), + (1,23,"GtkWidget",1,1,None,None,None,None,None,None), + (1,23,"GtkWidget",2,2,None,1,None,None,None,None), + (1,23,"GtkWidget",2,3,None,1,None,None,None,None), + (1,24,"GtkWidget",1,1,None,None,None,None,None,None), + (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,1,"GtkWidget",2,2,"name","background"), @@ -182,6 +209,13 @@ (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") + (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") -- cgit v1.2.3