/* This file is part of the KDE project Copyright (C) 2001 Simon Hausmann This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License. */ #ifndef __ksparser_h__ #define __ksparser_h__ #include #include #include #include #include /* * Helper class to parse IRC color/style codes and convert them to * richtext. The parser maintains an internal stack of the styles * applied because the IRC message could contain sequences as * (bold)Hello (red)World(endbold)! (blue)blue text * which needs to be converted to * Hello World! blue text * to get correctly nested tags. (malte) */ class KSParser { public: static TQCString parse(const TQCString &); static int colorForHTML( const TQString &html ); static TQColor ircColor(const TQString &color); static TQColor ircColor(unsigned int color); ~KSParser(); private: KSParser(); TQCString _parse(const TQCString &); TQString pushTag(const TQString &, const TQString & = TQString()); TQString pushColorTag(const TQColor &fgColor, const TQColor &bgColor); TQString popTag(const TQString &); TQString toggleTag(const TQString &); TQString popAll(); private: static KSParser m_parser; static const TQColor IRC_Colors[17]; static const TQRegExp sm_colorsModeRegexp; TQValueStack m_tags; TQMap m_attributes; }; #endif