michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsCOMPtr.h" michael@0: #include "nsIServiceManager.h" michael@0: #include "nsPrintOptionsX.h" michael@0: #include "nsPrintSettingsX.h" michael@0: michael@0: nsPrintOptionsX::nsPrintOptionsX() michael@0: { michael@0: } michael@0: michael@0: nsPrintOptionsX::~nsPrintOptionsX() michael@0: { michael@0: } michael@0: michael@0: nsresult michael@0: nsPrintOptionsX::ReadPrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName, uint32_t aFlags) michael@0: { michael@0: nsresult rv; michael@0: michael@0: rv = nsPrintOptions::ReadPrefs(aPS, aPrinterName, aFlags); michael@0: NS_ASSERTION(NS_SUCCEEDED(rv), "nsPrintOptions::ReadPrefs() failed"); michael@0: michael@0: nsRefPtr printSettingsX(do_QueryObject(aPS)); michael@0: if (!printSettingsX) michael@0: return NS_ERROR_NO_INTERFACE; michael@0: rv = printSettingsX->ReadPageFormatFromPrefs(); michael@0: michael@0: return rv; michael@0: } michael@0: michael@0: nsresult nsPrintOptionsX::_CreatePrintSettings(nsIPrintSettings **_retval) michael@0: { michael@0: nsresult rv; michael@0: *_retval = nullptr; michael@0: michael@0: nsPrintSettingsX* printSettings = new nsPrintSettingsX; // does not initially ref count michael@0: NS_ENSURE_TRUE(printSettings, NS_ERROR_OUT_OF_MEMORY); michael@0: NS_ADDREF(*_retval = printSettings); michael@0: michael@0: rv = printSettings->Init(); michael@0: if (NS_FAILED(rv)) { michael@0: NS_RELEASE(*_retval); michael@0: return rv; michael@0: } michael@0: michael@0: InitPrintSettingsFromPrefs(*_retval, false, nsIPrintSettings::kInitSaveAll); michael@0: return rv; michael@0: } michael@0: michael@0: nsresult michael@0: nsPrintOptionsX::WritePrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName, uint32_t aFlags) michael@0: { michael@0: nsresult rv; michael@0: michael@0: rv = nsPrintOptions::WritePrefs(aPS, aPrinterName, aFlags); michael@0: NS_ASSERTION(NS_SUCCEEDED(rv), "nsPrintOptions::WritePrefs() failed"); michael@0: michael@0: nsRefPtr printSettingsX(do_QueryObject(aPS)); michael@0: if (!printSettingsX) michael@0: return NS_ERROR_NO_INTERFACE; michael@0: rv = printSettingsX->WritePageFormatToPrefs(); michael@0: NS_ASSERTION(NS_SUCCEEDED(rv), "nsPrintSettingsX::WritePageFormatToPrefs() failed"); michael@0: michael@0: return NS_OK; michael@0: }