--- a/mulwidgets/mulsliderwidget/src/mulprogressbarslider.cpp Mon Jun 21 16:15:51 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,562 +0,0 @@
-/*
-* 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: Implementation for presentation element- progressbar.
-*
-*/
-
-//Toolkit Includes
-#include <alf/alfimagevisual.h>
-#include <alf/alfevent.h>
-
-// Alfred Client includes
-#include <alf/alfenv.h>
-#include <alf/alftexture.h>
-#include <alf/alftextvisual.h>
-#include <alf/alflayout.h>
-#include <aknconsts.h>
-#include <avkon.mbg>
-
-//Widget Model Includes
-#include <alf/alfwidgetenvextension.h>
-
-//Avkon Includes
-#include <AknUtils.h>
-#include <AknsConstants.h>
-#include <utf.h>
-
-//OpenC Includes
-
-#include <math.h>
-
-//slider widget includes
-#include "mulprogressbarslider.h"
-#include "mulutility.h"
-#include "mulsliderutils.h"
-#include "mulsliderwidget.h"
-#include "mulslidermodel.h"
-#include "mulsliderdefinitions.h"
-
-// Textureid's used for comparison
-const TInt KAlfProgressBarTextureId = 1;
-const TInt KAlfFrameLeftTextureId = 2;
-const TInt KAlfFrameCentreTextureId = 3;
-const TInt KAlfFrameRightTextureId = 4;
-namespace Alf
- {
-// Structure to store data for the progressbar element class
-struct MulSliderProgressBarImpl
- {
- int mMaxRange; //Store Max range for progressbar from model
- int mMinRange; //Store Min range for progressbar from model
- int mTempMin; //Temporary stores the min range
- int mTempMax; //Temporary stores the max range
- int mTick; // Store Tick value for progressbar from model
- int mImageTextureId; // to differtiate between textures
- bool mOrientationLandScape; // check for landscape
- sliderTemplate mTemplateId; //slider template id
- CAlfLayout* mMainLayout; //slider main layout
- int mProgressBarTextureId;// to store the auto generated texture id's
- int mFrameLeftTextureId ;
- int mFrameCentreTextureId;
- int mFrameRightTextureId ;
- CAlfLayout* mBaseSliderLayout;
- CAlfImageVisual* mSliderProgressCentre;
- CAlfImageVisual* mSliderSecProgressCentre;
- CAlfImageVisual* mFrameLeftImage;
- CAlfImageVisual* mFrameRightImage;
- CAlfImageVisual* mFrameCentreImage;
- CAlfTexture* mTexture;
- MulSliderProgressBarImpl()
- {
- mTick = 0;
- mMaxRange = 0;
- mMinRange = 0;
- mTempMax = 0;
- mTempMin = 0;
- mImageTextureId = 0;
- mTemplateId = ESliderTemplateNone;
- mProgressBarTextureId = 0;
- mFrameLeftTextureId = 0;
- mFrameCentreTextureId = 0;
- mFrameRightTextureId = 0;
- mBaseSliderLayout = NULL;
- mSliderProgressCentre = NULL;
- mSliderSecProgressCentre = NULL;
- mOrientationLandScape = false;
- }
- };
-// ---------------------------------------------------------------------------
-// MulSliderProgressive default constructor.
-// ---------------------------------------------------------------------------
-//
-MulSliderProgressive::MulSliderProgressive(
- CAlfWidgetControl& aControl,
- const char* aName ,
- AlfCustomInitDataBase* /*aCustomData*/)
- : mData(NULL)
- {
- // Base class (AlfElement) construct
- construct(aControl, aName);
- mData = new (EMM) MulSliderProgressBarImpl;
- iBitmap = new (EMM) CFbsBitmap;
- // initializes the mSlliderModel and mSliderWidget
- initializeSliderData();
-
- }
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-MulSliderProgressive::~MulSliderProgressive()
- {
- // Visualization Data
- if(mData)
- {
- (&control().Env())->TextureManager().UnloadTexture(mData->mProgressBarTextureId);
- (&control().Env())->TextureManager().UnloadTexture(mData->mFrameLeftTextureId);
- (&control().Env())->TextureManager().UnloadTexture(mData->mFrameRightTextureId);
- (&control().Env())->TextureManager().UnloadTexture(mData->mFrameCentreTextureId);
-
- delete mData;
- delete iBitmap;
- }
- else
- {
-
- }
-
- }//End of Destructor
-
-// ---------------------------------------------------------------------------
-// From class MAlfInterfaceBase.
-// Getter for interfaces provided by the slider widget.
-// ---------------------------------------------------------------------------
-//
-IAlfInterfaceBase* MulSliderProgressive::makeInterface(
- const IfId& aType)
- {
- UString param (aType.mImplementationId);
- if (param == IAlfWidgetEventHandler::type().mImplementationId)
- {
- return static_cast<IAlfWidgetEventHandler*>(this);
- }
-
- else if (param ==
- IMulSliderBaseElementInternal::type().mImplementationId)
- {
- return static_cast<IMulSliderBaseElementInternal*>(this);
- }
-
- IAlfInterfaceBase* interface = 0;
- interface = AlfElement::makeInterface(aType);
- return interface;
- }
-
-// ---------------------------------------------------------------------------
-// Gets called when the parent layout is relayouted.
-// resets all the anchor points and updates the visualization
-// ---------------------------------------------------------------------------
-//
-void MulSliderProgressive::baseLayoutSizeChanged()
- {
- mData->mMainLayout->ClearFlag(EAlfVisualFlagLayoutUpdateNotification);
- control().Env().RefreshCallBack(&(control().Env()));
- // Layout the visualization w.r.t. mainlayout
- layoutVisuals(mSliderModel->GetTemplate());
- if(mSliderModel->IsLandscape())
- {
- if(mSliderWidget->GetOpacity())
- {
- TAlfTimedValue opacity(1,0);
- mData->mMainLayout->SetOpacity(opacity);
- }
- }
- else
- {
- TAlfTimedValue opacity(0,0);
- mData->mMainLayout->SetOpacity(opacity);
- }
- mData->mMainLayout->SetFlag(EAlfVisualFlagLayoutUpdateNotification);
- updateVisualization();
- }
-// ---------------------------------------------------------------------------
-// From class IAlfWidgetEventHandler.
-// setActiveStates
-// ---------------------------------------------------------------------------
-void MulSliderProgressive::setActiveStates(
- unsigned int /*aStates*/)
- {
- //do nothing
- }
-
-// ---------------------------------------------------------------------------
-// initializes Model and Widget Pointer
-// ---------------------------------------------------------------------------
-//
-void MulSliderProgressive::initializeSliderData()
- {
- // initialize the Slider Widget Pointer;
- IAlfWidgetFactory& widgetFactory =
- AlfWidgetEnvExtension::widgetFactory(control().Env());
- mSliderWidget = static_cast<MulSliderWidget*>(widgetFactory.findWidget(
- control().widget()->widgetName()));
-
- // initialize the Slider Model Pointer;
- mSliderModel = static_cast<MulSliderModel*>(mSliderWidget->model());
- }
-
-// ---------------------------------------------------------------------------
-// Bitmap provider
-// ---------------------------------------------------------------------------
-//
-void MulSliderProgressive::ProvideBitmapL (TInt aId,
- CFbsBitmap *& aBitmap,
- CFbsBitmap *& aMaskBitmap)
- {
- TAknLayoutRect layoutRect;
-
- switch(mData->mImageTextureId)
- {
- case KAlfProgressBarTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap, aMaskBitmap, KAvkonBitmapFile,
- EMbmAvkonQgn_graf_bar_progress,
- EMbmAvkonQgn_graf_bar_progress_mask );
-
- TInt aHandle = aBitmap->Handle();
-
- iBitmap->Duplicate(aHandle);
-
- AknIconUtils::SetSize( aBitmap,TSize(50,14),EAspectRatioNotPreserved);
- mData->mImageTextureId = 0;
- mData->mProgressBarTextureId = aId;
- }
- break;
- case KAlfFrameLeftTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap, aMaskBitmap, KAvkonBitmapFile,
- EMbmAvkonQgn_graf_bar_frame_side_l,
- EMbmAvkonQgn_graf_bar_frame_side_l_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EPSliderLeft,
- mData->mMainLayout,
- KVariety0);
-
- AknIconUtils::SetSize( aBitmap,TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iWidth),
- EAspectRatioNotPreserved);
-
- // AknIconUtils::SetSize( aBitmap,TSize(7,17),EAspectRatioNotPreserved);
-
- mData->mImageTextureId = 0;
- mData->mFrameLeftTextureId = aId;
- }
- break;
- case KAlfFrameRightTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap, aMaskBitmap, KAvkonBitmapFile,
- EMbmAvkonQgn_graf_bar_frame_side_r,
- EMbmAvkonQgn_graf_bar_frame_side_r_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EPSliderRight,
- mData->mMainLayout,
- KVariety0);
-
- AknIconUtils::SetSize( aBitmap,TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iWidth),
- EAspectRatioNotPreserved);
-
- // AknIconUtils::SetSize( aBitmap,TSize(7,17),EAspectRatioNotPreserved);
- mData->mImageTextureId = 0;
- mData->mFrameRightTextureId = aId;
- }
- break;
- case KAlfFrameCentreTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap, aMaskBitmap, KAvkonBitmapFile,
- EMbmAvkonQgn_graf_bar_frame_center,
- EMbmAvkonQgn_graf_bar_frame_center_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EPSliderCentre,
- mData->mMainLayout,
- KVariety0);
-
- AknIconUtils::SetSize( aBitmap,TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iWidth),
- EAspectRatioNotPreserved);
-
- // AknIconUtils::SetSize( aBitmap,TSize(308,17),EAspectRatioNotPreserved);
- mData->mImageTextureId = 0;
- mData->mFrameCentreTextureId = aId;
- }
- default:
- break;
-
- }
-
- }
-//----------------------------------------------------------------------------
-// layoutVisuals
-//----------------------------------------------------------------------------
-void MulSliderProgressive::layoutVisuals(sliderTemplate aTemplateid)
- {
-
- TAknLayoutRect layoutRect;
- mData->mTemplateId = aTemplateid;
- //Get the mainlayout rect
- int mainX = mData->mMainLayout->Pos().iX.ValueNow();
- int mainY = mData->mMainLayout->Pos().iY.ValueNow();
- int mainWidth = mData->mMainLayout->Size().iX.ValueNow();
- int mainHeight = mData->mMainLayout->Size().iY.ValueNow();
- if (mData->mTemplateId == ESliderTemplate7 )
- {
-
-
- mData->mBaseSliderLayout->SetRect(
- TRect( TPoint(0,0 ),
- TSize( mainWidth, mainHeight ))) ;
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EPSliderLeft,
- mData->mMainLayout,
- KVariety0);
-
- mData->mSliderProgressCentre->SetRect(
- TRect( TPoint(0,0),
- TSize( 0, layoutRect.Rect().Size().iHeight ))) ;
-
- mData->mFrameLeftImage->SetRect(
- TRect( TPoint(layoutRect.Rect().iTl.iX,
- layoutRect.Rect().iTl.iY ),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight ))) ;
-
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EPSliderCentre,
- mData->mMainLayout,
- KVariety0);
-
- mData->mFrameCentreImage->SetRect(
- TRect( TPoint(layoutRect.Rect().iTl.iX,layoutRect.Rect().iTl.iY ),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight ))) ;
-
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EPSliderRight,
- mData->mMainLayout,
- KVariety0);
- mData->mFrameRightImage->SetRect(
- TRect( TPoint(layoutRect.Rect().iTl.iX,layoutRect.Rect().iTl.iY ),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight ))) ;
- }
-
-
- }
-
-//----------------------------------------------------------------------------
-// createVisualization
-//----------------------------------------------------------------------------
-void MulSliderProgressive::createVisualization(sliderTemplate templateid)
- {
- mData->mTemplateId = templateid;
- CAlfControl *ctrl = &control();
-
- // Visual Hierarchy creation
- mData->mMainLayout = CAlfLayout::AddNewL(*ctrl,NULL);
- mData->mMainLayout->SetFlag(EAlfVisualFlagLayoutUpdateNotification);
- mData->mMainLayout->SetFlag(EAlfVisualFlagAutomaticLocaleMirroringEnabled);
- mData->mBaseSliderLayout = CAlfLayout::AddNewL(*ctrl, mData->mMainLayout);
- mData->mBaseSliderLayout->SetFlag(EAlfVisualFlagAutomaticLocaleMirroringEnabled);
- mData->mSliderProgressCentre = CAlfImageVisual::AddNewL(
- *ctrl,mData->mBaseSliderLayout);
- mData->mFrameLeftImage = CAlfImageVisual::AddNewL(*ctrl,mData->mBaseSliderLayout);
- mData->mFrameCentreImage = CAlfImageVisual::AddNewL(*ctrl,mData->mBaseSliderLayout);
- mData->mFrameRightImage = CAlfImageVisual::AddNewL(*ctrl,mData->mBaseSliderLayout);
-
- if(mData->mFrameLeftImage)
- {
- mData->mImageTextureId = KAlfFrameLeftTextureId;
- // Create the texture from bitmap provider
- mData->mTexture = &((ctrl->Env()).TextureManager().CreateTextureL(
- KAlfAutoGeneratedTextureId/*KAlfFrameLeftTextureId*/,
- (MAlfBitmapProvider *)this,
- (TAlfTextureFlags)(EAlfTextureFlagAutoSize|
- EAlfTextureFlagSkinContent)));
-
- int height = mData->mTexture->Size().iHeight;
- int width = mData->mTexture->Size().iWidth;
-
- TAlfImage aImageLeft(*mData->mTexture );
- mData->mFrameLeftImage->SetImage(aImageLeft);
- //mData->mFrameLeftImage->SetOpacity(0.5);
- }
- if(mData->mFrameCentreImage)
- {
- mData->mImageTextureId = KAlfFrameCentreTextureId;
- // Create the texture from bitmap provider
- mData->mTexture = &((ctrl->Env()).TextureManager().CreateTextureL(
- KAlfAutoGeneratedTextureId/*KAlfFrameCentreTextureId*/,
- (MAlfBitmapProvider *)this,
- (TAlfTextureFlags)(EAlfTextureFlagAutoSize|EAlfTextureFlagSkinContent)));
-
- int height = mData->mTexture->Size().iHeight;
- int width = mData->mTexture->Size().iWidth;
- TAlfImage aImageCentre(*mData->mTexture );
- mData->mFrameCentreImage->SetImage(aImageCentre);
- }
-
- if(mData->mFrameRightImage)
- {
- mData->mImageTextureId = KAlfFrameRightTextureId;
- // Create the texture from bitmap provider
- mData->mTexture = &((ctrl->Env()).TextureManager().CreateTextureL(
- KAlfAutoGeneratedTextureId/*KAlfFrameRightTextureId*/,
- (MAlfBitmapProvider *)this,
- (TAlfTextureFlags)(EAlfTextureFlagAutoSize|EAlfTextureFlagSkinContent)));
-
- int height = mData->mTexture->Size().iHeight;
- int width = mData->mTexture->Size().iWidth;
-
-
- TAlfImage aImageRight(*mData->mTexture );
-
- mData->mFrameRightImage->SetImage(aImageRight);
- }
-
- if(mData->mSliderProgressCentre)
- {
- mData->mImageTextureId = KAlfProgressBarTextureId;
- // Create the texture from bitmap provider
- mData->mTexture = &((ctrl->Env()).TextureManager().CreateTextureL(
- KAlfAutoGeneratedTextureId/*KAlfProgressBarTextureId*/,
- (MAlfBitmapProvider *)this,
- (TAlfTextureFlags)(EAlfTextureFlagAutoSize|EAlfTextureFlagSkinContent)));
- int height = mData->mTexture->Size().iHeight;
- int width = mData->mTexture->Size().iWidth;
- TAlfImage aImage(*mData->mTexture );
- mData->mSliderProgressCentre->SetImage(aImage);
- }
-
- }
-
-// ---------------------------------------------------------------------------
-// OfferEvent
-// ---------------------------------------------------------------------------
-//
-AlfEventStatus MulSliderProgressive::offerEvent(
- CAlfWidgetControl&/* aControl*/,
- const TAlfEvent& /*aEvent*/ )
- {
- // progress bar doesnt have any event handling
- return EEventNotHandled;
- }
-
-// ---------------------------------------------------------------------------
-// UpdateVisualization
-// ---------------------------------------------------------------------------
-void MulSliderProgressive::updateVisualization()
- {
- // Call to function to set relative
- //values for ranges if min range is not zero
- NormalizeRange();
- int currTick = mSliderModel->PrimaryValue();
- // Calculating the relative currtick if the MinRange is not zero.
- if (currTick >0 )
- {
- currTick = currTick - mData->mTempMin;
- }
- // Set the new thumbimage position.
- SetTickPosition(currTick);
- }
-// ---------------------------------------------------------------------------
-// NormalizeRange
-// ---------------------------------------------------------------------------
- void MulSliderProgressive::NormalizeRange()
- {
-
- mData->mMaxRange = mSliderModel->MaxRange();
- mData->mMinRange = mSliderModel->MinRange();
- mData->mTick = mSliderModel->Tick();
- mData->mTempMax = mData->mMaxRange;
- mData->mTempMin = mData->mMinRange;
- mData->mMaxRange = mData->mMaxRange - mData->mMinRange;
- mData->mMinRange = 0;
- }
-
-// ---------------------------------------------------------------------------
-// accept
-// ---------------------------------------------------------------------------
-//
-bool MulSliderProgressive::accept(
- CAlfWidgetControl& /*aControl*/,
- const TAlfEvent& /*aEvent*/) const
- {
- return false;
- }
-//---------------------------------------------------------------------------
-//MulSliderProgressive eventHandlerType
-//-------------------------------------------------------------------------
-IAlfWidgetEventHandler::AlfEventHandlerType MulSliderProgressive::
- eventHandlerType()
- {
- return IAlfWidgetEventHandler::EPresentationEventHandler;
- }
-
-//---------------------------------------------------------------------------
-//MulSliderProgressive eventExecutionPhase
-//-------------------------------------------------------------------------
-IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase MulSliderProgressive::
- eventExecutionPhase()
- {
- return IAlfWidgetEventHandler::ETunnellingPhaseEventHandler;
- }
-// ---------------------------------------------------------------------------
-// SetTickPosition
-// ---------------------------------------------------------------------------
-void MulSliderProgressive::SetTickPosition(int aCurrTick)
- {
- //Getting slider width
- int sliderWidth = mData->mBaseSliderLayout->Size().Target().iX;
- //Getting the slider progress height
- int sliderProgressHeight = mData->mSliderProgressCentre->Size().Target().iY;
- //calculating the current postion of slider progress width
- int curpos =(sliderWidth * aCurrTick)/(mData->mMaxRange - mData->mMinRange);
- //setting the slider progress width
- mData->mSliderProgressCentre->SetSize(
- TAlfRealPoint(curpos,sliderProgressHeight),0);
- int sliderProgressWidth = mData->mSliderProgressCentre->Size().Target().iX;
- AknIconUtils::SetSize(iBitmap,TSize(sliderProgressWidth,sliderProgressHeight),EAspectRatioNotPreserved);
- }
-
-
-//---------------------------------------------------------------------------
-//updateTextVisualization
-//-------------------------------------------------------------------------
- void MulSliderProgressive::updateTextVisualization()
- {
- // do nothing
- }
- }//namespace Alf
-
-//End Of File