summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-14 17:08:03 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-14 17:08:03 +0200
commit34f321486a70f04eb5f4b2c610219d70910956f4 (patch)
treee54b2559a3f11f804a712efb4e26bb37861ec28a /app
parent37732d5ccae97d80a9083ae295af018f154edb5a (diff)
downloadturns-34f321486a70f04eb5f4b2c610219d70910956f4.tar.xz
turns-34f321486a70f04eb5f4b2c610219d70910956f4.zip
app: implement basic creation of participants
Diffstat (limited to 'app')
-rw-r--r--app/include/turns/app/windows/create_participant.hpp10
-rw-r--r--app/src/windows/create_participant.cpp9
-rw-r--r--app/src/windows/main.cpp1
3 files changed, 19 insertions, 1 deletions
diff --git a/app/include/turns/app/windows/create_participant.hpp b/app/include/turns/app/windows/create_participant.hpp
index 856c1dc..a9f19ea 100644
--- a/app/include/turns/app/windows/create_participant.hpp
+++ b/app/include/turns/app/windows/create_participant.hpp
@@ -4,18 +4,24 @@
#include <adwaita.h>
#include <glibmm/refptr.h>
#include <gtkmm/builder.h>
-#include <gtkmm/widget.h>
#include <gtkmm/button.h>
+#include <gtkmm/widget.h>
+
+#include <sigc++/signal.h>
namespace turns::app::windows
{
struct create_participant : Gtk::Widget
{
+ using signal_finished_type = sigc::signal<void (Glib::ustring, float)>;
+
create_participant(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder);
auto present(Gtk::Widget * parent) -> void;
+ auto signal_finished() -> signal_finished_type;
+
private:
auto handle_finish_clicked() -> void;
@@ -25,6 +31,8 @@ namespace turns::app::windows
AdwComboRow * m_disposition{};
AdwEntryRow * m_name{};
AdwSpinRow * m_order{};
+
+ signal_finished_type m_signal_finished{};
};
} // namespace turns::app::windows
diff --git a/app/src/windows/create_participant.cpp b/app/src/windows/create_participant.cpp
index b6d674f..eadc41e 100644
--- a/app/src/windows/create_participant.cpp
+++ b/app/src/windows/create_participant.cpp
@@ -3,6 +3,7 @@
#include <print>
#include <gtkmm/listboxrow.h>
+#include <gtkmm/editable.h>
namespace turns::app::windows
{
@@ -24,8 +25,16 @@ namespace turns::app::windows
adw_dialog_present(m_adw, parent->gobj());
}
+ auto create_participant::signal_finished() -> signal_finished_type
+ {
+ return m_signal_finished;
+ }
+
auto create_participant::handle_finish_clicked() -> void
{
+ auto name = gtk_editable_get_text(GTK_EDITABLE(m_name));
+ auto order = adw_spin_row_get_value(m_order);
+ m_signal_finished.emit(name, order);
adw_dialog_close(m_adw);
}
} // namespace turns::app::windows \ No newline at end of file
diff --git a/app/src/windows/main.cpp b/app/src/windows/main.cpp
index bb8d55e..6b2331a 100644
--- a/app/src/windows/main.cpp
+++ b/app/src/windows/main.cpp
@@ -51,6 +51,7 @@ namespace turns::app::windows
auto builder = Gtk::Builder::create_from_resource("/ch/arknet/Turns/windows/create_participant.ui");
auto dialog = Gtk::Builder::get_widget_derived<windows::create_participant>(builder, "create_participant_dialog");
dialog->present(this);
+ dialog->signal_finished().connect(sigc::mem_fun(*m_participants, &domain::turn_order::append));
}
} // namespace turns::app::windows