*
* \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_gui.h"
using std::endl;
-using std::pair;
using std::make_pair;
+using std::pair;
+using std::string;
-void Alert::alert(string const & s1, string const & s2, string const & s3)
+int Alert::prompt(string const & title, string const & question,
+ int default_button, int escape_button,
+ string const & b1, string const & b2, string const & b3)
{
- if (!lyxrc.use_gui) {
- lyxerr << "------------------------------" << endl
- << s1 << endl << s2 << endl << s3 << endl
- << "------------------------------" << endl;
- } else {
- alert_pimpl(s1, s2, s3);
+ if (!lyx_gui::use_gui || lyxerr.debugging()) {
+ lyxerr << title << '\n'
+ << "----------------------------------------\n"
+ << question << endl;
+
+ lyxerr << "Assuming answer is ";
+ switch (default_button) {
+ case 0: lyxerr << b1 << endl;
+ case 1: lyxerr << b2 << endl;
+ case 2: lyxerr << b3 << endl;
+ }
+ if (!lyx_gui::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(string const & title, string const & message)
{
- alert(s1, s2, strerror(errno));
+ if (!lyx_gui::use_gui || lyxerr.debugging())
+ lyxerr << "Warning: " << title << '\n'
+ << "----------------------------------------\n"
+ << message << endl;
+ if (lyx_gui::use_gui)
+ warning_pimpl(title, message);
}
-bool Alert::askQuestion(string const & s1, string const & s2,
- string const & s3, bool default_value)
+void Alert::error(string const & title, string 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 (!lyx_gui::use_gui || lyxerr.debugging())
+ lyxerr << "Error: " << title << '\n'
+ << "----------------------------------------\n"
+ << message << endl;
+
+ if (lyx_gui::use_gui)
+ error_pimpl(title, message);
}
-int Alert::askConfirmation(string const & s1, string const & s2,
- string const & s3, int default_value)
+void Alert::information(string const & title, string 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 (!lyx_gui::use_gui || lyxerr.debugging())
+ lyxerr << title << '\n'
+ << "----------------------------------------\n"
+ << message << endl;
+
+ if (lyx_gui::use_gui)
+ information_pimpl(title, message);
}
pair<bool, string> const Alert::askForText(string const & msg,
string const & dflt)
{
- if (!lyxrc.use_gui) {
- lyxerr << "----------------------------------------" << endl
- << msg << endl
- << "Assuming answer is " << dflt
+ if (!lyx_gui::use_gui || lyxerr.debugging()) {
+ lyxerr << "----------------------------------------\n"
+ << msg << '\n'
+ << "Assuming answer is " << dflt << '\n'
<< "----------------------------------------" << endl;
- return make_pair<bool, string>(true, dflt);
- } else {
- return askForText_pimpl(msg, dflt);
+ if (!lyx_gui::use_gui)
+ return make_pair<bool, string>(true, dflt);
}
+
+ return askForText_pimpl(msg, dflt);
}