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 "MVSSetPlayWindowDialog.h" sl@0: #include "MVSApp.hrh" sl@0: #include "MVSAppUI.h" sl@0: sl@0: sl@0: void CMVSSetPlayWindowDialog::SetupDialogLD(TTimeIntervalMicroSeconds aStart, sl@0: TTimeIntervalMicroSeconds aEnd, sl@0: TTimeIntervalMicroSeconds aMaxDuration, CMVSAppUi* aAppUi) sl@0: { sl@0: CMVSSetPlayWindowDialog* dialog = new (ELeave) CMVSSetPlayWindowDialog(aStart,aEnd, sl@0: aMaxDuration, aAppUi); sl@0: dialog->ExecuteLD(R_MVS_DIALOG_SETPLAYWINDOW); sl@0: } sl@0: sl@0: void CMVSSetPlayWindowDialog::PreLayoutDynInitL() sl@0: { sl@0: // Get a downcasted pointer to the controls sl@0: CEikNumberEditor* control = static_cast ( Control((TInt)EMVSCmdSetPlayWindowStart) ); sl@0: control->SetMinimumAndMaximum(0, (iMaxDuration.Int64())); sl@0: control->SetNumber(iStart.Int64()); sl@0: control = static_cast ( Control((TInt)EMVSCmdSetPlayWindowEnd) ); sl@0: control->SetMinimumAndMaximum(0, iMaxDuration.Int64()); sl@0: control->SetNumber(iEnd.Int64()); sl@0: } sl@0: sl@0: sl@0: CMVSSetPlayWindowDialog::CMVSSetPlayWindowDialog(TTimeIntervalMicroSeconds aStart, sl@0: TTimeIntervalMicroSeconds aEnd,TTimeIntervalMicroSeconds aMaxDuration, CMVSAppUi* aAppUi) sl@0: : iStart(aStart), iEnd(aEnd), iMaxDuration(aMaxDuration), iAppUi(aAppUi) sl@0: { sl@0: sl@0: } sl@0: sl@0: sl@0: TKeyResponse CMVSSetPlayWindowDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType) sl@0: { sl@0: if(aKeyEvent.iCode == EKeyEnter && aType == EEventKeyDown) sl@0: { sl@0: OkToExitL(EMVSButtonUpdate); sl@0: } sl@0: return CEikDialog::OfferKeyEventL(aKeyEvent,aType); sl@0: } sl@0: sl@0: sl@0: TBool CMVSSetPlayWindowDialog::OkToExitL(TInt aButtonId) sl@0: { sl@0: // Get a pointer to the progress bar control. sl@0: // Downcast the returned CCoeControl* pointer to the correct type. sl@0: CEikNumberEditor* controlstart = static_cast(Control(EMVSCmdSetPlayWindowStart)); sl@0: CEikNumberEditor* controlend = static_cast(Control(EMVSCmdSetPlayWindowEnd)); sl@0: TBool result = ETrue; sl@0: switch(aButtonId) sl@0: { sl@0: case(EMVSButtonUpdate): sl@0: { sl@0: TInt positionstart = controlstart->Number(); sl@0: TInt64 posstart64(positionstart); sl@0: TInt positionend = controlend->Number(); sl@0: TInt64 posend64(positionend); sl@0: //Port these values over to the AppUi sl@0: result = iAppUi->SetPlayWindow(TTimeIntervalMicroSeconds(posstart64), TTimeIntervalMicroSeconds(posend64)); sl@0: //if the play window can not be set with the values, restore to previous values sl@0: if(!result) sl@0: { sl@0: controlstart->SetNumber(iStart.Int64()); sl@0: controlstart->DrawNow(); sl@0: controlend->SetNumber(iEnd.Int64()); sl@0: controlend->DrawNow(); sl@0: } sl@0: } sl@0: break; sl@0: sl@0: default: sl@0: break; sl@0: } sl@0: sl@0: return result; sl@0: } sl@0: