diff -r 4526337fb576 -r 3eca7e70b1b8 mulwidgets/mulcoverflowwidget/src/mulcovertemplate1.cpp --- a/mulwidgets/mulcoverflowwidget/src/mulcovertemplate1.cpp Tue Feb 02 00:28:09 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,533 +0,0 @@ -/* -* 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: Description of various grid templates - * -*/ - - -// Class Header -#include "mulcoverflowtemplate.h" - -// system includes -#include -#include -#include -#include - -// Local includes -#include "mulassert.h" -#include "mulcoverflowcontrol.h" - -namespace Alf - { - -// --------------------------------------------------------------------------- -// MulCoverLogicalTemplate1 -// --------------------------------------------------------------------------- -// -MulCoverFlowTemplate1::MulCoverFlowTemplate1(MulCoverFlowControl &aControl, - MulBaseElement &aBaseElement):MulCoverFlowTemplate(aControl, aBaseElement) - { - - } - -// --------------------------------------------------------------------------- -// ~MulCoverLogicalTemplate1 -// --------------------------------------------------------------------------- -// -MulCoverFlowTemplate1::~MulCoverFlowTemplate1() - { - - } - -// --------------------------------------------------------------------------- -// GetIconSize -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::GetIconSize(mulvisualitem::TVisualAttribute aAttribute,bool aIslandscape, int& aHeight, int& aWidth) - { - int appMainPaneVerityId; - int coverFlowPaneVarietyId; - int imagePaneVerityId ; - if (aIslandscape) - { - appMainPaneVerityId = 3; - coverFlowPaneVarietyId = 2; - imagePaneVerityId = 4; - } - else - { - appMainPaneVerityId = 5; - coverFlowPaneVarietyId = 0; - imagePaneVerityId = 0; - } - - // Get the size of the appwindow - TAknWindowLineLayout appMainLayout = - AknLayoutScalable_UiAccel::main_pane(appMainPaneVerityId).LayoutLine(); - TAknLayoutRect appMainRect; - appMainRect.LayoutRect( AlfUtil::ScreenSize(), appMainLayout ); - TSize appMainSize(appMainRect.Rect().Size()); - - // Get the size of the coverflow main window - TAknWindowLineLayout mainLayout = - AknLayoutScalable_UiAccel::main_aa_coverflow_pane(coverFlowPaneVarietyId).LayoutLine(); - TAknLayoutRect mainRect; - mainRect.LayoutRect( appMainSize, mainLayout ); - TSize mainSize(mainRect.Rect().Size()); - - switch(aAttribute) - { - case mulvisualitem::KMulIcon1: - { - TAknWindowLineLayout centerLayout = - AknLayoutScalable_UiAccel::aacf_image_pane(imagePaneVerityId).LayoutLine(); - TAknLayoutRect centerRect; - centerRect.LayoutRect( TSize(mainSize), centerLayout ); - aHeight = centerRect.Rect().Size().iHeight; - aWidth = centerRect.Rect().Size().iWidth; - break; - } - default: - { - // invalid attribute - // raise exception. - __MUL_ASSERT(false,KInvalidAttribute); - - break; - } - } - } - - -// --------------------------------------------------------------------------- -// CreateVisualisation -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::CreateVisualisation(bool aIsLandscape,bool aIsOrientationChange) - { - mData->mOrientationChange = aIsOrientationChange; - - // set the default attribue of the template - // irrespective of the orientation - mData->mUiOnOffFlag = false; - mData->mMaxVisibleCount = 3; - mData->mEnhancedSupportFlag = false; - - // store the default attribute in base element - mData->mBaseElement->SetFitMode(false); - - if (aIsLandscape) - { - // create visualisation for landscape - CreateLscStructure(); - } - else - { - // create visualisation for potrait - CreatePrtStructure(); - } - mData->mOrientationChange = false; - } - -// --------------------------------------------------------------------------- -// CreatePrtStructure -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::CreatePrtStructure() - { - // list of all component lct verity id. - int mainPaneVerityId = 0; - int imagePaneCenterVerityId = 0; - int counterPaneVerityId = 0; - - CAlfVisual* main = mData->mBaseElement->findVisual(KMainLayoutIndex); - CAlfLayout* parentLayout = main->Layout(); - TSize mainSize = parentLayout->Size().Target().AsSize(); - - // get for main layout - TAknWindowLineLayout componentLayout = - AknLayoutScalable_UiAccel::main_aa_coverflow_pane(mainPaneVerityId).LayoutLine(); - TRect mainRect = IconWindowRect(componentLayout, mainSize); - main->SetPos(TAlfRealPoint(0,0)); - main->SetSize(mainRect.Size()); - - - // for deck layout - CAlfDeckLayout& deckLayout = static_cast( - static_cast(main)->Visual(KMainLayoutIndex) ); - deckLayout.SetSize(mainRect.Size(),0); - - // if set background with some skin id is called before calling set model - // then the visual and texture would be created with 0,0 sizes - // hence we need to resize them - CAlfVisual* backgroundVisual = deckLayout.FindTag(backgroundvisual); - if(backgroundVisual) - { - backgroundVisual->SetSize(mainRect.Size(),0); - } - - // for center item - componentLayout = - AknLayoutScalable_UiAccel::aacf_image_pane(imagePaneCenterVerityId).LayoutLine(); - TRect centerRect = IconWindowRect(componentLayout,mainRect); - - TMulCoverFlowItem highlightItem(centerRect.iTl.iX, - centerRect.iTl.iY,centerRect.Size().iWidth,centerRect.Size().iHeight); - - // apply attribute - mData->mBaseElement->StoreVisualDimensions(highlightItem,highlightItem,1); - - ApplyCounterAttribute(counterPaneVerityId,mainRect); - ApplyTextAttribute(mainRect); - - // set the status of the slider - mData->mSliderEnabled = true; - ApplySliderAttribute(mainRect); - } - -// --------------------------------------------------------------------------- -// CreateLscStructure -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::CreateLscStructure() - { - // list of all component lct verity id. - int mainPaneVerityId = 2; - int imagePaneCenterVerityId = 4; - int imagePaneRightVerityId = 3; - int counterPaneVerityId = 4; - - CAlfVisual* main = mData->mBaseElement->findVisual(KMainLayoutIndex); - CAlfLayout* parentLayout = main->Layout(); - TSize mainSize = parentLayout->Size().Target().AsSize(); - - // get for main layout - TAknWindowLineLayout componentLayout = - AknLayoutScalable_UiAccel::main_aa_coverflow_pane(mainPaneVerityId).LayoutLine(); - TRect mainRect = IconWindowRect(componentLayout, mainSize); - main->SetPos(TAlfRealPoint(0,0)); - main->SetSize(mainRect.Size()); - - - // for deck layout - CAlfDeckLayout& deckLayout = static_cast( - static_cast(main)->Visual(KMainLayoutIndex) ); - deckLayout.SetSize(mainRect.Size(),0); - - // if set background with some skin id is called before calling set model - // then the visual and texture would be created with 0,0 sizes - // hence we need to resize them - CAlfVisual* backgroundVisual = deckLayout.FindTag(backgroundvisual); - if(backgroundVisual) - { - backgroundVisual->SetSize(mainRect.Size(),0); - } - - // for center item - componentLayout = - AknLayoutScalable_UiAccel::aacf_image_pane(imagePaneCenterVerityId).LayoutLine(); - TRect centerRect = IconWindowRect(componentLayout,mainRect); - - TMulCoverFlowItem highlightItem(centerRect.iTl.iX, - centerRect.iTl.iY,centerRect.Size().iWidth,centerRect.Size().iHeight); - - // for right item - if (AknLayoutUtils::LayoutMirrored()) - { - componentLayout = - AknLayoutScalable_UiAccel::aacf_image_pane_cp001(imagePaneRightVerityId).LayoutLine(); - } - else - { - componentLayout = - AknLayoutScalable_UiAccel::aacf_image_pane_cp002(imagePaneRightVerityId).LayoutLine(); - } - TRect rightItemRect = IconWindowRect(componentLayout,mainRect); - - TMulCoverFlowItem nonHighlightItem(rightItemRect.iTl.iX, - rightItemRect.iTl.iY,rightItemRect.Size().iHeight,rightItemRect.Size().iHeight); - - // apply attribute - mData->mBaseElement->StoreVisualDimensions(highlightItem,nonHighlightItem,3); - - ApplyCounterAttribute(counterPaneVerityId,mainRect); - ApplyTextAttribute(mainRect); - - // set the status of the slider - mData->mSliderEnabled = false; - } - -// --------------------------------------------------------------------------- -// ApplyCounterAttribute -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::ApplyCounterAttribute(int acounterPaneVerityId,const TRect& aMainRect) - { - TAknTextLineLayout counterComponentLayout = - AknLayoutScalable_UiAccel::main_aa_coverflow_pane_t1(acounterPaneVerityId).LayoutLine(); - - TRect counterRect = TextWindowRect(counterComponentLayout,aMainRect); - TSize counterSize(counterRect.Size()); - mData->mCounterDimensions.posx = counterRect.iTl.iX; - mData->mCounterDimensions.posy = counterRect.iTl.iY; - mData->mCounterDimensions.width = counterSize.iWidth; - mData->mCounterDimensions.height = counterSize.iHeight; - - // Set Properties to Counter Visual if we are creating. - // no need to apply attribute for orientation change - // as all are same. - if(!mData->mOrientationChange) - { - // Create a Counter visual if it is not Created. - CAlfTextVisual& counterVisual = mData->mBaseElement->CounterVisual(); - - //get font Id for counter - int fontId = counterComponentLayout.FontId(); - int counterFontId = 0x000000FF & fontId; - // apply default attribute - counterVisual.SetAlign(EAlfAlignHCenter,EAlfAlignVCenter); - SetTextStyle(counterFontId, counterVisual); - - // check if user has set some different attribute. - TMulVisualColorProperty counterColor = mData->mBaseElement->TextColor(ECounterVisual); - if (counterColor.mIsColorSet) - { - // apply the color set by the application - counterVisual.SetColor(counterColor.mColor); - } - else - { - // apply the default color - counterVisual.SetColor(KRgbWhite); - } - mData->mCounterFontMaxCharLength = UpdateMaxFontWidth(&counterVisual); - } - } - -// --------------------------------------------------------------------------- -// ApplyTextAttribute -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::ApplyTextAttribute(const TRect& aMainRect) - { - // list of all component lct verity id. - int textPaneVerityId ; - int textPaneBgVerityId ; - int textPaneTitleVerityId ; - int textPaneDetailVerityId ; - float bgTextOpacity; - - if (mData->mControl->IsLandscape()) - { - textPaneVerityId = 3; - textPaneBgVerityId = 0; - textPaneTitleVerityId = 0; - textPaneDetailVerityId = 0; - bgTextOpacity = 0.5; - } - else - { - textPaneVerityId = 0; - textPaneBgVerityId = 0; - textPaneTitleVerityId = 0; - textPaneDetailVerityId = 0; - bgTextOpacity = 0; - } - - // set text visibility - mData->mBaseElement->StoreTextVisibility( true ); - - // Create and apply attribute for text visual. - - CAlfLayout& textLayout = mData->mBaseElement->TextLayout(); - - // for parent text layout - TAknWindowLineLayout windowLineLayout = - AknLayoutScalable_UiAccel::aacf_image_title_pane(textPaneVerityId).LayoutLine(); - TRect textRect = IconWindowRect(windowLineLayout, aMainRect); - TRect textLayoutRect = TRect(0,0,textRect.Width(),textRect.Height()); - - // set the position of parent text layout. - textLayout.SetPos(textRect.iTl); - textLayout.SetSize(textRect.Size()); - - // for the background visual - CAlfTextVisual* bkgTextVisual = static_cast( - textLayout.FindTag(KLitMulBackGround)); - if(!bkgTextVisual) - { - bkgTextVisual = CAlfTextVisual::AddNewL(*mData->mControl, &textLayout); - bkgTextVisual->SetTagL(KLitMulBackGround); - bkgTextVisual->SetFlag(EAlfVisualFlagIgnorePointer); - } - windowLineLayout = - AknLayoutScalable_UiAccel::aacf_image_title_pane_g1(textPaneBgVerityId).LayoutLine(); - TRect bkgRect = IconWindowRect(windowLineLayout , textLayoutRect); - bkgTextVisual->SetSize(bkgRect.Size()); - bkgTextVisual->SetPos(bkgRect.iTl); - - ApplyBrush(*bkgTextVisual,KRgbBlack,bgTextOpacity); - - ApplyTitleTextAttribute(textPaneTitleVerityId,textLayoutRect); - ApplyDetailTextAttribute(textPaneDetailVerityId,textLayoutRect); - - } - -// --------------------------------------------------------------------------- -// ApplyTitleTextAttribute -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::ApplyTitleTextAttribute(int atextPaneTitleVerityId,const TRect& aTextLayoutRect) - { - - // get the main text layout - CAlfLayout& textLayout = mData->mBaseElement->TextLayout(); - - // for title visual - CAlfViewportLayout *viewPortLayout =static_cast( - textLayout.FindTag(KTitleViewPortLayout)); - if(viewPortLayout == NULL) - { - viewPortLayout = CAlfViewportLayout::AddNewL(*mData->mControl, - &textLayout); - viewPortLayout->SetTagL(KTitleViewPortLayout); - viewPortLayout->SetFlag(EAlfVisualFlagAutomaticLocaleMirroringEnabled); - viewPortLayout->SetFlag(EAlfVisualFlagIgnorePointer); - } - else - { - viewPortLayout = static_cast ( - textLayout.FindTag(KTitleViewPortLayout)); - } - TAknTextLineLayout textWindowLayout = - AknLayoutScalable_UiAccel::aacf_image_title_pane_t1(atextPaneTitleVerityId).LayoutLine(); - TRect titleRect = TextWindowRect(textWindowLayout, aTextLayoutRect); - mData->mTitleParentSize = titleRect.Size(); - viewPortLayout->SetSize(titleRect.Size()); - viewPortLayout->SetPos(titleRect.iTl); - viewPortLayout->SetViewportSize(TAlfRealSize(titleRect.Size()),0); - viewPortLayout->SetClipping(true); - CAlfTextVisual* textVisual = static_cast( - &mData->mBaseElement->CreateTextVisual(KCoverflowTitle,*viewPortLayout)); - - if(!mData->mOrientationChange) - { - //Get font ID - int fontId = textWindowLayout.FontId(); - int textFontId = 0x000000FF & fontId; - SetTextStyle(textFontId, *textVisual); - mData->mTitleFontMaxCharLength = UpdateMaxFontWidth(textVisual); - // Apply default attribute. - textVisual->SetAlign(EAlfAlignHLocale,EAlfAlignVCenter); - textVisual->SetOpacity(1); - - // check if user has set some different attribute. - TMulVisualColorProperty textColor = mData->mBaseElement->TextColor(ETilteDetailTextVisual); - if (textColor.mIsColorSet) - { - // apply the color set by the application - textVisual->SetColor(textColor.mColor); - } - else - { - // apply the default color - textVisual->SetColor(KRgbWhite); - } - } - } - -// --------------------------------------------------------------------------- -// ApplyDetailTextAttribute -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::ApplyDetailTextAttribute(int aTextPaneDetailVerityId,const TRect& aTextLayoutRect) - { - // get the main text layout - CAlfLayout& textLayout = mData->mBaseElement->TextLayout(); - - CAlfViewportLayout *viewPortLayout = NULL; - CAlfTextVisual* textVisual = NULL; - viewPortLayout =static_cast( - textLayout.FindTag(KDetailViewPortLayout)); - if(viewPortLayout == NULL) - { - viewPortLayout = CAlfViewportLayout::AddNewL(*mData->mControl, - &textLayout); - viewPortLayout->SetTagL(KDetailViewPortLayout); - viewPortLayout->SetFlag(EAlfVisualFlagAutomaticLocaleMirroringEnabled); - viewPortLayout->SetFlag(EAlfVisualFlagIgnorePointer); - } - else - { - viewPortLayout = static_cast ( - textLayout.FindTag(KDetailViewPortLayout)); - } - TAknTextLineLayout textWindowLayout = - AknLayoutScalable_UiAccel::aacf_image_title_pane_t2(aTextPaneDetailVerityId).LayoutLine(); - TRect detailRect = TextWindowRect(textWindowLayout, aTextLayoutRect); - mData->mDetailParentSize = detailRect.Size(); - viewPortLayout->SetSize(detailRect.Size()); - viewPortLayout->SetPos(detailRect.iTl); - viewPortLayout->SetViewportSize(TAlfRealSize(detailRect.Size()),0); - - viewPortLayout->SetClipping(true); - textVisual = static_cast( - &mData->mBaseElement->CreateTextVisual(KCoverflowDetail , *viewPortLayout )); - if(!mData->mOrientationChange) - { - //Get font ID - int fontId = textWindowLayout.FontId(); - int textFontId = 0x000000FF & fontId; - SetTextStyle(textFontId, *textVisual); - mData->mDetailFontMaxCharLength = UpdateMaxFontWidth(textVisual); - // Apply default attribute. - textVisual->SetAlign(EAlfAlignHLocale,EAlfAlignVCenter); - textVisual->SetOpacity(0.7); - - // check if user has set some different attribute. - TMulVisualColorProperty textColor = mData->mBaseElement->TextColor(ETilteDetailTextVisual); - if (textColor.mIsColorSet) - { - // apply the color set by the application - textVisual->SetColor(textColor.mColor); - } - else - { - // apply the default color - textVisual->SetColor(KRgbWhite); - } - } - - } - -// --------------------------------------------------------------------------- -// ApplySliderAttribute -// --------------------------------------------------------------------------- -// -void MulCoverFlowTemplate1::ApplySliderAttribute(const TRect& aMainRect) - { - int sliderPaneVerityId = 1; - - TAknWindowLineLayout componentLayout = - AknLayoutScalable_UiAccel::aacf_slider_pane(sliderPaneVerityId).LayoutLine(); - TRect sliderRect = IconWindowRect(componentLayout, aMainRect); - TSize sliderSize(sliderRect.Size()); - mData->mSliderDimensions.height = sliderSize.iHeight; - mData->mSliderDimensions.width = sliderSize.iWidth; - mData->mSliderDimensions.posx = sliderRect.iTl.iX; - mData->mSliderDimensions.posy = sliderRect.iTl.iY; - } - - }//namespace ends