summaryrefslogtreecommitdiff
path: root/gtk2_ardour/plugin_selector.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/plugin_selector.cc')
-rw-r--r--gtk2_ardour/plugin_selector.cc69
1 files changed, 33 insertions, 36 deletions
diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc
index f2a32321d0..d74b46f74f 100644
--- a/gtk2_ardour/plugin_selector.cc
+++ b/gtk2_ardour/plugin_selector.cc
@@ -21,6 +21,7 @@
#include <lrdf.h>
#include <gtkmm/table.h>
+#include <gtkmm/stock.h>
#include <gtkmm/button.h>
#include <gtkmm/notebook.h>
@@ -35,14 +36,13 @@
#include "i18n.h"
using namespace ARDOUR;
+using namespace Gtk;
PluginSelector::PluginSelector (PluginManager *mgr)
- : ArdourDialog ("plugin selector")
+ : Dialog (_("ardour: plugins"), true, false)
{
set_position (Gtk::WIN_POS_MOUSE);
set_name ("PluginSelectorWindow");
- set_title (_("ardour: plugins"));
- set_modal(true);
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
manager = mgr;
@@ -89,14 +89,9 @@ PluginSelector::PluginSelector (PluginManager *mgr)
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");
btn_add->set_name("PluginSelectorButton");
btn_remove->set_name("PluginSelectorButton");
@@ -109,9 +104,11 @@ PluginSelector::PluginSelector (PluginManager *mgr)
table->attach(*btn_update, 5, 6, 5, 6, Gtk::FILL, Gtk::FILL, 5, 5);
table->attach(added_list, 0, 7, 7, 9);
- table->attach(*btn_ok, 1, 3, 9, 10, Gtk::FILL, Gtk::FILL, 5, 5);
- table->attach(*btn_cancel, 3, 4, 9, 10, Gtk::FILL, Gtk::FILL, 5, 5);
- add (*table);
+
+ add_button (Stock::OK, RESPONSE_ACCEPT);
+ add_button (Stock::CANCEL, RESPONSE_CANCEL);
+
+ get_vbox()->pack_start (*table);
using namespace Gtk::Notebook_Helpers;
notebook.pages().push_back (TabElem (ladspa_display, _("LADSPA")));
@@ -142,10 +139,6 @@ PluginSelector::PluginSelector (PluginManager *mgr)
btn_update->signal_clicked().connect (mem_fun(*this, &PluginSelector::btn_update_clicked));
btn_add->signal_clicked().connect(mem_fun(*this, &PluginSelector::btn_add_clicked));
btn_remove->signal_clicked().connect(mem_fun(*this, &PluginSelector::btn_remove_clicked));
- btn_ok->signal_clicked().connect(mem_fun(*this, &PluginSelector::btn_ok_clicked));
- btn_cancel->signal_clicked().connect(mem_fun(*this,&PluginSelector::btn_cancel_clicked));
- signal_delete_event().connect (mem_fun(*this, &PluginSelector::wm_close));
-
}
void
@@ -328,37 +321,41 @@ PluginSelector::btn_remove_clicked()
}
}
-// Adds a plugin, and closes the window.
-void
-PluginSelector::btn_ok_clicked()
+void
+PluginSelector::btn_update_clicked()
{
+ manager->refresh ();
+ input_refiller ();
+}
+
+int
+PluginSelector::run ()
+{
+ ResponseType r;
list<PluginInfo*>::iterator i;
- for (i = added_plugins.begin(); i != added_plugins.end(); ++i){
- use_plugin (*i);
+ r = (ResponseType) Dialog::run ();
+
+ switch (r) {
+ case RESPONSE_ACCEPT:
+ for (i = added_plugins.begin(); i != added_plugins.end(); ++i){
+ use_plugin (*i);
+ }
+ break;
+
+ default:
+ break;
}
- hide();
- added_plugins.clear();
+ cleanup ();
+
+ return (int) r;
}
void
-PluginSelector::btn_cancel_clicked()
+PluginSelector::cleanup ()
{
hide();
added_plugins.clear();
}
-void
-PluginSelector::btn_update_clicked()
-{
- manager->refresh ();
- input_refiller ();
-}
-
-gint
-PluginSelector::wm_close(GdkEventAny* ev)
-{
- btn_cancel_clicked();
- return TRUE;
-}