camerauis/activepalette/Src/ActivePalette2Utils.cpp
changeset 0 1ddebce53859
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/activepalette/Src/ActivePalette2Utils.cpp	Thu Jan 07 16:18:56 2010 +0200
@@ -0,0 +1,356 @@
+/*
+* Copyright (c) 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:  Active Palette Utilities*
+*/
+
+
+/**
+ * @file ActivePalette2Utils.cpp
+ * Active Palette Utilities
+ */
+
+// INCLUDE FILES
+#include "ActivePalette2Utils.h"
+
+#include "ActivePalette2Cfg.h"
+
+#include <fbs.h>
+#include <bitstd.h>
+#include <eikenv.h>
+#include <e32math.h>
+#include <AknUtils.h>
+
+// LOCAL CONSTANTS
+
+// ================= MEMBER FUNCTIONS =======================
+
+// -----------------------------------------------------------------------------
+// ActivePalette2Utils::CreateDrawingObjectsL(
+// -----------------------------------------------------------------------------
+//
+void ActivePalette2Utils::CreateDrawingObjectsL(const TDisplayMode aDisplayMode,
+														 const TSize aSize,
+														 CFbsBitmap** aBitmap, 
+														 CFbsBitmapDevice** aDevice,
+														 CBitmapContext** aGc)
+    {
+	CreateDrawingObjectsLC(aDisplayMode,aSize,aBitmap,aDevice,aGc);
+	CleanupStack::Pop(*aGc);
+	CleanupStack::Pop(*aDevice);
+	CleanupStack::Pop(*aBitmap);
+    }
+
+// -----------------------------------------------------------------------------
+// ActivePalette2Utils::CreateDrawingObjectsLC()
+// -----------------------------------------------------------------------------
+//
+void ActivePalette2Utils::CreateDrawingObjectsLC(const TDisplayMode aDisplayMode,
+                                                          const TSize aSize,
+                                                          CFbsBitmap** aBitmap, 
+                                                          CFbsBitmapDevice** aDevice,
+                                                          CBitmapContext** aGc)
+    {   
+	*aBitmap = new (ELeave) CFbsBitmap();
+	CleanupStack::PushL(*aBitmap);
+
+	User::LeaveIfError((*aBitmap)->Create(aSize,aDisplayMode));
+
+	*aDevice = CFbsBitmapDevice::NewL(*aBitmap);
+	CleanupStack::PushL(*aDevice);
+
+	CFbsBitGc* context;
+	User::LeaveIfError((*aDevice)->CreateContext(context));
+	*aGc = context;
+	CleanupStack::PushL(*aGc);
+    }
+
+// -----------------------------------------------------------------------------
+// ActivePalette2Utils::CreateDrawingObjectsL()
+// -----------------------------------------------------------------------------
+//
+void ActivePalette2Utils::CreateDrawingObjectsL(const TSize aSize,
+														 CFbsBitmap**       aBitmap, 
+														 CFbsBitmapDevice** aDevice,
+														 CBitmapContext**   aGc)
+    {
+    TInt color;
+    TInt gray;
+	TDisplayMode displayMode;
+	displayMode = CEikonEnv::Static()->WsSession().GetDefModeMaxNumColors(color,gray);
+	CreateDrawingObjectsL(displayMode,aSize,aBitmap,aDevice,aGc);
+    }
+
+// -----------------------------------------------------------------------------
+// ActivePalette2Utils::DeleteDrawingObjects()
+// -----------------------------------------------------------------------------
+//
+void ActivePalette2Utils::DeleteDrawingObjects( CFbsBitmap**       aBitmap, 
+                                                CFbsBitmapDevice** aDevice,
+                                                CBitmapContext**   aGc)
+    {
+	if (*aGc)	
+	    {
+		delete *aGc;
+		*aGc = NULL;
+	    }
+	if (*aDevice)	
+	    {
+		delete *aDevice;
+		*aDevice = NULL;
+	    }
+	if (*aBitmap)
+	    {
+		delete *aBitmap;
+		*aBitmap = NULL;
+	    }
+    }
+    
+
+// -----------------------------------------------------------------------------
+// ActivePalette2Utils::APDimension()
+// -----------------------------------------------------------------------------
+//
+TInt ActivePalette2Utils::APDimension( TAPDimension aDimensionType, TInt aGeneric )
+    {
+    TSize ScreenSize( 0, 0 );
+	AknLayoutUtils::LayoutMetricsSize( AknLayoutUtils::EScreen, ScreenSize );
+	TInt baseheight = 240;
+	TInt lower = 0;
+	if ( ScreenSize.iWidth < ScreenSize.iHeight )
+    	{
+    	lower = ScreenSize.iWidth;
+    	}
+    else
+        {
+        lower = ScreenSize.iHeight;
+        }
+    TReal ratio = TReal(lower)/baseheight;
+    TInt returnValue = 0;
+    TReal roundResult;
+    switch ( aDimensionType )
+        {
+        case EItemWidth:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KItemWidth, 0 );
+            }
+            break;
+        case EItemHeight:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KItemHeight, 0 );
+            }
+            break;
+        case EPaletteWidth:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KPaletteWidth, 0 );
+            }
+            break;
+        case ETopSectionHeight:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KTopSectionHeight, 0 );
+            }
+            break;
+        case EBottomSectionHeight:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KBottomSectionHeight, 0 );
+            }
+            break;
+        case EGapBetweenItems:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KGapBetweenItems, 0 );
+            }
+            break;
+        case EItemXOffset:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KItemXOffset, 0 );
+            }
+            break;
+        case EFocusRingWidth:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KFocusRingWidth, 0 );
+            }
+            break;
+        case EFocusRingHeight:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KFocusRingHeight, 0 );
+            }
+            break;
+        case EFocusRingXOffset:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KFocusRingXOffset, 0 );
+            }
+            break;
+        case EFocusRingYOffset:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KFocusRingYOffset, 0 );
+            }
+            break;
+        case ETooltipYOffset:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KTooltipYOffset, 0 );
+            }
+            break;
+        case ETooltipHeight:
+            {
+            Math::Round( roundResult, NAP2Cfg::KTooltipFactor*ratio*NAP2Cfg::KTooltipHeight, 0 );
+            }
+            break;
+        case ETooltipWidth:
+            {
+            Math::Round( roundResult, NAP2Cfg::KTooltipFactor*ratio*NAP2Cfg::KTooltipWidth, 0 );
+            }
+            break;
+        case ETooltipBaseline:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::KTooltipBaseline, 0 );
+            }
+            break;
+        case ETooltipTail:
+            {
+            Math::Round( roundResult, NAP2Cfg::KTooltipFactor*ratio*NAP2Cfg::KTooltipTail, 0 );
+            }
+            break;
+        case ETooltipNose:
+            {
+            Math::Round( roundResult, NAP2Cfg::KTooltipFactor*ratio*NAP2Cfg::KTooltipNose, 0 );
+            }
+            break;
+        case E3dTooltipTextYOffset:
+            {
+            Math::Round( roundResult, ratio*NAP2Cfg::K3dTooltipTextYOffset, 0 );
+            }
+            break;
+        case E3dTooltipMaxWidth:
+            {
+            roundResult = ScreenSize.iWidth;
+            }
+            break;
+        case EGenericParam:
+            {
+            Math::Round( roundResult, ratio*aGeneric, 0 );
+            }
+            break;
+        default:
+            {
+            //PRINT( _L("Camera :: CCamAppUi::HandleCommandL Panic!") )
+            //CamPanic( ECamPanicUi );
+            }
+            break;
+        }
+    returnValue = TInt(roundResult);
+    return returnValue;
+    }
+
+
+// -----------------------------------------------------------------------------
+// ActivePalette2Utils::APDimensionSize()
+// -----------------------------------------------------------------------------
+//
+TSize ActivePalette2Utils::APDimensionSize( TAPDimensionSize aDimensionSize )
+    {
+    TSize returnSize( 0, 0 );
+    switch ( aDimensionSize )
+        {
+        case EItemSize:
+            {
+            TInt width = ActivePalette2Utils::APDimension( EItemWidth );
+            TInt height = ActivePalette2Utils::APDimension( EItemHeight );
+            returnSize.SetSize( width, height );
+            }
+            break;
+        case E3dPaletteTextureSize:
+            {
+            TInt width = ActivePalette2Utils::APDimension( EGenericParam, K3dPaletteTextureSize.iWidth );
+            TInt height = ActivePalette2Utils::APDimension( EGenericParam, K3dPaletteTextureSize.iHeight );
+            returnSize.SetSize( width, height );
+            }
+            break;
+        case E3dScrollIconSize:
+            {
+            TInt width = ActivePalette2Utils::APDimension( EGenericParam, K3dScrollIconSize.iWidth );
+            TInt height = ActivePalette2Utils::APDimension( EGenericParam, K3dScrollIconSize.iHeight );
+            returnSize.SetSize( width, height );
+            }
+            break;
+        case E3dFocusRingSize:
+            {
+            TInt width = ActivePalette2Utils::APDimension( EGenericParam, K3dFocusRingSize.iWidth );
+            TInt height = ActivePalette2Utils::APDimension( EGenericParam, K3dFocusRingSize.iHeight );
+            returnSize.SetSize( width, height );
+            }
+            break;
+        default:
+            {
+            //PRINT( _L("Camera :: CCamAppUi::HandleCommandL Panic!") )
+            //CamPanic( ECamPanicUi );
+            }
+            break;
+        }
+    return returnSize;
+    }
+
+// -----------------------------------------------------------------------------
+// ActivePalette2Utils::APDimensionPoint()
+// -----------------------------------------------------------------------------
+//
+TPoint ActivePalette2Utils::APDimensionPoint( TAPDimensionPoint aDimensionPoint )
+    {
+    TPoint returnPoint( 0, 0 );
+    switch ( aDimensionPoint )
+        {
+        case EDefault2dPaletteOffset:
+            {
+            TInt x = ActivePalette2Utils::APDimension( EGenericParam, KDefault2dPaletteOffset.iX );
+            TInt y = ActivePalette2Utils::APDimension( EGenericParam, KDefault2dPaletteOffset.iY );
+            returnPoint.SetXY( x, y );
+            }
+            break;
+        case EDefault3dPaletteOffset:
+            {
+            TInt x = ActivePalette2Utils::APDimension( EGenericParam, KDefault3dPaletteOffset.iX );
+            TInt y = ActivePalette2Utils::APDimension( EGenericParam, KDefault3dPaletteOffset.iY );
+            returnPoint.SetXY( x, y );
+            }
+            break;
+        case E3dScrollIconOffset:
+            {
+            TInt x = ActivePalette2Utils::APDimension( EGenericParam, K3dScrollIconOffset.iX );
+            TInt y = ActivePalette2Utils::APDimension( EGenericParam, K3dScrollIconOffset.iY );
+            returnPoint.SetXY( x, y );
+            }
+            break;
+        case E3dFocusRingOffset:
+            {
+            TInt x = ActivePalette2Utils::APDimension( EGenericParam, K3dFocusRingOffset.iX );
+            TInt y = ActivePalette2Utils::APDimension( EGenericParam, K3dFocusRingOffset.iY );
+            returnPoint.SetXY( x, y );
+            }
+            break;
+        case E3dTooltipOffset:
+            {
+            TInt x = -ActivePalette2Utils::APDimension( EItemXOffset );
+            TInt y = ActivePalette2Utils::APDimension( EGenericParam, K3dTooltipOffset.iY );
+            returnPoint.SetXY( x, y );
+            }
+            break;
+        default:
+            {
+            //PRINT( _L("Camera :: CCamAppUi::HandleCommandL Panic!") )
+            //CamPanic( ECamPanicUi );
+            }
+            break;
+        }
+    return returnPoint;
+    }
+
+// End of File