Wrapper class for various parsing routines, that convert plain text to HTML.
They try to recognize cites, URLs, plain text formattting like *bold* etc.
*/
#include "nsIStreamConverter.idl"
#include "nsrootidl.idl"
%{C++
// {77c0e42a-1dd2-11b2-8ebf-edc6606f2f4b}
#define MOZITXTTOHTMLCONV_CID \
{ 0x77c0e42a, 0x1dd2, 0x11b2, \
{ 0x8e, 0xbf, 0xed, 0xc6, 0x60, 0x6f, 0x2f, 0x4b } }
%}
[scriptable, uuid(77c0e42a-1dd2-11b2-8ebf-edc6606f2f4b)]
interface mozITXTToHTMLConv : nsIStreamConverter {
const unsigned long kURLs = 1 << 1;
const unsigned long kGlyphSubstitution = 1 << 2; // Smilies, ® etc.
const unsigned long kStructPhrase = 1 << 3; // E.g. *bold* ->
/*
@param text: plain text to scan. May be a line, paragraph (recommended)
or just a substring.
Note: ScanTXT(a, o) + ScanTXT(b, o) may be !=
Scan(a + b, o)
@param whattodo: Bitfield describing the modes of operation
*/
wstring scanTXT([const] in wstring text, in unsigned long whattodo);
/*
Adds additional formatting to user edited text, that the user was too lazy
or "unknowledged" (DELETEME: is that a word?) to make.
Note: Don't use kGlyphSubstitution with this function. This option
generates tags, that are unuseable for UAs other than Mozilla. This would
be a data loss bug.
@param text: HTML source to scan. May be a line, paragraph (recommended)
or just a substring.
Note: ScanTXT(a, o) + ScanTXT(b, o) may be !=
Scan(a + b, o)
@param whattodo: Bitfield describing the modes of operation
*/
wstring scanHTML([const] in wstring text, in unsigned long whattodo);
/*
@param line: line in original msg, possibly starting starting with
txt quote tags like ">"
@param logLineStart: pos in line, where the real content (logical line)
begins, i.e. pos after all txt quote tags.
E.g. position of "t" in "> > text".
Initial value must be 0, unless line is not real line.
@return Cite Level, i.e. number of txt quote tags found, i.e. number of
nested quotes.
*/
unsigned long citeLevelTXT([const] in wstring line,
out unsigned long logLineStart);
};