header file cleanup/reduction
[ardour.git] / gtk2_ardour / vca_master_strip.h
index b65aef0c4af6811481128136c48f9c965129a045..785f76deb957fd241eecc114941b6ab3507797fa 100644 (file)
@@ -22,6 +22,7 @@
 #include <boost/shared_ptr.hpp>
 
 #include <gtkmm/box.h>
+#include <gtkmm/menuitem.h>
 
 #include "ardour_button.h"
 #include "axis_view.h"
@@ -32,27 +33,30 @@ namespace ARDOUR {
        class VCA;
 }
 
+class FloatingTextEntry;
+
 class VCAMasterStrip : public AxisView, public Gtk::EventBox
 {
       public:
        VCAMasterStrip (ARDOUR::Session*, boost::shared_ptr<ARDOUR::VCA>);
+       ~VCAMasterStrip ();
 
        std::string name() const;
+       Gdk::Color color () const;
        std::string state_id() const { return "VCAMasterStrip"; }
        boost::shared_ptr<ARDOUR::VCA> vca() const { return _vca; }
 
-      private:
+       static PBD::Signal1<void,VCAMasterStrip*> CatchDeletion;
+
+
+     private:
        boost::shared_ptr<ARDOUR::VCA> _vca;
-       Gtk::HBox    vertical_padding;
-       ArdourButton name_button;
-       ArdourButton active_button;
        GainMeter    gain_meter;
 
        Gtk::Frame   global_frame;
        Gtk::VBox    global_vpacker;
        Gtk::HBox    top_padding;
        Gtk::HBox    bottom_padding;
-       Gtk::HBox    width_hide_box;
        Gtk::HBox    solo_mute_box;
        ArdourButton width_button;
        ArdourButton color_button;
@@ -61,9 +65,14 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox
        ArdourButton solo_button;
        ArdourButton mute_button;
        ArdourButton assign_button;
-       bool         wide;
+       ArdourButton drop_button;
+       Gtk::Menu*   context_menu;
        PBD::ScopedConnectionList vca_connections;
+       Gtk::MessageDialog* delete_dialog;
+       ArdourButton vertical_button;
 
+       void spill ();
+       void spill_change (boost::shared_ptr<ARDOUR::VCA>);
        void hide_clicked();
        bool width_button_pressed (GdkEventButton *);
        void set_selected (bool);
@@ -73,6 +82,24 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox
        void set_solo_text ();
        void solo_changed ();
        void mute_changed ();
+       void vca_menu_toggle (Gtk::CheckMenuItem* menuitem, uint32_t n);
+       void unassign ();
+       bool vca_button_release (GdkEventButton*);
+       void update_vca_display ();
+       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 ();
 };