#include #include "seasonwindow.hpp" void SeasonWindow::confirm() { // go through all checkbuttons and save numbers // of checked boxes into returned vector // then quit for( auto &x : m_checks ) { if( x.get_active() ) { returned.push_back(std::stoi(x.get_label())); } } hide(); } void SeasonWindow::select_all() { // set all check boxes to checked for( auto &x : m_checks ) { x.set_active(true); } } void SeasonWindow::select_none() { // set all check boxes to unchecked for( auto &x : m_checks ) { x.set_active(false); } } SeasonWindow::SeasonWindow(const std::vector &seasons, std::vector &_returned) : returned(_returned) { set_title("Choose seasons"); set_default_size(250, 250); set_resizable(false); add(m_layout); size_t x{5}, y{25}; // create a check box for each season for( auto &s : seasons ) { m_checks.emplace_back(std::to_string(s)); m_layout.put(m_checks.back(), x, y); if( x == 185 ) { x = 5; y += 20; } else { x += 60; } } m_layout.put(m_label, 5, 5); m_label.set_label("Select seasons:"); m_layout.put(m_confirm, 165, 215); m_layout.put(m_all, 130, 175); m_layout.put(m_none, 5, 175); m_confirm.set_size_request(80,30); m_all.set_size_request(80,30); m_none.set_size_request(80,30); m_confirm.set_label("Select"); m_all.set_label("Select All"); m_none.set_label("Unselect All"); m_confirm.signal_clicked().connect(sigc::mem_fun(*this, &SeasonWindow::confirm)); m_all.signal_clicked().connect(sigc::mem_fun(*this, &SeasonWindow::select_all)); m_none.signal_clicked().connect(sigc::mem_fun(*this, &SeasonWindow::select_none)); show_all_children(); }