#include "turns/app/windows/main.hpp" #include "turns/app/widgets/participant_list_row.hpp" #include "turns/lang/messages.hpp" #include #include #include #include #include namespace turns::app::windows { using namespace turns::lang; main::main(BaseObjectType * base, Glib::RefPtr const builder) : Gtk::ApplicationWindow{base} , m_add_participant{builder->get_widget("add_participant")} , m_adw{ADW_APPLICATION_WINDOW(gobj())} , m_open_main_menu{builder->get_widget("open_main_menu")} , m_participant_list{builder->get_widget("participant_list")} , m_title(ADW_WINDOW_TITLE(builder->get_widget("title")->gobj())) , m_tests{Gtk::StringList::create()} { m_add_participant->set_tooltip_text(_(tooltips::add_a_participant)); m_open_main_menu->set_tooltip_text(_(tooltips::main_menu)); adw_window_title_set_subtitle(m_title, _(labels::no_active_turn_order)); for (auto n : std::views::iota(0, 32)) { m_tests->append(std::format("Participant #{}", n)); } m_participant_list->bind_model(m_tests, sigc::mem_fun(*this, &main::handle_create_list_row)); } auto main::handle_create_list_row(Glib::RefPtr const item) -> Gtk::Widget * { auto data = std::dynamic_pointer_cast(item); auto widget = Gtk::make_managed(); widget->set_title(data->get_string()); widget->set_subtitle("Details for " + data->get_string()); return widget; } } // namespace turns::app::windows