X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fplugin_selector.h;h=034622b3865504d2cbdd78a713a998b007c5d3ee;hb=e34470b7bdeefa71c081adbd957829a1c6dbf247;hp=824fbf8207c2fda5175b0822213948d62c01db78;hpb=0aaa08a3d260539e2c193082d7c1ce2967a8e148;p=ardour.git diff --git a/gtk2_ardour/plugin_selector.h b/gtk2_ardour/plugin_selector.h index 824fbf8207..034622b386 100644 --- a/gtk2_ardour/plugin_selector.h +++ b/gtk2_ardour/plugin_selector.h @@ -26,6 +26,7 @@ #include #include "ardour/plugin.h" +#include "ardour/session_handle.h" #include "plugin_interest.h" namespace ARDOUR { @@ -36,13 +37,13 @@ namespace ARDOUR { class PluginSelector : public ArdourDialog { public: - PluginSelector (ARDOUR::PluginManager *); + PluginSelector (ARDOUR::PluginManager&); + ~PluginSelector (); void set_interested_object (PluginInterestedObject&); int run (); // XXX should we try not to overload the non-virtual Gtk::Dialog::run() ? - void set_session (ARDOUR::Session*); void on_show (); Gtk::Menu* plugin_menu (); @@ -51,7 +52,6 @@ class PluginSelector : public ArdourDialog private: PluginInterestedObject* interested_object; - ARDOUR::Session* session; Gtk::ScrolledWindow scroller; // Available plugins Gtk::ScrolledWindow ascroller; // Added plugins @@ -112,11 +112,13 @@ class PluginSelector : public ArdourDialog void ladspa_refiller (const std::string&); void lv2_refiller (const std::string&); void vst_refiller (const std::string&); + void lxvst_refiller (const std::string&); void au_refiller (const std::string&); - ARDOUR::PluginManager *manager; + Gtk::Menu* _plugin_menu; + ARDOUR::PluginManager& manager; - void row_clicked(GdkEventButton *); + void row_activated(Gtk::TreeModel::Path path, Gtk::TreeViewColumn* col); void btn_add_clicked(); void btn_remove_clicked(); void btn_update_clicked(); @@ -127,8 +129,8 @@ class PluginSelector : public ArdourDialog bool show_this_plugin (const ARDOUR::PluginInfoPtr&, const std::string&); void setup_filter_string (std::string&); - void favorite_changed (const Glib::ustring& path); - void hidden_changed (const Glib::ustring& path); + void favorite_changed (const std::string& path); + void hidden_changed (const std::string& path); bool in_row_change; void plugin_chosen_from_menu (const ARDOUR::PluginInfoPtr&); @@ -136,6 +138,8 @@ class PluginSelector : public ArdourDialog Gtk::Menu* create_favs_menu (ARDOUR::PluginInfoList&); Gtk::Menu* create_by_creator_menu (ARDOUR::PluginInfoList&); Gtk::Menu* create_by_category_menu (ARDOUR::PluginInfoList&); + void build_plugin_menu (); + PBD::ScopedConnection plugin_list_changed_connection; }; #endif // __ardour_plugin_selector_h__