- session = 0;
- o_selected_plug = -1;
- i_selected_plug = 0;
-
- Gtk::Button *btn_add = manage(new Gtk::Button(_("Add")));
- ARDOUR_UI::instance()->tooltips().set_tip(*btn_add, _("Add a plugin to the effect list"));
- Gtk::Button *btn_remove = manage(new Gtk::Button(_("Remove")));
- ARDOUR_UI::instance()->tooltips().set_tip(*btn_remove, _("Remove a plugin from the effect list"));
- Gtk::Button *btn_ok = manage(new Gtk::Button(_("OK")));
- Gtk::Button *btn_cancel = manage(new Gtk::Button(_("Cancel")));
-
- Gtk::Button *btn_update = manage(new Gtk::Button(_("Update")));
- ARDOUR_UI::instance()->tooltips().set_tip(*btn_update, _("Update available plugins"));
-
- btn_ok->set_name("PluginSelectorButton");
- btn_cancel->set_name("PluginSelectorButton");
+ in_row_change = false;
+
+ manager->PluginListChanged.connect (plugin_list_changed_connection, invalidator (*this), boost::bind (&PluginSelector::build_plugin_menu, this), gui_context());
+ build_plugin_menu ();
+
+ plugin_model = Gtk::ListStore::create (plugin_columns);
+ plugin_display.set_model (plugin_model);
+ /* XXX translators: try to convert "Fav" into a short term
+ related to "favorite" and "Hid" into a short term
+ related to "hidden"
+ */
+ plugin_display.append_column (_("Fav"), plugin_columns.favorite);
+ plugin_display.append_column (_("Hid"), plugin_columns.hidden);
+ plugin_display.append_column (_("Available Plugins"), plugin_columns.name);
+ plugin_display.append_column (_("Type"), plugin_columns.type_name);
+ plugin_display.append_column (_("Category"), plugin_columns.category);
+ plugin_display.append_column (_("Creator"), plugin_columns.creator);
+ plugin_display.append_column (_("# Audio In"),plugin_columns.audio_ins);
+ plugin_display.append_column (_("# Audio Out"), plugin_columns.audio_outs);
+ plugin_display.append_column (_("# MIDI In"),plugin_columns.midi_ins);
+ plugin_display.append_column (_("# MIDI Out"), plugin_columns.midi_outs);
+ plugin_display.set_headers_visible (true);
+ plugin_display.set_headers_clickable (true);
+ plugin_display.set_reorderable (false);
+ plugin_display.set_rules_hint (true);
+
+ CellRendererToggle* fav_cell = dynamic_cast<CellRendererToggle*>(plugin_display.get_column_cell_renderer (0));
+ fav_cell->property_activatable() = true;
+ fav_cell->property_radio() = true;
+ fav_cell->signal_toggled().connect (sigc::mem_fun (*this, &PluginSelector::favorite_changed));
+
+ CellRendererToggle* hidden_cell = dynamic_cast<CellRendererToggle*>(plugin_display.get_column_cell_renderer (1));
+ hidden_cell->property_activatable() = true;
+ hidden_cell->property_radio() = true;
+ hidden_cell->signal_toggled().connect (sigc::mem_fun (*this, &PluginSelector::hidden_changed));
+
+ scroller.set_border_width(10);
+ scroller.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
+ scroller.add(plugin_display);
+
+ amodel = Gtk::ListStore::create(acols);
+ added_list.set_model (amodel);
+ added_list.append_column (_("Plugins to be connected"), acols.text);
+ added_list.set_headers_visible (true);
+ added_list.set_reorderable (false);
+
+ for (int i = 0; i <=8; i++) {
+ Gtk::TreeView::Column* column = plugin_display.get_column(i);
+ column->set_sort_column(i);
+ }
+
+ ascroller.set_border_width(10);
+ ascroller.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
+ ascroller.add(added_list);
+ btn_add = manage(new Gtk::Button(Stock::ADD));
+ ARDOUR_UI::instance()->set_tip(*btn_add, _("Add a plugin to the effect list"));
+ btn_add->set_sensitive (false);
+ btn_remove = manage(new Gtk::Button(Stock::REMOVE));
+ btn_remove->set_sensitive (false);
+ ARDOUR_UI::instance()->set_tip(*btn_remove, _("Remove a plugin from the effect list"));
+ Gtk::Button *btn_update = manage(new Gtk::Button(Stock::REFRESH));
+ ARDOUR_UI::instance()->set_tip(*btn_update, _("Update available plugins"));
+