/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /builds/buildbot/moz2-slave/mozilla-1.9.1-macosx-xulrunner/build/widget/public/nsIPrintSettingsX.idl
 */

#ifndef __gen_nsIPrintSettingsX_h__
#define __gen_nsIPrintSettingsX_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
#include <PMApplication.h>

/* starting interface:    nsIPrintSettingsX */
#define NS_IPRINTSETTINGSX_IID_STR "3d3cf688-d988-4319-9ca2-1d7d20a116d8"

#define NS_IPRINTSETTINGSX_IID \
  {0x3d3cf688, 0xd988, 0x4319, \
    { 0x9c, 0xa2, 0x1d, 0x7d, 0x20, 0xa1, 0x16, 0xd8 }}

/**
 * Simplified PrintSettings for OSX interface 
 *
 * @status UNDER_REVIEW
 */
class NS_NO_VTABLE NS_SCRIPTABLE nsIPrintSettingsX : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IPRINTSETTINGSX_IID)

  /**
   * nativePrintSession attribute
   *
   * Convenience method which gets the nsIPrintSession
   * and returns its native session object
   *
   * Does NOT do PMRetain() on result.
   */
  /* [noscript] readonly attribute nsPMPrintSession nativePrintSession; */
  NS_IMETHOD GetNativePrintSession(PMPrintSession *aNativePrintSession) = 0;

  /**
   * PMPageFormat and PMPrintSettings attributes
   *
   * Getter does NOT do PMRetain() on result.
   * Setter does PMRetain() on parameter.
   */
  /* [noscript] attribute nsPMPageFormat pMPageFormat; */
  NS_IMETHOD GetPMPageFormat(PMPageFormat *aPMPageFormat) = 0;
  NS_IMETHOD SetPMPageFormat(PMPageFormat aPMPageFormat) = 0;

  /* [noscript] attribute nsPMPrintSettings pMPrintSettings; */
  NS_IMETHOD GetPMPrintSettings(PMPrintSettings *aPMPrintSettings) = 0;
  NS_IMETHOD SetPMPrintSettings(PMPrintSettings aPMPrintSettings) = 0;

  /**
   * readPageFormatFromPrefs and writePageFormatToPrefs
   *
   * Read and write a flattened PMPageFormat to/from prefs.
   * This also contains any custom data we appended to the dialog
   */
  /* [noscript] void readPageFormatFromPrefs (); */
  NS_IMETHOD ReadPageFormatFromPrefs(void) = 0;

  /* [noscript] void writePageFormatToPrefs (); */
  NS_IMETHOD WritePageFormatToPrefs(void) = 0;

  /**
   * cleanUpAfterCarbonDialog
   *
   * After bringing up Carbon print dialogs, clean up menus.
   * See bug 425844 for details.
   */
  /* [noscript] void cleanUpAfterCarbonDialog (); */
  NS_IMETHOD CleanUpAfterCarbonDialog(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIPrintSettingsX, NS_IPRINTSETTINGSX_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIPRINTSETTINGSX \
  NS_IMETHOD GetNativePrintSession(PMPrintSession *aNativePrintSession); \
  NS_IMETHOD GetPMPageFormat(PMPageFormat *aPMPageFormat); \
  NS_IMETHOD SetPMPageFormat(PMPageFormat aPMPageFormat); \
  NS_IMETHOD GetPMPrintSettings(PMPrintSettings *aPMPrintSettings); \
  NS_IMETHOD SetPMPrintSettings(PMPrintSettings aPMPrintSettings); \
  NS_IMETHOD ReadPageFormatFromPrefs(void); \
  NS_IMETHOD WritePageFormatToPrefs(void); \
  NS_IMETHOD CleanUpAfterCarbonDialog(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIPRINTSETTINGSX(_to) \
  NS_IMETHOD GetNativePrintSession(PMPrintSession *aNativePrintSession) { return _to GetNativePrintSession(aNativePrintSession); } \
  NS_IMETHOD GetPMPageFormat(PMPageFormat *aPMPageFormat) { return _to GetPMPageFormat(aPMPageFormat); } \
  NS_IMETHOD SetPMPageFormat(PMPageFormat aPMPageFormat) { return _to SetPMPageFormat(aPMPageFormat); } \
  NS_IMETHOD GetPMPrintSettings(PMPrintSettings *aPMPrintSettings) { return _to GetPMPrintSettings(aPMPrintSettings); } \
  NS_IMETHOD SetPMPrintSettings(PMPrintSettings aPMPrintSettings) { return _to SetPMPrintSettings(aPMPrintSettings); } \
  NS_IMETHOD ReadPageFormatFromPrefs(void) { return _to ReadPageFormatFromPrefs(); } \
  NS_IMETHOD WritePageFormatToPrefs(void) { return _to WritePageFormatToPrefs(); } \
  NS_IMETHOD CleanUpAfterCarbonDialog(void) { return _to CleanUpAfterCarbonDialog(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIPRINTSETTINGSX(_to) \
  NS_IMETHOD GetNativePrintSession(PMPrintSession *aNativePrintSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNativePrintSession(aNativePrintSession); } \
  NS_IMETHOD GetPMPageFormat(PMPageFormat *aPMPageFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPMPageFormat(aPMPageFormat); } \
  NS_IMETHOD SetPMPageFormat(PMPageFormat aPMPageFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPMPageFormat(aPMPageFormat); } \
  NS_IMETHOD GetPMPrintSettings(PMPrintSettings *aPMPrintSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPMPrintSettings(aPMPrintSettings); } \
  NS_IMETHOD SetPMPrintSettings(PMPrintSettings aPMPrintSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPMPrintSettings(aPMPrintSettings); } \
  NS_IMETHOD ReadPageFormatFromPrefs(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadPageFormatFromPrefs(); } \
  NS_IMETHOD WritePageFormatToPrefs(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->WritePageFormatToPrefs(); } \
  NS_IMETHOD CleanUpAfterCarbonDialog(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CleanUpAfterCarbonDialog(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsPrintSettingsX : public nsIPrintSettingsX
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPRINTSETTINGSX

  nsPrintSettingsX();

private:
  ~nsPrintSettingsX();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsPrintSettingsX, nsIPrintSettingsX)

nsPrintSettingsX::nsPrintSettingsX()
{
  /* member initializers and constructor code */
}

nsPrintSettingsX::~nsPrintSettingsX()
{
  /* destructor code */
}

/* [noscript] readonly attribute nsPMPrintSession nativePrintSession; */
NS_IMETHODIMP nsPrintSettingsX::GetNativePrintSession(PMPrintSession *aNativePrintSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] attribute nsPMPageFormat pMPageFormat; */
NS_IMETHODIMP nsPrintSettingsX::GetPMPageFormat(PMPageFormat *aPMPageFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsPrintSettingsX::SetPMPageFormat(PMPageFormat aPMPageFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] attribute nsPMPrintSettings pMPrintSettings; */
NS_IMETHODIMP nsPrintSettingsX::GetPMPrintSettings(PMPrintSettings *aPMPrintSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsPrintSettingsX::SetPMPrintSettings(PMPrintSettings aPMPrintSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void readPageFormatFromPrefs (); */
NS_IMETHODIMP nsPrintSettingsX::ReadPageFormatFromPrefs()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void writePageFormatToPrefs (); */
NS_IMETHODIMP nsPrintSettingsX::WritePageFormatToPrefs()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void cleanUpAfterCarbonDialog (); */
NS_IMETHODIMP nsPrintSettingsX::CleanUpAfterCarbonDialog()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIPrintSettingsX_h__ */
