From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- comm/mailnews/compose/src/nsMsgPrompts.cpp | 94 ++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 comm/mailnews/compose/src/nsMsgPrompts.cpp (limited to 'comm/mailnews/compose/src/nsMsgPrompts.cpp') diff --git a/comm/mailnews/compose/src/nsMsgPrompts.cpp b/comm/mailnews/compose/src/nsMsgPrompts.cpp new file mode 100644 index 0000000000..ff0f133285 --- /dev/null +++ b/comm/mailnews/compose/src/nsMsgPrompts.cpp @@ -0,0 +1,94 @@ +/* -*- 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/. */ +#include "nsMsgPrompts.h" + +#include "nsMsgCopy.h" +#include "nsIPrompt.h" +#include "nsIWindowWatcher.h" +#include "nsComposeStrings.h" +#include "nsIStringBundle.h" +#include "nsServiceManagerUtils.h" +#include "nsMsgUtils.h" +#include "mozilla/Components.h" +#include "nsIPromptService.h" +#include "nsEmbedCID.h" + +nsresult nsMsgGetMessageByName(const char* aName, nsString& aResult) { + nsresult rv; + nsCOMPtr bundleService = + mozilla::components::StringBundle::Service(); + NS_ENSURE_TRUE(bundleService, NS_ERROR_UNEXPECTED); + + nsCOMPtr bundle; + rv = bundleService->CreateBundle( + "chrome://messenger/locale/messengercompose/composeMsgs.properties", + getter_AddRefs(bundle)); + NS_ENSURE_SUCCESS(rv, rv); + + return bundle->GetStringFromName(aName, aResult); +} + +static nsresult nsMsgBuildMessageByName(const char* aName, nsIFile* aFile, + nsString& aResult) { + NS_ENSURE_ARG_POINTER(aFile); + nsresult rv; + nsCOMPtr bundleService = + mozilla::components::StringBundle::Service(); + NS_ENSURE_TRUE(bundleService, NS_ERROR_UNEXPECTED); + + nsCOMPtr bundle; + rv = bundleService->CreateBundle( + "chrome://messenger/locale/messengercompose/composeMsgs.properties", + getter_AddRefs(bundle)); + NS_ENSURE_SUCCESS(rv, rv); + + nsString path; + aFile->GetPath(path); + + AutoTArray params = {path}; + return bundle->FormatStringFromName(aName, params, aResult); +} + +nsresult nsMsgBuildMessageWithFile(nsIFile* aFile, nsString& aResult) { + return nsMsgBuildMessageByName("unableToOpenFile", aFile, aResult); +} + +nsresult nsMsgBuildMessageWithTmpFile(nsIFile* aFile, nsString& aResult) { + return nsMsgBuildMessageByName("unableToOpenTmpFile", aFile, aResult); +} + +nsresult nsMsgDisplayMessageByName(mozIDOMWindowProxy* window, + const char* aName, + const char16_t* windowTitle) { + nsString msg; + nsMsgGetMessageByName(aName, msg); + return nsMsgDisplayMessageByString(window, msg.get(), windowTitle); +} + +nsresult nsMsgDisplayMessageByString(mozIDOMWindowProxy* window, + const char16_t* msg, + const char16_t* windowTitle) { + NS_ENSURE_ARG_POINTER(msg); + + nsresult rv; + nsCOMPtr dlgService( + do_GetService(NS_PROMPTSERVICE_CONTRACTID, &rv)); + NS_ENSURE_SUCCESS(rv, rv); + + return dlgService->Alert(window, windowTitle, msg); +} + +nsresult nsMsgAskBooleanQuestionByString(mozIDOMWindowProxy* window, + const char16_t* msg, bool* answer, + const char16_t* windowTitle) { + NS_ENSURE_TRUE(msg && *msg, NS_ERROR_INVALID_ARG); + + nsresult rv; + nsCOMPtr dlgService( + do_GetService(NS_PROMPTSERVICE_CONTRACTID, &rv)); + NS_ENSURE_SUCCESS(rv, rv); + + return dlgService->Confirm(window, windowTitle, msg, answer); +} -- cgit v1.2.3