#include <gtkmm/box.h>
#include <gtkmm/table.h>
+#include <gtkmm/eventbox.h>
#include "gtkmm2ext/bindable_button.h"
#include "gtkmm2ext/bindings.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"
#include "monitor_selector.h"
class TearOff;
}
-class MonitorSection : public RouteUI
+class MonitorSection : public RouteUI, public Gtk::EventBox
{
public:
MonitorSection (ARDOUR::Session*);
boost::shared_ptr<ARDOUR::MonitorProcessor> _monitor;
boost::shared_ptr<ARDOUR::Route> _route;
+ enum MonitorActions {
+ MonitorMono,
+ MonitorCutAll,
+ MonitorDimAll,
+ ToggleExclusiveSolo,
+ ToggleMuteOverridesSolo,
+ SoloUseInPlace,
+ SoloUseAFL,
+ SoloUsePFL,
+ ToggleMonitorProcessorBox
+ };
+
+ enum ChannelActions {
+ CutChannel,
+ DimChannel,
+ SoloChannel,
+ InvertChannel
+ };
+
static Glib::RefPtr<Gtk::ActionGroup> monitor_actions;
- void register_actions ();
- void connect_actions ();
+ static void register_actions ();
+
+ static void action_proxy0 (enum MonitorActions);
+ static void action_proxy1 (enum ChannelActions, uint32_t);
void cut_channel (uint32_t);
void dim_channel (uint32_t);
void update_processor_box ();
+ void route_property_changed (const PBD::PropertyChange&) {}
+
ProcessorBox* insert_box;
PluginSelector* _plugin_selector;
RouteProcessorSelection _rr_selection;
uint32_t count_processors ();
void processors_changed (ARDOUR::RouteProcessorChange);
- Glib::RefPtr<Gtk::ToggleAction> proctoggle;
+ Glib::RefPtr<Gtk::Action> proctoggle;
bool _ui_initialized;
- private:
- Gtkmm2ext::ActionMap myactions;
+ static Gtkmm2ext::ActionMap myactions;
+ static Gtkmm2ext::Bindings* bindings;
+
+ static void load_bindings ();
+ bool enter_handler (GdkEventCrossing*);
+ bool leave_handler (GdkEventCrossing*);
};