diff -r 4baee4f15982 -r 6385c4c93049 browserui/browser/FeedsInc/FeedsFolderContainer.h --- a/browserui/browser/FeedsInc/FeedsFolderContainer.h Thu Aug 19 09:57:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,674 +0,0 @@ -/* -* Copyright (c) 2005-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: A container to browse a user's list of feeds. -* -*/ - - -#ifndef FEEDS_FOLDER_CONTAINER_H -#define FEEDS_FOLDER_CONTAINER_H - - -// INCLUDES -#include -#include -#include - -#include "FeedsEditFeedDialog.h" -#include "FeedsEditFolderDialog.h" - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CAknDoubleGraphicStyleListBox; -class CAknNavigationDecorator; -class CAknIconArray; -class CAknPopupList; -class CAknSingleGraphicPopupMenuStyleListBox; -class CFeedsFolderView; -class CFeedsEntity; -class CGulIcon; -class TAknsItemID; -class MApiProvider; - -// CLASS DECLARATION - - -/** -* A container to browse a user's list of feeds. -* @lib FeedsEngine.lib -* @since 3.0 -*/ -class CFeedsFolderContainer : public CCoeControl, public MEikListBoxObserver, - public MFeedsEditFeedDialogObserver, public MFeedsEditFolderDialogObserver - { - private: - enum TIcons - { - EIconMark = 0, - EIconFolder, - EIconErrorFolder, - EIconFeed, - EIconFeedUnread, - EIconErrorFeed - }; - - - public: - /** - * Two-phased constructor. - */ - static CFeedsFolderContainer* NewL( - CFeedsFolderView* aView, - MApiProvider& aApiProvider, - const TRect& aRect); - - /** - * Destructor. - */ - virtual ~CFeedsFolderContainer(); - - - public: // From CoeControl - /** - * Handles key event. - * - * @param aKeyEvent The key event. - * @param aType The type of the event. - * @return Indicates whether the key event was used by this control or not - */ - TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); - -#ifdef __SERIES60_HELP - /** - * Get help context for the control. - * - * @since ? - * @param aContext The context that is filled in. - * @return None. - */ - virtual void GetHelpContext(TCoeHelpContext& aContext) const; -#endif // __SERIES60_HELP - - - protected: // From CoeControl - /** - * Called by framework when the view size is changed. - * - * @since ? - * @return void. - */ - virtual void SizeChanged(); - - /** - * Called by the framework when a display resource changes (i.e. skin or layout). - * - * @since ? - * @return void. - */ - virtual void HandleResourceChange(TInt aType); - - /** - * Returns number of components. - * - * @since ? - * @return Number of component controls. - */ - virtual TInt CountComponentControls() const; - - /** - * Returns pointer to particular component. - * - * @since ? - * @param aIndex Index whose control's pointer has to returned. - * @return Pointer to component control - */ - virtual CCoeControl* ComponentControl(TInt aIndex) const; - - - public: // MEikListBoxObserver - /** - * Processes key events from the listbox. - * - * @since ? - * @param aListBox Listbox being observed. - * @param aEventType Event observed. - * @return void - */ - virtual void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); - - - public: // From MFeedEditFeedDialogObserver - /** - * Called when a feed's name and/or url is changed -- this is called - * after both IsValidFeedName and IsValidFeedUrl are called. - * - * @since 3.0 - * @param aName The feed's new name. - * @param aUrl The feed's new url. - * @param aFreq The frequency for auto updating. - * @return void. - */ - virtual void UpdateFeedL(const TDesC& aName, const TDesC& aUrl, TInt aFreq); - - /** - * Called when a new feed is created -- this is called after both - * IsValidFeedName and IsValidFeedUrl are called. - * - * @since 3.0 - * @param aName The feed's new name. - * @param aUrl The feed's new url. - * @param aFreq The frequency for auto updating. - * @return void. - */ - virtual void NewFeedL(const TDesC& aName, const TDesC& aUrl,TInt aFreq); - - /** - * Validates the Feed's updated name. - * - * @since 3.0 - * @param aName The feed's new name. - * @param aIsEditing True if the edit dialog was opened to edit a feed. - * @return ETrue if the value is valid. - */ - virtual TBool IsFeedNameValidL(const TDesC* aName, TBool aIsEditing); - - /** - * Validates the Feed's updated url. - * - * @since 3.0 - * @param aUrl The feed's new url. - * @return ETrue if the value is valid. - */ - virtual TBool IsFeedUrlValidL(const TDesC* aUrl); - - - public: // From MFeedEditFolderDialogObserver - /** - * Called when a folder's name is changed -- this is called - * after IsValidFolderName is called. - * - * @since 3.0 - * @param aName The feed's new name. - * @return void. - */ - virtual void UpdateFolderL(const TDesC& aName); - - /** - * Called when a new folder is created -- this is called - * after IsValidFolderName is called. - * - * @since 3.0 - * @param aName The feed's new name. - * @return void. - */ - virtual void NewFolderL(const TDesC& aName); - - /** - * Validates the folder's updated name. - * - * @since 3.0 - * @param aName The feed's new name. - * @param aIsEditing True if the edit dialog was opened to edit a folder. - * @return ETrue if the value is valid. - */ - virtual TBool IsFolderNameValidL(const TDesC* aName, TBool aIsEditing); - - - public: // New methods - /** - * Called to notify the container that root folder has changed. - * - * @since 3.1 - * @param aRootFolder The new root folder. - * @return Void. - */ - void RootFolderChangedL(const CFeedsEntity& aRootFolder); - - /** - * Update the view's title. - * - * @since 3.0 - * @return void. - */ - void UpdateTitleL(); - - /** - * Returns the current folder-item. - * - * @since 3.0 - * @return The current folder-item.. - */ - CFeedsEntity* CurrentItem() const; - - - /** - * Returns the index of the current folder-item. - * - * @since 3.0 - * @return The index of the current folder-item.. - */ - TInt CurrentItemIndex() const; - - /** - * Updates the current folder-item. - * - * @since 3.0 - * @param aName The new name. - * @param aUrl The new url. - * @param aFreq The frequency for auto updating. - * @return void. - */ - void UpdateCurrentItemL(const TDesC* aName, const TDesC* aUrl, TInt aFreq); - - /** - * Add a new feed. - * - * @since 3.0 - * @param aName The new name. - * @param aUrl The new url. - * @param aFreq The frequency for auto updating. - * @return void. - */ - void AddNewFeedL(const TDesC& aName, const TDesC& aUrl, TInt aFreq); - - /** - * Add a folder feed. - * - * @since 3.0 - * @param aName The new name. - * @return void. - */ - void AddNewFolderL(const TDesC& aName); - - /** - * Delete the current feed or folder - * - * @since 3.0 - * @return void. - */ - void DeleteCurrentItemL(); - - /** - * Returns an array containing the indexes of the marked items. - * - * @since 3.0 - * @return The array. - */ - const CArrayFix* MarkedItems(); - - /** - * Replaces the current folder with its parent. - * - * @since 3.0 - * @return Returns ETrue if iCurrentFolder != iRootFoler. - */ - TBool HandleShowParentFolderL(void); - - /** - * Refreshes the root folder. - * - * @since 3.0 - * @return void - */ - //void HandleRefreshRootFolderL(void); - - /** - * Handles selections and open commands - * - * @since 3.0 - * @return void - */ - void HandleSelectionL(void); - - /** - * Handles updating the current Feed. - * - * @since 3.1 - * @return void - */ - void HandleUpdateFeedL(TBool aUpdateAll = EFalse); - - /** - * Handles the add-feed command. - * - * @since 3.0 - * @return void. - */ - void HandleNewFeedL(); - - /** - * Handles the add-folder command. - * - * @since 3.0 - * @return void. - */ - void HandleNewFolderL(); - - /** - * Handles the edit command. - * - * @since 3.0 - * @return void. - */ - void HandleEditL(); - - /** - * Handles the delete command. - * - * @since 3.0 - * @return void. - */ - void HandleDeleteL(); - - /** - * Handles the move command. - * - * @since 3.0 - * @return void. - */ - void HandleMoveL(); - - /** - * Handles the move to folder command. - * - * @since 3.0 - * @return void. - */ - void HandleMoveToFolderL(); - - /** - * Handles the mark-related commands. - * - * @since 3.0 - * @param aCommand The command to process. - * @return void. - */ - void HandleMarkL(TInt aCommand); - - /** - * Handles the ok commands. - * - * @since 3.1 - * @return void. - */ - void HandleOkL(); - - /** - * Handles the cancel commands. - * - * @since 3.0 - * @return void. - */ - void HandleCancelL(); - - /** - * Handles the export command. - * - * @since 3.2 - * @return void. - */ - void HandleExportL(); - - /** - * Calculate the unread count based on delta. - * - * @since 3.1 - * @return the calculated value. - */ - TInt UnreadCountChangedL( TInt aUnreadCountDelta ); - - /** - * Set the unread count. - * - * @since 3.1 - * @return void. - */ - void SetUnreadCountL( TInt aUnreadCount ); - - /** - * Count the number of folders in a given feeds folder - * - * @since 5.0 - * @param folder to count - * @param total count folders - * @return void - */ - void CountFolderFolders(const CFeedsEntity* aFolder, TInt &aFolderCount); - - /** - * Update the toolbar buttons' state - * - * @since 5.0 - * @return void - */ - void UpdateToolbarButtonsState(); - - /** - * Recursive loop to find a feed - * - * @since 5.0 - * @return ETrue if feed item is found - */ - TBool SearchForFeedL(const CFeedsEntity* item); - -#ifdef BRDO_SINGLE_CLICK_ENABLED_FF - /** - * To know Whether any feed item selected for move - * - * @since 7.2 - * @return ETrue if feed item is selected for move - */ - TBool isMoveActive(){ return iMoveActive;} -#endif - - private: - /** - * C++ default constructor. - */ - CFeedsFolderContainer - ( CFeedsFolderView* aView, - MApiProvider& aApiProvider ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(const TRect& aRect); - - /** - * Inits the container. - * - * @since 3.0 - * @param aRect The drawing rect. - * @return void - */ - void InitContainerL(const TRect& aRect); - - /** - * Inits the array of needed icons. - * - * @since 3.0 - * @return void. - */ - void InitIconArrayL(); - - /** - * Loads and appends an icon to the icon array.. - * - * @since 3.0 - * @param aIcons The icon array. - * @param aID Item ID of the masked bitmap to be created. - * @param aFilename Filename to be used to construct the item, - * if no matching item was found in the currently active skin. - * @param aFileBitmapId ID of the bitmap in the file. - * Used only if no matching item was found in the currently - * active skin. - * @param aFileMaskId ID of the mask in the file. - * Used only if no matching item was found in the currently - * active skin. - * @return void. - */ - void AppendIconL(CArrayPtr* aIcons, const TAknsItemID& aID, - const TDesC& aFilename, const TInt aFileBitmapId, const TInt aFileMaskId); - - /** - * Sets the list-box's values. - * - * @since 3.0 - * @param aInitialSelection The index of the selection after the update. - * @return void - */ - void UpdateListBoxL(TInt aInitialSelection = 0); - - /** - * Inits the move-to-folder pop-up. - * - * @since 3.0 - * @param aListBox The pop-up's listbox. - * @param aPopupList The pop-up. - * @return void - */ - void MoveToFolderInitL(CAknSingleGraphicPopupMenuStyleListBox*& aListBox, - CAknPopupList*& aPopupList); - - /** - * Sets the move-to-folder list-box's values. - * - * @since 3.0 - * @param aListBoxRows Holds the values in the pop-up. - * @return void - */ - void MoveToFolderSetItemsL(CDesCArraySeg& aListBoxRows); - - void AddFoldersToListL(const CFeedsEntity& aFolder, CDesCArraySeg& aListBoxRows); - - /** - * Moves the marked items into the target-folder. - * - * @since 3.0 - * @param aTargetFolder The folder where the items will be moved. - * @return void - */ - void MoveToFolderMoveL(const CFeedsEntity& aTargetFolder); - - /** - * Show the feed in the TopicView. - * - * @since 3.0 - * @param aFolderItem The folder item to show. - * @return void - */ - void ShowFeedL(const CFeedsEntity& aFolderItem); - - /** - * Moves the current or marked items -- called after the move-cmd is confirmed. - * - * @since 3.0 - * @return void - */ - void PostHandleMoveL(); - - /** - * Updates the options softkey to reflect the current state. - * - * @since 3.0 - * @return void. - */ - void UpdateCbaL(); - - /** - * Changes the current folder. - * - * @since 3.1 - * @param aFolder The new current folder. - * @param aResetSelection If ETrue the current selection is set to the first item. - * @return void. - */ - void SetCurrentFolder(const CFeedsEntity* aFolder, - TBool aResetSelection = EFalse); - - /** - * Dynamically initializes the Mark/Unmark submenu. - * - * @since 3.2 - * @param aMenu Pointer to the Menu Pane - * @return - iListBox. - */ - - void DynInitMarkUnmarkMenuPane(CEikMenuPane* aMenuPane); - - /** - * Dim or Undim toolbar - * - * @since 5.0 - * @param aDim - is ETrue, then dim toolbar ; else undim toolbar - * @return - void - */ - - void DimToolbar(TBool aDim); - - /** - * Check for Marked items are folder or feed - * - * @since 5.0 - * @return - bool - */ - - TBool IsMarkedItemFolder(); - - /** - * Clears the navigation pane. - * - * @since 7.1 - * @return void - */ - void ClearNavigationPane(); - - /** - * Handles the changes needed to the Navigation Pane. - * - * @since 7.1 - * @return void - */ - void UpdateNavigationPaneL(); - public: - friend class CFeedsFolderView; - - - private: - CFeedsFolderView* iView; // not owned - MApiProvider& iApiProvider; // not owned - CAknDoubleGraphicStyleListBox* iListBox; - CDesCArraySeg* iListBoxRows; - CAknIconArray* iListBoxIcons; - TBool iOwnsListBoxIcons; - - TBool iMoveActive; - - const CFeedsEntity* iRootFolder; - const CFeedsEntity* iCurrentFolder; - TInt iCurrentFolderId; - RPointerArray iTargetFolderList; // pointers not owned - CAknNavigationDecorator* iNaviDecorator; - }; - -#endif // FEEDS_FOLDER_CONTAINER_H - -// End of File