summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-14 01:41:14 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-14 01:41:14 +0200
commitec3fa197624cea242b05303461e6fece78d78009 (patch)
tree11e0c48443f160d252cabd9adcba20c78675b9e2 /app/src
parent695ece2c35491a509c70ef710bd0419d67b8fd0f (diff)
downloadturns-ec3fa197624cea242b05303461e6fece78d78009.tar.xz
turns-ec3fa197624cea242b05303461e6fece78d78009.zip
app/ui: layout basic participant creation dialog
Diffstat (limited to 'app/src')
-rw-r--r--app/src/windows/create_participant.cpp31
-rw-r--r--app/src/windows/main.cpp10
2 files changed, 41 insertions, 0 deletions
diff --git a/app/src/windows/create_participant.cpp b/app/src/windows/create_participant.cpp
new file mode 100644
index 0000000..b6d674f
--- /dev/null
+++ b/app/src/windows/create_participant.cpp
@@ -0,0 +1,31 @@
+#include "turns/app/windows/create_participant.hpp"
+
+#include <print>
+
+#include <gtkmm/listboxrow.h>
+
+namespace turns::app::windows
+{
+
+ create_participant::create_participant(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder)
+ : Gtk::Widget{base}
+ , m_adw{ADW_DIALOG(gobj())}
+ , m_finish{builder->get_widget<Gtk::Button>("finish")}
+ {
+ m_disposition = ADW_COMBO_ROW(builder->get_widget<Gtk::ListBoxRow>("disposition")->gobj());
+ m_name = ADW_ENTRY_ROW(builder->get_widget<Gtk::ListBoxRow>("name")->gobj());
+ m_order = ADW_SPIN_ROW(builder->get_widget<Gtk::ListBoxRow>("order")->gobj());
+
+ m_finish->signal_clicked().connect(sigc::mem_fun(*this, &create_participant::handle_finish_clicked));
+ }
+
+ auto create_participant::present(Gtk::Widget * parent) -> void
+ {
+ adw_dialog_present(m_adw, parent->gobj());
+ }
+
+ auto create_participant::handle_finish_clicked() -> void
+ {
+ 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 f25b220..d4c3015 100644
--- a/app/src/windows/main.cpp
+++ b/app/src/windows/main.cpp
@@ -1,6 +1,7 @@
#include "turns/app/windows/main.hpp"
#include "turns/app/widgets/participant_list_row.hpp"
+#include "turns/app/windows/create_participant.hpp"
#include "turns/lang/messages.hpp"
#include <format>
@@ -28,6 +29,8 @@ namespace turns::app::windows
m_open_main_menu->set_tooltip_text(_(tooltips::main_menu));
adw_window_title_set_subtitle(m_title, _(labels::no_active_turn_order));
+ m_add_participant->signal_clicked().connect(sigc::mem_fun(*this, &main::handle_create_participant));
+
for (auto n : std::views::iota(0, 32))
{
auto name = std::format("Participant #{}", n);
@@ -46,4 +49,11 @@ namespace turns::app::windows
return widget;
}
+ auto main::handle_create_participant() -> void
+ {
+ 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);
+ }
+
} // namespace turns::app::windows