mark the step entry dialog as a dialog even though it is an ArdourWindow, to help...
[ardour.git] / gtk2_ardour / processor_box.h
index c183949e1759e79b74f1be57cdc84ea8a28f4293..157cdbf27e30207a31b10fb9769c547b6422c031 100644 (file)
@@ -34,6 +34,7 @@
 #include "gtkmm2ext/click_box.h"
 #include "gtkmm2ext/dndvbox.h"
 #include "gtkmm2ext/pixfader.h"
+#include "gtkmm2ext/persistent_tooltip.h"
 
 #include "pbd/stateful.h"
 #include "pbd/signals.h"
@@ -118,7 +119,6 @@ public:
        void set_position (Position);
        boost::shared_ptr<ARDOUR::Processor> processor () const;
        void set_enum_width (Width);
-       virtual void set_pixel_width (int);
 
        /** Hide any widgets that should be hidden */
        virtual void hide_things ();
@@ -130,8 +130,6 @@ public:
        std::string state_id () const;
        Gtk::Menu* build_controls_menu ();
 
-       static void setup_slider_pix ();
-
 protected:
        ArdourButton _button;
        Gtk::VBox _vbox;
@@ -139,8 +137,6 @@ protected:
 
        virtual void setup_visuals ();
 
-       static Glib::RefPtr<Gdk::Pixbuf> _slider_pixbuf;
-
 private:
        void led_clicked();
        void processor_active_changed ();
@@ -155,11 +151,10 @@ private:
        PBD::ScopedConnection active_connection;
        PBD::ScopedConnection name_connection;
 
-       class Control {
+       class Control : public sigc::trackable {
        public:
-               Control (Glib::RefPtr<Gdk::Pixbuf>, boost::shared_ptr<ARDOUR::AutomationControl>, std::string const &);
+               Control (boost::shared_ptr<ARDOUR::AutomationControl>, std::string const &);
 
-               void set_pixel_width (int);
                void set_visible (bool);
                void add_state (XMLNode *) const;
                void set_state (XMLNode const *);
@@ -178,14 +173,20 @@ private:
 
        private:
                void slider_adjusted ();
+               void button_clicked ();
                void control_changed ();
                std::string state_id () const;
+               void set_tooltip ();
 
                boost::weak_ptr<ARDOUR::AutomationControl> _control;
+               /* things for a slider */
                Gtk::Adjustment _adjustment;
                Gtkmm2ext::HSliderController _slider;
                Gtk::Label _label;
-               bool _ignore_slider_adjustment;
+               Gtkmm2ext::PersistentTooltip _slider_persistant_tooltip;
+               /* things for a button */
+               ArdourButton _button;
+               bool _ignore_ui_adjustment;
                PBD::ScopedConnection _connection;
                bool _visible;
                std::string _name;
@@ -244,8 +245,6 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        void set_route (boost::shared_ptr<ARDOUR::Route>);
        void set_width (Width);
 
-       void update();
-
        void processor_operation (ProcessorOperation);
 
        void select_all_processors ();
@@ -299,6 +298,7 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        void object_drop (Gtkmm2ext::DnDVBox<ProcessorEntry> *, ProcessorEntry *, Glib::RefPtr<Gdk::DragContext> const &);
 
        Width _width;
+        bool  _redisplay_pending;
 
        Gtk::Menu *processor_menu;
        gint processor_menu_map_handler (GdkEventAny *ev);
@@ -341,8 +341,6 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        void delete_processors (const ProcSelection&);
        void paste_processors ();
        void paste_processors (boost::shared_ptr<ARDOUR::Processor> before);
-       void processors_up ();
-       void processors_down ();
 
        void delete_dragged_processors (const std::list<boost::shared_ptr<ARDOUR::Processor> >&);
        void clear_processors ();
@@ -361,15 +359,12 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject, public ARD
        static Glib::RefPtr<Gtk::Action> edit_generic_action;
        void paste_processor_state (const XMLNodeList&, boost::shared_ptr<ARDOUR::Processor>);
 
-       void activate_processor (boost::shared_ptr<ARDOUR::Processor>);
-       void deactivate_processor (boost::shared_ptr<ARDOUR::Processor>);
        void hide_processor_editor (boost::shared_ptr<ARDOUR::Processor>);
        void rename_processor (boost::shared_ptr<ARDOUR::Processor>);
 
        gint idle_delete_processor (boost::weak_ptr<ARDOUR::Processor>);
 
        void weird_plugin_dialog (ARDOUR::Plugin& p, ARDOUR::Route::ProcessorStreams streams);
-       void on_size_allocate (Gtk::Allocation &);
 
        void setup_entry_positions ();