removed (will replace) rgb_macros.h
[ardour.git] / gtk2_ardour / plugin_selector.cc
index 890c09ede230683c5af9f3d27f134f2296be9e69..cfc5f697748b266cbc82bb45a59aac380fc83d21 100644 (file)
@@ -63,7 +63,7 @@ static const char* _filter_mode_strings[] = {
 };
 
 PluginSelector::PluginSelector (PluginManager *mgr)
-       : ArdourDialog (_("ardour: plugins"), true, false),
+       : ArdourDialog (_("Plugin Manager"), true, false),
          filter_button (Stock::CLEAR)
 {
        set_position (Gtk::WIN_POS_MOUSE);
@@ -442,29 +442,36 @@ PluginSelector::run ()
 {
        ResponseType r;
        TreeModel::Children::iterator i;
-       SelectedPlugins plugins;
 
-       r = (ResponseType) Dialog::run ();
+       bool finish = false;
+       
+       while (!finish) {
 
-       switch (r) {
-       case RESPONSE_APPLY:
-               for (i = amodel->children().begin(); i != amodel->children().end(); ++i) {
-                       PluginInfoPtr pp = (*i)[acols.plugin];
-                       PluginPtr p = load_plugin (pp);
-                       if (p) {
-                               plugins.push_back (p);
+               SelectedPlugins plugins;
+               r = (ResponseType) Dialog::run ();
+               
+               switch (r) {
+               case RESPONSE_APPLY:
+                       for (i = amodel->children().begin(); i != amodel->children().end(); ++i) {
+                               PluginInfoPtr pp = (*i)[acols.plugin];
+                               PluginPtr p = load_plugin (pp);
+                               if (p) {
+                                       plugins.push_back (p);
+                               }
                        }
+                       if (interested_object && !plugins.empty()) {
+                               finish = !interested_object->use_plugins (plugins);
+                       }
+                       
+                       break;
+                       
+               default:
+                       finish = true;
+                       break;
                }
-               if (interested_object && !plugins.empty()) {
-                       interested_object->use_plugins (plugins);
-               }
-
-               break;
-
-       default:
-               break;
        }
-
+               
+               
        hide();
        amodel->clear();
        interested_object = 0;
@@ -595,7 +602,7 @@ PluginSelector::build_plugin_menu ()
        Gtk::Menu* favs = create_favs_menu(all_plugs);
        items.push_back (MenuElem (_("Favorites"), *manage (favs)));
 
-       items.push_back (MenuElem (_("Plugin Manager"), sigc::mem_fun (*this, &PluginSelector::show_manager)));
+       items.push_back (MenuElem (_("Plugin Manager..."), sigc::mem_fun (*this, &PluginSelector::show_manager)));
        items.push_back (SeparatorElem ());
 
        Menu* by_creator = create_by_creator_menu(all_plugs);
@@ -629,7 +636,7 @@ PluginSelector::create_by_creator_menu (ARDOUR::PluginInfoList& all_plugs)
 {
        using namespace Menu_Helpers;
 
-       typedef std::map<Glib::ustring,Gtk::Menu*> SubmenuMap;
+       typedef std::map<std::string,Gtk::Menu*> SubmenuMap;
        SubmenuMap creator_submenu_map;
 
        Menu* by_creator = new Menu();
@@ -657,7 +664,7 @@ PluginSelector::create_by_creator_menu (ARDOUR::PluginInfoList& all_plugs)
                } else {
                        submenu = new Gtk::Menu;
                        by_creator_items.push_back (MenuElem (creator, *manage (submenu)));
-                       creator_submenu_map.insert (pair<Glib::ustring,Menu*> (creator, submenu));
+                       creator_submenu_map.insert (pair<std::string,Menu*> (creator, submenu));
                        submenu->set_name("ArdourContextMenu");
                }
                submenu->items().push_back (MenuElem ((*i)->name, (sigc::bind (sigc::mem_fun (*this, &PluginSelector::plugin_chosen_from_menu), *i))));
@@ -670,7 +677,7 @@ PluginSelector::create_by_category_menu (ARDOUR::PluginInfoList& all_plugs)
 {
        using namespace Menu_Helpers;
 
-       typedef std::map<Glib::ustring,Gtk::Menu*> SubmenuMap;
+       typedef std::map<std::string,Gtk::Menu*> SubmenuMap;
        SubmenuMap category_submenu_map;
 
        Menu* by_category = new Menu();
@@ -693,7 +700,7 @@ PluginSelector::create_by_category_menu (ARDOUR::PluginInfoList& all_plugs)
                } else {
                        submenu = new Gtk::Menu;
                        by_category_items.push_back (MenuElem (category, *manage (submenu)));
-                       category_submenu_map.insert (pair<Glib::ustring,Menu*> (category, submenu));
+                       category_submenu_map.insert (pair<std::string,Menu*> (category, submenu));
                        submenu->set_name("ArdourContextMenu");
                }
                submenu->items().push_back (MenuElem ((*i)->name, (sigc::bind (sigc::mem_fun (*this, &PluginSelector::plugin_chosen_from_menu), *i))));
@@ -716,7 +723,7 @@ PluginSelector::plugin_chosen_from_menu (const PluginInfoPtr& pi)
 }
 
 void
-PluginSelector::favorite_changed (const Glib::ustring& path)
+PluginSelector::favorite_changed (const std::string& path)
 {
        PluginInfoPtr pi;
 
@@ -752,7 +759,7 @@ PluginSelector::favorite_changed (const Glib::ustring& path)
 }
 
 void
-PluginSelector::hidden_changed (const Glib::ustring& path)
+PluginSelector::hidden_changed (const std::string& path)
 {
        PluginInfoPtr pi;