/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 "nsrootidl.idl"
#include "nsIMsgStatusFeedback.idl"

interface nsIDOMWindow;
interface nsIPrintSettings;
interface nsIObserver;
interface nsIWebBrowserPrint;

[scriptable, uuid(e5f5e4a2-9d74-46b3-ade7-25e1a1ddf54e)]
interface nsIMsgPrintEngine : nsISupports {
    /**
     * Print/PrintPreview Msg Type
     */
    const short MNAB_START                 = 0;
    const short MNAB_PRINT_MSG             = 0;
    const short MNAB_PRINTPREVIEW_MSG      = 1;
    const short MNAB_PRINT_AB_CARD         = 2;
    const short MNAB_PRINTPREVIEW_AB_CARD  = 3;
    const short MNAB_PRINT_ADDRBOOK        = 4;
    const short MNAB_PRINTPREVIEW_ADDRBOOK = 5;
    const short MNAB_END                   = 6;

    void setWindow(in nsIDOMWindow ptr);
    void setParentWindow(in nsIDOMWindow ptr);
    void showWindow(in boolean aShow);
    void setStatusFeedback(in nsIMsgStatusFeedback feedback);
    void setPrintURICount(in int32_t aCount);
    void addPrintURI(in wstring aURI);
    void startPrintOperation(in nsIPrintSettings aPS);
    void setStartupPPObserver(in nsIObserver startupPPObs);
    void setMsgType(in long aMsgType);

    attribute boolean doPrintPreview;

};

