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 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