]> git.lyx.org Git - lyx.git/blobdiff - src/debug.h
* src/frontends/qt4/qlkey.h: add AltGr as modifier key (fix bug 4026)
[lyx.git] / src / debug.h
index a0e30aaaaa00f6bbf679f484c369a9491a14fb49..3648ec83d222be38ef71c7f301d2166b41e94934 100644 (file)
@@ -1,6 +1,11 @@
 // -*- 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 {
                ///
@@ -75,7 +83,11 @@ struct lyx_debug_trait {
                ///
                EXTERNAL   = (1 << 23),
                ///
-               ANY = 0xffffff
+               PAINTING   = (1 << 24),
+               ///
+               DEBUG      = (1 << 31),
+               ///
+               ANY = 0xffffffff
        };
 
        static bool match(type a, type b) {
@@ -85,7 +97,7 @@ struct lyx_debug_trait {
        /** 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
@@ -106,11 +118,14 @@ void operator|=(lyx_debug_trait::type & d1, lyx_debug_trait::type d2)
 }
 
 
-// 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