/**
* \file Alert.C
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * \author John Levon
+ * \author John Levon
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "Alert.h"
-
-#include "debug.h"
-#include "lyxrc.h"
-
#include "Alert_pimpl.h"
-#include <cerrno>
-
-#ifndef CXX_GLOBAL_CSTD
-using std::strerror;
-#endif
+#include "debug.h"
+#include "lyx_main.h" // for lyx::use_gui
using std::endl;
-using std::pair;
using std::make_pair;
+using std::pair;
+using std::string;
+
+
+namespace lyx {
+namespace frontend {
-void Alert::alert(string const & s1, string const & s2, string const & s3)
+int Alert::prompt(docstring const & title, docstring const & question,
+ int default_button, int escape_button,
+ docstring const & b1, docstring const & b2, docstring const & b3)
{
- if (!lyxrc.use_gui) {
- lyxerr << "------------------------------" << endl
- << s1 << endl << s2 << endl << s3 << endl
- << "------------------------------" << endl;
- } else {
- alert_pimpl(s1, s2, s3);
+ if (!use_gui || lyxerr.debugging()) {
+ lyxerr << to_utf8(title) << '\n'
+ << "----------------------------------------\n"
+ << to_utf8(question) << endl;
+
+ lyxerr << "Assuming answer is ";
+ switch (default_button) {
+ case 0: lyxerr << to_utf8(b1) << endl;
+ case 1: lyxerr << to_utf8(b2) << endl;
+ case 2: lyxerr << to_utf8(b3) << endl;
+ }
+ if (!use_gui)
+ return default_button;
}
+
+ return prompt_pimpl(title, question,
+ default_button, escape_button, b1, b2, b3);
+
}
-void Alert::err_alert(string const & s1, string const & s2)
+void Alert::warning(docstring const & title, docstring const & message)
{
- alert(s1, s2, strerror(errno));
+ if (!use_gui || lyxerr.debugging())
+ lyxerr << "Warning: " << to_utf8(title) << '\n'
+ << "----------------------------------------\n"
+ << to_utf8(message) << endl;
+ if (use_gui)
+ warning_pimpl(title, message);
}
-bool Alert::askQuestion(string const & s1, string const & s2,
- string const & s3, bool default_value)
+void Alert::error(docstring const & title, docstring const & message)
{
- if (!lyxrc.use_gui) {
- lyxerr << "----------------------------------------" << endl
- << s1 << endl;
- if (!s2.empty())
- lyxerr << s2 << endl;
- if (!s3.empty())
- lyxerr << s3 << endl;
- lyxerr << "Assuming answer is "
- << (default_value ? "yes" : "no")
- << endl
- << "----------------------------------------" << endl;
- return default_value;
- } else {
- return askQuestion_pimpl(s1, s2, s3);
- }
+ if (!use_gui || lyxerr.debugging())
+ lyxerr << "Error: " << to_utf8(title) << '\n'
+ << "----------------------------------------\n"
+ << to_utf8(message) << endl;
+
+ if (use_gui)
+ error_pimpl(title, message);
}
-int Alert::askConfirmation(string const & s1, string const & s2,
- string const & s3, int default_value)
+void Alert::information(docstring const & title, docstring const & message)
{
- if (!lyxrc.use_gui) {
- lyxerr << "----------------------------------------" << endl
- << s1 << endl;
- if (!s2.empty())
- lyxerr << s2 << endl;
- if (!s3.empty())
- lyxerr << s3 << endl;
- lyxerr << "Assuming answer is ";
- if (default_value == 1)
- lyxerr << "yes";
- else if (default_value == 2)
- lyxerr << "no";
- else
- lyxerr << "cancel";
- lyxerr << endl
- << "----------------------------------------" << endl;
- return default_value;
- } else {
- return askConfirmation_pimpl(s1, s2, s3);
- }
+ if (!use_gui || lyxerr.debugging())
+ lyxerr << to_utf8(title) << '\n'
+ << "----------------------------------------\n"
+ << to_utf8(message) << endl;
+
+ if (use_gui)
+ information_pimpl(title, message);
}
-pair<bool, string> const Alert::askForText(string const & msg,
- string const & dflt)
+pair<bool, docstring> const Alert::askForText(docstring const & msg,
+ docstring const & dflt)
{
- if (!lyxrc.use_gui) {
- lyxerr << "----------------------------------------" << endl
- << msg << endl
- << "Assuming answer is " << dflt
+ if (!use_gui || lyxerr.debugging()) {
+ lyxerr << "----------------------------------------\n"
+ << to_utf8(msg) << '\n'
+ << "Assuming answer is " << to_utf8(dflt) << '\n'
<< "----------------------------------------" << endl;
- return make_pair<bool, string>(true, dflt);
- } else {
- return askForText_pimpl(msg, dflt);
+ if (!use_gui)
+ return make_pair<bool, docstring>(true, dflt);
}
+
+ return askForText_pimpl(msg, dflt);
}
+
+} // namespace frontend
+} // namespace lyx