diff options
Diffstat (limited to 'widget/nsIPrintSettingsWin.idl')
-rw-r--r-- | widget/nsIPrintSettingsWin.idl | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/widget/nsIPrintSettingsWin.idl b/widget/nsIPrintSettingsWin.idl new file mode 100644 index 000000000..ae840b085 --- /dev/null +++ b/widget/nsIPrintSettingsWin.idl @@ -0,0 +1,69 @@ +/* -*- 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 "nsISupports.idl" + +%{ C++ +#include "windows.h" +%} + +/** + * Native types + */ + [ptr] native nsDevMode(DEVMODEW); + native nsHdc(HDC); + +/** + * Simplified PrintSettings for Windows interface + */ +[scriptable, uuid(c63eed41-6ac5-459e-8a64-033eb9ad770a)] + +interface nsIPrintSettingsWin : nsISupports +{ + /** + * Data Members + * + * Each of these data members make a copy + * of the contents. If you get the value, + * you own the memory. + * + * The following three pieces of data are needed + * to create a DC for printing. These are typcially + * gotten via the PrintDLG call ro can be obtained + * via the "m_pd" data member of the CPrintDialog + * in MFC. + */ + [noscript] attribute wstring deviceName; + [noscript] attribute wstring driverName; + + [noscript] attribute nsDevMode devMode; + + /** + * On Windows we use the printable width and height for the printing surface. + * We don't want to have to create native print device contexts in the content + * process, so we need to store these in the settings. + * Storing in Inches is most convenient as they are retrieved from the device + * using fields which are in pixels and pixels per inch. + * Note these are stored in portrait format to ensure that we can take account + * of our own changes to the orientation print setting. + */ + [noscript] attribute double printableWidthInInches; + [noscript] attribute double printableHeightInInches; + + /** + * Copy relevant print settings from native Windows device. + * + * @param hdc HDC to copy from + * @param devMode DEVMODE to copy from + */ + [notxpcom] void copyFromNative(in nsHdc hdc, in nsDevMode devMode); + + /** + * Copy relevant print settings to native windows structures. + * + * @param devMode DEVMODE to be populated. + */ + [notxpcom] void copyToNative(in nsDevMode devMode); +}; |