diff -r 4ea6f81c838a -r 0e9bb658ef58 mulwidgets/mulcoverflowwidget/src/mulcoverflowtemplate.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mulwidgets/mulcoverflowwidget/src/mulcoverflowtemplate.cpp Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,203 @@ +/* +* Copyright (c) 2007-2008 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: CoverFlow templates Implementation + * +*/ + +// Include Files + +#include + +// Alf Headers +#include +#include +#include +#include + +// Class Header +#include "mulcoverflowtemplate.h" + +// Local Headers +#include "mulcoverflowcontrol.h" +#include "mulbaseelement.h" +#include "mulleave.h" +#include "mullog.h" //for logs + +namespace Alf + { + +// --------------------------------------------------------------------------- +// MulCoverFlowTemplate +// --------------------------------------------------------------------------- +// +MulCoverFlowTemplate::MulCoverFlowTemplate(MulCoverFlowControl &aControl, + MulBaseElement &aBaseElement) + { + MUL_LOG_ENTRY_EXIT("Mul::MulCoverFlowTemplate::MulCoverFlowTemplate"); + + mData.reset( new (EMM)TMulCoverFlowTemplateImpl); + mData->mControl = &aControl; + mData->mBaseElement = &aBaseElement; + } + + + void MulCoverFlowTemplate::CreateVisualisation(bool /*aIsLandscape*/,bool /*aIsOrientationChange*/) + { + + } + +// --------------------------------------------------------------------------- +// ~MulCoverFlowWidget +// --------------------------------------------------------------------------- +// +MulCoverFlowTemplate::~MulCoverFlowTemplate() + { + + } + +// --------------------------------------------------------------------------- +// ApplyBrush +// --------------------------------------------------------------------------- +// +void MulCoverFlowTemplate::ApplyBrush( CAlfTextVisual& aVisual, + const TRgb& aBrushColour, float aBrushOpacity ) + { + MUL_LOG_ENTRY_EXIT("Mul::MulCoverFlowTemplate::ApplyBrush"); + + // Enable brush on the text visual + aVisual.EnableBrushesL( ETrue ); + CAlfBrushArray* brushArray = aVisual.Brushes(); + if(brushArray) + { + if( brushArray->Count()!=0) + { + //brushArray->Reset(); + CAlfGradientBrush& brush = static_cast( + brushArray->At(0)); + brush.SetColor( aBrushColour ); + brush.SetOpacity(aBrushOpacity); + } + else + { + THROW_IF_LEAVES + ( + CAlfGradientBrush* brush = CAlfGradientBrush::NewL( + mData->mControl->Env() ); + // Set the brush colour + brush->SetColor( aBrushColour ); + // Apply brush and set the opacity . + aVisual.Brushes()->AppendL( brush, EAlfHasOwnership ); + brush->SetOpacity(aBrushOpacity); + ); + } + } + } + + +// --------------------------------------------------------------------------- +// GetFontId +// --------------------------------------------------------------------------- +// +TInt MulCoverFlowTemplate::GetFontId(const UString &aFontStyle,CAlfTextStyleManager& manager)const + { + MUL_LOG_ENTRY_EXIT("Mul::MulCoverFlowTemplate::GetFontId"); + TInt fontId = 0; + if ( aFontStyle == "qfn_secondary" ) + { + THROW_IF_LEAVES + ( + fontId = manager.CreatePlatformTextStyleL(EAknLogicalFontSecondaryFont, -1); + ); + } + else // by default it assumes the primary font. + { + THROW_IF_LEAVES + ( + fontId = manager.CreatePlatformTextStyleL(EAknLogicalFontPrimaryFont, -1); + ); + } + return fontId; + } + +// --------------------------------------------------------------------------- +// IconWindowRect +// --------------------------------------------------------------------------- +// +TRect MulCoverFlowTemplate::IconWindowRect( + const TAknWindowLineLayout &aLayout, + const TRect& aParentRect) + { + TAknLayoutRect layoutRect ; + layoutRect.LayoutRect( aParentRect, aLayout ); + TRect rect(layoutRect.Rect()); + return rect; + } + +// --------------------------------------------------------------------------- +// TextWindowRect +// --------------------------------------------------------------------------- +// +TRect MulCoverFlowTemplate::TextWindowRect( + const TAknTextLineLayout& aLayout, + const TRect& aParentRect) + { + TAknLayoutText layoutText; + layoutText.LayoutText( aParentRect, aLayout ); + TRect rect(layoutText.TextRect()); + return rect; + } + + +// --------------------------------------------------------------------------- +// UpdateMaxFontWidth +// --------------------------------------------------------------------------- +// +int MulCoverFlowTemplate ::UpdateMaxFontWidth(CAlfTextVisual* textVisual) + { + int maxCharWidth = 0; + int fontId = textVisual->TextStyle(); + const CFont* font = AknLayoutUtils::FontFromId(fontId, NULL); + TFontSpec curfontSpec = font->FontSpecInTwips(); + curfontSpec.iFontStyle.SetStrokeWeight(EStrokeWeightNormal); + maxCharWidth = font->MaxCharWidthInPixels(); + return maxCharWidth; + } + +// --------------------------------------------------------------------------- +// SetTextStyle +// --------------------------------------------------------------------------- +// +void MulCoverFlowTemplate:: SetTextStyle(int aTextFontId, CAlfTextVisual& aTextVisual) + { + MUL_LOG_ENTRY_EXIT("Mul::MulCoverFlowTemplate::SetTextStyle"); + UString textStyle; + switch(aTextFontId) + { + case 0: textStyle=UString("qfn_primary"); + break; + + case 1: textStyle=UString("qfn_primary"); + break; + + case 2: textStyle=UString("qfn_secondary"); + break; + + } + CAlfTextStyleManager& manager = aTextVisual.Env().TextStyleManager(); + aTextVisual.SetTextStyle(GetFontId(textStyle, manager)); + } + + }//namespace Alf + +// End of file.