diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /netwerk/streamconv/mozITXTToHTMLConv.idl | |
parent | Initial commit. (diff) | |
download | firefox-e51783d008170d9ab27d25da98ca3a38b0a41b67.tar.xz firefox-e51783d008170d9ab27d25da98ca3a38b0a41b67.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'netwerk/streamconv/mozITXTToHTMLConv.idl')
-rw-r--r-- | netwerk/streamconv/mozITXTToHTMLConv.idl | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/netwerk/streamconv/mozITXTToHTMLConv.idl b/netwerk/streamconv/mozITXTToHTMLConv.idl new file mode 100644 index 0000000000..5a2a1510c9 --- /dev/null +++ b/netwerk/streamconv/mozITXTToHTMLConv.idl @@ -0,0 +1,88 @@ +/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + Description: Currently only functions to enhance plain text with HTML tags. + <p> + Wrapper class for various parsing routines, that convert plain text to HTML. + They try to recognize cites, URLs, plain text formattting like *bold* etc. + See <http://www.bucksch.org/1/projects/mozilla/16507/> for a description. + */ + +#include "nsIStreamConverter.idl" + +%{C++ +// {77c0e42a-1dd2-11b2-8ebf-edc6606f2f4b} +#define MOZITXTTOHTMLCONV_CID \ + { 0x77c0e42a, 0x1dd2, 0x11b2, \ + { 0x8e, 0xbf, 0xed, 0xc6, 0x60, 0x6f, 0x2f, 0x4b } } + +#define MOZ_TXTTOHTMLCONV_CONTRACTID \ + "@mozilla.org/txttohtmlconv;1" + +%} + +[scriptable, uuid(77c0e42a-1dd2-11b2-8ebf-edc6606f2f4b)] +interface mozITXTToHTMLConv : nsIStreamConverter { + const unsigned long kEntities = 0; // just convert < & > to < & and > + const unsigned long kURLs = 1 << 1; + const unsigned long kGlyphSubstitution = 1 << 2; // Smilies, ® etc. + const unsigned long kStructPhrase = 1 << 3; // E.g. *bold* -> <strong> + +/** + @param text: plain text to scan. May be a line, paragraph (recommended) + or just a substring.<p> + Must be non-escaped, pure unicode.<p> + <em>Note:</em> ScanTXT(a, o) + ScanTXT(b, o) may be != + Scan(a + b, o) + @param whattodo: Bitfield describing the modes of operation + @result "<", ">" and "&" are escaped and HTML tags are inserted where + appropriate. + */ + AString scanTXT(in AString 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. + <p> + <em>Note:</em> 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.<p> + Must be correct HTML. "<", ">" and "&" must be escaped, + other chars must be pure unicode.<p> + <em>Note:</em> ScanTXT(a, o) + ScanTXT(b, o) may be != + Scan(a + b, o) + @param whattodo: Bitfield describing the modes of operation + @result Additional HTML tags are inserted where appropriate. + */ + AString scanHTML(in AString 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(in wstring line, + out unsigned long logLineStart); + +/** + @param a wide string to scan for the presence of a URL. + @param aLength --> the length of the buffer to be scanned + @param aPos --> the position in the buffer to start scanning for a url + + aStartPos --> index into the start of a url (-1 if no url found) + aEndPos --> index of the last character in the url (-1 if no url found) + */ + + void findURLInPlaintext(in wstring text, in long aLength, in long aPos, out long aStartPos, out long aEndPos); +}; |