X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fredirect_box.h;h=7ab7d03cac115cebc977d32676f8b008b0a61027;hb=b529cbc5dc0b92f01ff01d5f40786ff025fbb63b;hp=51c17cad51e21086f82449929fcb2a3eabf1e131;hpb=cc2767caf32486365a33814149e75c6e588e8603;p=ardour.git diff --git a/gtk2_ardour/redirect_box.h b/gtk2_ardour/redirect_box.h index 51c17cad51..7ab7d03cac 100644 --- a/gtk2_ardour/redirect_box.h +++ b/gtk2_ardour/redirect_box.h @@ -49,19 +49,20 @@ class MotionController; class PluginSelector; +class PluginUIWindow; class RouteRedirectSelection; namespace ARDOUR { + class Connection; + class Insert; + class Plugin; + class PluginInsert; + class PortInsert; class Route; class Send; - class Insert; class Session; - class PortInsert; - class Connection; - class Plugin; } - class RedirectBox : public Gtk::HBox { public: @@ -96,7 +97,9 @@ class RedirectBox : public Gtk::HBox PluginSelector & _plugin_selector; RouteRedirectSelection & _rr_selection; - + + void route_going_away (); + struct ModelColumns : public Gtk::TreeModel::ColumnRecord { ModelColumns () { add (text); @@ -119,10 +122,10 @@ class RedirectBox : public Gtk::HBox Gtk::EventBox redirect_eventbox; Gtk::HBox redirect_hpacker; - Gtkmm2ext::DnDTreeView redirect_display; + Gtkmm2ext::DnDTreeView > redirect_display; Gtk::ScrolledWindow redirect_scroller; - void object_drop (std::string type, uint32_t cnt, void**); + void object_drop (std::string type, uint32_t cnt, const boost::shared_ptr*); Width _width; @@ -139,7 +142,7 @@ class RedirectBox : public Gtk::HBox void show_redirect_menu (gint arg); void choose_send (); - void send_io_finished (IOSelector::Result, boost::shared_ptr, IOSelectorWindow*); + void send_io_finished (IOSelector::Result, boost::weak_ptr, IOSelectorWindow*); void choose_insert (); void choose_plugin (); void insert_plugin_chosen (boost::shared_ptr); @@ -148,18 +151,14 @@ class RedirectBox : public Gtk::HBox bool ignore_delete; bool redirect_button_press_event (GdkEventButton *); + bool redirect_button_release_event (GdkEventButton *); void redisplay_redirects (void* src); void add_redirect_to_display (boost::shared_ptr); void row_deleted (const Gtk::TreeModel::Path& path); - void show_redirect_name (void*, boost::shared_ptr); - - /* these are handlers for Redirect signals, so they take Redirect* - directly, rather than shared_ptr - */ - - void show_redirect_active (ARDOUR::Redirect*, void *); - - string redirect_name (boost::shared_ptr); + void show_redirect_active_r (ARDOUR::Redirect*, void *, boost::weak_ptr); + void show_redirect_active (boost::weak_ptr); + void show_redirect_name (void* src, boost::weak_ptr); + string redirect_name (boost::weak_ptr); void remove_redirect_gui (boost::shared_ptr); @@ -194,7 +193,7 @@ class RedirectBox : public Gtk::HBox void hide_redirect_editor (boost::shared_ptr); void rename_redirect (boost::shared_ptr); - gint idle_delete_redirect (boost::shared_ptr); + gint idle_delete_redirect (boost::weak_ptr); void wierd_plugin_dialog (ARDOUR::Plugin& p, uint32_t streams, boost::shared_ptr io); @@ -217,6 +216,9 @@ class RedirectBox : public Gtk::HBox static void rb_activate_all (); static void rb_deactivate_all (); static void rb_edit (); + + void route_name_changed (void* src, PluginUIWindow* plugin_ui, boost::weak_ptr pi); + std::string generate_redirect_title (boost::shared_ptr pi); }; #endif /* __ardour_gtk_redirect_box__ */