webengine/widgetinstaller/Inc/IconConverter.h
changeset 0 dd21522fd290
--- /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 <e32std.h>
+#include <e32base.h>
+#include <f32file.h>
+
+// 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<TSize>*   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__