+ _fil_effects_radio = manage (new RadioButton (fil_radio_group, _("Show Effects Only")));
+ _fil_instruments_radio = manage (new RadioButton (fil_radio_group, _("Show Instruments Only")));
+ _fil_utils_radio = manage (new RadioButton (fil_radio_group, _("Show Utilities Only")));
+ _fil_favorites_radio = manage (new RadioButton (fil_radio_group, _("Show Favorites Only")));
+ _fil_hidden_radio = manage (new RadioButton (fil_radio_group, _("Show Hidden Only")));
+ _fil_all_radio = manage (new RadioButton (fil_radio_group, _("Show All")));
+
+ //_fil_type_combo = manage (new ComboBoxText);
+ _fil_type_combo.append_text_item (_("Show All Formats"));
+ _fil_type_combo.append_text_item (X_("VST"));
+#ifdef AUDIOUNIT_SUPPORT
+ _fil_type_combo.append_text_item (X_("AudioUnit"));
+#endif
+#ifdef LV2_SUPPORT
+ _fil_type_combo.append_text_item (X_("LV2"));
+#endif
+ _fil_type_combo.append_text_item (X_("Lua"));
+ _fil_type_combo.append_text_item (X_("LADSPA"));
+ _fil_type_combo.set_text (_("Show All Formats"));
+
+ /* note: _fil_creator_combo menu gets filled in build_plugin_menu */
+ _fil_creator_combo.set_text_ellipsize (Pango::ELLIPSIZE_END);
+ _fil_creator_combo.set_layout_ellipsize_width (PANGO_SCALE * 160 * UIConfiguration::instance ().get_ui_scale ());
+
+ VBox* filter_vbox = manage (new VBox);
+ filter_vbox->pack_start (*_fil_effects_radio, false, false);
+ filter_vbox->pack_start (*_fil_instruments_radio, false, false);
+ filter_vbox->pack_start (*_fil_utils_radio, false, false);
+ filter_vbox->pack_start (*_fil_favorites_radio, false, false);
+ filter_vbox->pack_start (*_fil_hidden_radio, false, false);
+ filter_vbox->pack_start (*_fil_all_radio, false, false);
+ filter_vbox->pack_start (_fil_type_combo, false, false);
+ filter_vbox->pack_start (_fil_creator_combo, false, false);
+
+ filter_vbox->set_border_width (4);
+ filter_vbox->set_spacing (4);
+
+ Frame* filter_frame = manage (new Frame);
+ filter_frame->set_name ("BaseFrame");
+ filter_frame->set_label (_("Filter"));
+ filter_frame->add (*filter_vbox);
+ filter_frame->show_all ();
+
+ _fil_effects_radio->signal_clicked().connect (sigc::mem_fun (*this, &PluginSelector::refill));
+ _fil_instruments_radio->signal_clicked().connect (sigc::mem_fun (*this, &PluginSelector::refill));
+ _fil_utils_radio->signal_clicked().connect (sigc::mem_fun (*this, &PluginSelector::refill));
+ _fil_favorites_radio->signal_clicked().connect (sigc::mem_fun (*this, &PluginSelector::refill));
+ _fil_hidden_radio->signal_clicked().connect (sigc::mem_fun (*this, &PluginSelector::refill));
+
+ _fil_type_combo.StateChanged.connect (sigc::mem_fun (*this, &PluginSelector::refill));
+ _fil_creator_combo.StateChanged.connect (sigc::mem_fun (*this, &PluginSelector::refill));
+
+ /* TAG entry */
+
+ Gtk::Table* tagging_table = manage(new Gtk::Table(1, 2));
+ tagging_table->set_border_width (4);
+ tagging_table->set_col_spacings (4);
+ tagging_table->set_row_spacings (4);
+
+ tag_entry = manage (new Gtk::Entry);
+ tag_entry_connection = tag_entry->signal_changed().connect (sigc::mem_fun (*this, &PluginSelector::tag_entry_changed));
+
+ tag_reset_button = manage (new Button (_("Reset")));
+ tag_reset_button->signal_clicked().connect (sigc::mem_fun (*this, &PluginSelector::tag_reset_button_clicked));
+
+ Gtk::Label* tagging_help_label1 = manage (new Label(
+ _("Enter space-separated, one-word Tags for the selected plugin."), Gtk::ALIGN_LEFT));
+
+ Gtk::Label* tagging_help_label2 = manage (new Label(
+ _("You can include dashes, colons or underscores in a Tag."), Gtk::ALIGN_LEFT));
+
+ Gtk::Label* tagging_help_label3 = manage (new Label(
+ _("Ex: \"dynamic de-esser vocal\" applies 3 Tags."), Gtk::ALIGN_LEFT));
+
+ int p = 0;
+ tagging_table->attach (*tag_entry, 0, 1, p, p+1, FILL|EXPAND, FILL);
+ tagging_table->attach (*tag_reset_button, 1, 2, p, p+1, FILL, FILL); p++;
+ tagging_table->attach (*tagging_help_label1, 0, 2, p, p+1, FILL, FILL); p++;
+ tagging_table->attach (*tagging_help_label2, 0, 2, p, p+1, FILL, FILL); p++;
+ tagging_table->attach (*tagging_help_label3, 0, 2, p, p+1, FILL, FILL); p++;
+
+ Frame* tag_frame = manage (new Frame);
+ tag_frame->set_name ("BaseFrame");
+ tag_frame->set_label (_("Tags for Selected Plugin"));
+ tag_frame->add (*tagging_table);
+ tag_frame->show_all ();
+
+ /* Add & remove buttons */
+
+ HBox* add_remove = manage (new HBox);
+ add_remove->pack_start (*btn_add, true, true);
+ add_remove->pack_start (*btn_remove, true, true);
+
+ btn_add->signal_clicked().connect(sigc::mem_fun(*this, &PluginSelector::btn_add_clicked));
+ btn_remove->signal_clicked().connect(sigc::mem_fun(*this, &PluginSelector::btn_remove_clicked));
+ added_list.get_selection()->signal_changed().connect (sigc::mem_fun(*this, &PluginSelector::added_list_selection_changed));
+ added_list.signal_button_press_event().connect_notify (mem_fun(*this, &PluginSelector::added_row_clicked));
+
+ added_list.set_name("PluginSelectorList");
+
+ /* Top-level Layout */
+
+ VBox* to_be_inserted_vbox = manage (new VBox);
+ to_be_inserted_vbox->pack_start (ascroller);
+ to_be_inserted_vbox->pack_start (*add_remove, false, false);
+ to_be_inserted_vbox->set_size_request (200, -1);
+
+ Gtk::Table* table = manage(new Gtk::Table(3, 3));
+ table->set_size_request(-1, 600);
+ table->attach (scroller, 0, 3, 0, 5); /* this is the main plugin list */
+ table->attach (*search_frame, 0, 1, 6, 7, FILL, FILL, 5, 5);
+ table->attach (*tag_frame, 0, 1, 7, 8, FILL, FILL, 5, 5);
+ table->attach (*filter_frame, 1, 2, 6, 8, FILL, FILL, 5, 5);
+ table->attach (*to_be_inserted_vbox, 2, 3, 6, 8, FILL|EXPAND, FILL, 5, 5); /* to be inserted... */