summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/include/turns/app/widgets/participant_list_row.hpp19
-rw-r--r--app/src/widgets/participant_list_row.cpp17
-rw-r--r--res/widgets/participant_list_row.ui51
-rw-r--r--res/widgets/widgets.cmb47
4 files changed, 56 insertions, 78 deletions
diff --git a/app/include/turns/app/widgets/participant_list_row.hpp b/app/include/turns/app/widgets/participant_list_row.hpp
index 172e9ac..070d540 100644
--- a/app/include/turns/app/widgets/participant_list_row.hpp
+++ b/app/include/turns/app/widgets/participant_list_row.hpp
@@ -6,9 +6,8 @@
#include <array>
#include <glibmm/ustring.h>
-#include <gtkmm/box.h>
+#include <gtkmm/button.h>
#include <gtkmm/editablelabel.h>
-#include <gtkmm/image.h>
#include <gtkmm/label.h>
#include <gtkmm/listboxrow.h>
#include <gtkmm/togglebutton.h>
@@ -19,13 +18,9 @@ namespace turns::app::widgets
{
auto constexpr inline static children = std::array{
"edit",
- "header",
- "prefixes",
- "image",
- "title_box",
- "title",
"subtitle",
- "suffixes",
+ "title",
+ "toggle_defeated",
};
participant_list_row();
@@ -34,14 +29,10 @@ namespace turns::app::widgets
auto set_title(Glib::ustring const & value) -> void;
private:
- Gtk::ToggleButton * m_edit;
- Gtk::Box * m_header;
- Gtk::Image * m_image;
- Gtk::Box * m_prefixes;
+ Gtk::Button * m_edit;
Gtk::Label * m_subtitle;
- Gtk::Box * m_suffixes;
Gtk::EditableLabel * m_title;
- Gtk::Box * m_title_box;
+ Gtk::ToggleButton * m_toggle_defeated;
};
} // namespace turns::app::widgets
diff --git a/app/src/widgets/participant_list_row.cpp b/app/src/widgets/participant_list_row.cpp
index 10bcc2d..3be31b3 100644
--- a/app/src/widgets/participant_list_row.cpp
+++ b/app/src/widgets/participant_list_row.cpp
@@ -1,5 +1,7 @@
#include "turns/app/widgets/participant_list_row.hpp"
+#include <print>
+
#include <glibmm/ustring.h>
namespace turns::app::widgets
@@ -14,21 +16,10 @@ namespace turns::app::widgets
: Glib::ObjectBase(TYPE_NAME)
, template_widget<participant_list_row, Gtk::ListBoxRow>{TEMPLATE}
{
- m_edit = get_widget<Gtk::ToggleButton>("edit");
- m_header = get_widget<Gtk::Box>("header");
- m_image = get_widget<Gtk::Image>("image");
- m_prefixes = get_widget<Gtk::Box>("prefixes");
+ m_edit = get_widget<Gtk::Button>("edit");
m_subtitle = get_widget<Gtk::Label>("subtitle");
- m_suffixes = get_widget<Gtk::Box>("suffixes");
m_title = get_widget<Gtk::EditableLabel>("title");
- m_title_box = get_widget<Gtk::Box>("title_box");
-
- m_edit->signal_clicked().connect([this]{
- if(m_edit->get_active())
- {
- m_title->start_editing();
- }
- });
+ m_toggle_defeated = get_widget<Gtk::ToggleButton>("toggle_defeated");
}
auto participant_list_row::set_subtitle(Glib::ustring const & value) -> void
diff --git a/res/widgets/participant_list_row.ui b/res/widgets/participant_list_row.ui
index c0e3895..fca9f22 100644
--- a/res/widgets/participant_list_row.ui
+++ b/res/widgets/participant_list_row.ui
@@ -6,40 +6,38 @@
<requires lib="gtk" version="4.14"/>
<template class="gtkmm__CustomObject_participant_list_row" parent="GtkListBoxRow">
<property name="child">
- <object class="GtkBox" id="header">
+ <object class="GtkBox">
<property name="css-classes">header</property>
<child>
- <object class="GtkBox" id="prefixes">
- <property name="visible">False</property>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkToggleButton" id="toggle_defeated">
+ <property name="halign">center</property>
+ <property name="icon-name">face-smile-symbolic</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="circular"/>
+ </style>
+ </object>
+ </child>
<style>
<class name="prefixes"/>
</style>
</object>
</child>
<child>
- <object class="GtkImage" id="image">
- <property name="icon-name">face-smile</property>
- <property name="valign">center</property>
- <property name="visible">False</property>
- <style>
- <class name="icon"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="title_box">
+ <object class="GtkBox">
<property name="hexpand">True</property>
<property name="orientation">vertical</property>
<property name="valign">center</property>
<child>
<object class="GtkEditableLabel" id="title">
- <property name="editable">False</property>
<property name="visible">False</property>
<style>
<class name="title"/>
</style>
<!-- Custom object fragments -->
- <property name="editable" bind-source="edit" bind-property="active" bind-flags="sync-create"/>
+ <property name="sensitive" bind-source="toggle_defeated" bind-property="active" bind-flags="sync-create|invert-boolean"/>
</object>
</child>
<child>
@@ -52,6 +50,8 @@
<style>
<class name="subtitle"/>
</style>
+ <!-- Custom object fragments -->
+ <property name="sensitive" bind-source="toggle_defeated" bind-property="active" bind-flags="sync-create|invert-boolean"/>
</object>
</child>
<style>
@@ -60,18 +60,17 @@
</object>
</child>
<child>
- <object class="GtkBox" id="suffixes">
+ <object class="GtkBox">
<property name="valign">center</property>
<child>
- <object class="GtkToggleButton" id="edit">
+ <object class="GtkButton" id="edit">
<property name="icon-name">document-edit-symbolic</property>
+ <style>
+ <class name="circular"/>
+ <class name="suggested-action"/>
+ </style>
<!-- Custom object fragments -->
- <property name="active" bind-source="title" bind-property="editing" bind-flags="sync-create"/>
- </object>
- </child>
- <child>
- <object class="GtkSwitch">
- <property name="valign">center</property>
+ <property name="sensitive" bind-source="toggle_defeated" bind-property="active" bind-flags="sync-create|invert-boolean"/>
</object>
</child>
<style>
@@ -82,8 +81,6 @@
</object>
</property>
<property name="valign">center</property>
- <style>
- <class name="view"/>
- </style>
+ <style/>
</template>
</interface>
diff --git a/res/widgets/widgets.cmb b/res/widgets/widgets.cmb
index a61fa4d..de76966 100644
--- a/res/widgets/widgets.cmb
+++ b/res/widgets/widgets.cmb
@@ -2,31 +2,26 @@
<!DOCTYPE cambalache-project SYSTEM "cambalache-project.dtd">
<cambalache-project version="0.17.3" target_tk="gtk-4.0">
<ui>
- (1,1,"participant_list_item.ui","participant_list_row.ui",None,None,None,None,None,"Adapted from: https://gitlab.gnome.org/GNOME/libadwaita",None)
+ (1,1,"participant_list_item.ui","participant_list_row.ui",None,None,None,None,None,None,None)
</ui>
<ui_library>
(1,"gtk","4.14",None)
</ui_library>
<object>
(1,1,"GtkListBoxRow","gtkmm__CustomObject_participant_list_row",None,None,None,None,-1,None,None),
- (1,2,"GtkBox","header",1,None,None,None,-1,None,None),
- (1,3,"GtkBox","prefixes",2,None,None,None,-1,None,None),
- (1,4,"GtkImage","image",2,None,None,None,-1,None,None),
- (1,5,"GtkBox","title_box",2,None,None,None,-1,None,None),
- (1,7,"GtkLabel","subtitle",5,None,None,None,1,None,None),
- (1,8,"GtkBox","suffixes",2,None,None,None,-1,None,None),
- (1,9,"GtkSwitch",None,8,None,None,None,1,None,None),
- (1,10,"GtkEditableLabel","title",5,None,None,None,None,"&lt;property name=\"editable\"\n bind-source=\"edit\"\n bind-property=\"active\"\n bind-flags=\"sync-create\" /&gt;",None),
- (1,11,"GtkToggleButton","edit",8,None,None,None,None,"&lt;property name=\"active\"\n bind-source=\"title\"\n bind-property=\"editing\"\n bind-flags=\"sync-create\" /&gt;",None)
+ (1,2,"GtkBox",None,1,None,None,None,-1,None,None),
+ (1,3,"GtkBox",None,2,None,None,None,-1,None,None),
+ (1,5,"GtkBox",None,2,None,None,None,-1,None,None),
+ (1,7,"GtkLabel","subtitle",5,None,None,None,1,"&lt;property name=\"sensitive\"\n bind-source=\"toggle_defeated\"\n bind-property=\"active\"\n bind-flags=\"sync-create|invert-boolean\" /&gt;",None),
+ (1,8,"GtkBox",None,2,None,None,None,-1,None,None),
+ (1,10,"GtkEditableLabel","title",5,None,None,None,None,"&lt;property name=\"sensitive\"\n bind-source=\"toggle_defeated\"\n bind-property=\"active\"\n bind-flags=\"sync-create|invert-boolean\" /&gt;",None),
+ (1,12,"GtkToggleButton","toggle_defeated",3,None,None,None,-1,None,None),
+ (1,13,"GtkButton","edit",8,None,None,None,-1,"&lt;property name=\"sensitive\"\n bind-source=\"toggle_defeated\"\n bind-property=\"active\"\n bind-flags=\"sync-create|invert-boolean\" /&gt;",None)
</object>
<object_property>
(1,1,"GtkListBoxRow","child",None,None,None,None,None,2,None,None,None,None),
(1,1,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(1,2,"GtkWidget","css-classes","header",None,None,None,None,None,None,None,None,None),
- (1,3,"GtkWidget","visible","False",None,None,None,None,None,None,None,None,None),
- (1,4,"GtkImage","icon-name","face-smile",None,None,None,None,None,None,None,None,None),
- (1,4,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
- (1,4,"GtkWidget","visible","False",None,None,None,None,None,None,None,None,None),
(1,5,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(1,5,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(1,5,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
@@ -36,16 +31,15 @@
(1,7,"GtkLabel","xalign","0.0",None,None,None,None,None,None,None,None,None),
(1,7,"GtkWidget","visible","False",None,None,None,None,None,None,None,None,None),
(1,8,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
- (1,9,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
- (1,10,"GtkEditable","editable","False",None,None,None,None,None,None,None,None,None),
(1,10,"GtkWidget","visible","False",None,None,None,None,None,None,None,None,None),
- (1,11,"GtkButton","icon-name","document-edit-symbolic",None,None,None,None,None,None,None,None,None)
+ (1,12,"GtkButton","icon-name","face-smile-symbolic",None,None,None,None,None,None,None,None,None),
+ (1,12,"GtkWidget","halign","center",None,None,None,None,None,None,None,None,None),
+ (1,12,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
+ (1,13,"GtkButton","icon-name","document-edit-symbolic",None,None,None,None,None,None,None,None,None)
</object_property>
<object_data>
(1,5,"GtkWidget",1,1,None,None,None,None,None,None),
(1,5,"GtkWidget",2,2,None,1,None,None,None,None),
- (1,4,"GtkWidget",1,1,None,None,None,None,None,None),
- (1,4,"GtkWidget",2,2,None,1,None,None,None,None),
(1,3,"GtkWidget",1,1,None,None,None,None,None,None),
(1,3,"GtkWidget",2,2,None,1,None,None,None,None),
(1,7,"GtkWidget",1,1,None,None,None,None,None,None),
@@ -54,18 +48,23 @@
(1,8,"GtkWidget",2,2,None,1,None,None,None,None),
(1,1,"GtkWidget",2,2,None,1,None,None,None,None),
(1,1,"GtkWidget",1,3,None,None,None,None,None,None),
- (1,1,"GtkWidget",2,4,None,3,None,None,None,None),
(1,10,"GtkWidget",1,1,None,None,None,None,None,None),
- (1,10,"GtkWidget",2,2,None,1,None,None,None,None)
+ (1,10,"GtkWidget",2,2,None,1,None,None,None,None),
+ (1,12,"GtkWidget",1,1,None,None,None,None,None,None),
+ (1,12,"GtkWidget",2,2,None,1,None,None,None,None),
+ (1,13,"GtkWidget",1,1,None,None,None,None,None,None),
+ (1,13,"GtkWidget",2,2,None,1,None,None,None,None),
+ (1,13,"GtkWidget",2,3,None,1,None,None,None,None)
</object_data>
<object_data_arg>
(1,5,"GtkWidget",2,2,"name","title"),
- (1,4,"GtkWidget",2,2,"name","icon"),
(1,3,"GtkWidget",2,2,"name","prefixes"),
(1,7,"GtkWidget",2,2,"name","subtitle"),
(1,8,"GtkWidget",2,2,"name","suffixes"),
(1,1,"GtkWidget",2,2,"name","property"),
- (1,1,"GtkWidget",2,4,"name","view"),
- (1,10,"GtkWidget",2,2,"name","title")
+ (1,10,"GtkWidget",2,2,"name","title"),
+ (1,12,"GtkWidget",2,2,"name","circular"),
+ (1,13,"GtkWidget",2,2,"name","circular"),
+ (1,13,"GtkWidget",2,3,"name","suggested-action")
</object_data_arg>
</cambalache-project>