--- a/mulwidgets/mulsliderwidget/src/mulverticalslider.cpp Mon Jun 21 16:15:51 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1431 +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 - vertical.
-*
-*/
-
-//Toolkit Includes
-#include <avkon.mbg>
-#include <mulsliderwidget.mbg>
-
-// Alfred Client includes
-#include <alf/alfenv.h>
-#include <alf/alfroster.h>
-#include <alf/alfdisplay.h>
-#include <alf/alfbrusharray.h>
-#include <alf/alftextvisual.h>
-#include <alf/alfevent.h>
-#include <alf/alftexture.h>
-#include <alf/alfframebrush.h>
-
-//Widget Model Includes
-#include <alf/alfwidgetevents.h>
-#include <alf/alfwidgetenvextension.h>
-#include <alf/ialfmodel.h>
-
-//Avkon Includes
-#include <AknUtils.h>
-#include <AknsConstants.h>
-#include <utf.h>
-#include <aknlayoutscalable_uiaccel.cdl.h>
-#include <avkon.hrh>
-//#include <math.h>
-
-//slider widget includes
-#include "mulslidervertical.h"
-#include <mul/mulevent.h>
-#include "mulsliderwidget.h"
-#include "mulslidercontrol.h"
-#include "mulslidermodel.h"
-#include "mulsliderdefinitions.h"
-#include "mulsliderutils.h"
-
-//Timer function includes
-#include "mulsliderlongtaptimer.h"
-#include <alf/alfgradientbrush.h>
-namespace Alf
- {
-// Structure to store data for the slider element class
-struct MulVerticalSliderDataImpl
- {
- bool mOperation;// Drag state
- bool mSliderHit;// button down has happened on slider visual
- float mTickInPixels;// Tick size in Pixel
- int mRangeInPixels;// Range in Pixel
- int mCurrTickInPixels;// Current Tick posion in pixels
- CAlfVisual * mVisual;// Stores the current visual hit
- TPoint mDragPoint;// Point at which drag started
- TPoint mLongTapPos;// Point at which button down happened
- TSize mTrackTopImageSizePrt;
- TSize mTrackTopImageSizeLsc;
- TSize mTrackMiddleImageSizePrt;
- TSize mTrackMiddleImageSizeLsc;
- TSize mTrackBottomImageSizePrt;
- TSize mTrackBottomImageSizeLsc;
- TSize mSliderHandleSizePrt;
- TSize mSliderHandleSizeLsc;
- TSize mImagePlusSizePrt;
- TSize mImagePlusSizeLsc;
- TSize mImageMinusSizePrt;
- TSize mImageMinusSizeLsc;
- int mDragStartStep;// Tick positon of Drag Start
- int mCurrTick;// Stores current tick
- int mTick;// Stores Tick Size
- int mTrackStartPoint;// Slider Track Start Point in pixel
- int mHandleGhostHieghtDelta;
- bool mOrientationLandScape;
- bool mHasBackground; // for background only created once
- int mdirection;// 0 - nomovement,1 up movement 2 down
- bool mLayoutMirrored;// RTL if True else LTR
- int mImageTextureId; // to differtiate between textures
- int mTrackTopTexturePrtId ;// to store the auto generated texture id's
- int mTrackTopTextureLscId;
- int mTrackBottomTexturePrtId;
- int mTrackBottomTextureLscId;
- int mTrackMiddleTextureLscId;
- int mTrackMiddleTexturePrtId;
- int mMarkerTextureLscId;
- int mMarkerTexturePrtId;
- int mZoomInTexturePrtId;
- int mZoomInTextureLscId;
- int mZoomOutTexturePrtId;
- int mZoomOutTextureLscId;
- bool misSetModel;
-
-
- CAlfLayout* mMainLayout;
- CAlfLayout* mBaseSliderLayout;// Slider Background
- CAlfTexture* mTexture;
- CAlfLayout* mSliderCentre;// Track layout
- CAlfLayout* mSliderCentreGhost;// Extended touch are for track
- CAlfImageVisual* mTrackTopImage;
- CAlfImageVisual* mTrackMiddleImage;
- CAlfImageVisual* mTrackEndImage;
- CAlfImageVisual* mSliderHandle;// Slider Handle
- CAlfLayout* mSliderHandleGhost;//Extended touch are for handle
- CAlfVisual* mSliderPercentAudio;//Visula showing percentage
- CAlfImageVisual* mImagePlus;// Zoom in
- CAlfImageVisual* mImageMinus;// Zoom out
-
-
- MulVerticalSliderDataImpl()
- {
- mOperation = false;
- mSliderHit = false;
- misSetModel = false;
- mTickInPixels = 0;
- mRangeInPixels = 0;
- mCurrTickInPixels = 0;
- mVisual = NULL;
- mDragPoint.SetXY(0,0);
- mLongTapPos.SetXY(0,0);
- mDragStartStep = 0;
- mCurrTick = 0;
- mTick = 0;
- mTrackStartPoint = 0;
- mImageTextureId = 0;
- mTrackTopTexturePrtId = 0;
- mTrackTopTextureLscId = 0;
- mTrackBottomTexturePrtId = 0;
- mTrackBottomTextureLscId = 0;
- mTrackMiddleTexturePrtId = 0;
- mTrackMiddleTextureLscId = 0;
- mMarkerTexturePrtId = 0;
- mMarkerTextureLscId = 0;
- mZoomInTexturePrtId = 0;
- mZoomInTextureLscId = 0;
- mZoomOutTexturePrtId = 0;
- mZoomOutTextureLscId = 0;
- mMainLayout = NULL;
- mBaseSliderLayout = NULL;
- mSliderCentre = NULL;
- mTrackTopImage = NULL;
- mTrackMiddleImage = NULL;
- mTrackEndImage = NULL;
- mSliderCentreGhost = NULL;
- mSliderHandleGhost = NULL;
- mSliderHandle = NULL;
- mSliderPercentAudio = NULL;
- mImagePlus = NULL;
- mImageMinus = NULL;
- mHandleGhostHieghtDelta = 0;
- mOrientationLandScape = false;
- mdirection = 0;
- mLayoutMirrored = false;
- mHasBackground = false;
- mTrackTopImageSizePrt.SetSize(0,0);
- mTrackTopImageSizeLsc.SetSize(0,0);
- mTrackBottomImageSizePrt.SetSize(0,0);
- mTrackBottomImageSizeLsc.SetSize(0,0);
- mTrackMiddleImageSizePrt.SetSize(0,0);
- mTrackMiddleImageSizeLsc.SetSize(0,0);
- mSliderHandleSizePrt.SetSize(0,0);
- mSliderHandleSizeLsc.SetSize(0,0);
- mImagePlusSizePrt.SetSize(0,0);
- mImagePlusSizeLsc.SetSize(0,0);
- mImageMinusSizePrt.SetSize(0,0);
- mImageMinusSizeLsc.SetSize(0,0);
- }
-
- };
-
-// bitmap file path
-_LIT(KAvkonBitmapFile,"\\resource\\apps\\avkon2.mbm");
-_LIT(KSliderBitmapFile,"\\resource\\apps\\mulsliderwidget.mif");
-
-const TInt KAlfTrackTopTextureId = 1;
-const TInt KAlfTrackBottomTextureId = 2;
-const TInt KAlfTrackMiddleTextureId = 3;
-const TInt KAlfMarkerTextureId = 4;
-const TInt KAlfZoomInTextureId = 5;
-const TInt KAlfZoomOutTextureId = 6;
-
-// ---------------------------------------------------------------------------
-// C++ default constructor.
-// ---------------------------------------------------------------------------
-//
-MulSliderVertical::MulSliderVertical(
- CAlfWidgetControl& aControl,
- const char* aName,
- AlfCustomInitDataBase* /*aCustomData*/)
- : mData(NULL)
- {
- // Base class (AlfElement) construct
- construct(aControl, aName);
- mSliderModel = NULL;
- mSliderWidget = NULL;
- mData = new (EMM) MulVerticalSliderDataImpl;
- mPosData.reset(new(EMM)MulSliderPos);
-
- // Timer for generating tap and hold repeat events
- mLongTapTimer.reset(new (EMM) MulSliderLongTapTimer(this));
- initializeSliderData();
- }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-MulSliderVertical::~MulSliderVertical()
- {
- // Visualization Data
- if(mData)
- {
- CAlfTextureManager& txtmanager = control().Env().TextureManager();
- txtmanager.UnloadTexture(mData->mTrackTopTextureLscId);
- txtmanager.UnloadTexture(mData->mTrackTopTexturePrtId);
- txtmanager.UnloadTexture(mData->mTrackMiddleTextureLscId);
- txtmanager.UnloadTexture(mData->mTrackMiddleTexturePrtId);
- txtmanager.UnloadTexture(mData->mTrackBottomTextureLscId);
- txtmanager.UnloadTexture(mData->mTrackBottomTexturePrtId);
- txtmanager.UnloadTexture(mData->mMarkerTexturePrtId);
- txtmanager.UnloadTexture(mData->mMarkerTextureLscId);
- txtmanager.UnloadTexture(mData->mZoomInTexturePrtId);
- txtmanager.UnloadTexture(mData->mZoomInTextureLscId);
- txtmanager.UnloadTexture(mData->mZoomOutTexturePrtId);
- txtmanager.UnloadTexture(mData->mZoomOutTextureLscId);
- delete mData;
- }
- else
- {
-
- }
-
- }//End of Destructor
-
-// ---------------------------------------------------------------------------
-// From class MAlfInterfaceBase.
-// Getter for interfaces provided by the slider widget.
-// ---------------------------------------------------------------------------
-//
-IAlfInterfaceBase* MulSliderVertical::makeInterface(
- const IfId& aType)
- {
- IAlfInterfaceBase* interface = 0;
- 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);
- }
- else
- {
- interface = AlfElement::makeInterface(aType);
- }
- return interface;
- }
-
-//--------------------------------------------------------------------------
-// APIs from the IMulSliderBaseElement
-//--------------------------------------------------------------------------
-
-// ---------------------------------------------------------------------------
-// Gets called when the parent layout is relayouted.
-// resets all the anchor points and updates the visualization
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::baseLayoutSizeChanged()
- {
- mData->mMainLayout->ClearFlag(EAlfVisualFlagLayoutUpdateNotification);
- if(mData->mMainLayout)
- {
- //mData->mOrientationLandScape = mSliderModel->IsLandscape();
- // This is a hack to resolve screen refresh issue
- control().Env().RefreshCallBack(&(control().Env()));
- // Layout the visualization with correct LCT values
- layoutVisuals(mSliderModel->GetTemplate());
- // Convert all the user defined data to pixels
- ConvertDataToPixels();
- // Set the thumb position to the current tick
- SetThumbPosition();
- mData->mMainLayout->SetOpacity(mSliderWidget->GetOpacity());
- }
- mData->mMainLayout->SetFlag(EAlfVisualFlagLayoutUpdateNotification);
- }
-
-// ---------------------------------------------------------------------------
-// From class IAlfWidgetEventHandler.
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::setActiveStates(
- unsigned int /*aStates*/)
- {
- //do nothing
- }
-
-// ---------------------------------------------------------------------------
-// initializes Model and Widget Pointer
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::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());
- }
-
-// ---------------------------------------------------------------------------
-// set the positions and images for the visual hierarchy
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::layoutVisuals( sliderTemplate /*aTemplateId*/)
- {
-
- bool relayout = mData->misSetModel;
-
- if(mData->mLayoutMirrored != AknLayoutUtils::LayoutMirrored())
- {
- mData->mOrientationLandScape = !mSliderModel->IsLandscape();
- mData->mLayoutMirrored = AknLayoutUtils::LayoutMirrored();
- }
-
- if( mSliderModel->IsLandscape() != mData->mOrientationLandScape )
- {
- relayout = true;
- mData->mOrientationLandScape = mSliderModel->IsLandscape();
- }
- if(relayout)
- {
- mData->misSetModel = false;
- CAlfControl* ctrl = (CAlfControl*)&control();
- TAknLayoutRect layoutRect;
- //get the lct rect for mBaseSliderLayout and set it
- // aaslider_pane(3)
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderPane,mData->mMainLayout,KVariety3);
- mData->mBaseSliderLayout->SetRect(
- TRect( TPoint(layoutRect.Rect().iTl.iX,layoutRect.Rect().iTl.iY ),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight ))) ;
-
- if(!mData->mHasBackground)
- SetBackgroundBrush();
- // Set Position and Size for Extended touch layout for track
- mData->mSliderCentreGhost->SetRect(
- TRect( TPoint(0,0 ),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight )));
-
-
- //get the lct rect for mSliderCentre and set it
- //aaslider_bg_pane_cp001(6)
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderBgPane,
- mData->mBaseSliderLayout,
- KVariety6);
-
- mData->mSliderCentre->SetRect(
- TRect( TPoint( layoutRect.Rect().iTl.iX ,
- layoutRect.Rect().iTl.iY),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight )));
-
- //get the lct rect for mTrackTopImage and set it
- //aaslider_bg_pane_cp001_g1(0)
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderTop,
- mData->mSliderCentre,
- KVariety0);
-
- mData->mTrackTopImage->SetRect(
- TRect( TPoint(0,layoutRect.Rect().iTl.iY),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight )));
-
- mSliderModel->IsLandscape() ? mData->mTrackTopImageSizeLsc = layoutRect.Rect().Size():
- mData->mTrackTopImageSizePrt = layoutRect.Rect().Size();
-
- //get the lct rect for mTrackMiddleImage and set it
- //aaslider_bg_pane_cp001_g3(0)
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderMiddle,
- mData->mSliderCentre,
- KVariety0);
- mData->mTrackMiddleImage->SetRect(
- TRect( TPoint( 0,layoutRect.Rect().iTl.iY),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight )));
-
- mSliderModel->IsLandscape() ? mData->mTrackMiddleImageSizeLsc = layoutRect.Rect().Size():
- mData->mTrackMiddleImageSizePrt = layoutRect.Rect().Size();
- //get the lct rect for mTrackEndImage and set it
- //aaslider_bg_pane_cp001_g2(0)
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderEnd,
- mData->mSliderCentre,
- KVariety0);
- mData->mTrackEndImage->SetRect(
- TRect( TPoint(0,layoutRect.Rect().iTl.iY),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight )));
- mSliderModel->IsLandscape() ? mData->mTrackBottomImageSizeLsc = layoutRect.Rect().Size():
- mData->mTrackBottomImageSizePrt = layoutRect.Rect().Size();
-
- if(mData->mTrackTopImage && mData->mTrackMiddleImage && mData->mTrackEndImage)
- {
- setTrackImage();
- }
-
-
- //get the lct rect for mSliderHandle and set it
- //aid_touch_size_slider_marker(5)
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderMarker,
- mData->mBaseSliderLayout,
- KVariety5);
- mData->mSliderHandle->SetRect(
- TRect( TPoint( layoutRect.Rect().iTl.iX,layoutRect.Rect().iTl.iY ),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight ))) ;
- mSliderModel->IsLandscape() ? mData->mSliderHandleSizeLsc = layoutRect.Rect().Size():
- mData->mSliderHandleSizePrt = layoutRect.Rect().Size();
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderMarkerExtended,
- mData->mBaseSliderLayout,
- KVariety5);
- mData->mHandleGhostHieghtDelta =
- (layoutRect.Rect().Size().iHeight - mData->mSliderHandle->Size().iY.ValueNow() );
-
- // Set Position and Size for Extended touch layout for handle
- mData->mSliderHandleGhost->SetRect(
- TRect( TPoint( mData->mBaseSliderLayout->Pos().iX.ValueNow(),
- mData->mSliderHandle->Pos().iY.ValueNow()-
- mData->mHandleGhostHieghtDelta/2),
- TSize( mData->mBaseSliderLayout->Size().iX.ValueNow(),
- layoutRect.Rect().Size().iHeight)));
-
- if(mData->mSliderHandle)
- {
- mData->mImageTextureId = KAlfMarkerTextureId;
- // Create the texture from bitmap provider
- mData->mSliderHandle->SetImage( skinTexture(mData->mSliderHandleSizePrt ,mData->mSliderHandleSizeLsc , mData->mMarkerTexturePrtId, mData->mMarkerTextureLscId ) );
- }
-
- //get the lct rect for mImagePlus and set it
- // aid_touch_size_slider_max(1)
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderPlus,
- mData->mBaseSliderLayout,
- KVariety1);
- mData->mImagePlus->SetRect(
- TRect( TPoint( layoutRect.Rect().iTl.iX,layoutRect.Rect().iTl.iY ),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight ))) ;
-
- mSliderModel->IsLandscape() ? mData->mImagePlusSizeLsc = layoutRect.Rect().Size():
- mData->mImagePlusSizePrt = layoutRect.Rect().Size();
- if(mData->mImagePlus)
- {
- mData->mImageTextureId = KAlfZoomInTextureId;
- // Create the texture from bitmap provider
- mData->mImagePlus->SetImage(skinTexture(mData->mImagePlusSizePrt ,mData->mImagePlusSizeLsc , mData->mZoomInTexturePrtId, mData->mZoomInTextureLscId ));
- }
-
- //get the lct rect for mImageMinus and set it
- // aid_touch_size_slider_min(2)
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderMinus,mData->mBaseSliderLayout,KVariety2);
-
- mData->mImageMinus->SetRect(
- TRect( TPoint( layoutRect.Rect().iTl.iX,layoutRect.Rect().iTl.iY ),
- TSize( layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight ))) ;
-
- mSliderModel->IsLandscape() ? mData->mImageMinusSizeLsc = layoutRect.Rect().Size():
- mData->mImageMinusSizePrt = layoutRect.Rect().Size();
- if(mData->mImageMinus)
- {
- mData->mImageTextureId = KAlfZoomOutTextureId;
- // Create the texture from bitmap provider
- mData->mImageMinus->SetImage(skinTexture(mData->mImageMinusSizePrt ,mData->mImageMinusSizeLsc , mData->mZoomOutTexturePrtId, mData->mZoomOutTextureLscId ));
-
- }
- }
- }
-// ---------------------------------------------------------------------------
-// Used for setting images for the track
-// ---------------------------------------------------------------------------
-//
-
-void MulSliderVertical::setTrackImage()
- {
-
- CAlfControl* ctrl = (CAlfControl*)&control();
- //creating texture for topimage
- mData->mImageTextureId = KAlfTrackTopTextureId;
- mData->mTrackTopImage->SetImage( skinTexture(mData->mTrackTopImageSizePrt ,mData->mTrackTopImageSizeLsc , mData->mTrackTopTexturePrtId, mData->mTrackTopTextureLscId ) ) ;
-
- //creating texture for middleimage
- mData->mImageTextureId = KAlfTrackMiddleTextureId;
- mData->mTrackMiddleImage->SetImage(skinTexture(mData->mTrackMiddleImageSizePrt ,mData->mTrackMiddleImageSizeLsc , mData->mTrackMiddleTexturePrtId, mData->mTrackMiddleTextureLscId ));
-
- //creating texture for bottom image
- mData->mImageTextureId = KAlfTrackBottomTextureId;
- mData->mTrackEndImage->SetImage( skinTexture(mData->mTrackBottomImageSizePrt ,mData->mTrackBottomImageSizeLsc , mData->mTrackBottomTexturePrtId, mData->mTrackBottomTextureLscId ) );
-
- }//End of setImage
-
-// ---------------------------------------------------------------------------
-// ProvideBitmapL()
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::ProvideBitmapL (TInt aId, CFbsBitmap *& aBitmap, CFbsBitmap *& aMaskBitmap)
- {
- TAknLayoutRect layoutRect;
- switch(mData->mImageTextureId)
- {
- case KAlfTrackTopTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap,
- aMaskBitmap,
- KAvkonBitmapFile,
- EMbmAvkonQgn_graf_nslider_vertical_top,
- EMbmAvkonQgn_graf_nslider_vertical_top_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderTop,
- mData->mSliderCentre,
- KVariety0);
-
- AknIconUtils::SetSize( aBitmap,
- TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight),
- EAspectRatioNotPreserved);
- mData->mImageTextureId = 0;
- mSliderModel->IsLandscape() ? mData->mTrackTopTextureLscId = aId :
- mData->mTrackTopTexturePrtId = aId ;
- }
- break;
- case KAlfTrackBottomTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap,
- aMaskBitmap,
- KAvkonBitmapFile,
- EMbmAvkonQgn_graf_nslider_vertical_bottom,
- EMbmAvkonQgn_graf_nslider_vertical_bottom_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderEnd,
- mData->mSliderCentre,
- KVariety0);
- AknIconUtils::SetSize( aBitmap,
- TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight),
- EAspectRatioNotPreserved);
- mData->mImageTextureId = 0;
- mSliderModel->IsLandscape() ? mData->mTrackBottomTextureLscId = aId :
- mData->mTrackBottomTexturePrtId = aId ;
- }
- break;
- case KAlfTrackMiddleTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap,
- aMaskBitmap,
- KAvkonBitmapFile,
- EMbmAvkonQgn_graf_nslider_vertical_middle,
- EMbmAvkonQgn_graf_nslider_vertical_middle_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderMiddle,
- mData->mSliderCentre,
- KVariety0);
-
- AknIconUtils::SetSize( aBitmap,
- TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight),
- EAspectRatioNotPreserved);
-
- mData->mImageTextureId = 0;
- mSliderModel->IsLandscape() ? mData->mTrackMiddleTextureLscId = aId :
- mData->mTrackMiddleTexturePrtId = aId ;
- }
- break;
-
- case KAlfMarkerTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap,
- aMaskBitmap,
- KAvkonBitmapFile,
- EMbmAvkonQgn_graf_nslider_vertical_marker,
- EMbmAvkonQgn_graf_nslider_vertical_marker_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderMarker,
- mData->mBaseSliderLayout,
- KVariety5);
-
- AknIconUtils::SetSize( aBitmap,
- TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight),
- EAspectRatioNotPreserved);
-
- mData->mImageTextureId = 0;
- mSliderModel->IsLandscape() ? mData->mMarkerTextureLscId = aId :
- mData->mMarkerTexturePrtId = aId ;
- }
- break;
- case KAlfZoomInTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap,
- aMaskBitmap,
- KSliderBitmapFile,
- EMbmMulsliderwidgetQgn_indi_nslider_zoom_in,
- EMbmMulsliderwidgetQgn_indi_nslider_zoom_in_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderPlus,mData->mBaseSliderLayout,KVariety1);
-
- AknIconUtils::SetSize( aBitmap,
- TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight),
- EAspectRatioNotPreserved);
- mData->mImageTextureId = 0;
- mSliderModel->IsLandscape() ? mData->mZoomInTextureLscId = aId :
- mData->mZoomInTexturePrtId = aId;
- }
- break;
- case KAlfZoomOutTextureId:
- {
- AknIconUtils::CreateIconL(
- aBitmap,
- aMaskBitmap,
- KSliderBitmapFile,
- EMbmMulsliderwidgetQgn_indi_nslider_zoom_out,
- EMbmMulsliderwidgetQgn_indi_nslider_zoom_out_mask );
-
- layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderMinus,mData->mBaseSliderLayout,KVariety2);
-
- AknIconUtils::SetSize( aBitmap,
- TSize(layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight),
- EAspectRatioNotPreserved);
-
- mData->mImageTextureId = 0;
- mSliderModel->IsLandscape() ? mData->mZoomOutTextureLscId = aId :
- mData->mZoomOutTexturePrtId = aId ;
-
- }
- break;
- default:
- break;
-
- }
-
- }
-
-// ---------------------------------------------------------------------------
-// setBackgroundBrush()
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::SetBackgroundBrush()
- {
-
- CAlfControl* ctrl = (CAlfControl*)&control();
- // Get Slider Pane Rect (aaslider_pane(2)) and apply on mBaseSliderLayout
- TAknLayoutRect layoutRect = MulSliderUtils::GetComponentRect(
- EVSliderPane,mData->mMainLayout,2);
-
-
- TAknWindowLineLayout LayoutHandle =
- AknLayoutScalable_UiAccel::
- aid_touch_size_slider_max(0).LayoutLine();
-
-
- int x = LayoutHandle.il;
- TAknsItemID itemid;
-
- itemid.Set(EAknsMajorSkin, EAknsMinorQgnGrafPopupTrans);
- CAlfFrameBrush* brush = CAlfFrameBrush::NewLC((*ctrl).Env(),itemid, 0, 0);
-
- if(brush!=NULL)
- {
- TRect dispRect(layoutRect.Rect().iTl.iX,
- layoutRect.Rect().iTl.iY,
- layoutRect.Rect().Size().iWidth,
- layoutRect.Rect().Size().iHeight );
- TRect innerRect(layoutRect.Rect().iTl.iX + x,
- layoutRect.Rect().iTl.iY + x,
- layoutRect.Rect().Size().iWidth - x ,
- layoutRect.Rect().Size().iHeight - x);
-
- brush->SetFrameRectsL(innerRect,dispRect);
- brush->SetOpacity(KMinopacity);
- mData->mBaseSliderLayout->EnableBrushesL();
- mData->mBaseSliderLayout->Brushes()->AppendL(brush, EAlfHasOwnership);
- CleanupStack::Pop(brush);
- }
- mData->mHasBackground = true;
- }
-
-// ----------------------------------------------------------------------------
-// skinTexture()
-// ----------------------------------------------------------------------------
-//
-TAlfImage MulSliderVertical::skinTexture(TSize aPrtImageSize, TSize aLscImageSize, TInt aPrtSkinId, TInt aLscSkinId )
- {
- const CAlfControl* ctrl = (CAlfControl*)(&control());
-
- if ( aPrtImageSize != aLscImageSize )
- {
- if ( aPrtSkinId == 0 || aLscSkinId == 0 )
- {
- mData->mTexture = &((ctrl->Env()).TextureManager().CreateTextureL(
- KAlfAutoGeneratedTextureId,
- (MAlfBitmapProvider *)this,
- (TAlfTextureFlags)(EAlfTextureFlagRetainResolution|EAlfTextureFlagSkinContent)));
- TAlfImage dummyImage(*mData->mTexture);
- return dummyImage;
- }
- }
- else if ( aPrtSkinId == 0 || aLscSkinId == 0 )
- {
- TInt id = aPrtSkinId > aLscSkinId ? aPrtSkinId : aLscSkinId;
- mData->mTexture = ((ctrl->Env()).TextureManager().TextureL(id));
- TAlfImage dummyImage(*mData->mTexture);
- return dummyImage;
- }
-
- TInt textureId = mSliderModel->IsLandscape() ? aLscSkinId : aPrtSkinId;
- mData->mTexture = ((ctrl->Env()).TextureManager().TextureL( textureId ));
- TAlfImage dummyImage(*mData->mTexture);
- return dummyImage;
- }
-
-
-// ---------------------------------------------------------------------------
-// MakeTransparent()
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::MakeTransparent(bool aVal)
- {
- CAlfBrushArray * brushArray = mData->mBaseSliderLayout->Brushes();
- if(aVal)
- {
- TAlfTimedValue opacity(KMinopacity);
- brushArray->At(0).SetOpacity(opacity);
- }
- else
- {
- TAlfTimedValue opacity(KMaxopacity);
- brushArray->At(0).SetOpacity(opacity);
- }
- }
-// ---------------------------------------------------------------------------
-// ConvertDataToPixels
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::ConvertDataToPixels()
- {
- float sliderCentreSize = mData->mSliderCentre->Size().iY.ValueNow();
- float sliderHandleSize = mData->mSliderHandle->Size().iY.ValueNow();
- float sliderCentrePos = mData->mSliderCentre->Pos().iY.ValueNow();
-
- // Calculate the range in pixel values
- mData->mRangeInPixels = sliderCentreSize - sliderHandleSize;
-
- if(mSliderModel->MaxRange() - mSliderModel->MinRange() != 0)
- {
- // Calculate Tick Size in Pixels
- mData->mTickInPixels =
- (sliderCentreSize - sliderHandleSize) /
- (mSliderModel->MaxRange() - mSliderModel->MinRange()) ;
- }
- // Get the track start pixel value
- mData->mTrackStartPoint = sliderCentrePos + sliderCentreSize - sliderHandleSize ;
- // Store current tick
- mData->mCurrTick = mSliderModel->PrimaryValue() ;
- if(mSliderModel->MaxRange()== mSliderModel->MinRange())
- {
- mData->mTrackStartPoint= sliderCentrePos;
- }
- mData->mTick = mSliderModel->Tick();
- }
-
-//----------------------------------------------------------------------------
-// FeedbackIntensity
-//----------------------------------------------------------------------------
-//
-TInt MulSliderVertical::feedbackIntensity()
- {
- /* We need to find the position of the thumb w.r.t the slider track.
- * mData->mTickInPixels will give the no. of pixels each tick will
- *
- */
-
- int deltaY = (mSliderModel->PrimaryValue() - mSliderModel->MinRange()) *
- mData->mTickInPixels;
- TInt intensity = ( deltaY * 100 )/ mData->mRangeInPixels ;
- return intensity ;
- }
-
-// ---------------------------------------------------------------------------
-// createVisualization
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::createVisualization(sliderTemplate /*aTemplateId*/)
- {
- mData->mHasBackground = false;
- if(AknLayoutUtils::LayoutMirrored())
- mData->mLayoutMirrored = true;
- else
- mData->mLayoutMirrored = false;
- // Create the visualization
- CAlfControl* ctrl = (CAlfControl*)&control();
- mData->mOrientationLandScape = mSliderModel->IsLandscape();
- mData->misSetModel = true;
-
- // Visual Hierarchy creation
- // create the mMainLayout
- mData->mMainLayout = CAlfLayout::AddNewL(*ctrl,NULL);
- // set the flag for Notifications
- mData->mMainLayout->SetFlag(EAlfVisualFlagLayoutUpdateNotification);
- //create the mBaseSliderLayout
- mData->mBaseSliderLayout =
- CAlfLayout::AddNewL(*ctrl,mData->mMainLayout);
- // create the dummy layout for slider track
- mData->mSliderCentreGhost =
- CAlfLayout::AddNewL(*ctrl,mData->mBaseSliderLayout);
- // create the dummy layout for slider handle
- mData->mSliderHandleGhost =
- CAlfLayout::AddNewL(*ctrl,mData->mBaseSliderLayout);
-
- // create the imagevisual for slider track
- mData->mSliderCentre =
- CAlfLayout::AddNewL(*ctrl,mData->mBaseSliderLayout);
- // create the imagevisual for slider handle
- mData->mSliderHandle =
- CAlfImageVisual::AddNewL(*ctrl,mData->mBaseSliderLayout);
- // create the imagevisual for plus icon
- mData->mImagePlus=
- CAlfImageVisual::AddNewL(*ctrl,mData->mBaseSliderLayout);
- // create the imagevisual for minus icon
- mData->mImageMinus =
- CAlfImageVisual::AddNewL(*ctrl,mData->mBaseSliderLayout);
- if(mData->mSliderCentre)
- {
- mData->mTrackTopImage = CAlfImageVisual::AddNewL(*ctrl,mData->mSliderCentre);
- mData->mTrackMiddleImage = CAlfImageVisual::AddNewL(*ctrl,mData->mSliderCentre);
- mData->mTrackEndImage = CAlfImageVisual::AddNewL(*ctrl,mData->mSliderCentre);
- }
-
- // Get the widget opacity and apply on root visual
- mSliderWidget->ShowWidget(mSliderWidget->GetOpacity(),0);
- }
-
-
-// ---------------------------------------------------------------------------
-// eventHandlerType
-// ---------------------------------------------------------------------------
-//
-IAlfWidgetEventHandler::AlfEventHandlerType MulSliderVertical::eventHandlerType()
- {
- return IAlfWidgetEventHandler::EPresentationEventHandler;
- }
-
-
-// ---------------------------------------------------------------------------
-// eventExecutionPhase
-// ---------------------------------------------------------------------------
-//
-IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase MulSliderVertical::
- eventExecutionPhase()
- {
- return IAlfWidgetEventHandler::ETunnellingPhaseEventHandler;
- }
-
-
-// ---------------------------------------------------------------------------
-// offerEvent
-// ---------------------------------------------------------------------------
-//
-AlfEventStatus MulSliderVertical::offerEvent( CAlfWidgetControl& /*aControl*/,
- const TAlfEvent& aEvent )
- {
- AlfEventStatus ret=EEventNotHandled;
- if(!mSliderWidget->IsHidden())
- {
- if(aEvent.IsCustomEvent())
- {
- if(aEvent.CustomParameter() == EEventMissedPointerUp)
- {
- ret=EEventHandled;
- mData->mSliderHit = false;
- handlePointerUpEvent();
- }
- }
-
- // handle key events
- else if(aEvent.IsKeyEvent() && mSliderWidget->IsKeyEnabled() )
- {
- ret = HandleKeyEvents(aEvent);
- }
-
- // Pointer drag events and single tap events
- else if(aEvent.IsPointerEvent())
- {
- if(mSliderWidget->GetOpacity())
- {
- ret = HandlePointerEvents((TAlfEvent *)&aEvent);
- }
- }
-
- }
-
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// HandleKeyEvents
-// ---------------------------------------------------------------------------
-//
- AlfEventStatus MulSliderVertical::HandleKeyEvents(const TAlfEvent& aEvent)
- {
- AlfEventStatus ret = EEventNotHandled;
-
-
- if(aEvent.KeyEvent().iScanCode == EStdKeyUpArrow)
- {
- if(aEvent.Code() == EEventKey)
- {
- ret = EEventHandled;
- int newPos = mSliderModel->PrimaryValue() + mData->mTick;
- updateModelPrimaryValue(newPos);
- }
- }
- else if(aEvent.KeyEvent().iScanCode == EStdKeyDownArrow)
- {
- if(aEvent.Code() == EEventKey)
- {
- ret = EEventHandled;
- int newPos = mSliderModel->PrimaryValue() - mData->mTick;
- updateModelPrimaryValue(newPos);
- }
- }
- return ret;
- }
-// ---------------------------------------------------------------------------
-// Sends drag Up or Down event, according to the hit position
-// on track
-// ---------------------------------------------------------------------------
-//
-AlfEventStatus MulSliderVertical::trackVisualHit(CAlfVisual * /*aHitVisual*/)
- {
- //Find the thumb Anchor Layout.
- // Zoom Plus icon rectangle
- TAlfRealRect zoomPlus = mData->mBaseSliderLayout->DisplayRect();
- // Slider Handle position
- TAlfTimedPoint thumbVisPos = mData->mSliderHandle->Pos();
- TAlfTimedPoint thumbVisSize = mData->mSliderHandle->Size();
- // Slider track display rect
- TAlfRealRect rct = mData->mSliderCentre->DisplayRect() ;
- int diff = rct.iTl.iY - zoomPlus.iTl.iY;
- //Check if click was above/to left or below/to right of thumb
- if (mData->mLongTapPos.iY - rct.iTl.iY < thumbVisPos.iY.ValueNow() + (thumbVisSize.iY.ValueNow()/2) - diff)
- {
- // Pointer down happened above Handle
- int newPos = mSliderModel->PrimaryValue() + (((thumbVisPos.iY.ValueNow() +(thumbVisSize.iY.ValueNow()/2) - diff) -(mData->mLongTapPos.iY - rct.iTl.iY))/mData->mTickInPixels);
-
- if( rct.iTl.iY > mData->mLongTapPos.iY )
- {
- mData->mLongTapPos.iY = rct.iTl.iY + (thumbVisSize.iY.ValueNow()/2);
- }
- // Move Handle
- if(mData->mdirection !=2)
- {
- // checks if the thumb was moving up
- updateModelPrimaryValue(newPos);
- mData->mdirection = 1;
- }
-
- if(!mData->mOperation)
- {
- mData->mVisual = mData->mSliderHandle;
- initializeThumbDragData(
- mData->mLongTapPos);
-
- }
- }
- else if (mData->mLongTapPos.iY - rct.iTl.iY > (thumbVisPos.iY.ValueNow() +
- (thumbVisSize.iY.ValueNow()/2)- diff) )
- {
- if( (rct.iTl.iY + rct.Size().iHeight < mData->mLongTapPos.iY))
- {
- mData->mLongTapPos.iY = rct.iTl.iY+ rct.Size().iHeight - (thumbVisSize.iY.ValueNow()/2);
- }
- // Pointer down happened below Handle
- int newPos = mSliderModel->PrimaryValue() - (((mData->mLongTapPos.iY - rct.iTl.iY) -(thumbVisPos.iY.ValueNow() + (thumbVisSize.iY.ValueNow()/2)-diff))/mData->mTickInPixels);
- // Move Handle
- if(mData->mdirection !=1)
- {
- // checks if the thumb was moving down
- updateModelPrimaryValue(newPos);
- mData->mdirection = 2;
- }
-
- //mData->mLongTapStarted = false;
- if(!mData->mOperation)
- {
- mData->mVisual = mData->mSliderHandle;
- initializeThumbDragData( mData->mLongTapPos);
-
- }
- }
- else
- {
-
- }
- return EEventHandled;
- }
-
-// ---------------------------------------------------------------------------
-// handles the pointerDown event
-//
-// ---------------------------------------------------------------------------
-//
-AlfEventStatus MulSliderVertical::handlePointerDownEvent(TAlfEvent * aPntrEvent)
- {
-
- CAlfVisual * focusvisual = aPntrEvent->Visual();
- AlfEventStatus result = EEventNotHandled;
- if (focusvisual)
- {
- mData->mVisual = focusvisual;
- if (IsSliderVisual(focusvisual))
- {
- control().processEvent(TAlfEvent(ECustomEventIconClick));
- mData->mSliderHit = true;
- MakeTransparent(false);
-
- // Register with the Roster to receive Long Tap Event
- control().Display()->Roster().SetPointerEventObservers(
- EAlfPointerEventReportDrag,control());
-
- if(!mData->mOperation)
- {
- mData->mLongTapPos = aPntrEvent->PointerEvent().iParentPosition;
- //mData->mLongTapStarted = true;
- }
-
- //Page Movement
- if (focusvisual == mData->mSliderCentre ||
- focusvisual == mData->mSliderCentreGhost)
- {
- result = trackVisualHit(focusvisual);
- }
-
- // Drag
- else if (focusvisual == mData->mSliderHandle
- || focusvisual == mData->mSliderHandleGhost )
- {
- if(focusvisual)
- {
- // Initialize the drag variables
- initializeThumbDragData(aPntrEvent->PointerEvent().iParentPosition);
- //Tactile Feedback For Thumb touch
- MulSliderControl& sldrcntrl = static_cast<MulSliderControl&>(control());
- sldrcntrl.TactileEffectOnTouchandHold();
- }
- result = EEventHandled;
- }
- // Zoom Icon Plus Clicked
- else if (focusvisual == mData->mImagePlus || focusvisual == mData->mImageMinus )
- {
- // Update the newTick
- int newPos =0;
- if( mData->mVisual == mData->mImagePlus)
- {
- newPos = mSliderModel->MaxRange();
- }
- else
- {
- newPos = mSliderModel->MinRange();
- //newPos = mSliderModel->PrimaryValue() - mData->mTick;
- }
- updateModelPrimaryValue(newPos);
- //return ETrue;
- result = EEventHandled;
- }
-
- }//END OF if (isSliderVisual())
- }
- return result;
- }// End Of handlePointerDownEvent
-
-
-// ---------------------------------------------------------------------------
-// HandlePointerEvents
-// ---------------------------------------------------------------------------
-//
- AlfEventStatus MulSliderVertical::HandlePointerEvents(TAlfEvent* aEvent)
- {
- AlfEventStatus ret = EEventNotHandled;
- if (aEvent->PointerEvent().iType == TPointerEvent::EButton1Down)
- {
- mData->mdirection = 0;
- return handlePointerDownEvent(aEvent);
- }
- // Drag Events
- else if (aEvent->PointerEvent().iType == TPointerEvent::EDrag)
- {
- // Drag on Handle
- TAlfRealRect rct = mData->mSliderCentre->DisplayRect() ;
- TAlfTimedPoint thumbVisSize = mData->mSliderHandle->Size();
- // Drag on Handle
- if(mData->mVisual &&
- mData->mSliderHandle && mData->mSliderHandleGhost)
- {
- // Store the new pointer position
- mData->mLongTapPos= aEvent->PointerEvent().iParentPosition ;
- }
-
- // Calculate the distance moved from the drag start point
- int dist = mData->mDragPoint.iY - aEvent->PointerEvent().iParentPosition.iY;
- int precision = KRoundupvalue;
- if(dist<0)
- {
- precision = -KRoundupvalue;
- }
- // Calculate the new tick position
- int newPos = (int)(((float)dist / mData->mTickInPixels ) + precision) +
- mData->mDragStartStep;
- // Update the model hence update visualization
- updateModelPrimaryValue(newPos);
- //Tactile Feedback For Thumb Drag
- MulSliderControl& sldrcntrl = static_cast<MulSliderControl&>(control());
- int fdbintensity = feedbackIntensity();
- sldrcntrl.TactileEffectOnDrag(*aEvent , fdbintensity );
- ret = EEventHandled;
- }
-
- else if(aEvent->PointerUp() )
- {
-
- // Long tap Timer not running
- //mData->mLongTapStarted = false;
- // Handle events for pointer up
- if(mData->mSliderHit)
- {
- // checing if any of slider visual got a button down event
- // Otherwise its a stray pointerup event , so dont handle it
- mData->mSliderHit = false;
- ret = EEventHandled;
- handlePointerUpEvent();
- }
-
- }
-
- return ret;
- }
-
-
-// ---------------------------------------------------------------------------
-// updateModelPrimaryValue
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::updateModelPrimaryValue(int aNewPosValue)
- {
- // Validate the new tick value
- if(aNewPosValue < mSliderModel->MinRange())
- {
- aNewPosValue = mSliderModel->MinRange();
- }
- else if(aNewPosValue > mSliderModel->MaxRange())
- {
- aNewPosValue = mSliderModel->MaxRange();
- }
- if(mSliderModel->PrimaryValue() != aNewPosValue && mData->mTick != 0)
- {
- // Update visualization and model only if data is changed
- mSliderModel->SetPrimaryValue(aNewPosValue);
- mPosData.reset(new(EMM)MulSliderPos);
- mPosData->mPreviousValue = mData->mCurrTick ;
- mPosData->mCurrentValue= aNewPosValue;
- mData->mCurrTick = aNewPosValue;
- // Send event to the scrollable widget
- TAlfEvent customevent(ETypePrimaryValueChange,
- (uint)mPosData.get());
- control().processEvent(customevent);
- }
- }
-
-// ---------------------------------------------------------------------------
-// snapPrimaryValueToTicks
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::snapPrimaryValueToTicks()
- {
- // If the position is not a multiple of ticks then
- //snap to the nearest tick multiple
- int currHandlePos = mSliderModel->PrimaryValue() - mSliderModel->MinRange();
- int tick = mSliderModel->Tick();
- int newPos = currHandlePos + mSliderModel->MinRange();
- if(mSliderModel->PrimaryValue() < mSliderModel->MaxRange())
- {
-
- int diff = 0;
- if(tick > 0) //model
- {
- diff = currHandlePos - ((currHandlePos /tick) * tick);
- }
- if(diff !=0)
- {
- newPos = currHandlePos + tick - diff + mSliderModel->MinRange();
- }
- }
-
-
- // Update model
- updateModelPrimaryValue(newPos);
- }
-
-
-// ---------------------------------------------------------------------------
-// handles the pointerUp event
-//
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::handlePointerUpEvent()
- {
- // if thumb or track is clicked, change the graphics
- // Send event if single click has hapened
-
- snapPrimaryValueToTicks();
- MakeTransparent(true);
- if(mData->mOperation)
- {
- //Somehow missed the Up event?
- stopDrag();
- //Tactile Feedback For Thumb Release
- MulSliderControl& sldrcntrl = static_cast<MulSliderControl&>(control());
- sldrcntrl.TactileEffectOnRelease();
- }
-
-
- // Un-register with the roster for long tap events
- control().Display()->Roster().SetPointerEventObservers(0,
- control());
-
- // send the event for release/poiter up
- control().processEvent(TAlfEvent(ECustomEventIconRelease));
- }
-
-// ---------------------------------------------------------------------------
-// Stops event handling
-//
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::stopEvents()
-{
- if(mData->mSliderHit)
- {
- // checking if any of slider visual got a button down event
- mData->mSliderHit = false;
- handlePointerUpEvent();
- }
-}
-
-// ---------------------------------------------------------------------------
-
-// UpdateVisualization
-// ---------------------------------------------------------------------------
-//
-
-void MulSliderVertical::updateVisualization()
- {
- ConvertDataToPixels();
- SetThumbPosition();
- }
-// ---------------------------------------------------------------------------
-// SetThumbPosition
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::SetThumbPosition()
- {
- // Current primary value in pixels
- int deltaY = (mSliderModel->PrimaryValue() - mSliderModel->MinRange()) *
- mData->mTickInPixels;
- // Handle
- int handleX = mData->mSliderHandle->Pos().iX.ValueNow();
- int ghostHandleX = mData->mSliderHandleGhost->Pos().iX.ValueNow();
- // Handle new pos
- TAlfRealPoint pnt(handleX,mData->mTrackStartPoint - deltaY);
- // Ghost Handle ( Extended) new pos
- TAlfRealPoint pnt1(ghostHandleX,mData->mTrackStartPoint - deltaY -
- mData->mHandleGhostHieghtDelta/2);
- // Set the position
- mData->mSliderHandle->SetPos(pnt,0);
- mData->mSliderHandleGhost->SetPos(pnt1,0);
- // Update visualization variables
- mData->mCurrTick = mSliderModel->PrimaryValue();
- //mData->mMainLayout->UpdateChildrenLayout(0);
-
- }
-// ---------------------------------------------------------------------------
-// SetTextLabels
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::SetTextLabels(const char* /*aStr*/)
- {
- }
-
-// ---------------------------------------------------------------------------
-// accept
-// ---------------------------------------------------------------------------
-//
-bool MulSliderVertical::accept( CAlfWidgetControl& /*aControl*/, const TAlfEvent& aEvent ) const
- {
- // Accept only key or pointer events.
- if(aEvent.IsKeyEvent()||aEvent.IsPointerEvent())
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// initializeThumbDragData
-// ---------------------------------------------------------------------------
-//
-bool MulSliderVertical::initializeThumbDragData(const TPoint& aPointerPos)
- {
- TRAPD(err,control().Display()->Roster().SetPointerDragThreshold(control(),
- TAlfXYMetric(TAlfMetric(KXToleranceInPixel,EAlfUnitPixel),
- TAlfMetric(KYToleranceInPixel,EAlfUnitPixel))) );
- if(mData->mVisual && err == KErrNone)
- {
- mData->mOperation = EMoveItem;
- mData->mDragPoint = aPointerPos;
- mData->mDragStartStep = mSliderModel->PrimaryValue();
- }
- else
- {
-
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------------------------
-// stopDrag
-// Stop Dragging
-// ---------------------------------------------------------------------------
-//
-bool MulSliderVertical::stopDrag()
- {
-
- TRAPD(err,
- control().Display()->Roster().SetPointerEventObservers(
- 0,
- control()));
- if(err == KErrNone)
- {
- mData->mVisual = NULL;
- mData->mOperation = ENop;
- return ETrue;
- }
- return EFalse;
- }
-
-
-// ---------------------------------------------------------------------------
-// IsSliderVisual
-// ---------------------------------------------------------------------------
-//
-bool MulSliderVertical::IsSliderVisual(CAlfVisual *aVisual)
- {
- if(aVisual == mData->mSliderCentre||
- aVisual == mData->mSliderCentreGhost||
- aVisual == mData->mSliderHandle||
- aVisual == mData->mSliderHandleGhost||
- aVisual == mData->mImagePlus||
- aVisual == mData->mImageMinus)
- {
- return true;
- }
- return false;
- }
-
-// ---------------------------------------------------------------------------
-// updateTextVisualization
-// ---------------------------------------------------------------------------
-//
-void MulSliderVertical::updateTextVisualization()
- {/*
- MulSliderModel* sliderModel = mSliderModel;
- const char* perctext = sliderModel->GetPercentText();
- SetTextLabels(perctext);*/
- }
- }//namespace Alf
-
-//End Of File