Plugin GUI activate/enable update (prefer enable)
[ardour.git] / gtk2_ardour / plugin_ui.h
index 58dc6ce2a3ce61a92d4805f7966d4a0cc8089090..ca855d0571d4dfb86ecd89d9fae321d21ce96481 100644 (file)
 #include "ardour/plugin.h"
 #include "ardour/variant.h"
 
-#include "automation_controller.h"
 #include "ardour_button.h"
+#include "ardour_dropdown.h"
 #include "ardour_window.h"
+#include "automation_controller.h"
 
 namespace ARDOUR {
        class PluginInsert;
@@ -115,15 +116,17 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL
        /* UI elements that can subclasses can add to their widgets */
 
        /** a ComboBoxText which lists presets and manages their selection */
-       Gtk::ComboBoxText _preset_combo;
+       ArdourDropdown _preset_combo;
        /** a label which has a * in if the current settings are different from the preset being shown */
        Gtk::Label _preset_modified;
        /** a button to add a preset */
-       Gtk::Button add_button;
+       ArdourButton add_button;
        /** a button to save the current settings as a new user preset */
-       Gtk::Button save_button;
+       ArdourButton save_button;
        /** a button to delete the current preset (if it is a user one) */
-       Gtk::Button delete_button;
+       ArdourButton delete_button;
+       /** a button to delete the reset the plugin params */
+       ArdourButton reset_button;
        /** a button to bypass the plugin */
        ArdourButton bypass_button;
        /** a button to acquire keyboard focus */
@@ -132,10 +135,8 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL
        Gtk::Expander description_expander;
        /** an expander containing the plugin analysis graph */
        Gtk::Expander plugin_analysis_expander;
-       /** a label indicating the plugin latency */
-       Gtk::Label latency_label;
        /** a button which, when clicked, opens the latency GUI */
-       Gtk::Button latency_button;
+       ArdourButton latency_button;
        /** a button which sets all controls' automation setting to Manual */
        ArdourButton automation_manual_all_button;
        /** a button which sets all controls' automation setting to Play */
@@ -144,7 +145,7 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL
        ArdourButton automation_write_all_button;
        /** a button which sets all controls' automation setting to Touch */
        ArdourButton automation_touch_all_button;
-       
+
        void set_latency_label ();
 
        LatencyGUI* latency_gui;
@@ -157,17 +158,18 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL
        Gtk::Image* focus_in_image;
        int _no_load_preset;
 
-       virtual void preset_selected ();
+       virtual void preset_selected (ARDOUR::Plugin::PresetRecord preset);
        void add_plugin_setting ();
        void save_plugin_setting ();
        void delete_plugin_setting ();
+       void reset_plugin_parameters ();
        bool focus_toggled(GdkEventButton*);
        bool bypass_button_release(GdkEventButton*);
        void toggle_description ();
        void toggle_plugin_analysis ();
        void processor_active_changed (boost::weak_ptr<ARDOUR::Processor> p);
        void plugin_going_away ();
-       virtual void parameter_changed (uint32_t, float);
+       void automation_state_changed ();
        void preset_added_or_removed ();
        void update_preset_modified ();
 
@@ -244,10 +246,10 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
 
                Gtk::ComboBoxText*                      combo;
                boost::shared_ptr<ARDOUR::ScalePoints>  scale_points;
-               Gtk::ToggleButton*                      button;
                boost::shared_ptr<AutomationController> controller;
                Gtkmm2ext::ClickBox*                    clickbox;
                Gtk::Label                              label;
+               bool                                    button;
                bool                                    update_pending;
                char                                    ignore_change;
                Gtk::Button                             automate_button;
@@ -280,9 +282,7 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
                                     bool                                         is_input);
 
        void ui_parameter_changed (ControlUI* cui);
-       void toggle_parameter_changed (ControlUI* cui);
        void update_control_display (ControlUI* cui);
-       void control_port_toggled (ControlUI* cui);
        void control_combo_changed (ControlUI* cui);
 
        void astate_clicked (ControlUI*);