--- 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