// -*- C++ -*-
/**
* \file debug.h
+ *
+ * FIXME: It would be nice if, in lyx::use_gui mode, instead of
+ * outputting to the console, we would pipe all messages onto a file
+ * and visualise the contents dynamically in a Qt window if needed.
+ *
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
#ifndef LYXDEBUG_H
#define LYXDEBUG_H
-
-#include "support/std_string.h"
#include "support/debugstream.h"
+#include "support/docstring.h"
+
+
+namespace lyx {
/** Ideally this should have been a namespace, but since we try to be
- compilable on older C++ compilators too, we use a struct instead.
- This is all the different debug levels that we have.
-*/
-struct lyx_debug_trait {
+ * compilable on older C++ compilators too, we use a struct instead.
+ * This is all the different debug levels that we have.
+ */
+class lyx_debug_trait {
+public:
///
enum type {
///
///
EXTERNAL = (1 << 23),
///
- ANY = 0xffffff
+ PAINTING = (1 << 24),
+ ///
+ DEBUG = (1 << 31),
+ ///
+ ANY = 0xffffffff
};
static bool match(type a, type b) {
/** A function to convert symbolic string names on debug levels
to their numerical value.
*/
- static type value(string const & val);
+ static type value(std::string const & val);
/** Display the tags and descriptions of the current debug level
of ds
}
-// std::ostream & operator<<(std::ostream & o, Debug::type t);
-
typedef basic_debugstream<lyx_debug_trait> LyXErr;
typedef LyXErr::debug Debug;
extern LyXErr lyxerr;
+} // namespace lyx
+
+#define LYXERR(type) if (!lyx::lyxerr.debugging(type)) ; else lyx::lyxerr
+
+
#endif