diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mailnews/compose/src/nsMsgComposeService.h | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/mailnews/compose/src/nsMsgComposeService.h')
-rw-r--r-- | comm/mailnews/compose/src/nsMsgComposeService.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/comm/mailnews/compose/src/nsMsgComposeService.h b/comm/mailnews/compose/src/nsMsgComposeService.h new file mode 100644 index 0000000000..97911fb71f --- /dev/null +++ b/comm/mailnews/compose/src/nsMsgComposeService.h @@ -0,0 +1,68 @@ +/* -*- 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/. */ + +#define MSGCOMP_TRACE_PERFORMANCE 1 + +#include "nsIMsgComposeService.h" +#include "nsCOMPtr.h" +#include "mozIDOMWindow.h" +#include "nsIAppWindow.h" +#include "nsIObserver.h" +#include "nsWeakReference.h" +#include "nsIWeakReference.h" +#include "nsIMimeStreamConverter.h" +#include "nsInterfaceHashtable.h" + +#include "nsICommandLineHandler.h" +#define ICOMMANDLINEHANDLER nsICommandLineHandler + +class nsMsgComposeService : public nsIMsgComposeService, + public ICOMMANDLINEHANDLER, + public nsSupportsWeakReference { + public: + nsMsgComposeService(); + + NS_DECL_ISUPPORTS + NS_DECL_NSIMSGCOMPOSESERVICE + NS_DECL_NSICOMMANDLINEHANDLER + + nsresult Init(); + void Reset(); + void DeleteCachedWindows(); + nsresult AddGlobalHtmlDomains(); + + private: + virtual ~nsMsgComposeService(); + bool mLogComposePerformance; + + nsresult LoadDraftOrTemplate( + const nsACString& aMsgURI, nsMimeOutputType aOutType, + nsIMsgIdentity* aIdentity, const nsACString& aOriginalMsgURI, + nsIMsgDBHdr* aOrigMsgHdr, bool aForwardInline, bool overrideComposeFormat, + nsIMsgWindow* aMsgWindow, bool autodetectCharset); + + nsresult RunMessageThroughMimeDraft( + const nsACString& aMsgURI, nsMimeOutputType aOutType, + nsIMsgIdentity* aIdentity, const nsACString& aOriginalMsgURI, + nsIMsgDBHdr* aOrigMsgHdr, bool aForwardInline, const nsAString& forwardTo, + bool overrideComposeFormat, nsIMsgWindow* aMsgWindow, + bool autodetectCharset); + + // hash table mapping dom windows to nsIMsgCompose objects + nsInterfaceHashtable<nsISupportsHashKey, nsIWeakReference> + mOpenComposeWindows; + + // When doing a reply and the settings are enabled, get the HTML of the + // selected text in the original message window so that it can be quoted + // instead of the entire message. + nsresult GetOrigWindowSelection(MSG_ComposeType type, + mozilla::dom::Selection* selection, + nsACString& aSelHTML); + +#ifdef MSGCOMP_TRACE_PERFORMANCE + PRIntervalTime mStartTime; + PRIntervalTime mPreviousTime; +#endif +}; |