widget/nsIPrintSettingsWin.idl
author Noemi Erli <nerli@mozilla.com>
Tue, 26 Feb 2019 03:43:12 +0200
changeset 461110 3c030119c0dcf447dd1afe7165b2d6846a0bc7f0
parent 385842 396ff2a152d77a0c28f09fefc8b0a96659f2d4ba
child 470303 0f12aebacdd6845bed9e7f2cbf8e33dbd9b50b8b
permissions -rw-r--r--
Backed out 10 changesets (bug 1505871) for wrench bustages CLOSED TREE Backed out changeset 045ab0ec3613 (bug 1505871) Backed out changeset 6486435a048d (bug 1505871) Backed out changeset 9be871042749 (bug 1505871) Backed out changeset 0007feaf988d (bug 1505871) Backed out changeset 3cb8fb01e77e (bug 1505871) Backed out changeset 2fff213d97e3 (bug 1505871) Backed out changeset 1ad20d485eca (bug 1505871) Backed out changeset 0fd8742fa662 (bug 1505871) Backed out changeset 1899600a7985 (bug 1505871) Backed out changeset f9578d20e54e (bug 1505871)

/* -*- 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 AString deviceName;
  [noscript] attribute AString 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);
};