diff options
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 180b4701f6..a3ac097a5a 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -215,6 +215,10 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[]) ARDOUR::Diskstream::DiskOverrun.connect (mem_fun(*this, &ARDOUR_UI::disk_overrun_handler)); ARDOUR::Diskstream::DiskUnderrun.connect (mem_fun(*this, &ARDOUR_UI::disk_underrun_handler)); + /* handle dialog requests */ + + ARDOUR::Session::Dialog.connect (mem_fun(*this, &ARDOUR_UI::session_dialog)); + /* handle pending state with a dialog */ ARDOUR::Session::AskAboutPendingState.connect (mem_fun(*this, &ARDOUR_UI::pending_state_dialog)); @@ -3010,6 +3014,24 @@ ARDOUR_UI::disk_speed_dialog_gone (int ignored_response, MessageDialog* msg) delete msg; } +void +ARDOUR_UI::session_dialog (std::string msg) +{ + ENSURE_GUI_THREAD (bind (mem_fun(*this, &ARDOUR_UI::session_dialog), msg)); + + MessageDialog* d; + + if (editor) { + d = new MessageDialog (*editor, msg, false, MESSAGE_INFO, BUTTONS_OK, true); + } else { + d = new MessageDialog (msg, false, MESSAGE_INFO, BUTTONS_OK, true); + } + + d->show_all (); + d->run (); + delete d; +} + int ARDOUR_UI::pending_state_dialog () { |