]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/Alert.C
This commit saves the need to check for lyx::use_gui in a number of places.
[lyx.git] / src / frontends / Alert.C
index d85ba7c22d4d7ed61e736ad1437eb62c14f728a1..0bb83d181af560a00d488e5a3c426cb3794d2491 100644 (file)
 /**
  * \file Alert.C
- * Copyright 2001 the LyX Team
- * 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 <moz@compsoc.man.ac.uk>
+ * \author John Levon
+ *
+ * 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>
+#include "debug.h"
+#include "lyx_main.h" // for lyx::use_gui
 
-#ifndef CXX_GLOBAL_CSTD
-using std::strerror;
-#endif
+using lyx::docstring;
 
 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 (!lyx::use_gui || lyxerr.debugging()) {
+               lyxerr << lyx::to_utf8(title) << '\n'
+                      << "----------------------------------------\n"
+                      << lyx::to_utf8(question) << endl;
+
+               lyxerr << "Assuming answer is ";
+               switch (default_button) {
+               case 0: lyxerr << lyx::to_utf8(b1) << endl;
+               case 1: lyxerr << lyx::to_utf8(b2) << endl;
+               case 2: lyxerr << lyx::to_utf8(b3) << endl;
+               }
+               if (!lyx::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 (!lyx::use_gui || lyxerr.debugging())
+               lyxerr << "Warning: " << lyx::to_utf8(title) << '\n'
+                      << "----------------------------------------\n"
+                      << lyx::to_utf8(message) << endl;
+       if (lyx::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 (!lyx::use_gui || lyxerr.debugging())
+               lyxerr << "Error: " << lyx::to_utf8(title) << '\n'
+                      << "----------------------------------------\n"
+                      << lyx::to_utf8(message) << endl;
+
+       if (lyx::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 (!lyx::use_gui || lyxerr.debugging())
+               lyxerr << lyx::to_utf8(title) << '\n'
+                      << "----------------------------------------\n"
+                      << lyx::to_utf8(message) << endl;
+
+       if (lyx::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 (!lyx::use_gui || lyxerr.debugging()) {
+               lyxerr << "----------------------------------------\n"
+                      << lyx::to_utf8(msg) << '\n'
+                      << "Assuming answer is " << lyx::to_utf8(dflt) << '\n'
                       << "----------------------------------------" << endl;
-               return make_pair<bool, string>(true, dflt);
-       } else {
-               return askForText_pimpl(msg, dflt);
+               if (!lyx::use_gui)
+                       return make_pair<bool, docstring>(true, dflt);
        }
+
+       return askForText_pimpl(msg, dflt);
+}
+
+}
 }