diff -r 000000000000 -r dd21522fd290 webengine/widgetinstaller/Inc/IconConverter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/widgetinstaller/Inc/IconConverter.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,253 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: Icon convert to convert icon for png to mbm format +* +*/ + + +#ifndef __ICONCONVERTER_H__ +#define __ICONCONVERTER_H__ + +// INCLUDES +#include +#include +#include + +// FORWARD DECLARATION +class CFbsBitmap; +class CBitmapScaler; +class CImageDecoder; + +//namespace SwiUI +//{ +class MConverterController; +/* +* Inherited CActive, performs a asynchronous conversion operation +* +* @lib WidgetInstallerUI.lib +* @since 3.1 +*/ +class CIconConverter : public CActive + { + // states for this engine + enum TState + { + EIdle = 0, + EDecoding, + EConvertingFile, + EScalingIcon, + EScalingMask, + EStoringIcon, + EFinalize + }; + + public: + + public: // contructors/destructors + + /* + * NewL + * + * Create a CIconConverter object and return a pointer to it. + * + * Params: + * aController Pointer to a MConverterController interface. + * The engine uses NotifyCompletionL callback from this interface + * to notify the controller about completions of coding or + * encoding requests. + * + * Returns: + * A pointer to the created engine + * + */ + static CIconConverter* NewL( MConverterController* aController , RFs& aFs ); + + /* + * ~CIconConverter + * + * Destructor + * + */ + ~CIconConverter(); + + public: // interface methods + + /* + * StartToDecodeL + * + * Starts to decode an image from a file. When completed calls + * NotifyCompletionL, from iController. + * + * @Params: + * aFileName Full path and filename of the image to be decoded. + * + * @Returns: + * Nothing + */ + void StartToDecodeL( const TDesC& aInputFileName, const TDesC& aOutputFileName ); + + + protected: // implementation of CActive + + /* + * From CActive + * + * Handle the cancel operation + * + */ + void DoCancel(); + + /* + * From CActive + * + * Handle the conversion process + * + */ + void RunL(); + + /* + * From CActive + * Handle the error situations + */ + TInt RunError( TInt aError ); + + private: // internal methods, constructors + + /* + * CIconConverter + * + * C++ Constructor + * + */ + CIconConverter( MConverterController* aController, RFs& aFs ); + + /* + * ConstructL + * + * 2-phase constructor + * + * @Returns: + * Nothing + */ + void ConstructL(); + + /* + * GetTempIconName + * + * Get temporary icon name + * + * @Returns: + * Nothing + */ + void GetTempIconName( TInt aIndex, TFileName& aIconName ); + + /* + * DoCreateFinalIconL + * + * Create the final icon + * + * @Returns: + * Nothing + */ + void DoCreateFinalIconL(); + + /* + * DoIconStoreL + * + * Store icon and mask files + * + * @Returns: + * Nothing + */ + void DoIconStoreL(); + + /* + * ScalerL + * + * Create bitmap scalar + * + * @Returns: + * CBitmapScaler + */ + CBitmapScaler& ScalerL(); + + /* + * DoScalingL + * + * Scale + * + * @Returns: + * Nothing + */ + void DoScalingL( CFbsBitmap& aBitmapSource, CFbsBitmap& aBitmapTarget ); + + /* + * DoMaskScalingL + * + * Scale the mask + * + * @Returns: + * Nothing + */ + void DoMaskScalingL(); + + /* + * DoIconScalingL + * + * Scale the bitmap + * + * @Returns: + * Nothing + */ + void DoIconScalingL(); + + /* + * DoProcessMaskL + * + * Process the mask for the bitmap + * + * @Returns: + * Nothing + */ + void DoProcessMaskL(); + + private: // internal data + + // The client's pending status + TRequestStatus* iClientStatus; + MConverterController* iController; // ui controller, owned + RFs iFs; // for opening/saving images from/to files, not owned + CImageDecoder* iImageDecoder; // decoder from ICL API, owned + HBufC* iOutputFileName; // the resulted file name, owned + TState iState; // state of the conversion + CArrayFixFlat* iIconSizes; + // Original bitmap pointers garnered from the PNG in the midlet + CFbsBitmap* iOriginalBitmap; + CFbsBitmap* iOriginalBitmapMask; + // Scaled target bitmaps + CFbsBitmap* iTempBitmap; + CFbsBitmap* iTempBitmapMask; + // Bitmap scaler + CBitmapScaler* iScaler; + // The current size icon being converted + TInt iCurrentSizeIndex; + // Icon file + RFile iIconFile; + RFile iIconPngFile; + // Path to create Temp icons + const HBufC* iTempPath; + + }; +//} +#endif // #ifndef __ICONCONVERTER_H__