+ sub.push_back (SeparatorElem ());
+
+ if (can_remove_channels (bc[dim].bundle)) {
+ snprintf (buf, sizeof (buf), _("Remove '%s'"), bc[dim].bundle->channel_name (bc[dim].channel).c_str());
+ sub.push_back (
+ MenuElem (
+ buf,
+ bind (mem_fun (*this, &PortMatrix::remove_channel_proxy), w, bc[dim].channel)
+ )
+ );
+ }
+
+ if (_show_only_bundles) {
+ snprintf (buf, sizeof (buf), _("%s all"), disassociation_verb().c_str());
+ } else {
+ snprintf (
+ buf, sizeof (buf), _("%s all from '%s'"),
+ disassociation_verb().c_str(),
+ bc[dim].bundle->channel_name (bc[dim].channel).c_str()
+ );
+ }
+
+ sub.push_back (
+ MenuElem (buf, bind (mem_fun (*this, &PortMatrix::disassociate_all_on_channel), w, bc[dim].channel, dim))
+ );