13
0

basic window infrastructure for meterbridge

This commit is contained in:
Robin Gareus 2013-06-19 10:25:18 +02:00
parent 04eaf7b418
commit b0998844db
7 changed files with 49 additions and 0 deletions

View File

@ -511,6 +511,7 @@
</menu>
<menu action = 'WindowMenu'>
<menuitem action='toggle-mixer'/>
<menuitem action='toggle-meterbridge'/>
<menuitem action='toggle-editor-mixer'/>
<separator/>

View File

@ -71,6 +71,7 @@
#include "ardour_dialog.h"
#include "ardour_window.h"
#include "editing.h"
#include "meterbridge.h"
#include "nsm.h"
#include "ui_config.h"
#include "enums.h"
@ -306,6 +307,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
void goto_editor_window ();
void goto_mixer_window ();
void toggle_mixer_window ();
void toggle_meterbridge ();
void toggle_editor_mixer ();
int setup_windows ();
@ -570,6 +572,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
PublicEditor *editor;
int create_editor ();
Meterbridge *meterbridge;
int create_meterbridge ();
/* Dialogs that can be created via new<T> */
WM::Proxy<SpeakerDialog> speaker_config_window;

View File

@ -78,6 +78,11 @@ ARDOUR_UI::setup_windows ()
return -1;
}
if (create_meterbridge ()) {
error << _("UI: cannot setup meterbridge") << endmsg;
return -1;
}
/* all other dialogs are created conditionally */
we_have_dependents ();

View File

@ -314,6 +314,23 @@ ARDOUR_UI::toggle_mixer_window ()
}
}
void
ARDOUR_UI::toggle_meterbridge ()
{
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Common"), X_("toggle-meterbridge"));
if (!act) {
return;
}
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
if (tact->get_active()) {
meterbridge->show_window ();
} else {
meterbridge->hide ();
}
}
void
ARDOUR_UI::toggle_editor_mixer ()
{

View File

@ -229,6 +229,7 @@ ARDOUR_UI::install_actions ()
ActionManager::register_toggle_action (common_actions, X_("toggle-mixer"), S_("Window|Mixer"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_mixer_window));
ActionManager::register_action (common_actions, X_("toggle-editor-mixer"), _("Toggle Editor+Mixer"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_editor_mixer));
ActionManager::register_toggle_action (common_actions, X_("toggle-meterbridge"), S_("Window|Meter"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_meterbridge));
act = ActionManager::register_action (common_actions, X_("NewMIDITracer"), _("MIDI Tracer"), sigc::mem_fun(*this, &ARDOUR_UI::new_midi_tracer_window));
ActionManager::session_sensitive_actions.push_back (act);

View File

@ -26,6 +26,7 @@
#include "actions.h"
#include "ardour_ui.h"
#include "mixer_ui.h"
#include "meterbridge.h"
#include "i18n.h"
@ -50,3 +51,22 @@ ARDOUR_UI::create_mixer ()
return 0;
}
int
ARDOUR_UI::create_meterbridge ()
{
try {
meterbridge = Meterbridge::instance ();
}
catch (failed_constructor& err) {
return -1;
}
meterbridge->signal_window_state_event().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::main_window_state_event_handler), false));
meterbridge->signal_unmap().connect (sigc::bind (sigc::ptr_fun (&ActionManager::uncheck_toggleaction), X_("<Actions>/Common/toggle-meterbridge")));
return 0;
}

View File

@ -145,6 +145,7 @@ gtk2_ardour_sources = [
'mixer_group_tabs.cc',
'mixer_strip.cc',
'mixer_ui.cc',
'meterbridge.cc',
'monitor_section.cc',
'mono_panner.cc',
'mono_panner_editor.cc',