#include <boost/shared_ptr.hpp>
#include <gtkmm/box.h>
+#include <gtkmm/colorselection.h>
#include <gtkmm/menuitem.h>
+#include <gtkmm/messagedialog.h>
+
+#include "widgets/ardour_button.h"
-#include "ardour_button.h"
#include "axis_view.h"
+#include "control_slave_ui.h"
#include "gain_meter.h"
+#include "stripable_colorpicker.h"
namespace ARDOUR {
class GainControl;
class VCAMasterStrip : public AxisView, public Gtk::EventBox
{
- public:
+public:
VCAMasterStrip (ARDOUR::Session*, boost::shared_ptr<ARDOUR::VCA>);
+ ~VCAMasterStrip ();
+
+ boost::shared_ptr<ARDOUR::Stripable> 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<ARDOUR::VCA> vca() const { return _vca; }
- private:
+ static PBD::Signal1<void,VCAMasterStrip*> CatchDeletion;
+
+ bool marked_for_display () const;
+ bool set_marked_for_display (bool);
+
+private:
boost::shared_ptr<ARDOUR::VCA> _vca;
- Gtk::HBox vertical_padding;
- ArdourButton name_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;
- ArdourButton hide_button;
- ArdourButton number_label;
- ArdourButton solo_button;
- ArdourButton mute_button;
- ArdourButton assign_button;
- bool wide;
- PBD::ScopedConnectionList vca_connections;
-
+ Gtk::Frame global_frame;
+ Gtk::VBox global_vpacker;
+ Gtk::HBox top_padding;
+ Gtk::HBox bottom_padding;
+ Gtk::HBox solo_mute_box;
+ ArdourWidgets::ArdourButton width_button;
+ ArdourWidgets::ArdourButton color_button;
+ ArdourWidgets::ArdourButton hide_button;
+ ArdourWidgets::ArdourButton number_label;
+ ArdourWidgets::ArdourButton solo_button;
+ ArdourWidgets::ArdourButton mute_button;
+ Gtk::Menu* context_menu;
+ Gtk::MessageDialog* delete_dialog;
+ ArdourWidgets::ArdourButton vertical_button;
+ ControlSlaveUI control_slave_ui;
+ PBD::ScopedConnectionList vca_connections;
+
+ void spill ();
+ void spill_change (boost::shared_ptr<ARDOUR::Stripable>);
void hide_clicked();
bool width_button_pressed (GdkEventButton *);
void set_selected (bool);
void set_solo_text ();
void solo_changed ();
void mute_changed ();
- void vca_menu_toggle (Gtk::CheckMenuItem* menuitem, uint32_t n);
- void vca_unassign ();
- bool vca_button_release (GdkEventButton*);
- void update_vca_display ();
- void finish_name_edit (std::string);
- bool name_button_press (GdkEventButton*);
+ void unassign ();
+ void start_name_edit ();
+ void finish_name_edit (std::string, int);
+ bool vertical_button_press (GdkEventButton*);
+ bool number_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_all_slaves ();
+ void assign_all_selected ();
+ void unassign_all_selected ();
+
+ void parameter_changed (std::string const& p);
+ void set_button_names ();
+ void update_bottom_padding ();
+
+ void start_color_edit ();
+ StripableColorDialog _color_picker;
};