- pnl_content->add(*(drp_routes = new GLtk::Dropdown));
- drp_routes->set_geometry(GLtk::Geometry(0, 10, 250, 20));
+ pnl_content->add(*(drp_routes = new GLtk::Dropdown(routes)));
drp_routes->signal_item_selected.connect(sigc::mem_fun(this, &Routebar::route_selected));
GLtk::Button *btn;
pnl_content->add(*(btn = new GLtk::Button("Del")));
drp_routes->signal_item_selected.connect(sigc::mem_fun(this, &Routebar::route_selected));
GLtk::Button *btn;
pnl_content->add(*(btn = new GLtk::Button("Del")));
btn->set_style("red");
btn->set_tooltip("Delete the current route");
btn->signal_clicked.connect(sigc::mem_fun(this, &Routebar::delete_route_clicked));
pnl_content->add(*(btn = new GLtk::Button("Name")));
btn->set_style("red");
btn->set_tooltip("Delete the current route");
btn->signal_clicked.connect(sigc::mem_fun(this, &Routebar::delete_route_clicked));
pnl_content->add(*(btn = new GLtk::Button("Name")));
btn->set_tooltip("Rename the current route");
btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::rename_route));
pnl_content->add(*(btn = new GLtk::Button("Add")));
btn->set_tooltip("Rename the current route");
btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::rename_route));
pnl_content->add(*(btn = new GLtk::Button("Add")));
btn->set_tooltip("Add selected tracks to current route (A)");
btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::add_selection_to_route));
designer.get_layout().signal_track_chain_added.connect(sigc::mem_fun(this, &Routebar::track_chain_added));
btn->set_tooltip("Add selected tracks to current route (A)");
btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::add_selection_to_route));
designer.get_layout().signal_track_chain_added.connect(sigc::mem_fun(this, &Routebar::track_chain_added));
- const set<Route *> &routes = designer.get_layout().get_all<Route>();
- for(set<Route *>::const_iterator i=routes.begin(); i!=routes.end(); ++i)
- (*i)->signal_name_changed.connect(sigc::hide(sigc::mem_fun(this, &Routebar::update_routes)));
+ const set<Route *> &lroutes = designer.get_layout().get_all<Route>();
+ for(set<Route *>::const_iterator i=lroutes.begin(); i!=lroutes.end(); ++i)
+ {
+ routes.append(*i);
+ (*i)->signal_name_changed.connect(sigc::bind(sigc::mem_fun(this, &Routebar::route_name_changed), *i));
+ }
- int selected = -1;
- unsigned n = 0;
- for(set<Route *>::const_iterator i=routes.begin(); (selected<0 && i!=routes.end()); ++i, ++n)
- if(*i==route)
- selected = n;
- drp_routes->set_selected_index(selected);
+ for(unsigned i=0; i<routes.size(); ++i)
+ if(routes.get(i)==route)
+ drp_routes->set_selected_index(i);
- r->signal_name_changed.connect(sigc::hide(sigc::mem_fun(this, &Routebar::update_routes)));
- update_routes();
+ r->signal_name_changed.connect(sigc::bind(sigc::mem_fun(this, &Routebar::route_name_changed), r));
+ routes.insert(routes.size()-1, r);