X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fdebug.h;h=c338b7a228edea93633a38dad9508acc0a301148;hb=ae348f8af96100a154b3792d27732d621d44ec89;hp=9bdf60c9b325b7a022f97e459f6325cea0672a48;hpb=0705dae8a3a2bcdd6be55eb468547c1389e84d2c;p=lyx.git diff --git a/src/debug.h b/src/debug.h index 9bdf60c9b3..c338b7a228 100644 --- a/src/debug.h +++ b/src/debug.h @@ -13,14 +13,14 @@ #ifndef LYXDEBUG_H #define LYXDEBUG_H - -#include "support/std_string.h" +#include "support/debugstream.h" /** 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 Debug { + * 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 { /// @@ -72,15 +72,23 @@ struct Debug { /// change tracking CHANGES = (1 << 22), /// - EXTERNAL = (1 << 23) + EXTERNAL = (1 << 23), + /// + PAINTING = (1 << 24), + /// + DEBUG = (1 << 31), + /// + ANY = 0xffffffff }; - /// - static type const ANY; + + static bool match(type a, type b) { + return (a & b); + } /** A function to convert symbolic string names on debug levels to their numerical value. */ - static Debug::type value(string const & val); + static type value(std::string const & val); /** Display the tags and descriptions of the current debug level of ds @@ -95,18 +103,17 @@ struct Debug { inline -void operator|=(Debug::type & d1, Debug::type d2) +void operator|=(lyx_debug_trait::type & d1, lyx_debug_trait::type d2) { - d1 = static_cast(d1 | d2); + d1 = static_cast(d1 | d2); } -#include "support/DebugStream.h" - - +// std::ostream & operator<<(std::ostream & o, Debug::type t); -std::ostream & operator<<(std::ostream & o, Debug::type t); +typedef basic_debugstream LyXErr; +typedef LyXErr::debug Debug; -extern DebugStream lyxerr; +extern LyXErr lyxerr; #endif