sl@0: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0: // All rights reserved.
sl@0: // This component and the accompanying materials are made available
sl@0: // under the terms of "Eclipse Public License v1.0"
sl@0: // which accompanies this distribution, and is available
sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: //
sl@0: // Initial Contributors:
sl@0: // Nokia Corporation - initial contribution.
sl@0: //
sl@0: // Contributors:
sl@0: //
sl@0: // Description:
sl@0: //
sl@0: 
sl@0: #ifndef PCL5_H
sl@0: #define PCL5_H
sl@0: 
sl@0: #include <pdrstore.h>
sl@0: 
sl@0: class CBandedDevice;
sl@0: 
sl@0: /**
sl@0: @internalComponent
sl@0: */
sl@0: enum TPcl5PaperSize
sl@0: 	{
sl@0: 	EPcl5Executive = 1,
sl@0: 	EPcl5Letter = 2,
sl@0: 	EPcl5Legal = 3,
sl@0: 	EPcl5Ledger = 6,
sl@0: 	EPcl5A4 = 26,
sl@0: 	EPcl5A3 = 27,
sl@0: 	EPcl5Monarch = 80,
sl@0: 	EPcl5Com_10 = 81,
sl@0: 	EPcl5DL = 90,
sl@0: 	EPcl5C5 = 91
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @internalComponent
sl@0: */
sl@0: enum TPcl5Encoding
sl@0: 	{
sl@0: 	EPcl5None = 0,
sl@0: 	EPcl5RunLength = 1,
sl@0: 	EPcl5TIFF = 2,
sl@0: 	EPcl5DeltaRow = 3,
sl@0: 	EPcl5Reserved = 4,
sl@0: 	EPcl5Adaptive = 5
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @internalComponent
sl@0: */
sl@0: enum TPcl5Flags
sl@0: 	{
sl@0: 	EPcl5DeskjetPrinter = 1,
sl@0: 	EPcl5LandscapeNotAvailable = 2,
sl@0: 	EPcl5LandscapeBandingRightToLeft = 4
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @internalComponent
sl@0: */
sl@0: enum TPcl5RasterGraphicsMode
sl@0: 	{
sl@0: 	EPcl5LogicalPageOrientation=0,
sl@0: 	EPcl5PhysicalPageOrientation=3
sl@0: 	};
sl@0: 
sl@0: /**
sl@0: @internalComponent
sl@0: */
sl@0: IMPORT_C CPrinterDevice* NewPrinterDeviceL();
sl@0: 
sl@0: class CPcl5Device : public CFbsDrvDevice
sl@0: /**
sl@0: @internalComponent
sl@0: */
sl@0: 	{
sl@0: public:
sl@0: 	CPcl5Device();
sl@0: 	~CPcl5Device();
sl@0: 	TInt CreateContext(CGraphicsContext*& aGC);
sl@0: 	void CreateControlL(CPrinterPort* aPrinterPort);
sl@0: 	};
sl@0: 
sl@0: class CPcl5Control : public CFbsDrvControl
sl@0: /**
sl@0: @internalComponent
sl@0: */
sl@0: 	{
sl@0: public:
sl@0: 	static CPcl5Control* NewL(CPdrDevice* aPdrDevice, CPrinterPort* aPrinterPort, CStreamStore& aStore, TStreamId aResourcesStreamId);
sl@0: 	~CPcl5Control();
sl@0: 	TMoreOnPage QueueGetBand(TRequestStatus& aStatus, TBandAttributes& aBand);
sl@0: 	// print control functions
sl@0: protected:
sl@0: 	CPcl5Control(CPdrDevice* aPdrDevice, CPrinterPort* aPrinterPort);
sl@0: 	void ConstructL(CStreamStore& aStore, TStreamId aResourcesStreamId);
sl@0: 
sl@0: 	void OutputBandL();
sl@0: 
sl@0: 	void SetPageSizeL(); 
sl@0: 	void SetPageOrientationL();
sl@0: 	void SetTextColorL(const TRgb& aColor);
sl@0: 
sl@0: protected:
sl@0: 	TBool iLandscapeMode;
sl@0: 	};
sl@0: 
sl@0: #endif