diff -r 000000000000 -r f979ecb2b13e calendarui/editors/inc/calenreminderfield.h --- /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 + +// 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