diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2024-07-16 15:59:45 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2024-07-16 16:00:32 +0200 |
| commit | 92fc3900c9d3084dd4d0d2386ab4d823e356da20 (patch) | |
| tree | 9240907e95bb58cc5acccbf4885640f3c2909919 | |
| parent | 1e90e6ff6ca16b39c813b73562e1ce37bc8f01a2 (diff) | |
| download | turns-92fc3900c9d3084dd4d0d2386ab4d823e356da20.tar.xz turns-92fc3900c9d3084dd4d0d2386ab4d823e356da20.zip | |
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.
| -rw-r--r-- | app/include/turns/app/windows/main.hpp | 3 | ||||
| -rw-r--r-- | app/src/windows/main.cpp | 5 | ||||
| -rw-r--r-- | 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 <gtkmm/scrolledwindow.h> #include <gtkmm/stack.h> #include <gtkmm/widget.h> +#include <gtkmm/revealer.h> 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<Glib::ustring> m_subtitle; Glib::RefPtr<Glib::Binding> m_clear_action_enabled{}; + Glib::RefPtr<Glib::Binding> m_controls_revealed{}; Glib::RefPtr<Glib::Binding> m_visible_child_widget{}; Glib::RefPtr<Glib::Binding> 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<Gtk::Builder> const builder) : Gtk::ApplicationWindow{base} , m_adw{ADW_APPLICATION_WINDOW(gobj())} + , m_controls{builder->get_widget<Gtk::Revealer>("controls")} , m_empty(builder->get_widget<Gtk::Widget>("empty")) , m_stack{builder->get_widget<Gtk::Stack>("stack")} , m_title(ADW_WINDOW_TITLE(builder->get_widget<Gtk::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, @@ -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) </object_data> <object_data_arg> (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") </object_data_arg> </cambalache-project> |
