browserui/browser/BrowserAppInc/BrowserContentView.h
changeset 51 48e827313edd
parent 37 481242ead638
child 53 f427d27b98d8
--- a/browserui/browser/BrowserAppInc/BrowserContentView.h	Tue Feb 02 00:12:41 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,709 +0,0 @@
-/*
-* 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: 
-*     Browser content view
-*
-*
-*/
-
-
-#ifndef __BROWSERCONTENTVIEW_H
-#define __BROWSERCONTENTVIEW_H
-
-//  INCLUDES
-#include <apparc.h>
-#include <sendui.h>
-#include <FindItemDialog.h>
-#include <brctlinterface.h>
-
-#include "BrowserAppViewBase.h"
-#include "BrowserGotoPane.h"
-#include <AknToolbar.h>
-#include <AknToolbarObserver.h>
-#include <aknappui.h>
-#include "WindowObserver.h"
-
-//  FORWARD DECLARATIONS
-
-class TVwsViewId;
-class CBrowserContentViewContainer;
-class CBrowserContentViewZoomModeTimer;
-class CBrowserBookmarksModel;
-class CAknNavigationControlContainer;
-class CFindItemMenu;
-class CAknInfoPopupNoteController;
-class CAknStylusPopUpMenu;
-class CBrowserContentViewToolbar;
-class CBrowserShortcutKeyMap;
-
-//  CONSTANTS
-
-const TInt KStatusMessageMaxLength=40;
-
-//The Zoom tooltip won't disappear
-const TInt KZoomModeShowDisableTime( 5* 1000 * 1000 ); // 5000 seconds - disable the timer
-
-
-// STRUCTS
-
-struct TWindowsMenuItemsDimCheck
-    {
-    TBool dimOpenInNewWin;
-    TBool dimSwitchWin   ;
-    TBool dimCloseWin    ;
-    TBool dimAllowPopups ;
-    TBool dimBlockPopups ;
-    };
-
-/**
-*  Declaration for Browser's content view.
-*
-*  @lib Browser.app
-*  @since Series 60 1.2
-*/
-class CBrowserContentView : public CBrowserViewBase,
-                            public MGotoPaneObserver,
-                            public MBrCtlStateChangeObserver,
-                            public MBrCtlCommandObserver,
-                            public MAknToolbarObserver,
-                            public MWindowObserver
-    {
-    public:
-
-        /**
-        * Two-phased constructor.
-        * @param aApiProvider Reference to the API provider.
-        * @param aRect
-        */
-        static CBrowserContentView* NewLC( MApiProvider& aApiProvider, TRect& aRect );
-
-        /**
-        * Destructor.
-        */
-        ~CBrowserContentView();
-
-        /**
-        * Callback - we should initialize the list of DO elements.
-        * @since 1.2
-        */
-        void OptionListInitL();
-
-        /**
-        * Callback - we should add an element to the list of DO elements.
-        * @since 1.2
-        */
-        void OptionListAddItemL(
-            const TDesC& aText,
-            TUint32 aElemID,
-            TBool aIsPrevType );
-
-        /**
-        * Update the title.
-        * @since 1.2
-        */
-        void UpdateTitleL( MApiProvider& aApiProvider );
-
-        CBrowserContentViewContainer* Container() const{ return iContainer; };
-
-        void ResetPreviousViewFlag() { iWasInFeedsView = EFalse; }
-        /**
-        * Get the top left position of the application window.
-        * This is used to place the toolbar.
-        * @return The top left point of the application rect on the screen
-        */
-        TPoint OnScreenPosition();
-
-        /**
-        * Get a pointer to the instance of the class handling the toolbar state.
-        * This is used when the Browser is shut down, to save the user settings
-        * @return A pointer to the class handling the toolbar
-        */
-        CBrowserContentViewToolbar* BrowserContentViewToolbar() { return iBrowserContentViewToolbar; }
-
-        /**
-        * Find if the platform spports touch
-        * @return ETrue if the platform supports touch, EFalse otherwise
-        */
-        TBool PenEnabled() { return iPenEnabled; }
-
-        /**
-        * Find if the Full Screen mode is on
-        * @return ETrue if the Full Screen mode is on, EFalse otherwise
-        */
-        TBool FullScreenMode() { return iContentFullScreenMode; }
-    public:     // from MEikStatusPaneObserver
-
-        /**
-        * Handles status pane size change.
-        */
-        void HandleStatusPaneSizeChange();
-
-    public:     // from MBrCtlStateChangeObserver
-
-        /**
-        * State change event handling for ImageMapView changes.
-        * @param aState which state we are in
-        * @param aValue state specific value
-        * @return void
-        */
-        void StateChanged( TBrCtlDefs::TBrCtlState aState, TInt aValue );
-
-    public:     // from MBrCtlCommandObserver
-
-        /**
-        * Executes commands requested by the webengine
-        * @param aCommand which state we are in
-        * @param aAttributesNames name list
-        * @param aAttributeValues value list
-        * @return void
-        */
-        void HandleCommandL(TBrCtlDefs::TBrCtlClientCommands aCommand, const CArrayFix<TPtrC>& aAttributesNames,
-                                     const CArrayFix<TPtrC>& aAttributeValues) ;
-        /* Handle Goto Pane event.
-        * @since 1.2
-        * @param aGotoPane The Goto Pane in which the event occurred.
-        * @param aEvent Goto Pane event
-        */
-        void HandleGotoPaneEventL(
-            CBrowserGotoPane* aGotoPane,
-            MGotoPaneObserver::TEvent aEvent );
-
-        /**
-        * Set Last visited bookmark.
-        * @since 1.2
-        */
-        void SetLastVisitedBookmarkL();
-
-        /**
-        * Update navi pane.
-        * @since 1.2
-        * @param aStatusMsg Status message
-        */
-        void UpdateNaviPaneL( TDesC& aStatusMsg );
-
-        /**
-        * Update navi pane.
-        * @since 1.2
-        * @param aLeftScrollBar Will the left scrollbar be updated
-        * @param aRightScrollBar Will the right scrollbar be updated
-        */
-        void UpdateNaviPaneL( TBool aLeftScrollBar, TBool aRightScrollBar );
-
-        /**
-        * Get the id.
-        * @since 1.2
-        * @return UID
-        */
-        TUid Id() const;
-
-        /**
-        * Is find item in progress.
-        * @since 1.2
-        * @return ETrue if the find item is in progress, otherwise EFalse
-        */
-        TBool FindItemIsInProgress();
-
-        /**
-        * Handles client rect changes
-        */
-        void HandleClientRectChange();
-
-        /**
-        * Zoom page in zoom mode
-        * @since 3.2.3
-        */
-		void ZoomModeImagesL();
-
-        /**
-        * Zoom page in
-        * @since 3.0
-        */
-        void ZoomImagesInL( TInt aDuration = KZoomModeShowDisableTime );
-
-        /**
-        * Zoom page out
-        * @since 3.0
-        */
-        void ZoomImagesOutL( TInt aDuration = KZoomModeShowDisableTime );
-
-        /**
-        * Zoom slider is to be visible or not in Content View.
-        * @param aVisible. ETrue if the slider is to visible, EFalse if not.
-        * @since 5.0
-        */
-        void MakeZoomSliderVisibleL( TBool aVisible );
-
-        /**
-        * Is ZoomSlider is up?
-        * @since 5.0
-        * @return ETrue if the ZoomSlider is up, otherwise EFalse
-        */
-        TBool ZoomSliderVisible() { return iZoomSliderVisible; }
-
-        /**
-        * Is History view is up?
-        * @since 3.0
-        * @return ETrue if the History View is up, otherwise EFalse
-        */
-        TBool IsHistoryViewUp();
-
-        /**
-        * Is History view at the beginning i.e. first page in history
-        * @since 5.0
-        * @return ETrue if the History is at the beginning, otherwise EFalse
-        */
-        TBool IsHistoryAtBeginning();
-
-        /**
-        * Is History view at the end i.e. last page in history
-        * @since 5.0
-        * @return ETrue if the History is at the end, otherwise EFalse
-        */
-        TBool IsHistoryAtEnd();
-
-        /**
-        * Is Shortcut Keymap view is up?
-        * @since 5.0
-        * @return ETrue if the Shortcut Keymap is up, otherwise EFalse
-        */
-        TBool KeymapIsUp();
-
-        /**
-        * Return true if we're in zoom mode
-        */
-        TBool isZoomMode();
-
-        /**
-        * Gets Miniature view ( old name: Thumbnail view ) status.
-        * @since 3.0
-        * @return True if Miniature view  is active, othervise False.
-        */
-        inline TBool IsMiniatureViewUp() { return iThumbnailViewIsUp; }
-
-        /**
-        * check if the plugin player is up
-        * @since 3.2
-        * @return True if Miniature view  is active, othervise False.
-        */
-        inline TBool IsPluginPlayerUp() const   { return iPluginPlayerIsUp; }
-
-
-        /**
-        * Find specifies keyword on page. Set aFindString to NULL if
-        * searching in directions.
-        * @since 3.0
-        * @param aFindString The string to find on page. If seaching for direction
-        *                    this must be NULL.
-        * @param aFindDirection Search direction. True: next, otherwise: previous.
-        */
-        void FindKeywordL( HBufC* aFindString, TBool aFindDirection = EFalse );
-
-        /**
-        * Handles opening a feed with the url
-        * @since 3.1
-        * @param aUrl - the url of the feed
-        * @return void
-        */
-        void HandleSubscribeToWithUrlL(TPtrC aUrl);
-
-        /**
-        * Check status of contentview fullscreen mode
-        * @since 7.x
-        * @return True if currently in fullscreen mode, othervise False.
-        */
-        inline TBool FullScreenMode() const { return iContentFullScreenMode; }
-
-    public:     // from MAknToolbarObserver
-        /**
-         * Should be used to set the properties of some toolbar components
-         * before it is drawn.
-         * @param aResourceId The resource ID for particular toolbar
-         * @param aToolbar The toolbar object pointer
-         */
-        void DynInitToolbarL( TInt /*aResourceId*/, CAknToolbar* /*aToolbar*/ );
-
-        /**
-         * Handles toolbar events for a certain toolbar item.
-         * @param aCommand The command ID of some toolbar item.
-         */
-        void OfferToolbarEventL( TInt aCommand ) { HandleCommandL(aCommand);}
-
-    public:     // from MWindowObserver
-        void WindowEventHandlerL( TWindowEvent aEvent, TInt aWindowId );
-
-        // from CAknView
-
-        /**
-        * Handles commands.
-        * @param aCommand Command to be handled
-        */
-        void HandleCommandL( TInt aCommand );
-
-        // from CAknView
-
-	    /**
-	     * From @c MEikMenuObserver. Menu emphasising or de-emphasising function.
-	     * @c CEikMenuBar objects call this on their observer. Updates the value of
-	     * the flags for the (@c aMenuControl) on the control stack.
-	     * @param aMenuControl The control to be emphasised or de-emphasisied.
-	     * @param aEmphasis @c ETrue to emphasize the menu, @c EFalse to refuse the
-	     *          focus.
-	     */
-        void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis);
-    private:
-
-        /**
-        * Generic Zoom function
-        * @since 3.0
-        * @param aDirection 1 for In, -1 for Out
-        * @param aLow low boundary for zoom level checking
-        * @param aHigh high boundary for zoom level checking
-        * @param aDuration the time to display zoom indicator
-        */
-        void ZoomImagesL( TInt aDirection, TUint aLow, TUint aHigh, TInt aDuration );
-
-        TInt FindCurrentZoomIndex(TInt aCurrentZoomLevel);
-
-		void SaveCurrentZoomLevel(TBool saveZoom);
-
-    protected:      // from CAknView
-
-        /**
-        * @since 1.2
-        * @param aPrevViewId Previous view id
-        * @param aCustomMessageId
-        * @param aCustomMessage
-        */
-        void DoActivateL(
-            const TVwsViewId& aPrevViewId,
-            TUid aCustomMessageId,
-            const TDesC8& aCustomMessage );
-
-        /**
-        * @since 1.2
-        */
-        void DoDeactivate();
-
-    protected:      // from CBrowserViewBase
-
-        /**
-        * @since 1.2
-        */
-        TInt CommandSetResourceIdL();
-
-		/**
-		* Set command set lsk,rsk,msk dynamically via pointers.
-		* Derived classes should implement, though it can be empty.
-		* If it does nothing, empty softkeys will be assigned
-		* @since 5.0
-		*/
-		void CommandSetResourceDynL(TSKPair& /*lsk*/, TSKPair& /*rsk*/, TSKPair& /*msk*/) {};
-
-
-    private:
-
-        /**
-        * @param aApiProvider Reference to API provider
-        */
-        CBrowserContentView( MApiProvider& aApiProvider );
-
-        /**
-        * Symbian OS contructor.
-        * @param aRect
-        */
-        void ConstructL( TRect& aRect );
-
-        /**
-        * Send address.
-        */
-        void SendAddressL( );
-
-        /**
-        * This method is used to update the Option menu label text
-        * @param aMenuPane Menu pane to be configured.
-        * @param aCommandId Identifies the menu item (as defined in .hrh file) to be updated.
-        * @param aResourceId New label resource ID
-        */
-        void UpdateOptionMenuItemLabelL(
-            CEikMenuPane* aMenuPane,
-            const TInt aCommandId,
-            const TInt aResourceId );
-
-        /**
-        * Do search for specified items in current page.
-        * @param aSearchCase items to be searched for
-        */
-        void DoSearchL( CFindItemEngine::TFindItemSearchCase aSearchCase );
-
-        /**
-        *
-        */
-        void SetNavipaneViewL();
-
-        /**
-        * Force updating the Goto Pane. Does nothing if Goto Pane is not
-        * visible.
-        */
-        void UpdateGotoPaneL();
-
-        /**
-        * View history pane
-        */
-        void ViewHistoryL();
-
-        /**
-        * Dynamically initialize menu panes.
-        * @param aResourceId ID for the resource to be loaded
-        * @param aMenuPane Menu pane
-        */
-        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
-
-        /**
-        * Handles a selection from the subscribe to sub-menu.
-        * @since 3.0
-        * @param aCommand - A menu command
-        * @return void
-        */
-        void HandleSubscribeToL(TInt aCommand);
-
-        /**
-        * Deals with menu items for Multiple Windows Support
-        * @since 3.1
-        * @param aWindowMenuItems - bool for each window submenu item that is set to true if it should be dimmed ; false if not
-        * @return true is all items were true otherwise false is returned.
-        */
-        TBool CheckForEmptyWindowsMenuL(TWindowsMenuItemsDimCheck* aWindowMenuItems);
-
-        /**
-        * Deals with dimming menu items for Multiple Windows Support
-        * @since 3.1
-        * @param aMenuPane - A menu pane
-        * @param aWindowMenuItems - lists each window submenu item and whether it should be dimmed
-        * @return void
-        */
-        void DimMultipleWindowsMenuItems( CEikMenuPane& aMenuPane, TWindowsMenuItemsDimCheck aWindowMenuItems);
-
-        /**
-        * Check if the input is activate
-        * @param none
-        * @return ETrue if input is
-        */
-		TBool IsEditMode();
-    private:
-
-        void ProcessCommandL( TInt aCommand );
-
-        void GotoUrlInGotoPaneL();
-
-        /**
-        * Adds the saved bookmark's id to the bottom of the list.
-        * @param aUid Uid of the bookmark
-        */
-        void AddBMUidToLastPlaceToCurrentListL( const TInt aUid );
-
-        /**
-        * callback handler for fullscreen status pane timer
-        */
-        static TInt CallHideFsStatusPane(TAny* aCBrowserContentView );
-
-        /**
-        * Hides the status pane for fullscreen mode and cancels timer
-        */
-        void HideFsStatusPane();
-
-        /**
-        * Callback handler for auto fullscreen mode timer
-        */
-		static TInt CallActivateAutoFullScreen(TAny* aCBrowserContentView);
-
-        /**
-        * Activate Automatic Full screen mode
-        */
-		void ActivateAutoFullScreenMode();
-
-        /**
-        * Start auto fullscreen timer
-        */
-		void StartAutoFullScreenTimer();
-
-        /**
-        * Suspend auto fullscreen timer
-        */
-		void SuspendAutoFullScreenTimer();
-
-        /**
-        * Start auto fullscreen Idle timer
-        */
-		void StartAutoFullScreenIdleTimer();
-
-        /**
-        * Suspend auto fullscreen Idle timer
-        */
-		void SuspendAutoFullScreenIdleTimer();
-    public:
-
-        // BrowserContentViewContainer can use this method to pop up 'Go to' pane.
-        void LaunchGotoAddressEditorL();
-
-        void UpdateFullScreenL();
-
-        void SetFullScreenOffL();
-
-        /**
-        * Launches the Find keyword pane.
-        * @since 3.0
-        */
-        void LaunchFindKeywordEditorL();
-
-        /**
-        * Initializes iZoomLevelArray, iCurrentZoomLevelIndex, iCurrentZoomLevel,
-        * iZoomInVisible, iZoomOutVisible members.
-        *
-        * Note: these members must be initialized later, after the BrowserContentView was constructed
-        * in BrowserAppUi, because initializing zooming, requires iBrowserControl, which is created in
-        * BrowserAppUi::ConstructL(), and creating  iBrowserControl requires a created BrowserContentView
-        * object. So zoom levels must be initialized after BrowserAppUi created the iBrowserControl member.
-        * @since 3.0
-        */
-        void SetZoomLevelL();
-
-        /**
-        * Shows zoom level text in title pane for aDuration seconds.
-        * @since 3.0
-        * @param aResourceId Resource of the zoom level string
-        * @param aLevel The zoom level which will be shown formatting
-        *               with the resource string.
-        */
-        void SetZoomLevelTitleTextL( TInt aResourceId , TInt aDuration = KZoomModeShowDisableTime );
-
-
-        /**
-        * Gets the text zoom levels.
-        */
-        void GetTextZoomLevelsL();
-
-        /**
-        * Handle zoom mode command
-        */
-        void SetZoomModeL( TBool aZoomMode );
-
-        /**
-        * Handle pointer events when Goto pane is visible
-        */
-        void HandlePointerCommand(TInt aCommand) { TRAP_IGNORE(HandleCommandL(aCommand)); }
-
-        /**
-        * Add new bookmark to the database.
-        * @param aAsLastVisited ETrue if the meaning is to update "Last visited" bookmark
-        * @param aUrl The URL that should be bookmarked
-        */
-        void AddNewBookmarkL( TBool aAsLastVisited, HBufC* aUrl = NULL );
-
-        void ShowKeymap();
-
-        void HideKeymap();
-
-        void RedrawKeymap();
-
-        /**
-        * Set whether in content view full screen mode or not.
-        * @since 5.0
-        * @param aEnableFullScreen boolean. True: Enter fullscreen, False: Exit
-        * @return void
-        */
-        void EnableFullScreenModeL( TBool aEnableFullScreen );
-
-        void HandlePluginFullScreen(TBool aFullScreen);
-
-        /**
-        * Show or hide status pane for fullscreen mode
-        * @since 7.x
-        * @param aShow boolean. True: show status pane, False: start timer that hides status pane on timeout
-        * @return void
-        */
-        void ShowFsStatusPane(TBool aShow);
-
-    private:
-
-        CAknNavigationControlContainer* iNaviPane;
-        CAknNavigationDecorator* iNaviDecorator;
-        TBufC<KStatusMessageMaxLength> iStatusMsg;
-        CBrowserBookmarksModel* iBookmarksModel;
-        CBrowserContentViewContainer* iContainer;
-
-
-        // Goto Pane's entered URL
-        HBufC* iEnteredURL;
-
-        // Find keyword pane's keyword
-        HBufC* iEnteredKeyword;
-
-        // Zoom images...
-        // Array contains the zoom levels. ( 30%, 40%, ... defined in webengine)
-        RArray<TUint>* iZoomLevelArray;
-
-        // The index of the zoom level in iZoomLevelArray.
-        TUint iCurrentZoomLevelIndex;
-        // Zoom text...
-        // Array contains the text zoom levels. ( All small,Small,Normal )
-        CArrayFixFlat<TInt>* iTextZoomLevelArray;
-        // The index of the zoom level in iTextZoomLevelArray.
-        // This index equals to text sizes in EAllSmall...
-        TUint iCurrentTextZoomLevelIndex;
-        CArrayFixFlat<TInt>* iFontSizeArray;
-
-        TBool iHistoryViewIsUp;
-        TBool iThumbnailViewIsUp;
-        TBool iSynchRequestViewIsUp;
-        TBool iImageMapActive;
-        CAknInfoPopupNoteController* iToolBarInfoNote;
-
-        TBool iPluginPlayerIsUp;
-        TBool iSmartTextViewIsUp;
-
-        TBool iFindItemIsInProgress;
-        //Flag to check if the last view was Feeds engine
-        TBool iWasInFeedsView;
-        CAknStylusPopUpMenu* iStylusPopupMenu; // owned
-        CBrowserContentViewToolbar* iBrowserContentViewToolbar; // owned
-        TBool iPenEnabled;
-        CBrowserShortcutKeyMap* iShortcutKeyMap; // owned
-
-        // True if the ZoomSlider is currently visible
-        TBool iZoomSliderVisible;
-        // True if in zoom mode, zoom indicator (tooltip or slider) displayed
-        TBool iZoomMode;
-        CBrowserContentViewZoomModeTimer *iZoomModeTimer;
-
-        // True if the browser is in Full Screen Mode in ContentView
-        TBool iContentFullScreenMode;
-        TBool iHistoryAtBeginning;
-        TBool iHistoryAtEnd;
-        TBool iIsPluginFullScreenMode;
-
-        CAknAppUiBase::TAppUiOrientation iOrientation;
-        TBool iWasContentFullScreenMode;
-        CPeriodic *iPeriodic;
-        TUint iCurrentZoomLevel;
-        TUint iSavedZoomLevel;
-        TBool iOptionsMenuActive;
-        CPeriodic *iAutoFSPeriodic;
-        CPeriodic *iIdlePeriodic;
-        TBool iFullScreenBeforeEditModeEntry;
-
-    };
-
-#endif
-
-// End of File