fix cURL/SSL
[ardour.git] / gtk2_ardour / plugin_ui.h
index d2e5e21cca15f918d86fd0337ffbc7b9fc292f7d..895d8681ab1dbcb0b9501bbc8602a73357dfed4f 100644 (file)
@@ -51,6 +51,7 @@
 
 #include "ardour_button.h"
 #include "ardour_dropdown.h"
+#include "ardour_spinner.h"
 #include "ardour_window.h"
 #include "automation_controller.h"
 
@@ -152,7 +153,6 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL
        ArdourWindow* latency_dialog;
 
        PluginEqGui* eqgui;
-       Gtk::Requisition pre_eq_size;
 
        Gtk::Image* focus_out_image;
        Gtk::Image* focus_in_image;
@@ -194,17 +194,8 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
 
   private:
        Gtk::VBox main_contents;
-
        Gtk::HBox settings_box;
        Gtk::HBox hpacker;
-
-       Gtk::Table button_table;
-       Gtk::Table output_table;
-
-       Gtk::ScrolledWindow scroller;
-       Gtk::Adjustment hAdjustment;
-       Gtk::Adjustment vAdjustment;
-       Gtk::Viewport scroller_view;
        Gtk::Menu* automation_menu;
 
        gint prefheight;
@@ -229,11 +220,6 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
                }
        };
 
-       static const int32_t initial_button_rows = 12;
-       static const int32_t initial_button_cols = 1;
-       static const int32_t initial_output_rows = 1;
-       static const int32_t initial_output_cols = 4;
-
        /* FIXME: Unify with AutomationController */
        struct ControlUI : public Gtk::HBox {
 
@@ -244,16 +230,19 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
 
                /* input */
 
-               Gtk::ComboBoxText*                      combo;
                boost::shared_ptr<ARDOUR::ScalePoints>  scale_points;
-               Gtk::ToggleButton*                      button;
                boost::shared_ptr<AutomationController> controller;
-               Gtkmm2ext::ClickBox*                    clickbox;
+
+               ArdourButton                            automate_button;
                Gtk::Label                              label;
-               bool                                    update_pending;
-               char                                    ignore_change;
-               Gtk::Button                             automate_button;
+               Gtk::ComboBoxText*                      combo;
+               Gtkmm2ext::ClickBox*                    clickbox;
                Gtk::FileChooserButton*                 file_button;
+               ArdourSpinner*                          spin_box;
+
+               bool                                    button;
+               bool                                    update_pending;
+               bool                                    ignore_change;
 
                /* output */
 
@@ -266,6 +255,10 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
 
                ControlUI (const Evoral::Parameter& param);
                ~ControlUI ();
+
+               /* layout */
+               Gtk::Table* knobtable;
+               int x0, x1, y0, y1;
        };
 
        std::vector<ControlUI*>   input_controls;
@@ -275,16 +268,18 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
        void output_update();
 
        void build ();
+       void automatic_layout (const std::vector<ControlUI *>& control_uis);
+       void custom_layout (const std::vector<ControlUI *>& control_uis);
+
        ControlUI* build_control_ui (const Evoral::Parameter&                     param,
                                     const ARDOUR::ParameterDescriptor&           desc,
                                     boost::shared_ptr<ARDOUR::AutomationControl> mcontrol,
                                     float                                        value,
-                                    bool                                         is_input);
+                                    bool                                         is_input,
+                                    bool                                         use_knob = false);
 
        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*);