--- 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 <AknUtils.h>
-#include <alf/alfviewportlayout.h>
-#include <alf/alftextvisual.h>
-#include <alf/alfutil.h>
-
-// 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<CAlfDeckLayout&>(
- static_cast<CAlfLayout*>(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<CAlfDeckLayout&>(
- static_cast<CAlfLayout*>(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<CAlfTextVisual*>(
- 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<CAlfViewportLayout*>(
- 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 <CAlfViewportLayout*>(
- 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<CAlfTextVisual*>(
- &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<CAlfViewportLayout*>(
- 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 <CAlfViewportLayout*>(
- 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<CAlfTextVisual*>(
- &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