/* -*- Mode: C++; 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 "nsIPaper.idl" #include "nsIPrintSettings.idl" #include "nsISupports.idl" [scriptable, uuid(855ae9dd-62a4-64aa-9c60-b1078ff028f1)] interface nsIPrinterInfo : nsISupports { /** * An array of nsIPaper instances that represents the available paper sizes. */ readonly attribute Array paperList; /** * nsIPrintSettings object containing the default settings for a printer. */ readonly attribute nsIPrintSettings defaultSettings; }; [scriptable, uuid(d2dde9bb-df86-469c-bfcc-fd95a44b1db8)] interface nsIPrinter : nsISupports { /** * The name of the printer. */ readonly attribute AString name; /** * The system name of the printer. * * This may be faster for lookup in nsIPrinterList functions, but will only * work for functions that will accept the system name. */ readonly attribute AString systemName; /** * Returns a Promise that resolves to a nsIPrinterInfo. * This will contain the default printer settings, and the list of paper * sizes supported by the printer. */ [implicit_jscontext] readonly attribute Promise printerInfo; /** * Returns a Promise that resolves to a new settings object that contains all * of the settings from aSettingsToCopyFrom that are valid for this printer. * Any settings that are not valid for the printer are set to default/fallback * values. */ [implicit_jscontext] Promise copyFromWithValidation(in nsIPrintSettings aSettingsToCopyFrom); /** * Returns a Promise that resolves to true or false to indicate whether this * printer supports duplex printing. */ [implicit_jscontext] readonly attribute Promise supportsDuplex; /** * Returns a Promise that resolves to true or false to indicate whether this * printer supports color printing. */ [implicit_jscontext] readonly attribute Promise supportsColor; /** * Returns a Promise that resolves to true or false to indicate whether this * printer supports monochrome printing. */ [implicit_jscontext] readonly attribute Promise supportsMonochrome; /** * Returns a Promise that resolves to true or false to indicate whether this * printer supports collation. */ [implicit_jscontext] readonly attribute Promise supportsCollation; };