diff options
Diffstat (limited to 'widget/nsPrintSettingsService.h')
-rw-r--r-- | widget/nsPrintSettingsService.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/widget/nsPrintSettingsService.h b/widget/nsPrintSettingsService.h new file mode 100644 index 0000000000..43965455a1 --- /dev/null +++ b/widget/nsPrintSettingsService.h @@ -0,0 +1,87 @@ +/* -*- Mode: IDL; tab-width: 4; 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 nsPrintSettingsService_h +#define nsPrintSettingsService_h + +#include "nsCOMPtr.h" +#include "nsIPrintSettings.h" +#include "nsIPrintSettingsService.h" +#include "nsString.h" +#include "nsFont.h" + +/** + * Class nsPrintSettingsService. Base class for the platform specific widget + * subclasses to inherit from. + */ +class nsPrintSettingsService : public nsIPrintSettingsService { + public: + NS_DECL_ISUPPORTS + NS_DECL_NSIPRINTSETTINGSSERVICE + + nsPrintSettingsService() = default; + + /** + * method Init + * Initializes member variables. Every consumer that does manual + * creation (instead of do_CreateInstance) needs to call this method + * immediately after instantiation. + */ + virtual nsresult Init(); + + private: + // Copying is not supported. + nsPrintSettingsService(const nsPrintSettingsService& x) = delete; + nsPrintSettingsService& operator=(const nsPrintSettingsService& x) = delete; + + protected: + virtual ~nsPrintSettingsService() = default; + + void ReadBitFieldPref(const char* aPrefId, int32_t anOption); + void WriteBitFieldPref(const char* aPrefId, int32_t anOption); + void ReadJustification(const char* aPrefId, int16_t& aJust, + int16_t aInitValue); + void WriteJustification(const char* aPrefId, int16_t aJust); + bool ReadInchesToTwipsPref(const char* aPrefId, int32_t& aTwips); + void WriteInchesFromTwipsPref(const char* aPrefId, int32_t aTwips); + bool ReadInchesIntToTwipsPref(const char* aPrefId, int32_t& aTwips); + void WriteInchesIntFromTwipsPref(const char* aPrefId, int32_t aTwips); + + nsresult ReadPrefDouble(const char* aPrefId, double& aVal); + nsresult WritePrefDouble(const char* aPrefId, double aVal); + + /** + * method ReadPrefs + * @param aPS a pointer to the printer settings + * @param aPrinterName the name of the printer for which to read prefs + * @param aFlags flag specifying which prefs to read + */ + virtual nsresult ReadPrefs(nsIPrintSettings* aPS, + const nsAString& aPrinterName, uint32_t aFlags); + /** + * method WritePrefs + * @param aPS a pointer to the printer settings + * @param aPrinterName the name of the printer for which to write prefs + * @param aFlags flag specifying which prefs to read + */ + virtual nsresult WritePrefs(nsIPrintSettings* aPS, + const nsAString& aPrinterName, uint32_t aFlags); + + const char* GetPrefName(const char* aPrefName, const nsAString& aPrinterName); + + /** + * method _CreatePrintSettings + * May be implemented by the platform-specific derived class + * + * @return printer settings instance + */ + virtual nsresult _CreatePrintSettings(nsIPrintSettings** _retval) = 0; + + // Members + nsCString mPrefName; +}; + +#endif // nsPrintSettingsService_h |