email/imum/Utils/Inc/EmailFeatureUtils.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Utils/Inc/EmailFeatureUtils.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,134 @@
+/*
+* 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: 
+*       Static feature handling functions for imum
+*
+*/
+
+
+#ifndef __EMAILFEATUREUTILS_H__
+#define __EMAILFEATUREUTILS_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <muiuflagger.h>        // CMuiuFlags
+#include <messaginginternalcrkeys.h>
+#include <bldvariant.hrh>
+#include <messagingvariant.hrh>
+
+// GLOBAL FEATURES
+// This enumeration contains all the global features as a flag index
+// that can be used in any of the objects under email. Make sure
+// that the new features are presented in same order as the indexes
+// are here in FetchGlobalFeaturesL method.
+// These flags can be found from
+// \epoc32\include\oem\bldvariant.hrh
+enum TIMSGlobalFeatures
+    {
+    // KFeatureIdAlwaysOnLineEmail
+    EMailFeatureAlwaysOnlineEmail = 0,
+    // KFeatureIdProtocolWlan
+    EMailFeatureProtocolWlan,
+    // KFeatureIdAppCsdSupport
+    EMailFeatureCsd,
+    // KFeatureIdHelp
+    EMailFeatureHelp,
+    // KFeatureIdOfflineMode
+    EMailFeatureOfflineMode,
+    // KFeatureIdMeetingRequestSupport
+    EMailFeatureMeetingRequestSupport,
+    // KFeatureIdOmaEmailNotifications
+    EMailFeatureOmaEmn,
+    // KFeatureIdSapPolicyManagement
+    EMailFeatureIdSapPolicyManagement,
+    // Last global feature
+    EMailLastGlobal
+    };
+
+// LOCAL FEATURES
+// This enumeration contains all the local features as a flag index
+// that can be used in any of the objects under email. Make sure
+// that the new features are presented in same order as the indexes
+// are here in FetchGlobalFeaturesL method.
+// These flags can be found from \epoc32\include\oem\MessagingVariant.hrh
+enum TIMSLocalFeatures
+    {
+    // KEmailFeatureIdAlwaysOnlineCSD
+    EMailFeatureAlwaysOnlineCSD = 0,
+    // KEmailFeatureIdAlwaysonlineHeaders
+    EmailFeatureAlwaysonlineHeaders,
+    // Last local feature
+    EMailLastLocal
+    };
+
+/**
+*  Static functions for feature handling in imum
+*
+*  @lib imum.lib
+*  @since S60 3.0
+*/
+class MsvEmailMtmUiFeatureUtils
+    {
+    public: // New functions
+
+        /**
+        * Checks if given local feature is turned on
+        * @since S60 3.0
+        */
+        IMPORT_C static TBool LocalFeatureL(
+            const TUid& aCenRepUid,
+            const TUint32 aKeyId,
+            const TUint32 aFlag );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        IMPORT_C static void FetchGlobalEmailFeaturesL(
+            TMuiuGlobalFeatureArray& aFeatureArray );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        IMPORT_C static void FetchLocalEmailFeaturesL(
+            TMuiuLocalFeatureArray& aFeatureArray );
+
+        /**
+        *
+        * @since S60 3.0
+        */
+        IMPORT_C static CMuiuFlags* EmailFeaturesLC(
+            const TBool aGetGlobals = ETrue,
+            const TBool aGetLocals = EFalse );
+            
+        /**
+        *
+        * @since S60 3.2
+        */
+        IMPORT_C static CMuiuFlags* EmailFeaturesL(
+            const TBool aGetGlobals = ETrue,
+            const TBool aGetLocals = EFalse );     
+            
+        /**
+        * Checks if TARM lock is set active. 
+        * @since S60 3.2
+        * @return ETrue email settings are locked.
+        */                
+        static TBool SettingEnforcementStateL();                
+                   
+    };
+
+#endif // __EMAILFEATUREUTILS_H__
+