+ private:
+ PluginInterestedObject* interested_object;
+
+ Gtk::ScrolledWindow scroller; // Available plugins
+ Gtk::ScrolledWindow ascroller; // Added plugins
+
+ Gtk::ComboBoxText filter_mode;
+ Gtk::Entry filter_entry;
+ Gtk::Button filter_button;
+
+ void filter_button_clicked ();
+ void filter_entry_changed ();
+ void filter_mode_changed ();
+
+ struct PluginColumns : public Gtk::TreeModel::ColumnRecord {
+ PluginColumns () {
+ add (favorite);
+ add (hidden);
+ add (name);
+ add (type_name);
+ add (category);
+ add (creator);
+ add (audio_ins);
+ add (audio_outs);
+ add (midi_ins);
+ add (midi_outs);
+ add (plugin);
+ }
+ Gtk::TreeModelColumn<bool> favorite;
+ Gtk::TreeModelColumn<bool> hidden;
+ Gtk::TreeModelColumn<std::string> name;
+ Gtk::TreeModelColumn<std::string> type_name;
+ Gtk::TreeModelColumn<std::string> category;
+ Gtk::TreeModelColumn<std::string> creator;
+ Gtk::TreeModelColumn<std::string> audio_ins;
+ Gtk::TreeModelColumn<std::string> audio_outs;
+ Gtk::TreeModelColumn<std::string> midi_ins;
+ Gtk::TreeModelColumn<std::string> midi_outs;
+ Gtk::TreeModelColumn<ARDOUR::PluginInfoPtr> plugin;
+ };
+ PluginColumns plugin_columns;
+ Glib::RefPtr<Gtk::ListStore> plugin_model;
+ Gtk::TreeView plugin_display;
+ Gtk::Button* btn_add;
+ Gtk::Button* btn_remove;
+
+ struct AddedColumns : public Gtk::TreeModel::ColumnRecord {
+ AddedColumns () {
+ add (text);
+ add (plugin);
+ }
+ Gtk::TreeModelColumn<std::string> text;
+ Gtk::TreeModelColumn<ARDOUR::PluginInfoPtr> plugin;
+ };
+ AddedColumns acols;
+ Glib::RefPtr<Gtk::ListStore> amodel;
+ Gtk::TreeView added_list;
+
+ void refill ();
+ void refiller (const ARDOUR::PluginInfoList& plugs, const::std::string& filterstr, const char* type);
+ void ladspa_refiller (const std::string&);
+ void lv2_refiller (const std::string&);
+ void vst_refiller (const std::string&);
+ void au_refiller (const std::string&);
+
+ Gtk::Menu* _plugin_menu;