diff -r 4baee4f15982 -r 6385c4c93049 browserui/browser/FavouritesInc/BrowserBookmarksView.h --- a/browserui/browser/FavouritesInc/BrowserBookmarksView.h Thu Aug 19 09:57:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,576 +0,0 @@ -/* -* Copyright (c) 2002-2008 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: -* Declaration of class CBrowserBookmarksView. -* -* -*/ - - -#ifndef BROWSER_BOOKMARKS_VIEW_H -#define BROWSER_BOOKMARKS_VIEW_H - -// INCLUDE FILES -#include "BrowserFavouritesView.h" -#include "BrowserBookmarksGotoPane.h" -#include "Preferences.h" -#include -#include -#include - - -// CONSTANTS - -//FORWARD DECLARATION - -class CBrowserBookmarksContainer; -class CRecentUrlStore; -class CAsyncDownloadsListExecuter; - -// CLASS DECLARATION - -/** -* Bookmarks View of the WML browser. Derived from CBrowserFavouritesView; -* new methods mostly process Bookmark View specific commands. -*/ -class CBrowserBookmarksView: - public CBrowserFavouritesView, - public MBookmarksGotoPaneObserver, - public MApChangeObserver, - public MPreferencesObserver, - public MBrCtlLoadEventObserver, - public MAknToolbarObserver - { - public: // construction - - /** - * Two-phased constructor. Leaves on failure. - * @param aApiProvider The API provider. - * @return The constructed view. - */ - static CBrowserBookmarksView* NewLC( MApiProvider& aApiProvider, CRecentUrlStore& aRecentUrlStore, TInt aInitialFolderUid = KFavouritesRootUid); - - /** - * Destructor. - */ - virtual ~CBrowserBookmarksView(); - - public: // new methods - - /** - * Force updating the Goto Pane. Does nothing if Goto Pane is not - * visible. - * @since 1.2 - */ - void UpdateGotoPaneL(); - - /** - * Exits Adaptive Bookmarks folder. Called also from BrowserAppUi when a page is - * downloaded from Adaptive Bookmarks. - * @since 2.1 - */ - void ExitAdaptiveBookmarks(); - - /** - * Opens Adaptive Bookmarks folder. - * @since 3.1 - */ - inline void OpenAdaptiveBookmarksWhenActivated( ) - { iOpenAdaptiveBookmarksWhenActivated = ETrue; } - - /** - * Gets the status of selection of the adaptive bookmarks folder. - * @since 3.1 - */ - inline TBool GetAdaptiveBookmarksFolderSelected( ) - { return iAdaptiveBookmarksFolderSelected; } - - inline TBool GetAdaptiveBookmarksFolderWasActive( ) - { return iAdaptiveBookmarksFolderWasActive; } - - void DimToolbarButtons(TBool aDimButtons); - - public: // public methods from CBrowserFavouritesView - - /** - * Handle command. - * @since 1.2 - * @param aCommand Command id. - */ - void HandleCommandL( TInt aCommand ); - - /** - * Get view id. - * @since 1.2 - * @return The view id for this view. - */ - TUid Id() const; - - public: // From MCbaSetter (CBrowserViewBase) - - /** - * Return command set id, to be displayed. - * @since 1.2 - * @return The command set's resource id. - */ - virtual 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*/); - - /** - * Helper function to dynamically set LSK - * @since 5.0 - */ - void SetLSKDynL(TSKPair& aLsk, - CBrowserBookmarksGotoPane* aTheGotoPane); - - /** - * Helper function to dynamically set RSK - * @since 5.0 - */ - void SetRSKDynL(TSKPair& aRsk, - CBrowserBookmarksGotoPane* aTheGotoPane); - - /** - * Helper function to dynamically set MSK - * @since 5.0 - */ - void SetMSKDynL(TSKPair& aMsk, const TSKPair aLsk, - CBrowserFavouritesContainer* aTheContainer, - CBrowserBookmarksGotoPane* aTheGotoPane); - - - public: // from MBookmarksGotoPaneObserver - - /** - * Handle Goto Pane event. - * @since 1.2 - * @param aGotoPane The Goto Pane in which the event occurred. - * @param aEvent Goto Pane event. - */ - virtual void HandleBookmarksGotoPaneEventL - ( - CBrowserBookmarksGotoPane* aGotoPane, - MBookmarksGotoPaneObserver::TEvent aEvent - ); - - public: // MAknToolbarObserver - /** - * Called when toolbar events occur - * - * @since 5.0 - * @return void - */ - void OfferToolbarEventL( TInt aCommand ) { HandleCommandL(aCommand); } - - protected: // construction - - /** - * Constructor. - * @param aApiProvider The API provider. - */ - CBrowserBookmarksView( MApiProvider& aApiProvider, CRecentUrlStore& aRecentUrlStore, TInt aInitialFolderUid = KFavouritesRootUid ); - - /** - * Second phase constructor. Leaves on failure. - * @param aViewResourceId Resource id for this view. - * Derived classes should call this first during construction. - */ - void ConstructL( TInt aViewResourceId ); - - protected: // protected CBrowserFavouritesView - - /** - * Handle listbox event. - * @since 1.2 - * @param aListBox Listbox in which the event occurred. - * @param aEventType Event. - */ - void HandleListBoxEventL( - CEikListBox* aListBox, - MEikListBoxObserver::TListBoxEvent aEventType ); - - /** - * Initialize context-sensitive menu. - * @since 1.2 - * @param aResourceId Resource id of the menu pane. - * @param aMenuPane Menu pane object being initialized. - * @param aIndex Index into the visibility map. - * @param aState Selection state. - */ - virtual void DynInitMenuPaneL - ( - TInt aResourceId, - CEikMenuPane* aMenuPane, - TCommandVisibility::TIndex /*aIndex*/, - const TBrowserFavouritesSelectionState& aState - ); - - /** - * Get resource id of text to be displayed in navi pane when - * root folder is shown (TBUF). - * @since 1.2 - * @return Resource id. - */ - TInt RootTitleResourceId() const; - - /** - * Get resource id of Options menu (RESOURCE MENU_BAR). - * @since 1.2 - * @return Resource id. - */ - TInt OptionsMenuResourceId() const; - - /** - * Get resource id of OK-Options menu (RESOURCE MENU_BAR). - * @since 1.2 - * @return Resource id. - */ - TInt OkOptionsMenuResourceId() const; - - /** - * Create the model. Leave on failure. The model is owned by the - * caller (this view, base class). The created model is really - * a CBrowserBokmarksModel. - * @since 1.2 - * @return The constructed model. - */ - virtual CBrowserFavouritesModel* CreateModelL(); - - /** - * Create the container (the main control of the view). The container - * is owned by the caller (this view, base class). The created container - * is really a CBrowserBookmarksContainer. - * Leave on failure. - * @since 1.2 - * @return The constructed main control. - */ - virtual CBrowserFavouritesContainer* CreateContainerL(); - - /** - * Get items to be displayed in a folder. Expects the model's db be - * open. - * @since 1.2 - * @param aFolder Folder which contains the items. - * @return List of items. Pushed on the cleanup stack. - */ - virtual CFavouritesItemList* GetItemsLC( TInt aFolder ); - - /** - * Some displayed data has changed (Favourites database, AP-s, etc). - * Update the view so changes become visible. Safe to call if the view - * is not active; in this case it does nothing. - * This method should not be called if the data change is due to direct - * user activity (opening folders etc.); only for notification - * processing. - * (Same as base class method, except active Goto Pane is not reset if - * downloading is in progress.) - * @since 1.2 - * @param aDbErrorNote If ETrue, unsuccesful database access will bring - * up an error note. - */ - virtual void RefreshL( TBool aDbErrorNote = EFalse ); - - void HandleForegroundEventL( TBool aForeground ); - - protected: // protected methods from CAknView - - /** - * Activate the view. - * @since 1.2 - * @param aCustomMessageId Custom Message Id. - * @param aCustomMessage Custom Message. - */ - virtual void DoActivateL - ( - const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage - ); - - /** - * Deactivate the view. - * @since 1.2 - */ - virtual void DoDeactivate(); - - private: // command handling (additional commands) - - /** - * Available only to process EWmlCmdDelete and EWmlCmdDeleteItems commands.Command "Go to" when the user is editing in the Goto Pane. - */ - void DeleteItems( TInt aCommand ); - - /** - * Command "Go to" when the user is editing in the Goto Pane. - * Go to the URL found in Goto Pane. - * Does nothing if no Goto Pane. - */ - void GotoUrlInGotoPaneL(); - - /** - * Command "Activate". Activate highlighted bookmark. - * Does nothing if no bookmark is highlighted. - */ - void ActivateCurrentBookmarkL(); - - /** - * Command "Add bookmark". Create new bookmark and launch - * Edit bookmark dialog. - */ - void AddNewBookmarkL(); - - /** - * Command "Edit bookmark". Edit highlighted bookmark. - * Does nothing if no bookmark is highlighted. - */ - void EditCurrentBookmarkL(); - - - /** - * Command "Send via Unified Messaging". - * Send selected bookmark(s). - */ - void SendBookmarksL( ); - - - private: // new methods - - /** - * Get the container (as CBrowserBookmarksContainer). - * @return The container. - */ - CBrowserBookmarksContainer* TheContainer(); - - private: // from MApChangeObserver - /** - * Handle change in currently used Access Point. - */ - void ApChangedL( TUint32 aNewAPId ); - - private: // from MPreferencesObserver - - /** - * Handle preferences change. - */ - void HandlePreferencesChangeL( - const TPreferencesEvent aEvent, - TPreferencesValues& aValues, - TBrCtlDefs::TBrCtlSettings aSettingType ); - - private: - - /** - * Create Start Page bookmark. Db needs not be open (not used). - * @return The Start Page bookmark, or NULL if no such. - * Ownership passed to caller. - */ - CFavouritesItem* CreateStartPageBookmarkL(); - - private: // from MBrCtlLoadEventObserver - - /** - * A load events notification - * @since 2.8 - * @param aLoadEvent The load event - * @param aSize Size depends on the event - * @param aTransactionId The transaction id of the transaction that had this event - * @return void - */ - void HandleBrowserLoadEventL( TBrCtlDefs::TBrCtlLoadEvent aLoadEvent, - TUint aSize, - TUint16 aTransactionId ); - private: - - /** - * Clear all adaptive bookmarks - */ - void ClearAdaptiveBookmarksL(); - - private: - - /** - * To set empty text for folders. It is different in Adaptive Bookmarks - */ - void SetEmptyTextL(); - - // from CBrowserFavouritesView - TKeyResponse OfferKeyEventL - ( const TKeyEvent& aKeyEvent, TEventCode aType ); - -//from CBrowserFavouritesView - /** - * Open next folder. - * @param aForward Open next folder if ETrue, previous if EFalse. - */ - void OpenNextFolderL( TBool aForward ); - - /** - * Update and draw navi pane (show tabs for root, or "1/4" style text - * for subfolders). - * No sanity check; expects the model's table be open. - */ - void UpdateNaviPaneL(); - - /** - * Sorts bookmark items into the saved manual order - * associated to the given folder - * @param aFolder The folder in which the items are stored - * @param aItems The bookmark item list to sort - */ - TBool ManualBMSortL( TInt aFolder, CFavouritesItemList* aItems ); - - /** - * Starts 'item moving mode', when softkeys are ok/cancel - * and ok moves the selected items to the current position in - * bookmarks list - */ - void StartMoveItemsL(); - - /** - * moves the selected items to the current position in - * bookmarks list - */ - void MoveItemsL(); - - /** - * Cancels 'item moving mode', softkeys return to normal, - * focus returns to the first selected item - */ - void CancelMoveItemsL(); - - /* - * Adds the given uid to the last place in bookmarks list - * @param aUid The uid to add - */ - void AddUidToLastPlaceToCurrentListL( TInt aUid ); - - public: - /** - * Dim or Un-dim Toolbar buttons. - */ - void UpdateToolbarButtonsState(); - - /** - * Check to show downloads. - */ - void CheckForDownloads(); - - /** - * Initiates update for favicons - */ - void UpdateFavIconsL(); - - private: // data - /** - * Callback for completing the Browser App init. Normally only - * BookmarksView is initialized first on startup. When bookmarks - * view is shown then this callback is scheduled to complete the - * remaining initialization. - */ - static TInt CompleteAppInitCallback( TAny* aApiProvider ); - - /** - * Uid of AP which is to be used for creating Start Page bookmark. - */ - TUint32 iStartPageApUid; - - /** - * Storing current default AP, to be able to spot when it changes. - * (We get notification when preferences change; but don't know - * what changed in preferences. We are interested only in default AP - * change.) - */ - TUint32 iCurrentDefaultAp; - - /** - * This flag is used in fetch observing: this differentiates events from - * the newly started fetch from events of ongoing fetches (being - * cancelled by the new one). It is ETrue when new fetch has been - * initiated but not yet started (existing fetches will be cancelled - * during this time). - */ - TBool iFetchInit; - - HBufC* iDomainFolderName; - CRecentUrlStore& iRecentUrlStore; - TBool iInAdaptiveBookmarksFolder; - - TWmlSettingsAdaptiveBookmarks iAdaptiveBookmarksCurrentSetting; - - - // For Adaptive Bookmarks - to refresh title when - // coming back from Preferences - TBool iPreferencesChanged; - - // For Manual BM Sorting - // Indicates item moving mode - TBool iManualItemMovingGoingOn; - - // list of uids of items to move - CArrayFixFlat* iItemsToMove; - - // Current order of bookmarks - CBrowserBookmarksOrder* iCurrentOrder; - - // Flag to indicate that Adaptive BM folder has just been inserted to BM list - TBool iInsertAdaptiveBookmarksFolder; - - // Flag to indicate that current BM order needs to be saved - TBool iSaveBMOrder; - - // Flag to indicate the presence of Start Page item - TBool iStartPagePresent; - - // Goto Pane's entered URL and cursor's position - HBufC* iEnteredURL; - TInt iCursorPos; - - TUint16 iTrId; - - CAsyncDownloadsListExecuter* iDownloadsListExecuter; // Owned. - - // True if the view will show the adaptive bookmarks folder - // on activation, otherwise false. - TBool iOpenAdaptiveBookmarksWhenActivated; - - // True if the user opned the Adaptive Bookmarks folder, - // from bookmarks items, otherwise false. - TBool iAdaptiveBookmarksFolderSelected; - - // True if the view was changed, and the adaptive bookmarks folder - // was currently acive. - TBool iAdaptiveBookmarksFolderWasActive; - - // Pen enabled flag - TBool iPenEnabled; - - // Re-Entry Gate flag for Delete Bookmark routine - TBool iHandleDeleteInProgress; - - // Async callback object for delayed App init - CIdle *iAsyncComplete; - - TBool iShowDownlods; - }; - -#endif - -// End of file