diff -r 000000000000 -r 72b543305e3a email/imum/Utils/Inc/IMSSettingsItemApprover.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Utils/Inc/IMSSettingsItemApprover.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,340 @@ +/* +* Copyright (c) 2006 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: IMSSettingsItemApprover.h +* +*/ + + +#ifndef IMSSETTINGSITEMAPPROVER_H +#define IMSSETTINGSITEMAPPROVER_H + +// INCLUDES +#include +#include "MuiuDynamicSettingItemBase.h" // CMuiuSettingBase +#include // CMsvSession +#include // CMuiuFlags +#include "MuiuDynamicSettingsDialog.h" // TMuiuPageEventResult + +#include "ComDbUtl.h" // CMsvCommDbUtilities +#include "IMSSettingsNoteUi.h" // CIMSSettingsNoteUi +#include "IMSSettingsItemApprover.h" // CIMSSettingsItemApprover +#include "IMSSettingsBaseUi.h" // CIMSSettingsBaseUi + +// CONSTANTS +enum TIMSApproverFlags + { + // Indicates that the item contains unprepared value + EIMSApproverGenerate = 15 + }; + +enum TIMSApproverEvent + { + EIMSApproverNoEvent = 0, + EIMSApproverRemoveAlwaysOnline, + EIMSApproverRemoveOmaEmn + }; + +// MACROS +// DATA TYPES +// FUNCTION PROTOTYPES +// FORWARD DECLARATIONS +class CImumInternalApi; +class CImumInSettingsData; + +// CLASS DECLARATION + +/** +* ?one_line_short_description. +* ?other_description_lines +* +* @lib ?library +* @since S60 3.0 +*/ +class CIMSSettingsItemApprover : public CBase + { + public: // Constructors and destructor + + /** + * Destructor + * @since S60 + */ + ~CIMSSettingsItemApprover(); + + /** + * + * @since S60 + */ + static CIMSSettingsItemApprover* NewL( + CImumInternalApi& aMailboxApi, + CMsvCommDbUtilities& aCommsDb, + CIMSSettingsNoteUi& aNoteUi, + CIMSSettingsBaseUI& aDialog ); + + /** + * + * @since S60 + */ + static CIMSSettingsItemApprover* NewLC( + CImumInternalApi& aMailboxApi, + CMsvCommDbUtilities& aCommsDb, + CIMSSettingsNoteUi& aNoteUi, + CIMSSettingsBaseUI& aDialog ); + + public: // New functions + + /** + * + * @since S60 3.0 + */ + TMuiuPageEventResult EvaluateText( + TIMSApproverEvent& aEvent, + const CMuiuSettingBase& aBaseItem, + TDes& aNewText ); + + /** + * + * @since S60 3.0 + */ + TMuiuPageEventResult EvaluateValue( + TIMSApproverEvent& aEvent, + const CMuiuSettingBase& aBaseItem, + TInt& aNewValue ); + + public: // Functions from base classes + + protected: // New virtual functions + protected: // New functions + protected: // Functions from base classes + + private: // Constructors + + /** + * + * @since S60 + */ + CIMSSettingsItemApprover( + CImumInternalApi& aMailboxApi, + CMsvCommDbUtilities& aCommsDb, + CIMSSettingsNoteUi& aNoteUi, + CIMSSettingsBaseUI& aDialog ); + + /** + * + * @since S60 + */ + void ConstructL(); + + private: // New virtual functions + private: // New functions + + // COMMON ITEM VALIDATION + + /** + * + * @since S60 3.0 + */ + TIMSErrors ValidateType( + const CMuiuSettingBase& aBaseItem, + TDes& aNewText, + TInt& aNewValue ); + + /** + * + * @since S60 3.0 + */ + TIMSErrors EvaluateWizardItems( + TIMSApproverEvent& aEvent, + const CMuiuSettingBase& aBaseItem, + TDes& aNewText, + TInt& aNewValue ); + + /** + * + * @since S60 3.0 + */ + TIMSErrors EvaluateSettingItems( + TIMSApproverEvent& aEvent, + const CMuiuSettingBase& aBaseItem, + TDes& aNewText, + TInt& aNewValue ); + + /** + * + * @since S60 3.0 + */ + TMuiuPageEventResult EvaluateItem( + TIMSApproverEvent& aEvent, + const CMuiuSettingBase& aBaseItem, + TDes& aNewText, + TInt& aNewValue ); + + /** + * + * @since S60 3.0 + */ + TBool IsItemFilled( + const CMuiuSettingBase& aBaseItem, + const TInt aLength ); + + /** + * + * @since S60 3.0 + */ + TIMSErrors ValidateText( + const CMuiuSettingBase& aBaseItem, + const TDesC& aNewText ); + + /** + * + * @since S60 3.0 + */ + TIMSErrors ValidateValue( + const CMuiuSettingBase& aBaseItem, + TInt& aNewValue ); + + /** + * + * @since S60 3.0 + */ + TIMSErrors ValidateRadioButtons( + const TInt aNewValue ); + + // SPESIFIC ITEM VALIDATION + + /** + * + * @since S60 3.0 + */ + TIMSErrors EvaluateAccountName( + const CMuiuSettingBase& aBaseItem, + TDes& aNewText ); + + /** + * + * @since Series60 3.0 + */ + TIMSErrors EvaluateServerAddress( + const CMuiuSettingBase& aBaseItem, + const TDesC& aNewText ); + + /** + * + * @since Series60 3.0 + */ + TIMSErrors EvaluateEmailAddress( + const CMuiuSettingBase& aBaseItem, + const TDesC& aNewText ); + + /** + * + * @since Series60 3.0 + */ + TIMSErrors EvaluateInternetAccessPoint( + const CMuiuSettingBase& aBaseItem, + TInt& aNewValue ); + + // ITEM VALIDATION UTILITIES + + /** + * + * @since S60 3.0 + */ + TIMSErrors EvaluateUsernameOrPassword( + TIMSApproverEvent& aEvent, + TDes& aNewText ); + + /** + * Evaluates free text fields that have no special + * restrictions. + * + * @since S60 5.0 + */ + TIMSErrors EvaluateFreeText( TDes& aNewText ); + + // Always Online and OMA EMN checks + + /** + * + * @since S60 3.0 + */ + TIMSErrors CheckItemOnlineSettingsCheckTurnOn( + TIMSApproverEvent& aEvent, + const TInt aNewValue, + TBool aIsEmn ); + + /** + * + * @since S60 3.0 + */ + TIMSErrors CheckItemOnlineSettingsCheckTurnOnL( + TIMSApproverEvent& aEvent, + TBool aIsEmn ); + + /** + * + * @since S60 3.0 + */ + TIMSErrors CheckItemAoCountOkL(); + + /** + * + * @since S60 3.0 + */ + TIMSErrors CheckItemAoAccessPointOkL(); + + /** + * + * @since S60 3.0 + */ + TIMSErrors CheckItemAoOmaEmnOffL( TBool aIsEmn ); + + /** + * + * @since S60 3.0 + */ + TIMSErrors CheckItemAoUsernameAndPasswordL(); + + /** + * + * @since S60 3.0 + */ + TIMSErrors CheckItemAoConnectionTypeL(); + + /** + * + * @since S60 3.0 + */ + TIMSErrors CheckItemAOFixFetchL(); + + private: // Functions from base classes + + public: // Data + protected: // Data + private: // Data + + // Internal mail API implementation + CImumInternalApi& iMailboxApi; + // CommsDb utils + CMsvCommDbUtilities& iCommsDbUtils; + // Class to handle notes in UI + CIMSSettingsNoteUi& iNoteUi; + // The ownerdialog item + CIMSSettingsBaseUI& iDialog; + // + TMuiuSettingsText* iTempText; + }; + +#endif // IMSSETTINGSITEMAPPROVER_H + +// End of File