Split pretty much the entire GUI in 3. Audio and Midi "editor strips" and
[ardour.git] / gtk2_ardour / redirect_box.cc
index 2ded0b10fb170a42ca848661cd8d761dba8f64af..f5cb9522e06caf72c237fe2a888d6dfa8414df74 100644 (file)
 */
 
 #include <cmath>
-#include <glib.h>
 
 #include <sigc++/bind.h>
 
+#include <pbd/convert.h>
+
 #include <gtkmm/messagedialog.h>
 
 #include <gtkmm2ext/gtk_ui.h>
@@ -37,7 +38,7 @@
 #include <ardour/audioengine.h>
 #include <ardour/route.h>
 #include <ardour/audio_track.h>
-#include <ardour/diskstream.h>
+#include <ardour/audio_diskstream.h>
 #include <ardour/send.h>
 #include <ardour/insert.h>
 #include <ardour/ladspa_plugin.h>
@@ -64,6 +65,7 @@
 
 using namespace sigc;
 using namespace ARDOUR;
+using namespace PBD;
 using namespace Gtk;
 using namespace Glib;
 using namespace Gtkmm2ext;
@@ -243,7 +245,7 @@ RedirectBox::show_redirect_menu (gint arg)
 
        paste_action->set_sensitive (!_rr_selection.redirects.empty());
 
-       redirect_menu->popup (1, 0);
+       redirect_menu->popup (1, arg);
 }
 
 void
@@ -293,7 +295,7 @@ RedirectBox::redirect_button_press_event (GdkEventButton *ev)
                
        } else if (Keyboard::is_context_menu_event (ev)) {
 
-               show_redirect_menu(0);
+               show_redirect_menu(ev->time);
                ret = true;
 
        } else if (redirect && ev->button == 2 && ev->state == 0) {
@@ -302,7 +304,12 @@ RedirectBox::redirect_button_press_event (GdkEventButton *ev)
                ret = true;
 
        } 
+       else if (redirect && ev->button == 1 && selected) {
 
+               // this is purely informational but necessary
+               RedirectSelected (redirect); // emit
+       }
+       
        return ret;
 }
 
@@ -423,10 +430,6 @@ RedirectBox::wierd_plugin_dialog (Plugin& p, uint32_t streams, IO& io)
        dialog.set_modal (true);
        dialog.show_all ();
 
-       // GTK2FIX
-       //dialog.realize();
-       //dialog.get_window()->set_decorations (Gdk::WMDecoration (GDK_DECOR_BORDER|GDK_DECOR_RESIZEH));
-
        dialog.run ();
 }
 
@@ -539,7 +542,7 @@ RedirectBox::redirect_name (Redirect& redirect)
                        name_display += send->name().substr (lbracket+1, lbracket-rbracket-1);
                        break;
                case Narrow:
-                       name_display += short_version (send->name().substr (lbracket+1, lbracket-rbracket-1), 4);
+                       name_display += PBD::short_version (send->name().substr (lbracket+1, lbracket-rbracket-1), 4);
                        break;
                }
 
@@ -550,7 +553,7 @@ RedirectBox::redirect_name (Redirect& redirect)
                        name_display += redirect.name();
                        break;
                case Narrow:
-                       name_display += short_version (redirect.name(), 5);
+                       name_display += PBD::short_version (redirect.name(), 5);
                        break;
                }
 
@@ -746,6 +749,7 @@ RedirectBox::rename_redirect (Redirect* redirect)
        name_prompter.set_prompt (_("rename redirect"));
        name_prompter.set_initial_text (redirect->name());
        name_prompter.add_button (_("Rename"), Gtk::RESPONSE_ACCEPT);
+       name_prompter.set_response_sensitive (Gtk::RESPONSE_ACCEPT, false);
        name_prompter.show_all ();
 
        switch (name_prompter.run ()) {