mmlibs/mmfw/tsrc/mmvalidationsuite/mmvalidationsuiteapp/src/MVSCropDialog.cpp
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmvalidationsuite/mmvalidationsuiteapp/src/MVSCropDialog.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,135 @@
+// Copyright (c) 2005-2009 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:
+// Part of the MVS Application for TechView
+//
+
+
+#include "MVSCropDialog.h"
+#include "MVSApp.hrh"
+#include <techview/eikmfne.h>
+#include <coecntrl.h>
+#include <techview/eikhopbt.h>
+#include <techview/eiklabel.h>
+#include "MVSAppUI.h"
+
+const TUint KMicroSecs = 1000000;
+
+void CMVSCropDialog::SetupDialogLD(TTimeIntervalMicroSeconds aPosition,
+                                TTimeIntervalMicroSeconds aClipLength,
+                                TTimeIntervalMicroSeconds aCropStart,
+                                TTimeIntervalMicroSeconds aCropEnd,
+                                CMVSAppUi* aAppUi)
+	{
+    CMVSCropDialog* dialog = new (ELeave) CMVSCropDialog(aPosition, aClipLength,
+                                                   aCropStart, aCropEnd, aAppUi);
+    dialog->ExecuteLD(R_MVS_DIALOG_CROP);
+    }
+
+
+void CMVSCropDialog::PreLayoutDynInitL()
+	{
+    TInt start = I64INT(iCropStart.Int64()) > 1? (I64INT(iCropStart.Int64())/KMicroSecs) : 0;
+    TInt finish = I64INT(iCropEnd.Int64()) > 1? (I64INT(iCropEnd.Int64())/KMicroSecs) : I64INT(iClipLength.Int64())/KMicroSecs;
+    //check the current position is valid.
+	if(I64INT(iPosition.Int64())/KMicroSecs < start)
+		iPosition = start;
+	else if (I64INT(iPosition.Int64())/KMicroSecs > finish)
+		iPosition = finish;
+
+	InitControl(TInt(EMVSCmdCropPositionNumber), I64INT(iPosition.Int64())/KMicroSecs, start, finish );
+
+    CEikHorOptionButtonList* button = static_cast<CEikHorOptionButtonList*>(Control(EMVSCmdCropLeftRight));
+    button->SetButtonById(EMVSHorOptButtonCropFromBeginning);
+	}
+
+
+
+//
+//CCropDialog()
+//
+// C++ Constructor, initialises the object member variables to their
+// current settings. 
+//
+CMVSCropDialog::CMVSCropDialog(TTimeIntervalMicroSeconds aPosition,
+                         TTimeIntervalMicroSeconds aClipLength,
+                         TTimeIntervalMicroSeconds aCropStart,
+                         TTimeIntervalMicroSeconds aCropEnd,
+                         CMVSAppUi* aAppUi)
+: iPosition(aPosition), iCropStart(aCropStart), iCropEnd(aCropEnd), iCropFromBeginning(EFalse), iAppUi(aAppUi)
+    {
+    if (I64INT(aCropEnd.Int64()) > 1)
+    	{
+        iClipLength = aCropEnd;
+        }
+    else
+        {
+        iClipLength = aClipLength;
+        }
+    }
+
+
+
+TBool CMVSCropDialog::OkToExitL(TInt aButtonId)
+	{
+    //Get a pointer to the Option Button List control
+    CEikHorOptionButtonList* button = static_cast<CEikHorOptionButtonList*>(Control(EMVSCmdCropLeftRight));
+	//Get a pointer to the number editor
+    CEikNumberEditor* control = static_cast<CEikNumberEditor*> ( Control(EMVSCmdCropPositionNumber) );
+	TInt position = control->Number()*KMicroSecs;
+    TInt64 pos64(position);
+    iPosition = TTimeIntervalMicroSeconds(pos64);
+    if(iPosition > iClipLength)
+    	{
+     	iPosition = iClipLength;
+     	}
+	if(iPosition < iCropStart)
+	 	{
+	 	iPosition = iCropStart; 
+	 	}
+    TInt buttonId = button->LabeledButtonId();
+	switch (aButtonId)
+    	{
+        case(EMVSButtonUpdate):
+        	//update prog info based on num-editor
+        	if(buttonId == EMVSHorOptButtonCropFromBeginning) //'From Beginning' selected
+            	{
+               	iCropFromBeginning = ETrue;
+               	iCropStart = iPosition;
+               	}
+          	else
+            	{
+               	iCropFromBeginning = EFalse;
+               	iCropStart = iPosition;
+               	}
+            iAppUi->SetCropL(iCropStart, iCropFromBeginning);
+            break;
+
+        case(EMVSButtonCancel):
+            break;
+
+        default:
+ 		    break;
+        }
+    return ETrue;    
+    }
+
+
+void CMVSCropDialog::InitControl( const TInt aId, const TInt aPos, const TInt aStart, const TInt aFinish )
+	{
+	CEikNumberEditor* control = static_cast<CEikNumberEditor*> ( Control(aId) );        
+	control->SetNumber(aPos);
+	control->SetMinimumAndMaximum( aStart, aFinish );
+	}
+
+