diff -r 6385c4c93049 -r 8e6fa1719340 browserui/browser/BrowserAppInc/BrowserWindow.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserui/browser/BrowserAppInc/BrowserWindow.h Wed Sep 01 12:31:04 2010 +0100 @@ -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 +#include "ApiProvider.h" +#include "Preferences.h" +#include +#include "BrowserLoadObserver.h" +#include "BrowserDialogsProviderProxy.h" +#include + +// 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(); + TBool CompleteDelayedInit(); + + //------------------------------------------------------------------------- + // 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