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
+