browserui/browser/BrowserAppInc/BrowserWindow.h
changeset 0 84ad3b177aa3
child 24 868cceedabd3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/browserui/browser/BrowserAppInc/BrowserWindow.h	Mon Mar 30 12:49:49 2009 +0300
@@ -0,0 +1,417 @@
+/*
+* 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 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: 
+*      API provider.
+*  
+*
+*/
+
+
+#ifndef __MULTIPLE_WINDOWS_WINDOW_H__
+#define __MULTIPLE_WINDOWS_WINDOW_H__
+
+// INCLUDES FILES
+#include "WmlBrowserBuild.h"
+#include <e32base.h>
+#include "ApiProvider.h"
+#include "Preferences.h"
+#include <BrCtlDefs.h>
+#include "BrowserLoadObserver.h"
+#include "BrowserDialogsProviderProxy.h"
+#include <BrCtlWindowObserver.h>
+
+// FORWARD DECLARATIONS
+class CBrCtlInterface;
+class CBrowserDisplay;
+class CBrowserSpecialLoadObserver;
+class CBrowserSoftkeysObserver;
+class CBrowserWindowManager;
+
+class MDisplay;
+class MConnection;
+class CBrowserDialogsProvider;
+class MBmOTABinSender;
+class CBrowserPopupEngine;
+
+// CLASS DECLARATION
+
+/**
+*  Interface to query several API implementations via Window class.
+*  
+*  @lib Browser.app
+*  @since Series 60 3.0
+*/
+class CBrowserWindow :  public CBase,
+                        public MApiProvider,
+                        public MPreferencesObserver,
+                        public MBrCtlWindowObserver
+    {
+    public:
+        static CBrowserWindow* NewLC(
+            TInt aWindowId,
+            const TDesC* aTargetName,
+            CBrowserWindowManager* aWindowMgr );
+        static CBrowserWindow* NewL(
+            TInt aWindowId,
+            const TDesC* aTargetName,
+            CBrowserWindowManager* aWindowMgr );
+        ~CBrowserWindow();
+
+    public:  // new functions
+        
+        /*
+        * Return the window's id.
+        */
+        inline TInt WindowId() const
+            { return iWindowId; }
+
+        /*
+        * Return the window's targetname.
+        */
+        inline const TDesC* TargetName() const
+            { return iTargetName; }
+
+        /*
+        * Return the window's active status.
+        */
+        inline TBool IsWindowActive() const
+            { return iActive; }
+            
+        /*
+        * Activates this window, redraw it, updates title, etc.
+        */
+        void ActivateL( TBool aDraw = ETrue );
+
+        /*
+        * Deactivates this window.
+        */
+        void DeactivateL();
+        
+        /*
+        * Returns a reference to the DialogsProviderProxy
+        */
+        inline CBrowserDialogsProviderProxy& DialogsProviderProxy() const
+                                            { return *iDialogsProviderProxy; };
+        /**
+		* To check that Page Overview feature is supported or not
+		* @since Series60 3.0
+		* @return Returns ETrue if feature is supported
+		*/
+		TBool IsPageOverviewSupportedL();
+		
+        /*
+        * Resets Page Overview setting as defined in Preferences.
+        *  @since Series 60 3.0        
+        */                                            
+		void ResetPageOverviewLocalSettingL();
+		
+        /*
+        * Temporarily changes the Page Overview setting.
+        * This function does not change the Page Overview setting
+        * in Preferences.
+        * @since Series 60 3.0                
+        */		
+		void FlipPageOverviewLocalSettingL();
+		
+        /*
+        * Changes the title pane text until the given interval.
+        * @since Series 60 3.0                
+        * @param aTitle The new text of the title pane
+        * @param aInterval The interval while the new text will be shown on title pane
+        */                                            
+		void ChangeTitlePaneTextUntilL( const TDesC& aTitle, TInt aInterval );
+        
+        /*
+        * Set if window contains WML page(s).
+        * @since Series 60 3.1                
+        * @param aHasWMLContent 
+        */                                            
+        void SetHasWMLContent(TBool aHasWMLContent);
+        
+        /*
+        * Set if current window contains WML page(s).
+        * @since Series 60 3.1                
+        * @param aCurrWinHasWMLContent 
+        */                                            
+        void SetCurrWinHasWMLContent(TBool aCurrWinHasWMLContent);
+        
+        /*
+        * Returns wml content state for current page only or any page in window history based on param
+        * @since Series 60 3.1                
+        * @param aCurrWinOnly - If ETrue, Returns ETrue if current window has WML content.
+        * 						If EFalse, Returns ETrue if any window in history has WML content.
+        * @return TBool
+        */                                            
+        TBool HasWMLContent (TBool aCurrWinOnly);
+        
+        /*
+        * Returns true if current window has Feeds content.
+        * @since Series 60 3.1                
+        * @return TBool
+        */                                            
+        TBool HasFeedsContent ()const { return iHasFeedsContent; };
+        
+        /*
+        * Set if current page of window contains WML.
+        * @since Series 60 3.1                
+        * @param aWMLMode 
+        */                                            
+        void SetWMLMode(TBool aWMLMode);
+        
+        /*
+        * Set if hisory needs to be cleared after loading next page.
+        * @since Series 60 3.1                
+        * @param aFirstPage 
+        */                                            
+        void SetFirstPage(TBool aFirstPage);
+        
+        /*
+        * Set if current window contains Feeds Full Story.
+        * Used to go back to feeds view when window is closed
+        * @since Series 60 3.1                
+        * @param aHasFeedsContent 
+        */                                            
+        void SetHasFeedsContent(TBool aHasFeedsContent);
+        
+        /*
+        * Returns true if current page has WML content.
+        * @since Series 60 3.1                
+        * @return TBool
+        */                                            
+        TBool WMLMode ()const { return iWMLMode; };
+        
+        /*
+        * Returns true if current page has images loaded.
+        * @since Series 60 5.0
+        * @return TBool
+        */                                            
+        TBool HasLoadedImages ()const { return iImagesLoaded; };
+        
+        /*
+        * Set true if user selects current page to load images. false when page loads
+        * @since Series 60 5.0
+        * @param aImagesLoaded
+        */                                            
+        void SetImagesLoaded (TBool aImagesLoaded) { iImagesLoaded = aImagesLoaded; };
+        
+        
+    public:  // from MApiProvider
+    
+        CBrCtlInterface&              BrCtlInterface() const ;
+        MDisplay&                     Display() const ;
+        CBrowserLoadObserver&         LoadObserver() const ;
+        CBrowserSoftkeysObserver&     SoftkeysObserver() const ;
+        CBrowserSpecialLoadObserver&  SpecialLoadObserver() const ;
+        inline CBrowserWindowManager& WindowMgr() const 
+            { return *iWindowManager; }
+            
+        MConnection& Connection() const;
+        MPreferences& Preferences() const;
+        MCommsModel& CommsModel() const;
+        CBrowserDialogsProvider& DialogsProvider() const;
+        MBmOTABinSender& BmOTABinSenderL();
+        CBrowserPopupEngine& PopupEngine() const;
+        
+        void SetViewToBeActivatedIfNeededL( TUid aUid, TInt aMessageId = 0 );
+        TBool IsCancelFetchAllowed() const;
+        TUid LastActiveViewId() const;
+        void SetLastActiveViewId( TUid aUid );
+        TBool ExitInProgress() const;
+        void SetExitInProgress( TBool aValue );
+        TBool IsConnecting() const;
+        void UpdateNaviPaneL( TDesC& aStatusMsg );
+        void SetViewToReturnOnClose( TUid const &aUid );
+        void CloseContentViewL();
+        TBool IsEmbeddedModeOn() const;
+        TBool IsShutdownRequested() const;
+        void ExitBrowser(TBool aUserShutdown);
+        TBool IsAppShutterActive() const;
+        TBool StartPreferencesViewL( TUint aListItems );
+        TBool IsPageLoaded();
+        TBool IsForeGround() const;
+        TBool Fetching() const;
+        TBool ContentDisplayed() const;
+        void  SetContentDisplayed( TBool aValue );
+        void FetchBookmarkL( TInt aBookmarkUid );
+        void FetchBookmarkL( const CFavouritesItem& aBookmarkItem );
+        void FetchL(
+					const TDesC& aUrl,
+					const TDesC& aUserName,
+					const TDesC& aPassword,
+					const TFavouritesWapAp& aAccessPoint,
+                    CBrowserLoadObserver::TBrowserLoadUrlType aUrlType
+					);
+		void FetchL( const TDesC& aUrl, CBrowserLoadObserver::TBrowserLoadUrlType aUrlType );
+		void CancelFetch( TBool aIsUserInitiated );
+		void SetRequestedAP( TInt aAp );
+		void SetExitFromEmbeddedMode( TBool aFlag );
+        TBool IsProgressShown() const;
+        void SetProgressShown( TBool aProgressShown );
+        TBool StartedUp() const;
+        TUint32 RequestedAp() const;
+      	void LogAccessToRecentUrlL( CBrCtlInterface& aBrCtlInterface );
+     	void LogRequestedPageToRecentUrlL( const TDesC& aUrl );
+        void StartProgressAnimationL();
+        void StopProgressAnimationL();
+        #ifdef __RSS_FEEDS
+        virtual CFeedsClientUtilities& FeedsClientUtilities() const;
+		#endif  // __RSS_FEEDS
+		TUid GetPreviousViewFromViewHistory();
+						
+		void SetLastCBAUpdateView( TUid aView );
+		TUid GetLastCBAUpdateView();
+		
+        TBool FlashPresent();
+        TBool IsLaunchHomePageDimmedL();
+        void SetCalledFromAnotherApp( TBool aValue );
+        TBool CalledFromAnotherApp();
+		TBool BrowserWasLaunchedIntoFeeds();
+		TBool IsDisplayingMenuOrDialog();
+	
+
+    //-------------------------------------------------------------------------
+    // Preferences Handling
+    //-------------------------------------------------------------------------
+    
+    public:  // from MPreferencesObserver
+        
+        /**
+        *   Observer for Preference changes
+        *   @param aEvent the type of preference event which happened
+        *   @param aValues a struct of all settings values
+        *   @since Series60 3.0
+        */
+        virtual void HandlePreferencesChangeL( 
+                                    const TPreferencesEvent aEvent,
+	                                TPreferencesValues& aValues,
+	                                TBrCtlDefs::TBrCtlSettings aSettingType );
+	                                
+    //-------------------------------------------------------------------------
+    // Window Observing
+    //-------------------------------------------------------------------------
+    
+    public: // from MBrCtlWindowObserver
+
+        /**
+        * Request the host applicaion to open the URL in a new window
+        * @since 3.0
+        * @param aUrl The Url of the request to be done in the new window
+        * @param aTargetName The name of the new window
+        * @param aUserInitiated ETrue if the new window is initiated by a user event (click)
+        * @param aReserved For future use
+        * @return Return Value is the new browser control associated with the new window
+        */
+        CBrCtlInterface* OpenWindowL( TDesC& aUrl, TDesC* aTargetName, TBool aUserInitiated,
+            TAny* aReserved );
+            
+        /**
+        * Find a window by target name
+        * @since 3.0
+        * @param aTargetName name of the window to find
+        * @return Return Value is the browser control associated with the window name
+        */
+        CBrCtlInterface* FindWindowL( const TDesC& aTargetName ) const;
+
+        /**
+        * Handle window events such as close/focus etc
+        * @since 3.0
+        * @param aTargetName name of the window to send the event to
+        * @param aCommand Command to pass to the window
+        * @return void
+        */
+        void HandleWindowCommandL( const TDesC& aTargetName, TBrCtlWindowCommand aCommand );
+        
+    //-------------------------------------------------------------------------
+    
+    protected:
+        
+        /**
+        *   Checks for any changes in Global Prefeernces and notifies 
+        *   Browser Control
+        *   @param aSettingType an enum defining a setting
+        *   @since Series60 3.0
+        **/
+        void UpdateGlobalPreferencesL( TBrCtlDefs::TBrCtlSettings aSettingType  );
+        
+        /**
+        *   Checks for any changes in Local Preferences and notifies 
+        *   Browser Control
+        *   @param aValues a struct of all settings values        
+        *   @since Series60 3.0
+        **/
+        void UpdateLocalPreferencesL( TPreferencesValues& aValues );
+        
+        /**
+        *   Initialises Local Preferences
+        *   @since Series60 3.0
+        **/
+        void InitialiseLocalPreferencesL();
+        
+        /**
+        *   Passes a subset of settings to the Browser Control
+        *   @since Series60 3.0
+        */
+        void UpdateBrCtlSettingsL();
+        
+    //-------------------------------------------------------------------------
+        
+    protected:
+        /**
+        * Default C++ constructor.
+        */
+        CBrowserWindow(
+            TInt aWindowId,
+            const TDesC* aTargetName,
+            CBrowserWindowManager* aWindowMgr );
+            
+        /*
+        * 2nd phase constructor.
+        */
+        void ConstructL();
+
+    //-------------------------------------------------------------------------
+    
+    private:
+        TBool        iClosing;
+        TInt         iWindowId;
+        const TDesC* iTargetName;  // owned
+        TBool        iActive;
+        TBool		 iHasWMLContent;
+        TBool		 iCurrWinHasWMLContent;
+        TBool		 iHasFeedsContent;
+        TBool		 iWMLMode;
+        TBool        iFirstPage;
+        TBool        iImagesLoaded;
+
+        CBrCtlInterface*              iBrCtlInterface;
+        CBrowserDialogsProviderProxy* iDialogsProviderProxy;
+        CBrowserDisplay*              iDisplay;
+        CBrowserLoadObserver*         iLoadObserver;
+        CBrowserSoftkeysObserver*     iSoftkeysObserver;
+        CBrowserSpecialLoadObserver*  iSpecialLoadObserver;
+        CBrowserWindowManager*        iWindowManager;  // not owned
+        
+    private:    // Local Settings
+        
+        TInt    iFontSize;
+        TUint32 iEncoding;
+        TBool   iTextWrap;
+        TBool 	iIsPageOverviewOn;
+        static TBool    iIsPageOverviewSupported;
+		static TBool    iIsPageOverviewSupportQueried;
+    };
+
+#endif  // __MULTIPLE_WINDOWS_WINDOW_H__
+
+// End of file