- pos = str.find (':');
-
- newpair.first = str.substr (0, pos);
- portname = str.substr (pos+1);
-
- result = portmap.insert (newpair);
-
- strpair.first = portname;
- strpair.second = str;
-
- result.first->second.push_back (strpair);
- }
-
- PortMap::iterator i;
-
- for (i = portmap.begin(); i != portmap.end(); ++i) {
-
- Box *client_box = manage (new VBox);
- TreeView *display = manage (new TreeView);
- RefPtr<ListStore> model = ListStore::create (port_display_columns);
- ScrolledWindow *scroller = manage (new ScrolledWindow);
-
- display->set_model (model);
- display->append_column (X_("notvisible"), port_display_columns.displayed_name);
- display->set_headers_visible (false);
- display->get_selection()->set_mode (SELECTION_SINGLE);
- display->set_name ("IOSelectorList");
-
- for (vector<pair<string,string> >::iterator s = i->second.begin(); s != i->second.end(); ++s) {
-
- TreeModel::Row row = *(model->append ());
-
- row[port_display_columns.displayed_name] = s->first;
- row[port_display_columns.full_name] = s->second;
- }
-
- //display->get_selection()->signal_changed().connect (bind (mem_fun(*this, &IOSelector::port_selection_changed), display));
- display->signal_button_release_event().connect (bind (mem_fun(*this, &IOSelector::port_selection_changed), display));
- Label *tab_label = manage (new Label);
-
- tab_label->set_name ("IOSelectorNotebookTab");
- tab_label->set_text ((*i).first);
-
- scroller->add (*display);
- scroller->set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC);
-
- client_box->pack_start (*scroller);
-
- pages.push_back (TabElem (*client_box, *tab_label));
- }
-
- notebook.set_current_page (current_page);
- //notebook.signal_show().connect (bind (mem_fun (notebook, &Notebook::set_current_page), current_page));
- selector_box.show_all ();
-}
-
-void
-IOSelector::display_ports ()
-{
- TreeView *firsttview = 0;
- TreeView *selected_port_tview = 0;
-
- {
- Glib::Mutex::Lock lm (port_display_lock);
- Port *port;
- uint32_t limit;
-
- if (for_input) {
- limit = io.n_inputs();
- } else {
- limit = io.n_outputs();
- }
-
- for (slist<TreeView *>::iterator i = port_displays.begin(); i != port_displays.end(); ) {
-
- slist<TreeView *>::iterator tmp;
-
- tmp = i;
- ++tmp;
-
- port_box.remove (**i);
- delete *i;
- port_displays.erase (i);
-
- i = tmp;
- }
-
-
- for (uint32_t n = 0; n < limit; ++n) {
-
- TreeView* tview;
- //ScrolledWindow *scroller;
- string really_short_name;
-
- if (for_input) {
- port = io.input (n);
- } else {
- port = io.output (n);
- }
-
- /* we know there is '/' because we put it there */