pictographs/AknPictograph/inc/AknPictographFactory.h
changeset 0 05e9090e2422
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pictographs/AknPictograph/inc/AknPictographFactory.h	Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2002 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:  Pictograph factory.
+*                Creates pictographs according to definition table.
+*
+*
+*/
+
+
+#ifndef AKN_PICTOGRAPH_FACTORY_H
+#define AKN_PICTOGRAPH_FACTORY_H
+
+// INCLUDES
+
+#include "AknPictographConstants.h"
+#include "AknPictographDrawerInterface.h"
+#include <e32std.h>
+
+// CONSTANTS
+
+// FORWARD DECLARATIONS
+struct TAknPictographData;
+class CFont;
+class CFbsBitmapDevice;
+class CFbsBitmap;
+class CFbsBitGc;
+
+// CLASS DECLARATION
+
+/**
+* Pictograph factory.
+* Used for retrieving pictograph definitions.
+* Only this class accesses the pictograph definition tables.
+*/
+NONSHARABLE_CLASS(AknPictographFactory)
+	{
+    public: // New functions
+
+        static HBufC* SupportedPictographCodesL();
+
+        static TInt StaticPictographData( 
+            TText aCode,
+            TAknPictographHeight aHeight,
+            TAknPictographData& aData );
+
+        static TInt AnimatedPictographData(
+            TText aCode,
+            TAknPictographHeight aHeight,
+            TUint aCounter,
+            TAknPictographData& aData );
+
+        static const TAknStaticPictographDefinition* StaticPictographTable();
+        static const TAknAnimatedPictographDefinition* AnimatedPictographTable();
+
+
+       /**
+        * Loads the bitmaps and masks for the supported heights to allocated array objects.
+        * The array objects are returned and owned by the caller.
+        *
+        * A bitmap can be looked up for a given height using indexes returned by function
+        * GetArrayIndexForHeight.
+        *
+        * @since 2.8
+        * @param aBitmaps stores the loaded bitmaps for the supported heights
+        * @param aMasks stores the loaded masks for the bitmaps for the supported heights
+        */
+        static void LoadBitmapsL(
+            RPointerArray<CFbsBitmap>*& aBitmaps,
+            RPointerArray<CFbsBitmap>*& aMasks
+            );
+
+       /**
+        * Gets an array index for a supported height value. This index can be used
+        * to access data specific to a given height in arrays.
+        *
+        * @since 2.8
+        * @param aHeight Pictograph height.
+        * @param aIndex returns the array index if the call is successful
+        * @return KErrNone if aHeight is supported otherwise returns KErrNotSupported
+        */
+        static TInt GetArrayIndexForHeight(
+            TAknPictographHeight aHeight,
+            TUint& aIndex
+            );
+
+       /**
+        * Tries to find a matching pictograph height for a given font.
+        *
+        * @since 2.8
+        * @param aFont Used font.
+        * @param aHeight Pictograph height.
+        * @return KErrNone if a supported pictograph height is found that matches
+        *         aFont otherwise returns KErrNotSupported
+        */
+        static TInt SelectPictographHeightForFont(
+            const CFont& aFont,
+            TAknPictographHeight& aHeight
+            );
+
+        /**
+        * Creates white bitmaps to be used when drawing pictographs in EDrawingModeWhite mode.
+        * The objects are returned and owned by the caller.
+        * aMaskGc should be used to copy the actual pictograph mask to aMask before drawing
+        * the pictograph.
+        *
+        *
+        * @since 2.8
+        * @param aBitmap white bitmap
+        * @param aBitmap white bitmap mask
+        * @param aMaskBitmapDevice bitmap device for aBitmap
+        * @param aMaskGc graphics context for aBitmap
+        */
+        static void CreateWhiteBitmapsL(
+            CFbsBitmap*& aBitmap,
+            CFbsBitmap*& aMask,
+            CFbsBitmapDevice*& aMaskBitmapDevice,
+            CFbsBitGc*& aMaskGc
+            );
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        AknPictographFactory();
+    };
+
+#endif      // AKN_PICTOGRAPH_FACTORY_H
+
+// End of File