summaryrefslogtreecommitdiffstats
path: root/mailnews/base/public/nsIMessenger.idl
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/base/public/nsIMessenger.idl')
-rw-r--r--mailnews/base/public/nsIMessenger.idl141
1 files changed, 141 insertions, 0 deletions
diff --git a/mailnews/base/public/nsIMessenger.idl b/mailnews/base/public/nsIMessenger.idl
new file mode 100644
index 000000000..fd6ecfc22
--- /dev/null
+++ b/mailnews/base/public/nsIMessenger.idl
@@ -0,0 +1,141 @@
+/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* 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/. */
+
+#include "nsISupports.idl"
+#include "nsrootidl.idl"
+#include "nsIMsgWindow.idl"
+#include "nsIMsgIdentity.idl"
+
+interface nsIMsgDBHdr;
+interface nsIDOMWindow;
+interface mozIDOMWindowProxy;
+interface nsITransactionManager;
+interface nsIMsgMessageService;
+interface nsIFile;
+interface nsIUrlListener;
+
+[scriptable, uuid(01b967c8-b289-4e32-ad46-6eb7c89d4106)]
+interface nsIMessenger : nsISupports {
+
+ const long eUnknown = 0;
+ const long eDeleteMsg = 1;
+ const long eMoveMsg = 2;
+ const long eCopyMsg = 3;
+ const long eMarkAllMsg = 4;
+
+ void setDisplayCharset(in ACString aCharset);
+
+ readonly attribute nsITransactionManager transactionManager;
+
+ void setWindow(in mozIDOMWindowProxy ptr, in nsIMsgWindow msgWindow);
+
+ void addMsgUrlToNavigateHistory(in ACString aURL);
+ void openURL(in ACString aURL);
+
+ /** load a custom message by url, e.g load a attachment as a email
+ */
+ void loadURL(in mozIDOMWindowProxy ptr, in ACString aURL);
+
+ void launchExternalURL(in ACString aURL);
+
+ boolean canUndo();
+ boolean canRedo();
+ unsigned long getUndoTransactionType();
+ unsigned long getRedoTransactionType();
+ void undo(in nsIMsgWindow msgWindow);
+ void redo(in nsIMsgWindow msgWindow);
+ void setDocumentCharset(in ACString characterSet);
+ /**
+ * Saves a given message to a file or template.
+ *
+ * @param aURI The URI of the message to save
+ * @param aAsFile If true, save as file, otherwise save as a template
+ * @param aIdentity When saving as a template, this is used to determine
+ * the location to save the template to.
+ * @param aMsgFilename When saving as a file, the filename to save the
+ * message as, or the default filename for the file
+ * picker.
+ * @param aBypassFilePicker
+ * If not specified or false, this function will show
+ * a file picker when saving as a file. If true, no
+ * file picker will be shown.
+ */
+ void saveAs(in ACString aURI, in boolean aAsFile,
+ in nsIMsgIdentity aIdentity, in AString aMsgFilename,
+ [optional] in boolean aBypassFilePicker);
+
+ /**
+ * Save the given messages as files in a folder - the user will be prompted
+ * for which folder to use.
+ * @param count message count
+ * @param filenameArray the filenames to use
+ * @param messageUriArray uris of the messages to save
+ */
+ void saveMessages(in unsigned long count,
+ [array, size_is(count)] in wstring filenameArray,
+ [array, size_is(count)] in string messageUriArray);
+
+ void openAttachment(in ACString contentTpe, in ACString url, in ACString displayName, in ACString messageUri, in boolean isExternalAttachment);
+ void saveAttachment(in ACString contentTpe, in ACString url, in ACString displayName, in ACString messageUri, in boolean isExternalAttachment);
+ void saveAllAttachments(in unsigned long count, [array, size_is(count)] in string contentTypeArray,
+ [array, size_is(count)] in string urlArray, [array, size_is(count)] in string displayNameArray,
+ [array, size_is(count)] in string messageUriArray);
+
+ void saveAttachmentToFile(in nsIFile aFile, in ACString aUrl, in ACString aMessageUri,
+ in ACString aContentType, in nsIUrlListener aListener);
+
+ /**
+ * For a single message and attachments, save these attachments to a file, and
+ * remove from the message. No warning windows will appear, so this is
+ * suitable for use in test and filtering.
+ *
+ * @param aDestFolder Folder to save files in
+ * @param aCount Number of attachments to save
+ * @param aContentTypeArray Content types of the attachments
+ * @param aUrlArray Urls for the attachments
+ * @param aDisplayNameArray Files names to save attachments to. Unique
+ * names will be created if needed.
+ * @param aMessageUriArray Uri for the source message
+ * @param aListener Listener to inform of start and stop of detach
+ */
+ void detachAttachmentsWOPrompts(in nsIFile aDestFolder,
+ in unsigned long aCount,
+ [array, size_is(aCount)] in string aContentTypeArray,
+ [array, size_is(aCount)] in string aUrlArray,
+ [array, size_is(aCount)] in string aDisplayNameArray,
+ [array, size_is(aCount)] in string aMessageUriArray,
+ in nsIUrlListener aListener);
+
+ void detachAttachment(in string contentTpe, in string url, in string displayName, in string messageUri, in boolean saveFirst, [optional] in boolean withoutWarning);
+ void detachAllAttachments(in unsigned long count, [array, size_is(count)] in string contentTypeArray,
+ [array, size_is(count)] in string urlArray, [array, size_is(count)] in string displayNameArray,
+ [array, size_is(count)] in string messageUriArray, in boolean saveFirst, [optional] in boolean withoutWarning);
+ // saveAttachmentToFolder is used by the drag and drop code to drop an attachment to a destination folder
+ // We need to return the actual file path (including the filename).
+ nsIFile saveAttachmentToFolder(in ACString contentType, in ACString url, in ACString displayName, in ACString messageUri, in nsIFile aDestFolder);
+
+ readonly attribute ACString lastDisplayedMessageUri;
+
+ nsIMsgMessageService messageServiceFromURI(in ACString aUri);
+ nsIMsgDBHdr msgHdrFromURI(in ACString aUri);
+ // For back forward history, we need a list of visited messages,
+ // and where we are in the list.
+
+ // aPos is relative to the current history cursor - 1 is forward, -1 is back.
+ // Unfortunately, you must call this before navigating to this position,
+ // because calling this has the side effect of making us adjust our current
+ // history pos, and *not* adding the loaded message to the history queue.
+ ACString getMsgUriAtNavigatePos(in long aPos);
+ ACString getFolderUriAtNavigatePos(in long aPos);
+ attribute long navigatePos;
+ // If caller just wants the count and cur pos, they can pass in a null history pointer, which will be more efficient
+ // if they want a list suitable for display in a back/forward menu drop down, they should pass in a aHistory pointer,
+ // and they'll get returned an array with strings containing something like subject and sender of the message -
+ // other possible info is the folder containing the message, and the preview text, if available.
+ void getNavigateHistory(out unsigned long aCurPos, out unsigned long aCount, [array, size_is(aCount)] out string aHistory);
+
+ AString formatFileSize(in unsigned long long aPos, [optional] in boolean aUseKB);
+};
+