diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrgui/inc/cesmrannivtimevalidator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/inc/cesmrannivtimevalidator.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,138 @@ +/* +* 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 time and date sanity checks and saving +* +*/ + + +#ifndef CESMRANNIVTIMEVALIDATOR_H +#define CESMRANNIVTIMEVALIDATOR_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 Anniversary + * 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( CESMRAnnivTimeValidator ): + public CBase, + public MESMRFieldValidator + { +public: + /** + * Two phase constructor. + */ + static CESMRAnnivTimeValidator* NewL(); + + /** + * Destructor. + */ + ~CESMRAnnivTimeValidator(); + +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 + CESMRAnnivTimeValidator(); + TInt PreValidateEditorContent(); + void PreValidateEditorContentL(); + void DrawEditorsDeferred(); + TDateTime StartTimeL(); + TDateTime AlarmTimeL(); + void ForceValuesL(); + TBool IsModifiedL( MESMRCalEntry& aEntry ); + +private: + /// Ref: Start date editor. + CEikDateEditor* iStartDate; + /// Ref: Alarm time editor + CEikTimeEditor* iAlarmTime; + /// Ref: Alarm date editor. + CEikDateEditor* iAlarmDate; + /// Own: Current anniversary date + TTime iCurrentAnnivDate; + /// Own: Current alarm time + TTime iCurrentAlarmTime; + /// Own: Flag for amarm on/off. + TBool iAlarmOnOff; + /// Ref: Entry being handled + MESMRCalEntry* iEntry; + /// Own: Saves initial alarm time, for later comparisons + TTime iInitialAlarmTime; + /// Own: Saves initial alarm date, for later comparisons + TTime iInitialAlarmDate; + /// Own: Saves initial alarm on off, for later comparisons + TBool iInitialAlarmOnOff; + /// Own: Saves initial due date, for later comparisons + TTime iInitialStartDate; + }; + +#endif // CESMRANNIVTIMEVALIDATOR_H