X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Froute_ui.h;h=2f515f8c6d3715c2f8c9d5d23ba42b1d73dddda9;hb=ad942b104a80c74c689e0c1b5c016d1870850830;hp=945e49cb12005dc14c8a9311756fe51a13aa4907;hpb=3cce57d490ad51845b8447ba5630b8d2820d541b;p=ardour.git diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index 945e49cb12..2f515f8c6d 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -77,15 +77,15 @@ class RouteUI : public virtual AxisView boost::shared_ptr _route; - void set_color (const Gdk::Color & c); - bool choose_color (); + virtual void set_color (const Gdk::Color & c); + void choose_color (); bool ignore_toggle; bool wait_for_release; bool multiple_mute_change; bool multiple_solo_change; - BindableToggleButton* invert_button; + Gtk::HBox _invert_button_box; BindableToggleButton* mute_button; BindableToggleButton* solo_button; BindableToggleButton* rec_enable_button; /* audio tracks */ @@ -96,7 +96,6 @@ class RouteUI : public virtual AxisView Gtk::Label solo_button_label; Gtk::Label mute_button_label; - Gtk::Label invert_button_label; Gtk::Label rec_enable_button_label; void send_blink (bool); @@ -112,9 +111,8 @@ class RouteUI : public virtual AxisView XMLNode *xml_node; void ensure_xml_node (); - virtual XMLNode* get_automation_child_xml_node (Evoral::Parameter param); + virtual XMLNode* get_automation_child_xml_node (Evoral::Parameter); - void invert_toggled(); bool mute_press(GdkEventButton*); bool mute_release(GdkEventButton*); bool solo_press(GdkEventButton*); @@ -133,8 +131,8 @@ class RouteUI : public virtual AxisView void set_sends_gain_from_track (); void set_sends_gain_to_zero (); void set_sends_gain_to_unity (); - void create_sends (ARDOUR::Placement); - void create_selected_sends (ARDOUR::Placement); + void create_sends (ARDOUR::Placement, bool); + void create_selected_sends (ARDOUR::Placement, bool); void solo_changed(bool, void*); void solo_changed_so_update_mute (); @@ -169,7 +167,7 @@ class RouteUI : public virtual AxisView int set_color_from_route (); - void remove_this_route (); + void remove_this_route (bool apply_to_selection = false); static gint idle_remove_this_route (RouteUI *); void route_rename(); @@ -177,9 +175,8 @@ class RouteUI : public virtual AxisView virtual void property_changed (const PBD::PropertyChange&); void route_removed (); - Gtk::CheckMenuItem *route_active_menu_item; - void toggle_route_active (); - virtual void route_active_changed (); + virtual void route_active_changed () {} + void set_route_active (bool, bool); Gtk::Menu* record_menu; void build_record_menu (); @@ -225,6 +222,8 @@ class RouteUI : public virtual AxisView virtual void start_step_editing () {} virtual void stop_step_editing() {} + void set_invert_sensitive (bool); + private: void check_rec_enable_sensitivity (); void parameter_changed (std::string const &); @@ -246,6 +245,17 @@ class RouteUI : public virtual AxisView SoloMuteRelease* _solo_release; SoloMuteRelease* _mute_release; + void setup_invert_buttons (); + void set_invert_button_state (); + void invert_toggled (uint32_t, BindableToggleButton *); + void invert_menu_toggled (uint32_t); + bool invert_press (GdkEventButton *); + + int _i_am_the_modifier; + std::list _invert_buttons; + Gtk::Menu* _invert_menu; + + static uint32_t _max_invert_buttons; }; #endif /* __ardour_route_ui__ */