sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Part of the MVS Application for TechView sl@0: // sl@0: sl@0: sl@0: #include "MVSCropDialog.h" sl@0: #include "MVSApp.hrh" sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include "MVSAppUI.h" sl@0: sl@0: const TUint KMicroSecs = 1000000; sl@0: sl@0: void CMVSCropDialog::SetupDialogLD(TTimeIntervalMicroSeconds aPosition, sl@0: TTimeIntervalMicroSeconds aClipLength, sl@0: TTimeIntervalMicroSeconds aCropStart, sl@0: TTimeIntervalMicroSeconds aCropEnd, sl@0: CMVSAppUi* aAppUi) sl@0: { sl@0: CMVSCropDialog* dialog = new (ELeave) CMVSCropDialog(aPosition, aClipLength, sl@0: aCropStart, aCropEnd, aAppUi); sl@0: dialog->ExecuteLD(R_MVS_DIALOG_CROP); sl@0: } sl@0: sl@0: sl@0: void CMVSCropDialog::PreLayoutDynInitL() sl@0: { sl@0: TInt start = I64INT(iCropStart.Int64()) > 1? (I64INT(iCropStart.Int64())/KMicroSecs) : 0; sl@0: TInt finish = I64INT(iCropEnd.Int64()) > 1? (I64INT(iCropEnd.Int64())/KMicroSecs) : I64INT(iClipLength.Int64())/KMicroSecs; sl@0: //check the current position is valid. sl@0: if(I64INT(iPosition.Int64())/KMicroSecs < start) sl@0: iPosition = start; sl@0: else if (I64INT(iPosition.Int64())/KMicroSecs > finish) sl@0: iPosition = finish; sl@0: sl@0: InitControl(TInt(EMVSCmdCropPositionNumber), I64INT(iPosition.Int64())/KMicroSecs, start, finish ); sl@0: sl@0: CEikHorOptionButtonList* button = static_cast(Control(EMVSCmdCropLeftRight)); sl@0: button->SetButtonById(EMVSHorOptButtonCropFromBeginning); sl@0: } sl@0: sl@0: sl@0: sl@0: // sl@0: //CCropDialog() sl@0: // sl@0: // C++ Constructor, initialises the object member variables to their sl@0: // current settings. sl@0: // sl@0: CMVSCropDialog::CMVSCropDialog(TTimeIntervalMicroSeconds aPosition, sl@0: TTimeIntervalMicroSeconds aClipLength, sl@0: TTimeIntervalMicroSeconds aCropStart, sl@0: TTimeIntervalMicroSeconds aCropEnd, sl@0: CMVSAppUi* aAppUi) sl@0: : iPosition(aPosition), iCropStart(aCropStart), iCropEnd(aCropEnd), iCropFromBeginning(EFalse), iAppUi(aAppUi) sl@0: { sl@0: if (I64INT(aCropEnd.Int64()) > 1) sl@0: { sl@0: iClipLength = aCropEnd; sl@0: } sl@0: else sl@0: { sl@0: iClipLength = aClipLength; sl@0: } sl@0: } sl@0: sl@0: sl@0: sl@0: TBool CMVSCropDialog::OkToExitL(TInt aButtonId) sl@0: { sl@0: //Get a pointer to the Option Button List control sl@0: CEikHorOptionButtonList* button = static_cast(Control(EMVSCmdCropLeftRight)); sl@0: //Get a pointer to the number editor sl@0: CEikNumberEditor* control = static_cast ( Control(EMVSCmdCropPositionNumber) ); sl@0: TInt position = control->Number()*KMicroSecs; sl@0: TInt64 pos64(position); sl@0: iPosition = TTimeIntervalMicroSeconds(pos64); sl@0: if(iPosition > iClipLength) sl@0: { sl@0: iPosition = iClipLength; sl@0: } sl@0: if(iPosition < iCropStart) sl@0: { sl@0: iPosition = iCropStart; sl@0: } sl@0: TInt buttonId = button->LabeledButtonId(); sl@0: switch (aButtonId) sl@0: { sl@0: case(EMVSButtonUpdate): sl@0: //update prog info based on num-editor sl@0: if(buttonId == EMVSHorOptButtonCropFromBeginning) //'From Beginning' selected sl@0: { sl@0: iCropFromBeginning = ETrue; sl@0: iCropStart = iPosition; sl@0: } sl@0: else sl@0: { sl@0: iCropFromBeginning = EFalse; sl@0: iCropStart = iPosition; sl@0: } sl@0: iAppUi->SetCropL(iCropStart, iCropFromBeginning); sl@0: break; sl@0: sl@0: case(EMVSButtonCancel): sl@0: break; sl@0: sl@0: default: sl@0: break; sl@0: } sl@0: return ETrue; sl@0: } sl@0: sl@0: sl@0: void CMVSCropDialog::InitControl( const TInt aId, const TInt aPos, const TInt aStart, const TInt aFinish ) sl@0: { sl@0: CEikNumberEditor* control = static_cast ( Control(aId) ); sl@0: control->SetNumber(aPos); sl@0: control->SetMinimumAndMaximum( aStart, aFinish ); sl@0: } sl@0: sl@0: