ImagePrint/ImagePrintUI/imageprinteng/inc/cimageprint.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:45:53 +0200
changeset 0 d11fb78c4374
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:  
*
*/


#ifndef CIMAGEPRINT_H
#define CIMAGEPRINT_H

#include <e32base.h>
#include <coemain.h>

#include "rimageprintclient.h"
#include "imageprint.h"

class TPrintCapability;
class TPrinter;
class TEvent;
class CIdleGuard;
class CDiscoveryGuard;
class CJobGuard;

/**
 *	@brief Class containing the Image Print Library Public API.
 */
class CImagePrint : public CBase, public MCoeForegroundObserver
	{
		// Functions
		public:
			CImagePrint();
			~CImagePrint();
			void ConnectL();
			void Close();
			TVersion Version();
			TInt StartDiscoveryL(MPrinterDiscoveryObserver& aObserver, TUint aProtocols = 0);
			TInt CancelDiscovery();
			TInt CreatePrintJobL(TInt aPrinterID, RPointerArray<TDesC>& aImages, MPrintEventObserver& aObserver);
			TInt SubmitPrintJobL();
			TInt CancelPrintJob();
			TInt ContinuePrintJobL();
			TInt GetNumPrintPages();
			TInt GetJobStatus();
			TInt GetPrinterStatus(TInt aPrinterID);
			TInt GetPrinterCapabilityIDsL(TInt aPrinterID, RArray<TInt>& aCapabilityIDs);
			TInt GetPrinterCapabilityL(TInt aPrinterID, TInt aCapabilityID, TPrintCapability& aCapability);
			TInt GetJobSetting(TInt aCapabilityID, TInt& aValue);
			TInt SetJobSettingL(TInt aCapabilityID, TInt aValue, TInt& aAffectedCapability);
			TInt GetNumPreviewPages();
			TInt GetJobTemplateIconL(TInt aTemplateID, TInt& aFbsBitmapHandle);
			TInt GetNumberOfCopies( RArray<TInt>& aArray );
			TInt SetNumberOfCopies( const RArray<TInt>& aArray );
			TInt CreatePreviewImage(TInt aPageNumber);
			TInt RemoveCachedPrinterL(TInt aPrinterID);
			TUint SupportedProtocols();
			void RegisterIdleObserver(MIdleObserver *aObserver);

		public: // From MCoeForegroundObserver
			void HandleGainingForeground();
			void HandleLosingForeground();

		protected:
		private:

		// Data
		public:
		protected:
		private:
		
			RImagePrintClient iClient;
			CIdleGuard* iIdleGuard;
			CDiscoveryGuard* iDiscoveryGuard;
			CJobGuard* iJobGuard;
	};

#endif // CIMAGEPRINT_H

//  End of File