diff options
Diffstat (limited to 'app/src/windows/participant_editor.cpp')
| -rw-r--r-- | app/src/windows/participant_editor.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/app/src/windows/participant_editor.cpp b/app/src/windows/participant_editor.cpp new file mode 100644 index 0000000..f89fc20 --- /dev/null +++ b/app/src/windows/participant_editor.cpp @@ -0,0 +1,45 @@ +#include "turns/app/windows/participant_editor.hpp" + +#include <print> + +#include <gtkmm/editable.h> +#include <gtkmm/listboxrow.h> + +namespace turns::app::windows +{ + + participant_editor::participant_editor(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_priority = ADW_SPIN_ROW(builder->get_widget<Gtk::ListBoxRow>("priority")->gobj()); + + m_finish->signal_clicked().connect(sigc::mem_fun(*this, &participant_editor::handle_finish_clicked)); + } + + auto participant_editor::present(Gtk::Widget * parent) -> void + { + adw_dialog_present(m_adw, parent->gobj()); + } + + auto participant_editor::set_title(Glib::ustring const & value) -> void + { + adw_dialog_set_title(m_adw, value.c_str()); + } + + auto participant_editor::signal_finished() -> signal_finished_type + { + return m_signal_finished; + } + + auto participant_editor::handle_finish_clicked() -> void + { + auto name = gtk_editable_get_text(GTK_EDITABLE(m_name)); + auto priority = adw_spin_row_get_value(m_priority); + m_signal_finished.emit(name, priority); + adw_dialog_close(m_adw); + } +} // namespace turns::app::windows
\ No newline at end of file |
