diff -r 000000000000 -r f979ecb2b13e calendarui/editors/inc/calenrepeatfield.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/editors/inc/calenrepeatfield.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,186 @@ +/* +* 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 : Implementation of Repeat field of UnifiedEditor + * +*/ + +#ifndef __CALENREPEATFIELD_H__ +#define __CALENREPEATFIELD_H__ + +// user includes +#include "calenunifiededitor.h" + +// system includes +#include +#include +#include + +// forward declaration +class CCalEntry; +class CAknQueryValueTextArray; +class CAknQueryValueText; +class TCalRRule; + +// CLASS DECLARATION + +/** + * Implements Synchronization field for Calendar Editors. + */ +NONSHARABLE_CLASS( CCalenRepeatField ) : public CBase + { +public: + + /** + * @brief 1st phase of Two-phased constructor + */ + static CCalenRepeatField* NewL( CCalenUnifiedEditor& aUnifiedEditor ); + + /** + * @brief Destructor + */ + virtual ~CCalenRepeatField(); + +public: + /** + * @brief To read data from editor + */ + void ReadDataFromFormL( TBool aContinueOnError ); + + /** + * @brief To update data form data + */ + void SetDataToEditorL(); + + /** + * @brief Updates fields just before the form is shown. + */ + void InitRepetFieldLayoutL(); + + /** + * @brief Handle repeat type change + * @param aControlId + */ + void HandleControlStateChangeL( TInt aControlId ); + + /** + * @brief Change focused field in form according to error type + * @param aError + */ + TBool HandleErrorL( const TInt& aError ); + + /** + * @brief Handle focus change from the repeat field + */ + void PrepareForFocusTransitionL( TInt aFocusedId ); + +public: // Repeat field specific + /** + * @brief Get form current repeat type + * @retun TCalenRepeatIndex + */ + TCalenRepeatIndex FormRepeatType(); + + /** + * @brief Ask the user of the repeat type when neccessary + * @param aRepeatType + * @return CCalenEditorDataHandle::TError + */ + CCalenEditorDataHandler::TError AskRepeatingNoteQueriesL( + CalCommon::TRecurrenceRange& aRepeatType); + +private: + + /** + * @brief Get repeat date and time from form + * @reurn repeatuntil field value in TTime format + */ + TTime FormRepeatUntilDateTimeL(); + + /** + * @brief Delete "Other" item from repeat field. + * It MUST be called in following case. + * 1. Default repeat value is other then "Other". + * 2. Repeat is changed from "Other" to another value. + * If "Other" item has already been deleted, nothing is executed. + */ + void DeleteOtherItemFromRepeatField(); + + /** + * @brief To Notify the change in repeat choice change + */ + void NotifyChangeRepeatChoiceL(); + + /** + * @brief Delete or insert item of "RepeatUntil" from form. + * @param aDimmed, If ETrue delete RepeatUntil from form. + * EFalse insert RepeatUntil field to form. + */ + void SetRepeatUntilLineDimmedL( const TBool& aDimmed ); + + /** + * @brief Called when "Repeat" is updated from any repeat value + * to "Not Repeated". + */ + void UpdateEndDateTimeFields(); + + /** + * @brief Check if the repeat query should be shown + * @return TBool + */ + TBool ShouldQueryRepeatTargetL(); + + /** + * @brief Query whether user want to edit This/all instances of repeat entry + * @param referance to aRepeatType + */ + CCalenEditorDataHandler::TError QueryRepeatTargetL( + CalCommon::TRecurrenceRange& aRepeatType ); + +private: + /** + * @brief C++ constructor + * @param aUnifiedEditor referance to CCalenUnifiedEditor + */ + CCalenRepeatField( CCalenUnifiedEditor& aUnifiedEditor ); + + /** + * @brief 2nd phase of Two-Phased constructor + */ + void ConstructL(); + +private: + /** + * @var iUnifiedEditor + * @brief referance to iUnifiedEditor + */ + CCalenUnifiedEditor& iUnifiedEditor; + + /** + * @var iRepeatArrayText + * @brief Array contian repeat text values + */ + CDesCArrayFlat* iRepeatArrayText; + + /** + * @var iRepeatArray + * @brief Array contain Reapt field text list + */ + CAknQueryValueTextArray* iRepeatArray; + + /** + * @var iRepeatTextValues + */ + CAknQueryValueText* iRepeatTextValues; + }; +#endif