os/mm/mmlibs/mmfw/tsrc/mmvalidationsuite/mmvalidationsuiteapp/src/MVSCropDialog.cpp
First public contribution.
1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Part of the MVS Application for TechView
18 #include "MVSCropDialog.h"
20 #include <techview/eikmfne.h>
22 #include <techview/eikhopbt.h>
23 #include <techview/eiklabel.h>
26 const TUint KMicroSecs = 1000000;
28 void CMVSCropDialog::SetupDialogLD(TTimeIntervalMicroSeconds aPosition,
29 TTimeIntervalMicroSeconds aClipLength,
30 TTimeIntervalMicroSeconds aCropStart,
31 TTimeIntervalMicroSeconds aCropEnd,
34 CMVSCropDialog* dialog = new (ELeave) CMVSCropDialog(aPosition, aClipLength,
35 aCropStart, aCropEnd, aAppUi);
36 dialog->ExecuteLD(R_MVS_DIALOG_CROP);
40 void CMVSCropDialog::PreLayoutDynInitL()
42 TInt start = I64INT(iCropStart.Int64()) > 1? (I64INT(iCropStart.Int64())/KMicroSecs) : 0;
43 TInt finish = I64INT(iCropEnd.Int64()) > 1? (I64INT(iCropEnd.Int64())/KMicroSecs) : I64INT(iClipLength.Int64())/KMicroSecs;
44 //check the current position is valid.
45 if(I64INT(iPosition.Int64())/KMicroSecs < start)
47 else if (I64INT(iPosition.Int64())/KMicroSecs > finish)
50 InitControl(TInt(EMVSCmdCropPositionNumber), I64INT(iPosition.Int64())/KMicroSecs, start, finish );
52 CEikHorOptionButtonList* button = static_cast<CEikHorOptionButtonList*>(Control(EMVSCmdCropLeftRight));
53 button->SetButtonById(EMVSHorOptButtonCropFromBeginning);
61 // C++ Constructor, initialises the object member variables to their
64 CMVSCropDialog::CMVSCropDialog(TTimeIntervalMicroSeconds aPosition,
65 TTimeIntervalMicroSeconds aClipLength,
66 TTimeIntervalMicroSeconds aCropStart,
67 TTimeIntervalMicroSeconds aCropEnd,
69 : iPosition(aPosition), iCropStart(aCropStart), iCropEnd(aCropEnd), iCropFromBeginning(EFalse), iAppUi(aAppUi)
71 if (I64INT(aCropEnd.Int64()) > 1)
73 iClipLength = aCropEnd;
77 iClipLength = aClipLength;
83 TBool CMVSCropDialog::OkToExitL(TInt aButtonId)
85 //Get a pointer to the Option Button List control
86 CEikHorOptionButtonList* button = static_cast<CEikHorOptionButtonList*>(Control(EMVSCmdCropLeftRight));
87 //Get a pointer to the number editor
88 CEikNumberEditor* control = static_cast<CEikNumberEditor*> ( Control(EMVSCmdCropPositionNumber) );
89 TInt position = control->Number()*KMicroSecs;
90 TInt64 pos64(position);
91 iPosition = TTimeIntervalMicroSeconds(pos64);
92 if(iPosition > iClipLength)
94 iPosition = iClipLength;
96 if(iPosition < iCropStart)
98 iPosition = iCropStart;
100 TInt buttonId = button->LabeledButtonId();
103 case(EMVSButtonUpdate):
104 //update prog info based on num-editor
105 if(buttonId == EMVSHorOptButtonCropFromBeginning) //'From Beginning' selected
107 iCropFromBeginning = ETrue;
108 iCropStart = iPosition;
112 iCropFromBeginning = EFalse;
113 iCropStart = iPosition;
115 iAppUi->SetCropL(iCropStart, iCropFromBeginning);
118 case(EMVSButtonCancel):
128 void CMVSCropDialog::InitControl( const TInt aId, const TInt aPos, const TInt aStart, const TInt aFinish )
130 CEikNumberEditor* control = static_cast<CEikNumberEditor*> ( Control(aId) );
131 control->SetNumber(aPos);
132 control->SetMinimumAndMaximum( aStart, aFinish );