webengine/wmlengine/src/utils/include/CBrowserSettings.h
changeset 0 dd21522fd290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/wmlengine/src/utils/include/CBrowserSettings.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,192 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+
+#ifndef __UTIL_SETTINGS_H
+#define __UTIL_SETTINGS_H
+
+#include <bldvariant.hrh>
+#include <coemain.h>
+#include "nwx_defs.h"
+#include "nwx_settings.h"
+
+// FYI: All key literals come from \epoc32\include\oem\SharedDataKeysVariant.h
+// Please do not define key literal strings here.
+
+_LIT( KValueOn, "True" );
+_LIT( KValueOff, "False" );
+
+class CRepository;
+
+enum TBrowserSetting
+  {
+  EFontSizeLevel              = 0x1,
+  EEncoding                   = 0x2,
+  ECookiesEnabled             = 0x4,
+  EImagesEnabled              = 0x8,
+  EEcmaScriptEnabled          = 0x10,
+  ETextWrapEnabled            = 0x20,
+  EOriginalEncoding           = 0x40,
+  EVerticalLayoutEnabled      = 0x80,
+  ECSSFetchEnabled            = 0x100,
+  EDisableSmallScreenLayout   = 0x200,
+  EIsEmbedded                 = 0x400,
+  EIMEINotifyEnabled          = 0x800,
+  ESendReferrerHeader         = 0x1000,
+  EHttpSecurityWarnings       = 0x2000
+  };
+
+/*****************************************************************
+
+  Description: abstract observer calss
+
+******************************************************************/
+/*class MBrowserSettingsObserver
+  {
+  //
+  public:
+
+    virtual void BrowserSettingChanged( enum TBrowserSetting aBrowserSetting ) = 0;
+  };
+*/
+/*****************************************************************
+
+  Description: This class keeps track of the settings.
+
+******************************************************************/
+
+NONSHARABLE_CLASS(CBrowserSettings) : public CBase
+    {
+    public:
+
+        //Construction
+
+        static CBrowserSettings* Instance();
+
+        ~CBrowserSettings();
+
+        // observer methods
+        //void SetObserver( MBrowserSettingsObserver* aBrowserSettingsObserver,
+         // TUint aObservedSettings );
+
+        void RemoveObserver( void );
+
+        // Access methods
+        NW_Bool GetStartFromHomepage(void);
+
+        NW_Uint8 GetFontSizeLevel(void);
+        void SetFontSizeLevel(NW_Uint8 fontSizeLevel);
+
+        NW_Uint16 GetEncoding(void);
+        void SetEncoding(NW_Uint16 encoding);
+
+        NW_Bool GetCookiesEnabled(void);
+        void SetCookiesEnabled(const NW_Bool enabled);
+
+        NW_Bool GetImagesEnabled(void);
+        void SetImagesEnabled(const NW_Bool enabled);
+
+        NW_Bool GetEcmaScriptEnabled(void);
+        void SetEcmaScriptEnabled(const NW_Bool enabled);
+
+        NW_Bool GetTextWrapEnabled(void);
+        void SetTextWrapEnabled(const NW_Bool enabled);
+
+        NW_Bool GetAlwaysConfirmDtmfSending(void);
+        void SetAlwaysConfirmDtmfSending(const NW_Bool enabled);
+
+        NW_Uint32 GetOriginalEncoding(void);
+        void SetOriginalEncoding(NW_Uint32 encoding);
+
+        NW_Bool GetVerticalLayoutEnabled(void);
+        void SetVerticalLayoutEnabled(const NW_Bool enabled);
+
+        void SetInternalVerticalLayoutEnabled(const NW_Bool enabled);
+
+        void SetCSSFetchEnabled(const NW_Bool disabled);
+        NW_Bool GetCSSFetchEnabled(void);
+
+        NW_Uint16 GetDefaultCharset(void);
+        void SetDefaultCharset(NW_Uint16 defaultCharset);
+
+         void SetDisableSmallScreenLayout(const NW_Bool disabled);
+        NW_Bool GetDisableSmallScreenLayout();
+
+        NW_Bool GetIsBrowserEmbedded(void);
+        void SetIsBrowserEmbedded(const NW_Bool isEmbedded);
+
+        TUint GetLocalFeatures(void);
+
+        NW_Ucs2* GetTempFilesPath(void);
+
+        NW_Uint8 GetMMCDrive(void);
+
+        NW_Uint8 GetIMEINotifyEnabled(void);
+        void SetIMEINotifyEnabled(NW_Uint8 enabled);
+
+        NW_Uint8 GetSendReferrerHeader(void);
+        void SetSendReferrerHeader(NW_Uint8 enabled);
+
+        NW_Bool GetHttpSecurityWarnings(void);
+        void SetHttpSecurityWarnings(NW_Bool enabled);
+
+        NW_Uint32 GetIAPId(void);
+        void SetIAPId(NW_Uint32 aIapId);
+
+	private:
+
+        CBrowserSettings();
+
+        // observer method
+        void PublishSettingChange( enum TBrowserSetting aBrowserSetting );
+
+        // Utility methods
+        TInt GetIntValue(const TUint32 aKey);
+        NW_Bool GetBooleanValue(const TUint32 aKey);
+        NW_Ucs2* GetStringValue( const TUint32 aKey );
+
+    private:
+
+        NW_Bool   iStartFromHomepage;
+        NW_Uint8  iFontSizeLevel;
+        NW_Uint16 iEncoding;
+        NW_Bool   iCookiesEnabled;
+        NW_Bool   iImagesEnabled;
+        NW_Uint8  iEcmaScriptEnabled;
+        NW_Uint8  iTextWrapEnabled;
+        NW_Uint32 iOriginalEncoding;
+        NW_Uint8  iVerticalLayoutEnabled;
+        NW_Bool   iCSSFetchEnabled;
+        NW_Bool   iDisableSmallScreenLayout;
+        NW_Uint16 iDefaultCharset;
+
+        CRepository* iRepository;
+        NW_Bool   iIsEmbedded;
+        TUint     iFeatureBitmask;
+        NW_Ucs2*  iTempFilesPath;
+        NW_Uint8  iMMCDrive;
+        NW_Uint8  iIMEINotifyEnabled;
+        NW_Uint8  iSendReferrerHeader;
+        NW_Bool   iHttpSecurityWarnings;
+        NW_Bool   iSecUI;
+		NW_Uint32 iIapId;
+
+        //MBrowserSettingsObserver* iBrowserSettingsObserver;
+        TUint      iObservedSettings;
+    };
+
+#endif /* __UTIL_SETTINGS_H */