This file is indexed.

/usr/share/idl/thunderbird/nsIPrintOptions.idl is in thunderbird-dev 1:38.6.0+build1-0ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/* -*- 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"
#include "nsIPrintSettings.idl"

%{ C++
struct nsFont;

namespace mozilla {
namespace embedding {
  class PrintData;
}
}
%}

interface nsIStringEnumerator;
interface nsIWebBrowserPrint;

/**
 * Native types
 */
[ref] native nsNativeFontRef(nsFont);
[ref] native PrintDataRef(const mozilla::embedding::PrintData);
[ptr] native PrintDataPtr(mozilla::embedding::PrintData);

/**
 * Print options interface
 *
 * Do not attempt to freeze this API - it still needs lots of work. Consult
 * John Keiser <jkeiser@netscape.com> and Roland Mainz
 * <roland.mainz@informatik.med.uni-giessen.de> for futher details.
 */
[scriptable, uuid(2ac74034-700e-40fd-8059-81d33223af58)]

interface nsIPrintOptions : nsISupports
{
  /**
   * Show Native Print Options dialog, this may not be supported on all platforms
   */
  void ShowPrintSetupDialog(in nsIPrintSettings aThePrintSettings);

  /**
   * Creates a new PrintSettnigs Object
   * and initializes it from prefs
   */
  nsIPrintSettings CreatePrintSettings();

  /**
   * Get a prefixed integer pref 
   */
  int32_t getPrinterPrefInt(in nsIPrintSettings aPrintSettings, in wstring
                            aPrefName);

  /**
   * display Printer Job Properties dialog
   */
  void displayJobProperties (in wstring aPrinter, in nsIPrintSettings
                             aPrintSettings, out boolean aDisplayed);

  /**
   * Native data constants
   */
  const short kNativeDataPrintRecord        = 0;

  [noscript] voidPtr GetNativeData(in short aDataType);

  /**
   * Given some nsIPrintSettings and (optionally) an nsIWebBrowserPrint, populates
   * a PrintData representing them which can be sent over IPC. Values are only
   * ever read from aSettings and aWBP.
   *
   * @param aSettings
   *        An nsIPrintSettings for a print job.
   * @param aWBP (optional)
   *        The nsIWebBrowserPrint for the print job.
   * @param data
   *        Pointer to a pre-existing PrintData to populate.
   *
   * @return nsresult
   */
  [noscript] void SerializeToPrintData(in nsIPrintSettings aPrintSettings,
                                       in nsIWebBrowserPrint aWebBrowserPrint,
                                       in PrintDataPtr data);

  /**
   * This function is the opposite of SerializeToPrintData, in that it takes
   * a PrintData, and populates a pre-existing nsIPrintSettings with the data
   * from PrintData.
   *
   * @param PrintData
   *        Printing information sent through IPC.
   * @param settings
   *        A pre-existing nsIPrintSettings to populate with the PrintData.
   *
   * @return nsresult
   */
  [noscript] void DeserializeToPrintSettings(in PrintDataRef data,
                                             in nsIPrintSettings aPrintSettings);
};

[scriptable, uuid(5e738fff-404c-4c94-9189-e8f2cce93e94)]

interface nsIPrinterEnumerator : nsISupports
{
  /**
   * The name of the system default printer. This name should also be
   * present in printerNameList below. This is not necessarily gecko's
   * default printer; see nsIPrintSettingsService.defaultPrinterName
   * for that.
   */
  readonly attribute wstring defaultPrinterName;

  /**
   * Initializes certain settings from the native printer into the PrintSettings
   * These settings include, but are not limited to:
   *   Page Orientation
   *   Page Size
   *   Number of Copies
   */
  void initPrintSettingsFromPrinter(in wstring aPrinterName, in nsIPrintSettings aPrintSettings);

  /**
   * The list of printer names
   */
  readonly attribute nsIStringEnumerator printerNameList;

  /*  takes printer selected and will display job properties dlg for that printer
   *  returns true if dialog displays
   */
  void displayPropertiesDlg(in wstring aPrinter, in nsIPrintSettings aPrintSettings);

};