I am not sure what is the best way to organize the program.
int main(int argc, char *argv[]) { vector <Sound*> soundlist; soundlist.push_back( new SoundIC7410{argv[1]} ); soundlist.push_back( new SoundSoft66{argv[2]} ); vector <Rig*> riglist; riglist.push_back ( new RigIC7410 {argv[3]} ); // riglist.push_back ( new RigSoft66 {argv[3]} ); /* dummy */ argc = 1; /* just for the next line */ Glib::RefPtr < Gtk::Application > app = Gtk::Application::create(argc, argv, "org.gtkmm.example"); MyWindow win(soundlist, riglist); return app->run(win); }
MyWindow::MyWindow(vector <Sound*> &slist, vector <Rig*> &rlist) { set_title("IC-7410 Rig Control Program (C++ version)"); set_size_request(1800, 900); myscrolledwindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS); get_content_area()->pack_start(myscrolledwindow); for(auto r : rlist) { myvbox.pack_start( *(new MyDrawingArea2{r}), FALSE, FALSE, 0); } for(auto s : slist) { myvbox.pack_start( *(new MyDrawingArea {s}), FALSE, FALSE, 0); } myscrolledwindow.add(myvbox); add(myscrolledwindow); show_all(); }