Gtk::Grid * SmartChessWindow::createOptionsArea() { const int OPTIONS_ROWS = 4; Gtk::Grid* options = Gtk::manage(new Gtk::Grid()); options->set_vexpand(); options->set_hexpand(false); options->insert_column(0); for(auto i : IntRange(OPTIONS_ROWS)) options->insert_row(i); Gtk::Button* b = Gtk::manage(new Gtk::Button("Start")); b->set_hexpand(false); b->signal_clicked().connect(sigc::mem_fun(this, &SmartChessWindow::onStartGame)); options->attach(*b, 0, 0, 1, 1); b = Gtk::manage(new Gtk::Button("End")); b->set_hexpand(false); b->signal_clicked().connect(sigc::mem_fun(this, &SmartChessWindow::onEndGame)); options->attach(*b, 0, 1, 1, 1); b = Gtk::manage(new Gtk::Button("Reset")); b->set_hexpand(false); b->signal_clicked().connect(sigc::mem_fun(this, &SmartChessWindow::onResetGame)); options->attach(*b, 0, 2, 1, 1); auto suboptions = createSuboptionsArea(); options->attach(*suboptions, 0, 3, 1, 1); return options; }
Gtk::Grid * SmartChessWindow::createMainGrid() const { Gtk::Grid* grid = Gtk::manage(new Gtk::Grid()); grid->set_row_homogeneous(false); grid->set_column_homogeneous(false); grid->set_vexpand(); grid->set_hexpand(); for(auto i : IntRange(ROW_COUNT)) grid->insert_row(i); for(auto i : IntRange(COLUMN_COUNT)) grid->insert_column(i); return grid; }