mulwidgets/mulsliderwidget/src/mulprogressbarslider.cpp
changeset 17 3eca7e70b1b8
parent 3 4526337fb576
--- a/mulwidgets/mulsliderwidget/src/mulprogressbarslider.cpp	Tue Feb 02 00:28:09 2010 +0200
+++ /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