calendarui/editors/inc/calenunifiededitorcontrol.h
changeset 0 f979ecb2b13e
child 5 42814f902fe6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/editors/inc/calenunifiededitorcontrol.h	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,392 @@
+/*
+* 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:  Unified Editor Fields definition
+ *
+*/
+
+
+#ifndef _CALENUNIFIEDEDITORCONTROL_H
+#define _CALENUNIFIEDEDITORCONTROL_H
+
+// system includes
+#include <calentry.h>
+
+// user includes
+#include "CalenEditorDataHandler.h"
+
+// forward declaration
+class CCalenUnifiedEditor;
+class CCalenEventTypeField;
+class CCalenReminderField;
+class CCalenRepeatField;
+class CCalenAllDayField;
+class CCalenPriorityField;
+class CCalenDbField;
+class CCalenDescription;
+class MCalenServices;
+
+/**
+ * CCalenUnifiedEditorControl class declaration
+ */
+NONSHARABLE_CLASS( CCalenUnifiedEditorControl ) : public CBase
+    {
+    public:
+        /**
+         * @brief Two phased constructor
+         * @param reference to unified editor
+         * @return returns unified editor fields
+         */
+        static CCalenUnifiedEditorControl* NewL(
+                CCalenUnifiedEditor& aUnifiedEditor,
+                MCalenServices& aServices );
+        
+        /**
+         * @brief Destructor
+         */
+        virtual ~CCalenUnifiedEditorControl();
+
+    private:
+        
+        /**
+         * @brief Default constructor
+         * @param reference to unified editor
+         */
+        CCalenUnifiedEditorControl( CCalenUnifiedEditor& aUnifiedEditor );
+        
+        /**
+         * @brief Second phase construction
+         */
+        void ConstructL(MCalenServices& aServices);
+
+    public:
+        
+        /**
+         * @brief Initializes the dialog's controls before the dialog is sized and 
+         *        layed out. Empty by default.
+         */
+        void MakeUnifiedEditorL();
+        
+        /**
+         * @brief Set data to the collapsed unified editor
+         */
+        void SetDataToEditorL();
+        
+        /** 
+         * @brief Set date of date editor aControlId in form to aTime 
+         * @param aControlId control id of the date field
+         * @param aTime holds the user entered time
+         * @param aDoDraw ETrue for redraw other wise EFalse
+         */ 
+        void SetDateField( TInt aControlId, 
+                           const TTime& aTime, 
+                           TBool aDoDraw = ETrue );
+
+        /**
+         * @brief Sets Time in editor
+         * @param aControlId control id of the date field
+         * @param aTime holds the user entered time
+         * @param aDoDraw ETrue for redraw other wise EFalse
+         */ 
+        void SetTimeField( TInt aControlId,
+                           const TTime& aTime,
+                           TBool aDoDraw = ETrue );
+        
+        /** 
+         * @brief Set date of datetime editor aControlId in form to aTime 
+         * @param aControlId control id of the date field
+         * @param aTime holds the user entered time
+         * @param aDoDraw ETrue for redraw other wise EFalse
+         */ 
+        void SetDateTimeField( TInt aControlId,
+                               const TTime& aTime,
+                               TBool aDoDraw = ETrue );
+        
+        /**
+         * @brief Sets alarm field on or off
+         * @param aOnOff ETrue for alarm field ON otherwise EFalse
+         */
+        void SetAlarmFieldOnOffL( TBool aOnOff );
+        
+        /**
+         * @brief Check for whether alarm is activated or not
+         * @return TBool returns ETrue for if alarm active otherwise EFalse
+         */
+        TBool IsAlarmActiveInForm();
+        
+        /**
+         * @brief check alarm active based on the input
+         * @param aActive ETrue for alarm "ON" otherwise EFalse for alarm "OFF"
+         */
+        void CheckAlarmActive( TBool aActive );
+        
+        /**
+         * @brief check ALLDay field value.
+         * @return TBool retunrns ETrue if AllDay field is 'Yes', else EFalse  
+         */
+        TBool IsAllDayEvent();
+        
+        /**
+         * @brief Set AllDay field text value
+         * @param aYesOrNo
+         */
+        void SetAllDayFieldL( TBool aYesOrNo );
+        
+        /**
+         * @brief To set AllDay field value
+         * @param aActive
+         */
+        void SetAllDayEvent( TBool aActive );
+        
+        /**
+         * @brief Handles a state change in the control with id aControlId. 
+         *        Empty by default.
+         * @param aControlId holds the control id for which the state is changed
+         */
+        void HandleControlStateChangeL( TInt aControlId );
+        
+        /**
+         * @brief Tries to change focus to the specified line. Fails if the line 
+         *        ID is not valid. Calls @c PrepareForFocusTransitionL() before 
+         *        focus is given to the line.
+         * @param aFocusedId control id which is being focused
+         */
+        void PrepareForFocusTransitionL( TInt aFocusedId );
+        
+        /**
+         * @brief Handles event type changed 
+         * @param aNewEventType Holds the new event type selected in editor
+         */
+        void OnEventTypeChangedL( CCalEntry::TType aNewEventType );
+    
+        /**
+         * @brief Reads editor data mainly for collapsed editor
+         * @aContinueOnError used for handling forced exit of the editor
+         */
+        void ReadDataFromEditorL( TBool aContinueOnError );
+        
+        /**
+         * @brief Reads subject field from editor
+         */
+        void ReadSubjectFromEditorL();
+
+        /**
+         * @brief Reads start date time from the editor
+         * @param aContinueOnError used for handling forced exit of the editor
+         */
+        void ReadStartDateTimeFromEditorL( TBool aContinueOnError, TInt aFousedId=0 );
+ 
+        /**
+         * @brief Reads end date time from the editor
+         * @param aContinueOnError used for handling forced exit of the editor
+         */
+        void ReadEndDateTimeFromEditorL( TBool aContinueOnError );
+        
+        /**
+         * @brief Reads place field from editor
+         * @param aContinueOnError used for handling forced exit of the editor
+         */
+        void ReadPlaceFieldFromEditorL( TBool aContinueOnError );
+        
+        /**
+         * @brief Reads people field from editor
+         * @param aContinueOnError used for handling forced exit of the editor
+         */
+        void ReadPeopleFieldFromEditorL( TBool aContinueOnError );
+        
+        /**
+         * @brief Reads attachment field from editor
+         * @param aContinueOnError used for handling forced exit of the editor
+         */
+        void ReadAttachmentFieldFromEditorL( TBool aContinueOnError );
+        
+        /**
+         * @brief Reads description field from editor
+         * @aContinueOnError used for handling forced exit of the editor
+         */
+        void ReadDescriptionFieldFromEditorL( TBool aContinueOnError );
+        
+        /**
+         * @brief Update editor lines on environment change notifications
+         */
+        void UpdateLinesOnLocaleChangeL();
+        
+        /**
+         * Reads the RRule and Rdates for the current CCalEntry.
+         */
+        void ReadRrule(TTime& startTime, TTime& endTime);
+        
+        /**
+         * @brief Get start date time from editor
+         * @return TTime holds the start time
+         */
+        TTime GetStartDateTimeL();
+
+        /**
+         * @brief Get end date time from editor
+         * @return TTime holds the end time
+         */
+        TTime GetEndDateTimeL();
+                
+        /**
+         * @brief Reads time from editor
+         * @param aControlId controld of the time field
+         * @return TTime returns time
+         */
+        TTime ReadTimeField( TInt aControlId );
+        
+        /**
+         * @brief Reads date from form in QHD resolution 
+         * @param aControlId controld of the time field
+         * @return TTime returns time
+         */
+        TTime ReadDateField( TInt aControlId );
+        
+        /**
+         * @brief Access to the decription field
+         * @return CCalenDescription returns reference to the decription field
+         */
+        CCalenDescription* Description();
+        
+        /**
+         * @brief check repeat note querie required
+         * @param aRepeatType
+         */
+        CCalenEditorDataHandler::TError AskRepeatingNoteQueriesL(
+            CalCommon::TRecurrenceRange& aRepeatType );        
+        
+        
+        TInt GetCalendarIndexForEntryL();
+        
+        const TDesC& GetCalendarNameForEntryL();
+        
+    private:
+        
+        /**
+         * @brief Adds collapsed editor fields
+         */
+        void AddDefaultEditorL();
+        
+        /**
+         * @brief Add collapsed note editor contents
+         */
+        void AddDefaultNoteEditorL();
+        
+        /**
+         * @brief Add collapsed birthday editor contents
+         */
+        void AddDefaultBirthDayEditorL();
+        
+        /**
+         * @brief Add collapsed meeting editor contents
+         */
+        void AddDefaultMeetingEditorL();
+        
+        /**
+         * @brief Add collapsed todo editor contents
+         */
+        void AddDefaultTodoEditorL();
+        
+        /**
+         * @brief Initialise default editor contents
+         */
+        void InitDefaultEditorsL();
+        
+        /**
+         * @brief Delete previous entry type fields on selcting 
+         *        the new entry type
+         */
+        void DeletePreviousEntryTypeFieldsL();
+        
+        /**
+         * @brief Delete more information fields from unified editor
+         * @param aPreviousEntryType
+         */
+        void DeleteExtendedEntryFields( CCalEntry::TType aPreviousEntryType );
+        
+        /**
+         * @brief Add new entry type's editor fields
+         * aParam aNewEventType new event type selected
+         */
+        void AddNewEntryTypeFieldsL( CCalEntry::TType aNewEventType );
+        
+        /*
+         * @brief To update end time in editor
+         */
+        void UpdateEndTimeL();
+        
+        /**
+         * @brief To to update meeting duration in iMeetingInterval Which is used
+         *        in updating the EndTime of editor on StartTime change.
+         */
+        void UpdateMeetingDurationL();
+        
+    private:
+ 
+        /**
+         * @var iUnifiedEditor
+         * @brief referance to CCalenUnifiedEditor
+         */
+        CCalenUnifiedEditor& iUnifiedEditor;
+        
+        /**
+         * @var iEventTypeField
+         * @brief To handle Event type field
+         */
+        CCalenEventTypeField* iEventTypeField;
+        
+        /**
+         * @var iReminderField
+         * @brief To handle Reminder field
+         */
+        CCalenReminderField* iReminderField;
+        
+        /**
+         * @var iRepeatField
+         * @brief To handle Repeat field
+         */
+        CCalenRepeatField* iRepeatField;
+        
+        /**
+         * @var iAllDayField
+         * @brief To handle AllDay field
+         */
+        CCalenAllDayField* iAllDayField;
+        
+        /**
+         * @var iPriorityField
+         * @brief To handle Note Priority field
+         */
+        CCalenPriorityField* iPriorityField;
+        
+        /**
+         * @var iDbField
+         * @brief To handle Db field
+         */
+        CCalenDbField* iDbField;
+        
+        /**
+         * @var iDescription
+         * @brief To handle Description field
+         */
+        CCalenDescription* iDescription;
+        
+        /**
+         * @var iMeetingInterval
+         * @brief To update end time as per Start time change
+         */
+        TTimeIntervalMinutes  iMeetingInterval;
+        
+    };
+
+#endif // _CALENUNIFIEDEDITORCONTROL_H
\ No newline at end of file