// PRNTPROG.H
//
// Copyright (C) Symbian Ltd 1998
//

// MODULE - Text message print progress dialog

#if !defined(__PRNTPROG_H__)
#define __PRNTPROG_H__

#if !defined(__EIKDIALG_H__)
#include <eikdialg.h>
#endif

#if !defined(__GDI_H__)
#include <gdi.h>
#endif

#if !defined(__PRNINF_H__)
#include <prninf.h>
#endif

#if !defined(__FRMPAGE_H__)
#include <frmpage.h>
#endif

#if !defined(__FLDBLTIN_H__)
#include <fldbltin.h>
#endif

#if !defined(__EIKMOBS_H__)
#include <eikmobs.h>
#endif

#if !defined(__EIKMFNE_H__)
#include <eikmfne.h>
#endif

#if !defined(__PDRPORT_H__)
#include <pdrport.h>
#endif

#if !defined (__EIKENV_H__)
#include <eikenv.h>
#endif


class CPrintSetup;


////////////////////////////////////////////////////////////////////////////////
//
// Class CMessagePrintProgressDialog
//
// A COPY of CMessagePrintProgressDialog to get round eikon bug (Series 5 Software  SW1-456)
//

class CMessagePrintProgressDialog : public CEikDialog, private MPrintProcessObserver
    {
public:
	// --- Construction ---
    IMPORT_C CMessagePrintProgressDialog(CPrintSetup& aPrintSetup, MPageRegionPrinter* aPageRegionPrinter,const TPrintParameters& aPrintParameters);
	~CMessagePrintProgressDialog();

private: // inherited and overridden
	//
	// --- From CEikDialog ---
	void PreLayoutDynInitL();
    TBool OkToExitL(TInt aButtonId);
	//
	// --- From MPrintProcessObserver ---
	virtual void NotifyPrintStarted(TPrintParameters aPrintParams);
	virtual void NotifyPrintEnded(TInt anErrorCode);
	virtual void NotifyBandPrinted(TInt aPercentageOfPagePrinted, TInt aCurrentPageNum, TInt aCurrentCopyNum);
	//
	// -- Specific methods ---
	void DisplayErrorMessage(TInt aErrCode,TDes& aDes);

private:
	// --- Data ---
	CPrintSetup&		iPrintSetup;
	MPageRegionPrinter* iPageRegionPrinter;
	TPrintParameters	iPrintParameters;
	TEikPortFlag		iPortFlag;
	};


#endif