diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrgui/inc/cesmrmemotimevalidator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/inc/cesmrmemotimevalidator.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,129 @@ +/* +* Copyright (c) 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: ESMR To-do time wrapper class for date/time sanity checks +* and updates +* +*/ + + +#ifndef CESMRMEMOTIMEVALIDATOR_H +#define CESMRMEMOTIMEVALIDATOR_H + +// +#include "esmrdef.h" +// +#include +#include +#include "mesmrfieldvalidator.h" + +class MESMRCalEntry; +class CEikTimeEditor; +class CEikDateEditor; +class MMRAbsoluteAlarmController; + +/** + * Wrapper class handles sanity checks for date/time fields on Memo/Day note + * Entry. For example start date can not be after end date. + * this calss deals with the cheks for To-do option + * InternalizeL() / ExternalizeL() is delegated to this class since those + * need sanity checks. Fields (who use this wrapper class) shouldn't react + * on ExternalizeL() functions since this wrapper class handles them. On + * InternalizeL() they should attach their date/time editors in here. + * + * @lib esmrgui.lib + */ +NONSHARABLE_CLASS( CESMRMemoTimeValidator ) : + public CBase, + public MESMRFieldValidator + { + +public: + /** + * Two phase constructor. Creates and initializes CESMRMemoTimeValidator + * object. + * @return Pointer to CESMRMemoTimeValidator object. + */ + static CESMRMemoTimeValidator* NewL(); + + /** + * C++ destructor. + */ + ~CESMRMemoTimeValidator(); + +public: // from MESMRFieldValidator + MESMRFieldValidator::TESMRFieldValidatorError ValidateL( + TBool aCorrectAutomatically ); + void ReadValuesFromEntryL( + MESMRCalEntry& aEntry ); + void StoreValuesToEntryL( + MESMRCalEntry& aEntry ); + void SetStartTimeFieldL( + CEikTimeEditor& aStartTime ); + void SetEndTimeFieldL( + CEikTimeEditor& aEndTime ); + void SetStartDateFieldL( + CEikDateEditor& aStartDate ); + void SetEndDateFieldL( + CEikDateEditor& aEndDate ); + void SetAlarmTimeFieldL( + CEikTimeEditor& aAlarmTime ); + void SetAlarmDateFieldL( + CEikDateEditor& aAlarmDate ); + void SetRecurrenceUntilDateFieldL( + CEikDateEditor& aRecurrenceUntil ); + void SetAbsoluteAlarmOnOffFieldL( + MMRAbsoluteAlarmController& aAbsoluteAlarmController ); + void StartTimeChangedL(); + void EndTimeChangedL(); + void StartDateChandedL(); + void EndDateChangedL(); + void AlarmTimeChangedL(); + void AlarmDateChangedL(); + void RelativeAlarmChangedL( + TTimeIntervalMinutes aCurrentAlarmTimeOffset, + TBool aHandleAlarmChange, + TBool& aRelativeAlarmValid ); + void SetAllDayEventL( + TBool aAlldayEvent ); + void SetAlarmOnOffL( + TBool aAlarmOn ); + void RecurrenceChangedL( + TESMRRecurrenceValue aRecurrence ); + void RecurrenceEndDateChangedL(); + TBool IsRelativeAlarmValid( + TTimeIntervalMinutes aAlarmTimeOffset ); + +private: // Implementation + CESMRMemoTimeValidator(); + TInt PreValidateEditorContent(); + void PreValidateEditorContentL(); + void DrawEditorsDeferred(); + TDateTime StartDateTimeL(); + TDateTime EndDateTimeL(); + +private: // Data + /// Ref: Start date editor + CEikDateEditor* iStartDate; + /// Ref: End date editor + CEikDateEditor* iEndDate; + /// Own: Current start time. + TTime iCurrentStartTime; + /// Own: Current end time + TTime iCurrentEndTime; + /// Ref: Orginal entry + MESMRCalEntry* iEntry; + }; + +#endif // CESMRMEMOTIMEVALIDATOR_H +