#include "pbd/error.h"
#include "pbd/replace_all.h"
-#include "gtkmm2ext/tearoff.h"
#include "gtkmm2ext/actions.h"
#include "gtkmm2ext/utils.h"
#include <gtkmm/menu.h>
#include <gtkmm/menuitem.h>
+#include "widgets/tearoff.h"
#include "widgets/tooltips.h"
#include "ardour/amp.h"
using namespace PBD;
using namespace std;
-Glib::RefPtr<ActionGroup> MonitorSection::monitor_actions;
-Gtkmm2ext::ActionMap MonitorSection::myactions (X_("monitor section"));
-Gtkmm2ext::Bindings* MonitorSection::bindings = 0;
-
#define PX_SCALE(px) std::max((float)px, rintf((float)px * UIConfiguration::instance().get_ui_scale()))
MonitorSection::MonitorSection (Session* s)
Glib::RefPtr<Action> act;
- if (!monitor_actions) {
- register_actions ();
- load_bindings ();
- }
+ load_bindings ();
+ register_actions ();
+ set_data ("ardour-bindings", bindings);
+ bindings->associate ();
channel_size_group = SizeGroup::create (SIZE_GROUP_HORIZONTAL);
- set_data ("ardour-bindings", bindings);
-
_plugin_selector = new PluginSelector (PluginManager::instance());
insert_box = new ProcessorBox (_session, boost::bind (&MonitorSection::plugin_selector, this), _rr_selection, 0);
insert_box->set_no_show_all ();
vpacker.pack_start (master_packer, false, false, PX_SCALE(10));
vpacker.pack_end (*out_packer, false, false,
#ifdef MIXBUS
- scrollbar_height - 2 /* no outer frame */
+ scrollbar_height - 2 /* no outer sample */
#else
- scrollbar_height + 2 /* frame borders */
+ scrollbar_height + 2 /* sample borders */
#endif
);
populate_buttons ();
+ /* some actions may have been left in the wrong state from a
+ * previous monitor route that was then deleted
+ */
+ ActionManager::set_sensitive (monitor_actions, true);
+ ActionManager::set_sensitive (solo_actions, true);
+
} else {
/* no session */
string action_descr;
Glib::RefPtr<Action> act;
- monitor_actions = myactions.create_action_group (X_("Monitor"));
+ monitor_actions = ActionManager::create_action_group (X_("Monitor"));
- myactions.register_toggle_action (monitor_actions, "monitor-mono", _("Switch monitor to mono"),
- sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), MonitorMono));
-
- myactions.register_toggle_action (monitor_actions, "monitor-cut-all", _("Cut monitor"),
- sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), MonitorCutAll));
-
- myactions.register_toggle_action (monitor_actions, "monitor-dim-all", _("Dim monitor"),
- sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), MonitorDimAll));
-
- act = myactions.register_toggle_action (monitor_actions, "toggle-exclusive-solo", _("Toggle exclusive solo mode"),
+ act = ActionManager::register_toggle_action (monitor_actions, "toggle-exclusive-solo", _("Toggle exclusive solo mode"),
sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), ToggleExclusiveSolo));
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
tact->set_active (Config->get_exclusive_solo());
- act = myactions.register_toggle_action (monitor_actions, "toggle-mute-overrides-solo", _("Toggle mute overrides solo mode"),
+ act = ActionManager::register_toggle_action (monitor_actions, "toggle-mute-overrides-solo", _("Toggle mute overrides solo mode"),
sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), ToggleMuteOverridesSolo));
tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
action_name = string_compose (X_("monitor-cut-%1"), chn);
action_descr = string_compose (_("Cut monitor channel %1"), chn);
- myactions.register_toggle_action (monitor_actions, action_name.c_str(), action_descr.c_str(),
+ ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), action_descr.c_str(),
sigc::bind (sigc::ptr_fun (action_proxy1), CutChannel, chn));
action_name = string_compose (X_("monitor-dim-%1"), chn);
action_descr = string_compose (_("Dim monitor channel %1"), chn);
- myactions.register_toggle_action (monitor_actions, action_name.c_str(), action_descr.c_str(),
+ ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), action_descr.c_str(),
sigc::bind (sigc::ptr_fun (action_proxy1), DimChannel, chn));
action_name = string_compose (X_("monitor-solo-%1"), chn);
action_descr = string_compose (_("Solo monitor channel %1"), chn);
- myactions.register_toggle_action (monitor_actions, action_name.c_str(), action_descr.c_str(),
+ ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), action_descr.c_str(),
sigc::bind (sigc::ptr_fun (action_proxy1), SoloChannel, chn));
action_name = string_compose (X_("monitor-invert-%1"), chn);
action_descr = string_compose (_("Invert monitor channel %1"), chn);
- myactions.register_toggle_action (monitor_actions, action_name.c_str(), action_descr.c_str(),
+ ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), action_descr.c_str(),
sigc::bind (sigc::ptr_fun (action_proxy1), InvertChannel, chn));
}
- Glib::RefPtr<ActionGroup> solo_actions = myactions.create_action_group (X_("Solo"));
+ Glib::RefPtr<ActionGroup> solo_actions = ActionManager::create_action_group (X_("Solo"));
RadioAction::Group solo_group;
- myactions.register_radio_action (solo_actions, solo_group, "solo-use-in-place", _("In-place solo"),
- sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUseInPlace));
- myactions.register_radio_action (solo_actions, solo_group, "solo-use-afl", _("After Fade Listen (AFL) solo"),
- sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUseAFL));
- myactions.register_radio_action (solo_actions, solo_group, "solo-use-pfl", _("Pre Fade Listen (PFL) solo"),
- sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUsePFL));
+ ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-in-place", _("In-place solo"),
+ sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUseInPlace));
+ ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-afl", _("After Fade Listen (AFL) solo"),
+ sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUseAFL));
+ ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-pfl", _("Pre Fade Listen (PFL) solo"),
+ sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), SoloUsePFL));
- myactions.register_toggle_action (monitor_actions, "toggle-monitor-processor-box", _("Toggle Monitor Section Processor Box"),
- sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), ToggleMonitorProcessorBox));
+ ActionManager::register_toggle_action (monitor_actions, "toggle-monitor-processor-box", _("Toggle Monitor Section Processor Box"),
+ sigc::bind (sigc::ptr_fun (MonitorSection::action_proxy0), ToggleMonitorProcessorBox));
}
return;
}
- Glib::RefPtr<Action> act;
-
update_solo_model ();
+ Glib::RefPtr<Action> act;
+ Glib::RefPtr<ToggleAction> tact;
+
act = ActionManager::get_action (X_("Monitor"), "monitor-cut-all");
if (act) {
- Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
if (tact) {
tact->set_active (_monitor->cut_all());
}
act = ActionManager::get_action (X_("Monitor"), "monitor-dim-all");
if (act) {
- Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
if (tact) {
tact->set_active (_monitor->dim_all());
}
act = ActionManager::get_action (X_("Monitor"), "monitor-mono");
if (act) {
- Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
if (tact) {
tact->set_active (_monitor->mono());
}
void
MonitorSection::load_bindings ()
{
- bindings = Bindings::get_bindings (X_("Monitor Section"), myactions);
+ bindings = Bindings::get_bindings (X_("Monitor Section"));
}
void