set the CairoWidget focus handler; reset focus when the mouse pointer leaves the...
[ardour.git] / gtk2_ardour / monitor_section.h
index 41c8c074de57bb47c4745fda4a64300b93dc8c6b..d1fc7d8da111e44bc778b3ca94195085ffc5e687 100644 (file)
@@ -23,6 +23,8 @@
 #include "gtkmm2ext/bindable_button.h"
 
 #include "ardour_button.h"
+#include "ardour_knob.h"
+#include "ardour_display.h"
 #include "axis_view.h"
 #include "level_meter.h"
 #include "route_ui.h"
@@ -50,12 +52,18 @@ class MonitorSection : public RouteUI
   private:
         Gtk::VBox vpacker;
         Gtk::HBox hpacker;
-        Gtk::Table main_table;
-       Gtk::ScrolledWindow main_table_scroller;
         Gtk::VBox upper_packer;
         Gtk::VBox lower_packer;
         Gtkmm2ext::TearOff* _tearoff;
 
+       Gtk::HBox  channel_table_packer;
+       Gtk::HBox  table_hpacker;
+        Gtk::Table channel_table;
+        Gtk::Table channel_table_header;
+       Gtk::ScrolledWindow channel_table_scroller;
+       Gtk::Viewport channel_table_viewport;
+       Glib::RefPtr<Gtk::SizeGroup> channel_size_group;
+
         struct ChannelButtonSet {
             ArdourButton cut;
             ArdourButton dim;
@@ -68,13 +76,17 @@ class MonitorSection : public RouteUI
         typedef std::vector<ChannelButtonSet*> ChannelButtons;
         ChannelButtons _channel_buttons;
 
-        VolumeController* gain_control;
-        VolumeController* dim_control;
-        VolumeController* solo_boost_control;
-        VolumeController* solo_cut_control;
+        ArdourKnob* gain_control;
+        ArdourKnob* dim_control;
+        ArdourKnob* solo_boost_control;
+        ArdourKnob* solo_cut_control;
 
+               ArdourDisplay*  gain_display;
+               ArdourDisplay*  dim_display;
+               ArdourDisplay*  solo_boost_display;
+               ArdourDisplay*  solo_cut_display;
+               
         void populate_buttons ();
-       void set_button_names ();
         void map_state ();
 
         boost::shared_ptr<ARDOUR::MonitorProcessor> _monitor;
@@ -94,15 +106,15 @@ class MonitorSection : public RouteUI
         void cut_all ();
         void mono ();
         void toggle_exclusive_solo ();
+       void set_button_names () {}
         void toggle_mute_overrides_solo ();
         void dim_level_changed ();
         void solo_boost_changed ();
         void gain_value_changed ();
 
-        Gtk::RadioButtonGroup solo_model_group;
-        Gtk::RadioButton solo_in_place_button;
-        Gtk::RadioButton afl_button;
-        Gtk::RadioButton pfl_button;
+        ArdourButton solo_in_place_button;
+        ArdourButton afl_button;
+        ArdourButton pfl_button;
         Gtk::HBox        solo_model_box;
 
         void solo_use_in_place ();
@@ -131,5 +143,7 @@ class MonitorSection : public RouteUI
         PBD::ScopedConnection config_connection;
         PBD::ScopedConnectionList control_connections;
 
+       bool _inhibit_solo_model_update;
+       
         void assign_controllables ();
 };