diff options
Diffstat (limited to 'mailnews/compose/src/nsMsgCompUtils.h')
-rw-r--r-- | mailnews/compose/src/nsMsgCompUtils.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/mailnews/compose/src/nsMsgCompUtils.h b/mailnews/compose/src/nsMsgCompUtils.h new file mode 100644 index 000000000..13d6ddd83 --- /dev/null +++ b/mailnews/compose/src/nsMsgCompUtils.h @@ -0,0 +1,143 @@ +/* -*- 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/. */ + +#ifndef _nsMsgCompUtils_H_ +#define _nsMsgCompUtils_H_ + +#include "nscore.h" +#include "nsMsgSend.h" +#include "nsMsgCompFields.h" +#include "nsIMsgSend.h" +#include "nsIMsgCompUtils.h" + +class nsIPrompt; + +#define ANY_SERVER "anyfolder://" + +// these are msg hdr property names for storing the original +// msg uri's and disposition(replied/forwarded) when queuing +// messages to send later. +#define ORIG_URI_PROPERTY "origURIs" +#define QUEUED_DISPOSITION_PROPERTY "queuedDisposition" + +class nsMsgCompUtils : public nsIMsgCompUtils +{ +public: + NS_DECL_ISUPPORTS + NS_DECL_NSIMSGCOMPUTILS + + nsMsgCompUtils(); + +private: + virtual ~nsMsgCompUtils(); +}; + +PR_BEGIN_EXTERN_C + +// +// Create a file spec or file name using the name passed +// in as a template +// +nsresult nsMsgCreateTempFile(const char *tFileName, nsIFile **tFile); +char *nsMsgCreateTempFileName(const char *tFileName); + + +// +// Various utilities for building parts of MIME encoded +// messages during message composition +// + +nsresult mime_sanity_check_fields_recipients ( + const char *to, + const char *cc, + const char *bcc, + const char *newsgroups); + +nsresult mime_sanity_check_fields ( + const char *from, + const char *reply_to, + const char *to, + const char *cc, + const char *bcc, + const char *fcc, + const char *newsgroups, + const char *followup_to, + const char * /*subject*/, + const char * /*references*/, + const char * /*organization*/, + const char * /*other_random_headers*/); + +nsresult mime_generate_headers(nsIMsgCompFields *fields, + nsMsgDeliverMode deliver_mode, + msgIWritableStructuredHeaders *headers); + +char *mime_make_separator(const char *prefix); +char *mime_gen_content_id(uint32_t aPartNum, const char *aEmailAddress); + +char *mime_generate_attachment_headers ( + const char *type, + const char *type_param, + const char *encoding, + const char *description, + const char *x_mac_type, + const char *x_mac_creator, + const char *real_name, + const char *base_url, + bool digest_p, + nsMsgAttachmentHandler *ma, + const char *attachmentCharset, // charset of the attachment (can be null) + const char *bodyCharset, // charset of the main body + bool bodyIsAsciiOnly, + const char *content_id, + bool aBodyDocument); + +char *msg_generate_message_id (nsIMsgIdentity*); + +bool mime_7bit_data_p (const char *string, uint32_t size); + +char *mime_fix_header_1 (const char *string, bool addr_p, bool news_p); +char *mime_fix_header (const char *string); +char *mime_fix_addr_header (const char *string); +char *mime_fix_news_header (const char *string); + +bool mime_type_requires_b64_p (const char *type); +bool mime_type_needs_charset (const char *type); + +char *msg_make_filename_qtext(const char *srcText, bool stripCRLFs); + +// Rip apart the URL and extract a reasonable value for the `real_name' slot. +void msg_pick_real_name (nsMsgAttachmentHandler *attachment, const char16_t *proposedName, const char *charset); + +// +// Informational calls... +// +void nsMsgMIMESetConformToStandard (bool conform_p); +bool nsMsgMIMEGetConformToStandard (void); + +// +// network service type calls... +// +nsresult nsMsgNewURL(nsIURI** aInstancePtrResult, const char * aSpec); +bool nsMsgIsLocalFile(const char *url); +char *nsMsgGetLocalFileFromURL(const char *url); + +char *nsMsgParseURLHost(const char *url); + +char *GenerateFileNameFromURI(nsIURI *aURL); + +// +// Folder calls... +// +void GetFolderURIFromUserPrefs(nsMsgDeliverMode aMode, nsIMsgIdentity *identity, nsCString& uri); + +// Check if we should use format=flowed +void GetSerialiserFlags(const char *charset, bool *flowed, bool *delsp, bool *formatted, bool *disallowBreaks); + + +PR_END_EXTERN_C + + +#endif /* _nsMsgCompUtils_H_ */ + |