calendarui/editors/inc/calenreminderfield.h
changeset 0 f979ecb2b13e
child 25 bf573002ff72
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/editors/inc/calenreminderfield.h	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,200 @@
+/*
+* Copyright (c) 2002 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 : Editor alarm fields functionality for all entry types
+ *
+*/
+
+#ifndef CALENREMINDERFIELD_H
+#define CALENREMINDERFIELD_H
+
+// system includes
+#include <e32base.h>
+
+// forward declarations
+class CCalenUnifiedEditor;
+class CCalEntry;
+class CAknQueryValueTextArray;
+class CAknQueryValueText;
+
+// CLASS DECLARATION
+
+NONSHARABLE_CLASS( CCalenReminderField ) : public CBase
+    {
+private:
+    // Define index of "AlarmTime" choicelist item
+    enum TFormAlarmItemIndex
+        {
+        EAlarmNoAlarm,
+        EAlarmActive
+        };
+
+public:
+    static CCalenReminderField* NewL( CCalenUnifiedEditor& aUnifiedEditor );
+
+    /**
+     * @brief C++ desrtuctor
+     */
+    virtual ~CCalenReminderField();
+
+public: // Data access API 
+    
+    /**
+     * @brief Handle error codes related to the alarm fields.
+     * @param aError
+     */
+    TBool HandleErrorL( const TInt& aError );
+    
+    /**
+     * @brief Called when focus is moved from the specified line.
+     * @param aFocusedId, Id of the focused field
+     */
+    void PrepareForFocusTransitionL( TInt aFocusedId );
+
+    /**
+     * @brief Reads data from the entry and updates the form with the appropriate
+     *        values.
+     */
+    void SetDataToEditorL();
+    
+    /**
+     * @brief Reads data from the form and updates the entry with the appropriate 
+     *        values.
+     */
+    void ReadDataFromFormL( TBool aContinueOnError );
+
+public: // Layout API
+    
+    /**
+     * @brief Remove any lines not needed by the current entry. 
+     */
+    void DeleteMeaninglessLinesL();
+    
+    /**
+     * @brief Updates fields just before the form is shown.
+     */
+    void InitReminderFieldLdayoutL();
+
+public: // Control API 
+    
+    /**
+     * @brief Called when a field is modifed.
+     * @param aControlId field which is modified.
+     */
+    void HandleControlStateChangeL( TInt aControlId );
+    
+    /**
+     * @brief Gets the info whether alarm on/off. adds & updates the alarm fields.
+     * @param aAlarmAcitive, If ETrue Alaram is set to 'ON' else set to 'OFF'
+     */
+    void CheckAlarmActive( TBool aAlarmActive );
+    
+    /**
+     * @brief Checks if the alarm is active.
+     * @return ETrue if alarm is 'ON' else EFasle
+     */
+    TBool IsAlarmActiveInForm();
+    
+
+private: 
+    
+    /**
+     * @brief To Add/Delete Alaram Date & Time fields. 
+     * @param If ETrue Alarm Off, Delete alarm date & alarm time fields from Editor
+     *        If EFalse Alarm On, Add alarm date & alarm time fields to Editor 
+     */
+    void SetAlarmDateTimeLinesDimmedL( const TBool& aDimmed );
+
+    /**
+     * @brief Handle Editor fields, when an alarm field is changed.
+     */
+    void HandleAlarmActiveFieldChangeL();
+
+    /**
+     * @brief When the start time of the entry is changed, this function gets called 
+     *        to keep time interval between the entry start and the alarm constant.
+     */
+    void UpdateAlarmTimeWhenStartChangedL();
+    
+    /**
+     * @brief Sets the alarm date & time to the specified TTime.
+     * @param aTime, TTime formate of alarm date & time.
+     */
+    void SetAlarmDateTimeField( const TTime& aTime );
+    
+    /**
+     * @brief Checks to see if the current value of the alarm date/time line is in
+     *        the future.
+     * @return ETrue, If start time is in future       
+     */
+    TBool IsStartTimeInFutureL();
+
+    /**
+     * @brief Returns the current date/time value of the alarm field.
+     * @return TTime formate of alarm date/time
+     */
+    TTime AlarmDateTimeFromFormL();
+    
+private:   
+    
+	/** 
+	 * @brief Get the time field in QHD resolutions
+	 * @return TTime form of time from field with aControlId 
+	 */ 
+	TTime GetTimeField( TInt aControlId );
+	 
+private:
+    
+    /**
+     * @brief C++ constructor
+     */
+    CCalenReminderField( CCalenUnifiedEditor& aUnifiedEditor );
+
+    /**
+     * @brief Two-Phase constructor
+     */
+    void ConstructL();
+
+private:
+    
+    /**
+     * @var iUnifiedEditor
+     * @brief Reference to CCalenUnifiedEditor
+     */
+    CCalenUnifiedEditor& iUnifiedEditor;
+    
+    /**
+     * @var iIsAlarmOnOff
+     * @brief hold the Alarm On/Off state
+     */
+    TInt iIsAlarmOnOff;
+
+    /**
+     * @var iDefaultAlarmOffset
+     * @brief Default alarm offset as minutes from start. Negative value means that
+     *        it is before start time. Read from Central repository
+     */
+    TTimeIntervalMinutes iDefaultAlarmOffset;
+
+    /**
+     * @var iAlarmOffset
+     * @brief Alarm offset as minutes from start Negative value means that it is 
+     *        before start time
+     */
+    TTimeIntervalMinutes iAlarmOffset;
+    };
+
+#endif // CALENALARMFIELDS_H
+
+
+// End of File