diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index f30b5437e3..80bf7f0ba5 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -49,6 +49,7 @@ #include "LuaBridge/LuaBridge.h" +#include "ardour_message.h" #include "add_route_dialog.h" #include "ardour_ui.h" #include "route_group_dialog.h" @@ -670,10 +671,9 @@ AddRouteDialog::track_type_chosen () break; case MixedTrack: { - MessageDialog msg (_("Audio+MIDI tracks are intended for use ONLY with plugins that use both audio and MIDI input data.\n\n" - "Use a normal audio or MIDI track if you do not plan to use such a plugin."), - true, MESSAGE_INFO, BUTTONS_OK, true); - msg.set_position (WIN_POS_MOUSE); + ArdourMessageDialog msg (_("Audio+MIDI tracks are intended for use ONLY with plugins that use both audio and MIDI input data.\n\n" + "Use a normal audio or MIDI track if you do not plan to use such a plugin."), + true, MESSAGE_INFO, BUTTONS_OK, true); msg.run (); } diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index e556d8e1a3..fa777f2512 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -151,6 +151,7 @@ typedef uint64_t microseconds_t; #include "actions.h" #include "add_route_dialog.h" #include "ambiguous_file_dialog.h" +#include "ardour_message.h" #include "ardour_ui.h" #include "audio_clock.h" #include "audio_region_view.h" @@ -228,14 +229,15 @@ sigc::signal ARDOUR_UI::CloseAllDialogs; static bool ask_about_configuration_copy (string const & old_dir, string const & new_dir, int version) { - MessageDialog msg (string_compose (_("%1 %2.x has discovered configuration files from %1 %3.x.\n\n" - "Would you like these files to be copied and used for %1 %2.x?\n\n" - "(This will require you to restart %1.)"), - PROGRAM_NAME, PROGRAM_VERSION, version), - false, /* no markup */ - Gtk::MESSAGE_INFO, - Gtk::BUTTONS_YES_NO, - true /* modal, though it hardly matters since it is the only window */ + ArdourMessageDialog msg (string_compose ( + _("%1 %2.x has discovered configuration files from %1 %3.x.\n\n" + "Would you like these files to be copied and used for %1 %2.x?\n\n" + "(This will require you to restart %1.)"), + PROGRAM_NAME, PROGRAM_VERSION, version), + false, /* no markup */ + Gtk::MESSAGE_INFO, + Gtk::BUTTONS_YES_NO, + true /* modal, though it hardly matters since it is the only window */ ); msg.set_default_response (Gtk::RESPONSE_YES); @@ -363,7 +365,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir) /* "touch" the been-here-before path now that config has been migrated */ PBD::ScopedFileDescriptor fout (g_open (been_here_before_path ().c_str(), O_CREAT|O_TRUNC|O_RDWR, 0666)); } - MessageDialog msg (string_compose (_("Your configuration files were copied. You can now restart %1."), PROGRAM_NAME), true); + ArdourMessageDialog msg (string_compose (_("Your configuration files were copied. You can now restart %1."), PROGRAM_NAME), true); msg.run (); /* configuration was modified, exit immediately */ _exit (EXIT_SUCCESS); @@ -615,8 +617,7 @@ was not fast enough. Try to restart\n\ the audio backend and save the session."), PROGRAM_NAME); } - MessageDialog msg (_main_window, msgstr); - pop_back_splash (msg); + ArdourMessageDialog msg (_main_window, msgstr); msg.run (); if (free_reason) { @@ -1002,12 +1003,11 @@ ARDOUR_UI::finish() /* use the default name */ if (save_state_canfail ("")) { /* failed - don't quit */ - MessageDialog msg (_main_window, + ArdourMessageDialog msg (_main_window, string_compose (_("\ %1 was unable to save your session.\n\n\ If you still wish to quit, please use the\n\n\ \"Just quit\" option."), PROGRAM_NAME)); - pop_back_splash(msg); msg.run (); return; } @@ -1555,12 +1555,11 @@ ARDOUR_UI::session_add_foldback_bus (int32_t channels, uint32_t how_many, string void ARDOUR_UI::display_insufficient_ports_message () { - MessageDialog msg (_main_window, + ArdourMessageDialog msg (_main_window, string_compose (_("There are insufficient ports available\n\ to create a new track or bus.\n\ You should save %1, exit and\n\ restart with more ports."), PROGRAM_NAME)); - pop_back_splash (msg); msg.run (); } @@ -1700,7 +1699,7 @@ ARDOUR_UI::transport_record (bool roll) switch (_session->record_status()) { case Session::Disabled: if (_session->ntracks() == 0) { - MessageDialog msg (_main_window, _("Please create one or more tracks before trying to record.\nYou can do this with the \"Add Track or Bus\" option in the Session menu.")); + ArdourMessageDialog msg (_main_window, _("Please create one or more tracks before trying to record.\nYou can do this with the \"Add Track or Bus\" option in the Session menu.")); msg.run (); return; } @@ -2325,11 +2324,11 @@ ARDOUR_UI::display_cleanup_results (ARDOUR::CleanupReport& rep, const gchar* lis removed = rep.paths.size(); if (removed == 0) { - MessageDialog msgd (_main_window, - _("No files were ready for clean-up"), - true, - Gtk::MESSAGE_INFO, - Gtk::BUTTONS_OK); + ArdourMessageDialog msgd (_main_window, + _("No files were ready for clean-up"), + true, + Gtk::MESSAGE_INFO, + Gtk::BUTTONS_OK); msgd.set_title (_("Clean-up")); msgd.set_secondary_text (_("If this seems surprising, \n\ check for any existing snapshots.\n\ @@ -2468,10 +2467,10 @@ ARDOUR_UI::cleanup () } - MessageDialog checker (_("Are you sure you want to clean-up?"), - true, - Gtk::MESSAGE_QUESTION, - Gtk::BUTTONS_NONE); + ArdourMessageDialog checker (_("Are you sure you want to clean-up?"), + true, + Gtk::MESSAGE_QUESTION, + Gtk::BUTTONS_NONE); checker.set_title (_("Clean-up")); @@ -2747,7 +2746,7 @@ ARDOUR_UI::disk_overrun_handler () if (!have_disk_speed_dialog_displayed) { have_disk_speed_dialog_displayed = true; - MessageDialog* msg = new MessageDialog (_main_window, string_compose (_("\ + ArdourMessageDialog* msg = new ArdourMessageDialog (_main_window, string_compose (_("\ The disk system on your computer\n\ was not able to keep up with %1.\n\ \n\ @@ -2775,7 +2774,7 @@ ARDOUR_UI::disk_underrun_handler () if (!have_disk_speed_dialog_displayed) { have_disk_speed_dialog_displayed = true; - MessageDialog* msg = new MessageDialog ( + ArdourMessageDialog* msg = new ArdourMessageDialog ( _main_window, string_compose (_("The disk system on your computer\n\ was not able to keep up with %1.\n\ \n\ @@ -2797,13 +2796,8 @@ void ARDOUR_UI::session_dialog (std::string msg) { ENSURE_GUI_THREAD (*this, &ARDOUR_UI::session_dialog, msg) - - MessageDialog* d; - - d = new MessageDialog (msg, false, MESSAGE_INFO, BUTTONS_OK, true); - d->show_all (); - d->run (); - delete d; + ArdourMessageDialog d (msg, false, MESSAGE_INFO, BUTTONS_OK, true); + d.run (); } int diff --git a/gtk2_ardour/ardour_ui_access_web.cc b/gtk2_ardour/ardour_ui_access_web.cc index b4b7bd1f68..9dc26f13cb 100644 --- a/gtk2_ardour/ardour_ui_access_web.cc +++ b/gtk2_ardour/ardour_ui_access_web.cc @@ -39,6 +39,7 @@ #include "pbd/i18n.h" #include "pbd/openuri.h" +#include "ardour_message.h" #include "ardour_ui.h" using namespace ARDOUR; @@ -49,7 +50,7 @@ using namespace std; void ARDOUR_UI::launch_chat () { - MessageDialog dialog(_("Just ask and wait for an answer.\nIt may take from minutes to hours."), true); + ArdourMessageDialog dialog(_("Just ask and wait for an answer.\nIt may take from minutes to hours."), true); dialog.set_title (_("About the Chat")); dialog.set_secondary_text (_("When you're inside the chat just ask your question and wait for an answer. The chat is occupied by real people with real lives so many of them are passively online and might not read your question before minutes or hours later.\nSo please be patient and wait for an answer.\n\nYou should just leave the chat window open and check back regularly until someone has answered your question.")); diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc index 42c1404733..042e22ee70 100644 --- a/gtk2_ardour/ardour_ui_dependents.cc +++ b/gtk2_ardour/ardour_ui_dependents.cc @@ -41,6 +41,7 @@ #include "gtkmm2ext/bindings.h" #include "actions.h" +#include "ardour_message.h" #include "ardour_ui.h" #include "public_editor.h" #include "meterbridge.h" @@ -205,11 +206,11 @@ ARDOUR_UI::idle_ask_about_quit () } else { /* no session or session not dirty, but still ask anyway */ - Gtk::MessageDialog msg (string_compose (_("Quit %1?"), PROGRAM_NAME), - false, /* no markup */ - Gtk::MESSAGE_INFO, - Gtk::BUTTONS_YES_NO, - true); /* modal */ + ArdourMessageDialog msg (string_compose (_("Quit %1?"), PROGRAM_NAME), + false, /* no markup */ + Gtk::MESSAGE_INFO, + Gtk::BUTTONS_YES_NO, + true); /* modal */ msg.set_default_response (Gtk::RESPONSE_YES); if (msg.run() == Gtk::RESPONSE_YES) { diff --git a/gtk2_ardour/ardour_ui_engine.cc b/gtk2_ardour/ardour_ui_engine.cc index 8a0e115c80..5d3d06b2cc 100644 --- a/gtk2_ardour/ardour_ui_engine.cc +++ b/gtk2_ardour/ardour_ui_engine.cc @@ -40,6 +40,7 @@ #include "ardour/audioengine.h" +#include "ardour_message.h" #include "ardour_ui.h" #include "engine_dialog.h" #include "gui_thread.h" @@ -56,11 +57,11 @@ using namespace std; void ARDOUR_UI::audioengine_became_silent () { - MessageDialog msg (string_compose (_("This is a free/demo copy of %1. It has just switched to silent mode."), PROGRAM_NAME), - true, - Gtk::MESSAGE_WARNING, - Gtk::BUTTONS_NONE, - true); + ArdourMessageDialog msg (string_compose (_("This is a free/demo copy of %1. It has just switched to silent mode."), PROGRAM_NAME), + true, + Gtk::MESSAGE_WARNING, + Gtk::BUTTONS_NONE, + true); msg.set_title (string_compose (_("%1 is now silent"), PROGRAM_NAME)); @@ -123,7 +124,7 @@ void ARDOUR_UI::halt_on_xrun_message () { cerr << "HALT on xrun\n"; - MessageDialog msg (_main_window, _("Recording was stopped because your system could not keep up.")); + ArdourMessageDialog msg (_main_window, _("Recording was stopped because your system could not keep up.")); msg.run (); } @@ -149,11 +150,10 @@ bool ARDOUR_UI::check_audioengine (Gtk::Window& parent) { if (!AudioEngine::instance()->running()) { - MessageDialog msg (parent, string_compose ( - _("%1 is not connected to any audio backend.\n" - "You cannot open or close sessions in this condition"), - PROGRAM_NAME)); - pop_back_splash (msg); + ArdourMessageDialog msg (parent, string_compose ( + _("%1 is not connected to any audio backend.\n" + "You cannot open or close sessions in this condition"), + PROGRAM_NAME)); msg.run (); return false; } diff --git a/gtk2_ardour/ardour_ui_session.cc b/gtk2_ardour/ardour_ui_session.cc index 4cb73619e5..3184e116c3 100644 --- a/gtk2_ardour/ardour_ui_session.cc +++ b/gtk2_ardour/ardour_ui_session.cc @@ -56,6 +56,7 @@ #include "ardour/session_state_utils.h" #include "ardour/session_directory.h" +#include "ardour_message.h" #include "ardour_ui.h" #include "engine_dialog.h" #include "missing_plugin_dialog.h" @@ -85,18 +86,16 @@ ARDOUR_UI::ask_about_loading_existing_session (const std::string& session_path) { std::string str = string_compose (_("This session\n%1\nalready exists. Do you want to open it?"), session_path); - MessageDialog msg (str, - false, - Gtk::MESSAGE_WARNING, - Gtk::BUTTONS_YES_NO, - true); - + ArdourMessageDialog msg (str, + false, + Gtk::MESSAGE_WARNING, + Gtk::BUTTONS_YES_NO, + true); msg.set_name (X_("OpenExistingDialog")); msg.set_title (_("Open Existing Session")); msg.set_wmclass (X_("existing_session"), PROGRAM_NAME); msg.set_position (Gtk::WIN_POS_CENTER); - pop_back_splash (msg); switch (msg.run()) { case RESPONSE_YES: @@ -188,7 +187,7 @@ ARDOUR_UI::session_dialog_response_handler (int response, SessionDialog* session int rv = ARDOUR::inflate_session (session_name, Config->get_default_session_parent_dir(), session_path, session_name); if (rv < 0) { - MessageDialog msg (*session_dialog, string_compose (_("Extracting session-archive failed: %1"), inflate_error (rv))); + ArdourMessageDialog msg (*session_dialog, string_compose (_("Extracting session-archive failed: %1"), inflate_error (rv))); msg.run (); return; /* back to main event loop */ } else if (rv == 0) { @@ -237,10 +236,10 @@ ARDOUR_UI::session_dialog_response_handler (int response, SessionDialog* session char illegal = Session::session_name_is_legal (session_name); if (illegal) { - MessageDialog msg (*session_dialog, - string_compose (_("To ensure compatibility with various systems\n" - "session names may not contain a '%1' character"), - illegal)); + ArdourMessageDialog msg (*session_dialog, + string_compose (_("To ensure compatibility with various systems\n" + "session names may not contain a '%1' character"), + illegal)); msg.run (); return; /* back to main event loop */ } @@ -263,8 +262,7 @@ ARDOUR_UI::session_dialog_response_handler (int response, SessionDialog* session } else { if (!likely_new) { - pop_back_splash (*session_dialog); - MessageDialog msg (string_compose (_("There is no existing session at \"%1\""), session_path)); + ArdourMessageDialog msg (string_compose (_("There is no existing session at \"%1\""), session_path)); msg.run (); return; /* back to main event loop */ } @@ -272,9 +270,8 @@ ARDOUR_UI::session_dialog_response_handler (int response, SessionDialog* session char illegal = Session::session_name_is_legal(session_name); if (illegal) { - pop_back_splash (*session_dialog); - MessageDialog msg (*session_dialog, string_compose(_("To ensure compatibility with various systems\n" - "session names may not contain a '%1' character"), illegal)); + ArdourMessageDialog msg (*session_dialog, string_compose(_("To ensure compatibility with various systems\n" + "session names may not contain a '%1' character"), illegal)); msg.run (); return; /* back to main event loop */ @@ -407,19 +404,16 @@ ARDOUR_UI::load_session_stage_two (const std::string& path, const std::string& s catch (AudioEngine::PortRegistrationFailure const& err) { - MessageDialog msg (err.what(), - true, - Gtk::MESSAGE_INFO, - Gtk::BUTTONS_CLOSE); + ArdourMessageDialog msg (err.what(), + true, + Gtk::MESSAGE_INFO, + Gtk::BUTTONS_CLOSE); msg.set_title (_("Port Registration Error")); msg.set_secondary_text (_("Click the Close button to try again.")); msg.set_position (Gtk::WIN_POS_CENTER); - pop_back_splash (msg); - msg.present (); int response = msg.run (); - msg.hide (); switch (response) { @@ -431,17 +425,15 @@ ARDOUR_UI::load_session_stage_two (const std::string& path, const std::string& s goto out; } catch (SessionException const& e) { - MessageDialog msg (string_compose( - _("Session \"%1 (snapshot %2)\" did not load successfully:\n%3"), - path, snap_name, e.what()), - true, - Gtk::MESSAGE_INFO, - BUTTONS_OK); + ArdourMessageDialog msg (string_compose( + _("Session \"%1 (snapshot %2)\" did not load successfully:\n%3"), + path, snap_name, e.what()), + true, + Gtk::MESSAGE_INFO, + BUTTONS_OK); msg.set_title (_("Loading Error")); msg.set_position (Gtk::WIN_POS_CENTER); - pop_back_splash (msg); - msg.present (); dump_errors (cerr); @@ -452,17 +444,15 @@ ARDOUR_UI::load_session_stage_two (const std::string& path, const std::string& s } catch (...) { - MessageDialog msg (string_compose( + ArdourMessageDialog msg (string_compose( _("Session \"%1 (snapshot %2)\" did not load successfully."), path, snap_name), - true, - Gtk::MESSAGE_INFO, - BUTTONS_OK); + true, + Gtk::MESSAGE_INFO, + BUTTONS_OK); msg.set_title (_("Loading Error")); msg.set_position (Gtk::WIN_POS_CENTER); - pop_back_splash (msg); - msg.present (); dump_errors (cerr); @@ -481,15 +471,13 @@ ARDOUR_UI::load_session_stage_two (const std::string& path, const std::string& s } if (!new_session->writable()) { - MessageDialog msg (_("This session has been opened in read-only mode.\n\nYou will not be able to record or save."), - true, - Gtk::MESSAGE_INFO, - BUTTONS_OK); + ArdourMessageDialog msg (_("This session has been opened in read-only mode.\n\nYou will not be able to record or save."), + true, + Gtk::MESSAGE_INFO, + BUTTONS_OK); msg.set_title (_("Read-only Session")); msg.set_position (Gtk::WIN_POS_CENTER); - pop_back_splash (msg); - msg.present (); (void) msg.run (); msg.hide (); } @@ -567,10 +555,9 @@ ARDOUR_UI::build_session (const std::string& path, const std::string& snap_name, cerr << "Here are the errors associated with this failed session:\n"; dump_errors (cerr); cerr << "---------\n"; - MessageDialog msg (string_compose(_("Could not create session in \"%1\": %2"), path, e.what())); + ArdourMessageDialog msg (string_compose(_("Could not create session in \"%1\": %2"), path, e.what())); msg.set_title (_("Loading Error")); msg.set_position (Gtk::WIN_POS_CENTER); - pop_back_splash (msg); msg.run (); return -1; } @@ -578,10 +565,9 @@ ARDOUR_UI::build_session (const std::string& path, const std::string& snap_name, cerr << "Here are the errors associated with this failed session:\n"; dump_errors (cerr); cerr << "---------\n"; - MessageDialog msg (string_compose(_("Could not create session in \"%1\""), path)); + ArdourMessageDialog msg (string_compose(_("Could not create session in \"%1\""), path)); msg.set_title (_("Loading Error")); msg.set_position (Gtk::WIN_POS_CENTER); - pop_back_splash (msg); msg.run (); return -1; } @@ -635,12 +621,11 @@ ARDOUR_UI::snapshot_session (bool switch_to_it) break; case 1: if (save_state_canfail ("")) { - MessageDialog msg (_main_window, + ArdourMessageDialog msg (_main_window, string_compose (_("\ %1 was unable to save your session.\n\n\ If you still wish to proceed, please use the\n\n\ \"Don't save now\" option."), PROGRAM_NAME)); - pop_back_splash(msg); msg.run (); return; } @@ -715,7 +700,7 @@ ARDOUR_UI::rename_session () char illegal = Session::session_name_is_legal (name); if (illegal) { - MessageDialog msg (string_compose (_("To ensure compatibility with various systems\n" + ArdourMessageDialog msg (string_compose (_("To ensure compatibility with various systems\n" "session names may not contain a '%1' character"), illegal)); msg.run (); goto again; @@ -723,8 +708,7 @@ ARDOUR_UI::rename_session () switch (_session->rename (name)) { case -1: { - MessageDialog msg (_("That name is already in use by another directory/folder. Please try again.")); - msg.set_position (WIN_POS_MOUSE); + ArdourMessageDialog msg (_("That name is already in use by another directory/folder. Please try again.")); msg.run (); goto again; break; @@ -732,8 +716,7 @@ ARDOUR_UI::rename_session () case 0: break; default: { - MessageDialog msg (_("Renaming this session failed.\nThings could be seriously messed up at this point")); - msg.set_position (WIN_POS_MOUSE); + ArdourMessageDialog msg (_("Renaming this session failed.\nThings could be seriously messed up at this point")); msg.run (); break; } @@ -785,12 +768,11 @@ ARDOUR_UI::save_session_as () break; case 1: if (save_state_canfail ("")) { - MessageDialog msg (_main_window, + ArdourMessageDialog msg (_main_window, string_compose (_("\ %1 was unable to save your session.\n\n\ If you still wish to proceed, please use the\n\n\ \"Don't save now\" option."), PROGRAM_NAME)); - pop_back_splash(msg); msg.run (); return; } @@ -861,7 +843,7 @@ If you still wish to proceed, please use the\n\n\ if (_session->save_as (sa)) { /* ERROR MESSAGE */ - MessageDialog msg (string_compose (_("Save As failed: %1"), sa.failure_message)); + ArdourMessageDialog msg (string_compose (_("Save As failed: %1"), sa.failure_message)); msg.run (); } @@ -900,7 +882,7 @@ ARDOUR_UI::archive_session () } if (_session->archive_session (sad.target_folder(), sad.name(), sad.encode_option (), sad.compression_level (), sad.only_used_sources (), &sad)) { - MessageDialog msg (_("Session Archiving failed.")); + ArdourMessageDialog msg (_("Session Archiving failed.")); msg.run (); } } @@ -935,8 +917,8 @@ ARDOUR_UI::process_snapshot_session_prompter (Prompter& prompter, bool switch_to if (do_save) { char illegal = Session::session_name_is_legal(snapname); if (illegal) { - MessageDialog msg (string_compose (_("To ensure compatibility with various systems\n" - "snapshot names may not contain a '%1' character"), illegal)); + ArdourMessageDialog msg (string_compose (_("To ensure compatibility with various systems\n" + "snapshot names may not contain a '%1' character"), illegal)); msg.run (); return false; } @@ -1026,8 +1008,8 @@ ARDOUR_UI::open_session () load_session (path, name); } else if (rv < 0) { - MessageDialog msg (_main_window, - string_compose (_("Extracting session-archive failed: %1"), inflate_error (rv))); + ArdourMessageDialog msg (_main_window, + string_compose (_("Extracting session-archive failed: %1"), inflate_error (rv))); msg.run (); } else if (ARDOUR::find_session (session_path, path, name, isnew) == 0) { diff --git a/gtk2_ardour/ardour_ui_startup.cc b/gtk2_ardour/ardour_ui_startup.cc index 8327f5be06..e55bf6e0aa 100644 --- a/gtk2_ardour/ardour_ui_startup.cc +++ b/gtk2_ardour/ardour_ui_startup.cc @@ -61,6 +61,7 @@ #include "gtkmm2ext/application.h" #include "ambiguous_file_dialog.h" +#include "ardour_message.h" #include "ardour_ui.h" #include "debug.h" #include "engine_dialog.h" @@ -168,12 +169,12 @@ ARDOUR_UI::session_format_mismatch (std::string xml_path, std::string backup_pat const char* start_mono = ""; const char* end_mono = ""; - MessageDialog msg (string_compose (_("%4This is a session from an older version of %3%5\n\n" - "%3 has copied the old session file\n\n%6%1%7\n\nto\n\n%6%2%7\n\n" - "From now on, use the backup copy with older versions of %3"), - xml_path, backup_path, PROGRAM_NAME, - start_big, end_big, - start_mono, end_mono), true); + ArdourMessageDialog msg (string_compose (_("%4This is a session from an older version of %3%5\n\n" + "%3 has copied the old session file\n\n%6%1%7\n\nto\n\n%6%2%7\n\n" + "From now on, use the backup copy with older versions of %3"), + xml_path, backup_path, PROGRAM_NAME, + start_big, end_big, + start_mono, end_mono), true); msg.run (); } @@ -215,7 +216,7 @@ audio may be played at the wrong sample rate.\n"), desired, PROGRAM_NAME, actual void ARDOUR_UI::sr_mismatch_message (samplecnt_t desired, samplecnt_t actual) { - MessageDialog msg (string_compose (_("\ + ArdourMessageDialog msg (string_compose (_("\ This session was created with a sample rate of %1 Hz, but\n\ %2 is currently running at %3 Hz.\n\ Audio will be recorded and played at the wrong sample rate.\n\ @@ -617,7 +618,7 @@ ARDOUR_UI::check_memory_locking () if (ram == 0 || ((double) limits.rlim_cur / ram) < 0.75) { - MessageDialog msg ( + ArdourMessageDialog msg ( string_compose ( _("WARNING: Your system has a limit for maximum amount of locked memory. " "This might cause %1 to run out of memory before your system " @@ -643,8 +644,6 @@ ARDOUR_UI::check_memory_locking () vbox->show(); hbox.show (); - pop_back_splash (msg); - msg.run (); if (cb.get_active()) { diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index 1c3875dfe3..24e7f49775 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -52,6 +52,7 @@ #include "ardour/utils.h" #include "pbd/memento_command.h" +#include "ardour_message.h" #include "ardour_ui.h" #include "cursor_context.h" #include "editor.h" @@ -81,7 +82,7 @@ void Editor::add_external_audio_action (ImportMode mode_hint) { if (_session == 0) { - MessageDialog msg (_("You can't import or embed an audiofile until you have a session loaded.")); + ArdourMessageDialog msg (_("You can't import or embed an audiofile until you have a session loaded.")); msg.run (); return; } @@ -103,7 +104,7 @@ Editor::external_audio_dialog () uint32_t midi_track_cnt; if (_session == 0) { - MessageDialog msg (_("You can't import or embed an audiofile until you have a session loaded.")); + ArdourMessageDialog msg (_("You can't import or embed an audiofile until you have a session loaded.")); msg.run (); return; } @@ -184,7 +185,7 @@ Editor::check_whether_and_how_to_import(string path, bool all_or_nothing) message = string_compose (_("The session already contains a source file named %1. Do you want to import %2 as a new source, or skip it?"), wave_name, wave_name); } - MessageDialog dialog(message, false, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_NONE, true); + ArdourMessageDialog dialog(message, false, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_NONE, true); if (all_or_nothing) { // disabled @@ -198,10 +199,7 @@ Editor::check_whether_and_how_to_import(string path, bool all_or_nothing) //dialog.add_button("Skip all", 4); // All or rest? - dialog.show(); - function = dialog.run (); - dialog.hide(); } @@ -650,8 +648,7 @@ Editor::embed_sndfiles (vector paths, } if (!finfo.seekable) { - MessageDialog msg ( string_compose ( _("%1\nThis audiofile cannot be embedded. It must be imported!"), short_path (path, 40)), false, Gtk::MESSAGE_ERROR); - msg.set_position (WIN_POS_MOUSE); + ArdourMessageDialog msg (string_compose (_("%1\nThis audiofile cannot be embedded. It must be imported!"), short_path (path, 40)), false, Gtk::MESSAGE_ERROR); msg.run (); return -2; } diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 9202c3f742..195d4d1643 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -82,6 +82,7 @@ #include "canvas/canvas.h" #include "actions.h" +#include "ardour_message.h" #include "ardour_ui.h" #include "audio_region_view.h" #include "audio_streamview.h" @@ -3991,7 +3992,7 @@ Editor::freeze_route () } if (!clicked_routeview->track()->bounceable (clicked_routeview->track()->main_outs(), true)) { - MessageDialog d ( + ArdourMessageDialog d ( _("This track/bus cannot be frozen because the signal adds or loses channels before reaching the outputs.\n" "This is typically caused by plugins that generate stereo output from mono input or vice versa.") ); @@ -4001,9 +4002,9 @@ Editor::freeze_route () } if (clicked_routeview->track()->has_external_redirects()) { - MessageDialog d (string_compose (_("%1\n\nThis track has at least one send/insert/return as part of its signal flow.\n\n" - "Freezing will only process the signal as far as the first send/insert/return."), - clicked_routeview->track()->name()), true, MESSAGE_INFO, BUTTONS_NONE, true); + ArdourMessageDialog d (string_compose (_("%1\n\nThis track has at least one send/insert/return as part of its signal flow.\n\n" + "Freezing will only process the signal as far as the first send/insert/return."), + clicked_routeview->track()->name()), true, MESSAGE_INFO, BUTTONS_NONE, true); d.add_button (_("Freeze anyway"), Gtk::RESPONSE_OK); d.add_button (_("Don't freeze"), Gtk::RESPONSE_CANCEL); @@ -4052,7 +4053,7 @@ Editor::bounce_range_selection (bool replace, bool enable_processing) RouteTimeAxisView* rtv = dynamic_cast (*i); if (rtv && rtv->track() && replace && enable_processing && !rtv->track()->bounceable (rtv->track()->main_outs(), false)) { - MessageDialog d ( + ArdourMessageDialog d ( _("You can't perform this operation because the processing of the signal " "will cause one or more of the tracks to end up with a region with more channels than this track has inputs.\n\n" "You can do this without processing, which is a different operation.") @@ -7048,10 +7049,10 @@ Editor::split_region_at_points (boost::shared_ptr r, AnalysisFeatureList if (positions.size() > 20 && can_ferret) { std::string msgstr = string_compose (_("You are about to split\n%1\ninto %2 pieces.\nThis could take a long time."), r->name(), positions.size() + 1); - MessageDialog msg (msgstr, - false, - Gtk::MESSAGE_INFO, - Gtk::BUTTONS_OK_CANCEL); + ArdourMessageDialog msg (msgstr, + false, + Gtk::MESSAGE_INFO, + Gtk::BUTTONS_OK_CANCEL); if (can_ferret) { msg.add_button (_("Call for the Ferret!"), RESPONSE_APPLY); @@ -7061,8 +7062,6 @@ Editor::split_region_at_points (boost::shared_ptr r, AnalysisFeatureList } msg.set_title (_("Excessive split?")); - msg.present (); - int response = msg.run(); msg.hide (); @@ -7636,19 +7635,17 @@ Editor::_remove_tracks () } if (special_bus && !Config->get_allow_special_bus_removal()) { - MessageDialog msg (_("That would be bad news ...."), - false, - Gtk::MESSAGE_INFO, - Gtk::BUTTONS_OK); - msg.set_secondary_text (string_compose (_( - "Removing the master or monitor bus is such a bad idea\n\ + ArdourMessageDialog msg (_("That would be bad news ...."), + false, + Gtk::MESSAGE_INFO, + Gtk::BUTTONS_OK); + msg.set_secondary_text (string_compose (_("Removing the master or monitor bus is such a bad idea\n\ that %1 is not going to allow it.\n\ \n\ If you really want to do this sort of thing\n\ edit your ardour.rc file to set the\n\ \"allow-special-bus-removal\" option to be \"yes\""), PROGRAM_NAME)); - msg.present (); msg.run (); return; } @@ -7764,17 +7761,15 @@ void Editor::do_insert_time () { if (selection->tracks.empty()) { - MessageDialog msg (_("You must first select some tracks to Insert Time."), - true, MESSAGE_INFO, BUTTONS_OK, true); - msg.set_position (WIN_POS_MOUSE); + ArdourMessageDialog msg (_("You must first select some tracks to Insert Time."), + true, MESSAGE_INFO, BUTTONS_OK, true); msg.run (); return; } if (Config->get_edit_mode() == Lock) { - MessageDialog msg (_("You cannot insert time in Lock Edit mode."), - true, MESSAGE_INFO, BUTTONS_OK, true); - msg.set_position (WIN_POS_MOUSE); + ArdourMessageDialog msg (_("You cannot insert time in Lock Edit mode."), + true, MESSAGE_INFO, BUTTONS_OK, true); msg.run (); return; } @@ -7939,17 +7934,15 @@ void Editor::do_remove_time () { if (selection->tracks.empty()) { - MessageDialog msg (_("You must first select some tracks to Remove Time."), - true, MESSAGE_INFO, BUTTONS_OK, true); - msg.set_position (WIN_POS_MOUSE); + ArdourMessageDialog msg (_("You must first select some tracks to Remove Time."), + true, MESSAGE_INFO, BUTTONS_OK, true); msg.run (); return; } if (Config->get_edit_mode() == Lock) { - MessageDialog msg (_("You cannot remove time in Lock Edit mode."), - true, MESSAGE_INFO, BUTTONS_OK, true); - msg.set_position (WIN_POS_MOUSE); + ArdourMessageDialog msg (_("You cannot remove time in Lock Edit mode."), + true, MESSAGE_INFO, BUTTONS_OK, true); msg.run (); return; } @@ -8178,7 +8171,8 @@ Editor::fit_tracks (TrackViewList & tracks) double first_y_pos = DBL_MAX; if (h < TimeAxisView::preset_height (HeightSmall)) { - MessageDialog msg (_("There are too many tracks to fit in the current window")); + ArdourMessageDialog msg (_("There are too many tracks to fit in the current window")); + msg.run (); /* too small to be displayed */ return; } diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index 28c2ee5d26..a8209514c1 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -29,8 +29,6 @@ #include -#include - #include "pbd/error.h" #include "pbd/locale_guard.h" #include "pbd/xml++.h" @@ -57,6 +55,7 @@ #include "opts.h" #include "debug.h" +#include "ardour_message.h" #include "ardour_ui.h" #include "engine_dialog.h" #include "gui_thread.h" @@ -130,7 +129,7 @@ EngineControl::EngineControl () vector backends = ARDOUR::AudioEngine::instance()->available_backends(); if (backends.empty()) { - MessageDialog msg (string_compose (_("No audio/MIDI backends detected. %1 cannot run\n\n(This is a build/packaging/system error. It should never happen.)"), PROGRAM_NAME)); + ArdourMessageDialog msg (string_compose (_("No audio/MIDI backends detected. %1 cannot run\n\n(This is a build/packaging/system error. It should never happen.)"), PROGRAM_NAME)); msg.run (); throw failed_constructor (); } @@ -474,7 +473,7 @@ bool EngineControl::start_engine () { if (push_state_to_backend (true) != 0) { - MessageDialog msg (*this, ARDOUR::AudioEngine::instance()->get_last_backend_error()); + ArdourMessageDialog msg (*this, ARDOUR::AudioEngine::instance()->get_last_backend_error()); msg.run(); return false; } @@ -485,8 +484,7 @@ bool EngineControl::stop_engine (bool for_latency) { if (ARDOUR::AudioEngine::instance()->stop(for_latency)) { - MessageDialog msg(*this, - ARDOUR::AudioEngine::instance()->get_last_backend_error()); + ArdourMessageDialog msg(*this, ARDOUR::AudioEngine::instance()->get_last_backend_error()); msg.run(); return false; } @@ -759,13 +757,13 @@ EngineControl::enable_latency_tab () ARDOUR::AudioEngine::instance()->get_physical_inputs (type, inputs); if (!ARDOUR::AudioEngine::instance()->running()) { - MessageDialog msg (_("Failed to start or connect to audio-engine.\n\nLatency calibration requires a working audio interface.")); + ArdourMessageDialog msg (_("Failed to start or connect to audio-engine.\n\nLatency calibration requires a working audio interface.")); notebook.set_current_page (0); msg.run (); return; } else if (inputs.empty() || outputs.empty()) { - MessageDialog msg (_("Your selected audio configuration is playback- or capture-only.\n\nLatency calibration requires playback and capture")); + ArdourMessageDialog msg (_("Your selected audio configuration is playback- or capture-only.\n\nLatency calibration requires playback and capture")); notebook.set_current_page (0); msg.run (); return; diff --git a/gtk2_ardour/luadialog.h b/gtk2_ardour/luadialog.h index a2acff6574..2ff616f348 100644 --- a/gtk2_ardour/luadialog.h +++ b/gtk2_ardour/luadialog.h @@ -21,11 +21,12 @@ #include #include -#include #include #include "LuaBridge/LuaBridge.h" +#include "ardour_message.h" + namespace LuaDialog { class Message { @@ -49,7 +50,7 @@ private: static Gtk::ButtonsType to_gtk_bt (ButtonType bt); static Gtk::MessageType to_gtk_mt (MessageType mt); - Gtk::MessageDialog _message_dialog; + ArdourMessageDialog _message_dialog; }; class LuaDialogWidget { diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index ff45beff42..2fd21e472b 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -59,6 +59,7 @@ #include #include +#include "ardour_message.h" #include "ardour_ui.h" #include "ui_config.h" #include "opts.h" @@ -96,10 +97,10 @@ static string localedir (LOCALEDIR); void gui_jack_error () { - MessageDialog win (string_compose (_("%1 could not connect to the audio backend."), PROGRAM_NAME), - false, - Gtk::MESSAGE_INFO, - Gtk::BUTTONS_NONE); + ArdourMessageDialog win (string_compose (_("%1 could not connect to the audio backend."), PROGRAM_NAME), + false, + Gtk::MESSAGE_INFO, + Gtk::BUTTONS_NONE); win.add_button (Stock::QUIT, RESPONSE_CLOSE); win.set_default_response (RESPONSE_CLOSE); @@ -143,7 +144,7 @@ tell_about_backend_death (void* /* ignored */) { if (AudioEngine::instance()->processed_samples() == 0) { /* died during startup */ - MessageDialog msg (string_compose (_("The audio backend (%1) has failed, or terminated"), AudioEngine::instance()->current_backend_name()), false); + ArdourMessageDialog msg (string_compose (_("The audio backend (%1) has failed, or terminated"), AudioEngine::instance()->current_backend_name()), false); msg.set_position (Gtk::WIN_POS_CENTER); msg.set_secondary_text (string_compose (_( "%2 exited unexpectedly, and without notifying %1.\n\ @@ -162,7 +163,7 @@ Click OK to exit %1."), PROGRAM_NAME, AudioEngine::instance()->current_backend_n MessageDialog msg (string_compose (_("The audio backend (%1) has failed, or terminated"), AudioEngine::instance()->current_backend_name()), false); msg.set_secondary_text (string_compose (_("%2 exited unexpectedly, and without notifying %1."), PROGRAM_NAME, AudioEngine::instance()->current_backend_name())); - msg.present (); + msg.run (); } return false; /* do not call again */ } @@ -255,7 +256,7 @@ static void command_line_parse_error (int *argc, char** argv[]) { // an MSVC app, let the user know we encountered a parsing error. Gtk::Main app(argc, argv); // Calls 'gtk_init()' - Gtk::MessageDialog dlgReportParseError (string_compose (_("\n %1 could not understand your command line "), PROGRAM_NAME), + ArdourMessageDialog dlgReportParseError (string_compose (_("\n %1 could not understand your command line "), PROGRAM_NAME), false, MESSAGE_ERROR, BUTTONS_CLOSE, true); dlgReportParseError.set_title (string_compose (_("An error was encountered while launching %1"), PROGRAM_NAME)); dlgReportParseError.run (); diff --git a/gtk2_ardour/port_matrix.cc b/gtk2_ardour/port_matrix.cc index f6739b5395..50aa480127 100644 --- a/gtk2_ardour/port_matrix.cc +++ b/gtk2_ardour/port_matrix.cc @@ -22,6 +22,7 @@ */ #include + #include #include #include @@ -30,21 +31,25 @@ #include #include #include -#include + #include "ardour/bundle.h" #include "ardour/types.h" #include "ardour/session.h" #include "ardour/route.h" #include "ardour/audioengine.h" + #include "gtkmm2ext/utils.h" + +#include "ardour_dialog.h" +#include "ardour_message.h" +#include "gui_thread.h" #include "port_matrix.h" #include "port_matrix_body.h" #include "port_matrix_component.h" -#include "ardour_dialog.h" -#include "pbd/i18n.h" -#include "gui_thread.h" #include "utils.h" +#include "pbd/i18n.h" + using namespace std; using namespace Gtk; using namespace ARDOUR; @@ -733,7 +738,7 @@ PortMatrix::add_channel (boost::shared_ptr b, DataType t) if (io) { int const r = io->add_port ("", this, t); if (r == -1) { - Gtk::MessageDialog msg (_("It is not possible to add a port here.")); + ArdourMessageDialog msg (_("It is not possible to add a port here.")); msg.set_title (_("Cannot add port")); msg.run (); } diff --git a/gtk2_ardour/session_import_dialog.cc b/gtk2_ardour/session_import_dialog.cc index aeced96540..00567da2ca 100644 --- a/gtk2_ardour/session_import_dialog.cc +++ b/gtk2_ardour/session_import_dialog.cc @@ -35,6 +35,7 @@ #include "gtkmm2ext/utils.h" #include "widgets/prompter.h" +#include "ardour_message.h" #include "gui_thread.h" #include "session_import_dialog.h" #include "ui_config.h" @@ -134,7 +135,7 @@ SessionImportDialog::load_session (const string& filename) if (ElementImportHandler::dirty()) { // Warn user string txt = _("Some elements had errors in them. Please see the log for details"); - MessageDialog msg (txt, false, MESSAGE_WARNING, BUTTONS_OK, true); + ArdourMessageDialog msg (txt, false, MESSAGE_WARNING, BUTTONS_OK, true); msg.run(); } } @@ -218,7 +219,7 @@ SessionImportDialog::do_merge () if (ElementImportHandler::errors()) { // Warn user string txt = _("Some elements had errors in them. Please see the log for details"); - MessageDialog msg (txt, false, MESSAGE_WARNING, BUTTONS_OK, true); + ArdourMessageDialog msg (txt, false, MESSAGE_WARNING, BUTTONS_OK, true); msg.run(); } } @@ -234,7 +235,7 @@ SessionImportDialog::update (string path) { // Prompt user for verification string txt = _("This will select all elements of this type!"); - MessageDialog msg (txt, false, MESSAGE_QUESTION, BUTTONS_OK_CANCEL, true); + ArdourMessageDialog msg (txt, false, MESSAGE_QUESTION, BUTTONS_OK_CANCEL, true); if (msg.run() == RESPONSE_CANCEL) { (*cell)[sb_cols.queued] = false; return; @@ -274,7 +275,7 @@ SessionImportDialog::show_info(const TreeModel::Path& path, TreeViewColumn*) TreeModel::iterator cell = session_browser.get_model()->get_iter (path); string info = (*cell)[sb_cols.info]; - MessageDialog msg (info, false, MESSAGE_INFO, BUTTONS_OK, true); + ArdourMessageDialog msg (info, false, MESSAGE_INFO, BUTTONS_OK, true); msg.run(); } @@ -311,7 +312,7 @@ SessionImportDialog::open_rename_dialog (string text, string name) bool SessionImportDialog::open_prompt_dialog (string text) { - MessageDialog msg (text, false, MESSAGE_QUESTION, BUTTONS_OK_CANCEL, true); + ArdourMessageDialog msg (text, false, MESSAGE_QUESTION, BUTTONS_OK_CANCEL, true); if (msg.run() == RESPONSE_OK) { return true; } diff --git a/gtk2_ardour/startup_fsm.cc b/gtk2_ardour/startup_fsm.cc index 62fc5b7000..9424160f4d 100644 --- a/gtk2_ardour/startup_fsm.cc +++ b/gtk2_ardour/startup_fsm.cc @@ -43,6 +43,7 @@ #include #include +#include "ardour_message.h" #include "ardour_ui.h" #include "debug.h" #include "engine_dialog.h" @@ -634,7 +635,7 @@ StartupFSM::check_session_parameters (bool must_be_new) int rv = ARDOUR::inflate_session (session_name, Config->get_default_session_parent_dir(), session_path, session_name); if (rv < 0) { - MessageDialog msg (*session_dialog, string_compose (_("Extracting session-archive failed: %1"), inflate_error (rv))); + ArdourMessageDialog msg (*session_dialog, string_compose (_("Extracting session-archive failed: %1"), inflate_error (rv))); msg.run (); return 1; @@ -701,10 +702,10 @@ StartupFSM::check_session_parameters (bool must_be_new) const char illegal = Session::session_name_is_legal (session_name); if (illegal) { - MessageDialog msg (*session_dialog, - string_compose (_("To ensure compatibility with various systems\n" - "session names may not contain a '%1' character"), - illegal)); + ArdourMessageDialog msg (*session_dialog, + string_compose (_("To ensure compatibility with various systems\n" + "session names may not contain a '%1' character"), + illegal)); msg.run (); ARDOUR_COMMAND_LINE::session_name = ""; // cancel that return 1; /* keep running dialog */ @@ -734,8 +735,7 @@ StartupFSM::check_session_parameters (bool must_be_new) /* does not exist at present */ if (!requested_new) { - ARDOUR_UI::pop_back_splash (*session_dialog); - MessageDialog msg (string_compose (_("There is no existing session at \"%1\""), session_path)); + ArdourMessageDialog msg (string_compose (_("There is no existing session at \"%1\""), session_path)); msg.run (); session_dialog->clear_name(); return 1; @@ -830,18 +830,17 @@ StartupFSM::ask_about_loading_existing_session (const std::string& session_path) { std::string str = string_compose (_("This session\n%1\nalready exists. Do you want to open it?"), session_path); - MessageDialog msg (str, - false, - Gtk::MESSAGE_WARNING, - Gtk::BUTTONS_YES_NO, - true); + ArdourMessageDialog msg (str, + false, + Gtk::MESSAGE_WARNING, + Gtk::BUTTONS_YES_NO, + true); msg.set_name (X_("OpenExistingDialog")); msg.set_title (_("Open Existing Session")); msg.set_wmclass (X_("existing_session"), PROGRAM_NAME); msg.set_position (Gtk::WIN_POS_CENTER); - ARDOUR_UI::pop_back_splash (msg); switch (msg.run()) { case RESPONSE_YES: