X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fvca_master_strip.h;h=ea8ee52f6d4a95480cd0026199dc8c3cba1c8929;hb=da7d7f950233f109f82f7e7ea5c62f81ef3d7bbb;hp=cef7290b9a5bc0b724c88f855cc2dcdf0efe6360;hpb=f4032599f207ecb1e0994088bbffe687c4a90693;p=ardour.git diff --git a/gtk2_ardour/vca_master_strip.h b/gtk2_ardour/vca_master_strip.h index cef7290b9a..ea8ee52f6d 100644 --- a/gtk2_ardour/vca_master_strip.h +++ b/gtk2_ardour/vca_master_strip.h @@ -22,9 +22,11 @@ #include #include +#include #include "ardour_button.h" #include "axis_view.h" +#include "control_slave_ui.h" #include "gain_meter.h" namespace ARDOUR { @@ -32,19 +34,78 @@ namespace ARDOUR { class VCA; } -class VCAMasterStrip : public AxisView, public Gtk::VBox +class FloatingTextEntry; + +class VCAMasterStrip : public AxisView, public Gtk::EventBox { public: VCAMasterStrip (ARDOUR::Session*, boost::shared_ptr); + ~VCAMasterStrip (); + + boost::shared_ptr stripable() const; + ARDOUR::PresentationInfo const & presentation_info () const; std::string name() const; - std::string state_id() const { return "VCAMasterStrip"; } + Gdk::Color color () const; + std::string state_id() const; + boost::shared_ptr vca() const { return _vca; } + + static PBD::Signal1 CatchDeletion; + + bool marked_for_display () const; + bool set_marked_for_display (bool); - private: - boost::shared_ptr vca; - ArdourButton name_button; - ArdourButton active_button; + private: + boost::shared_ptr _vca; GainMeter gain_meter; + + Gtk::Frame global_frame; + Gtk::VBox global_vpacker; + Gtk::HBox top_padding; + Gtk::HBox bottom_padding; + Gtk::HBox solo_mute_box; + ArdourButton width_button; + ArdourButton color_button; + ArdourButton hide_button; + ArdourButton number_label; + ArdourButton solo_button; + ArdourButton mute_button; + ArdourButton drop_button; + Gtk::Menu* context_menu; + Gtk::MessageDialog* delete_dialog; + ArdourButton vertical_button; + ControlSlaveUI control_slave_ui; + PBD::ScopedConnectionList vca_connections; + + void spill (); + void spill_change (boost::shared_ptr); + void hide_clicked(); + bool width_button_pressed (GdkEventButton *); + void set_selected (bool); + bool solo_release (GdkEventButton*); + bool mute_release (GdkEventButton*); + void set_width (bool wide); + void set_solo_text (); + void solo_changed (); + void mute_changed (); + void unassign (); + void start_name_edit (); + void finish_name_edit (std::string, int); + bool vertical_button_press (GdkEventButton*); + void vca_property_changed (PBD::PropertyChange const & what_changed); + void update_vca_name (); + void build_context_menu (); + void hide_confirmation (int); + void self_delete (); + void remove (); + void drop_button_press (); + void drop_all_slaves (); + + void parameter_changed (std::string const& p); + void set_button_names (); + + void start_color_edit (); + void finish_color_edit (int, Gtk::ColorSelectionDialog*); };