Allow multiple MIDI tracer windows.
git-svn-id: svn://localhost/ardour2/branches/3.0@7392 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
4885f29be1
commit
c546ad359a
@ -437,7 +437,7 @@
|
||||
<menuitem action='ToggleBundleManager'/>
|
||||
<menuitem action='ToggleThemeManager'/>
|
||||
<menuitem action='ToggleBigClock'/>
|
||||
<menuitem action='ToggleMIDITracer'/>
|
||||
<menuitem action='NewMIDITracer'/>
|
||||
<menuitem action='toggle-audio-connection-manager'/>
|
||||
<menuitem action='toggle-midi-connection-manager'/>
|
||||
<menuitem action='toggle-log-window'/>
|
||||
|
@ -165,7 +165,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||
void toggle_theme_manager ();
|
||||
void toggle_bundle_manager ();
|
||||
void toggle_big_clock_window ();
|
||||
void toggle_midi_tracer_window ();
|
||||
void new_midi_tracer_window ();
|
||||
void toggle_route_params_window ();
|
||||
void toggle_editing_space();
|
||||
|
||||
@ -327,7 +327,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||
void update_transport_clocks (nframes_t pos);
|
||||
void record_state_changed ();
|
||||
|
||||
MidiTracer* _midi_tracer_window;
|
||||
std::list<MidiTracer*> _midi_tracer_windows;
|
||||
|
||||
/* Transport Control */
|
||||
|
||||
|
@ -107,9 +107,6 @@ ARDOUR_UI::setup_windows ()
|
||||
setup_transport();
|
||||
build_menu_bar ();
|
||||
|
||||
_midi_tracer_window = new MidiTracer ();
|
||||
manage_window (*_midi_tracer_window);
|
||||
|
||||
setup_tooltips ();
|
||||
|
||||
return 0;
|
||||
|
@ -216,18 +216,27 @@ ARDOUR_UI::toggle_big_clock_window ()
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::toggle_midi_tracer_window ()
|
||||
ARDOUR_UI::new_midi_tracer_window ()
|
||||
{
|
||||
RefPtr<Action> act = ActionManager::get_action (X_("Common"), X_("ToggleMIDITracer"));
|
||||
RefPtr<Action> act = ActionManager::get_action (X_("Common"), X_("NewMIDITracer"));
|
||||
if (!act) {
|
||||
return;
|
||||
}
|
||||
|
||||
RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic (act);
|
||||
if (tact->get_active ()) {
|
||||
_midi_tracer_window->show_all ();
|
||||
std::list<MidiTracer*>::iterator i = _midi_tracer_windows.begin ();
|
||||
while (i != _midi_tracer_windows.end() && (*i)->get_visible() == true) {
|
||||
++i;
|
||||
}
|
||||
|
||||
if (i == _midi_tracer_windows.end()) {
|
||||
/* all our MIDITracer windows are visible; make a new one */
|
||||
MidiTracer* t = new MidiTracer ();
|
||||
manage_window (*t);
|
||||
t->show_all ();
|
||||
_midi_tracer_windows.push_back (t);
|
||||
} else {
|
||||
_midi_tracer_window->hide ();
|
||||
/* re-use the hidden one */
|
||||
(*i)->show_all ();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -225,7 +225,7 @@ ARDOUR_UI::install_actions ()
|
||||
ActionManager::session_sensitive_actions.push_back (act);
|
||||
act = ActionManager::register_toggle_action (common_actions, X_("ToggleBigClock"), _("Big Clock"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_big_clock_window));
|
||||
ActionManager::session_sensitive_actions.push_back (act);
|
||||
act = ActionManager::register_toggle_action (common_actions, X_("ToggleMIDITracer"), _("MIDI Tracer"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_midi_tracer_window));
|
||||
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);
|
||||
ActionManager::register_action (common_actions, X_("About"), _("About"), sigc::mem_fun(*this, &ARDOUR_UI::show_about));
|
||||
ActionManager::register_action (common_actions, X_("Chat"), _("Chat"), sigc::mem_fun(*this, &ARDOUR_UI::launch_chat));
|
||||
|
Loading…
Reference in New Issue
Block a user