diff -r 594d59766373 -r 7d48bed6ce0c cbs/cbsui/UiInc/CCbsUiTopicListView.h --- a/cbs/cbsui/UiInc/CCbsUiTopicListView.h Thu Aug 19 10:28:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,429 +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 "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: -* This is the application main view. Shows all the topics which -* has been received and their status: subscribed, hotmarked, new messages -* -* -*/ - - -#ifndef __CCBSTOPICLISTVIEW_H -#define __CCBSTOPICLISTVIEW_H - -// INCLUDES -#include -#include -#include "MCbsUiTopicMonitorObserver.h" -#include "CbsUiDebug.h" - -// CONSTANTS -const TInt KNumberOfStandardTopics = 17; - - -// FORWARD DECLARATIONS - -class CSelectionList; -class CListBoxNumbers; -class CCbsUiTopicListViewContainer; -class MCbs; -class CAknNavigationDecorator; -class CAknNavigationControlContainer; - -// CLASS DECLARATION - -/** -* This is the application main view. Shows all the topics which -* has been received and their status: subscribed, hotmarked, new messages -* -*/ -class CCbsUiTopicListView : public CAknView, - public MCbsUiTopicMonitorObserver - { - private: // Data declaration - - enum TTopicListViewFocusState - { - ESetFocusToCurrentHandle, - ESetFocusToFirstItem, - ESetFocusToNewestItem, - ENoFocusUpdate - }; - - public: // Constructors and destructor - - /** - * Creates an instance of the class. - * - * @param aServer It is the server. - * @return It returns a pointer to the created class. - */ - static CCbsUiTopicListView* NewL( MCbs& aServer ); - - /** - * Destructor. - */ - virtual ~CCbsUiTopicListView(); - - public: // New functions - - /** - * Calls the server to add or change a topic. Which is called - * depends on the type of the dialog. - * - * @param aType is it a edit or add query. True is add query - * @param aNumber topic number to add or change - * @param aName topic name to add or change - * @return error code if something goes wrong - */ - TInt EditTopic( - TBool aType, - TCbsTopicNumber aNumber, - const TCbsTopicName aName ); - - /** - * Adds a topic with specified number and name. - * - * @param aNumber It is the number of the topic. - * @param aName It is the name of the topic. - * @return a error code if the addition fails - */ - TInt AddTopic( - const TCbsTopicNumber& aNumber, - const TCbsTopicName& aName ); - - /** - * Marks topic which is focused. This should be called only when - * the Options menu is created and when the Ok (selection) key - * has been pressed. Focus behaviour is based on this. - */ - void MarkCurrentHandle(); - - public: // From MCbsUiTopicMonitorObserver - - /** - * Topic list or topic messages are changed. - * - * @param aEvent reason for event - * @param aTopicNumber Topic number, which caused the event - */ - void TopicListChangedL( - TCbsTopicListEvent aEvent, TCbsTopicNumber aTopicNumber ); - - public: // from CAknView - - /** - * Returns the identifier of the view. - * - * @return It returns the identifier. - */ - TUid Id() const; - - /** - * Handles the options menu commands. - * - * @param aCommand command to be executed - */ - void HandleCommandL( TInt aCommand ); - - public: // New function - /** - * Handle changes in container when rect changes. - */ - void HandleRectChangeInContainer(); - - private: // from CAknView - - /** - * Activates the view. - * - * @param aPrevViewId - * @param aCustomMessageId - */ - void DoActivateL( - const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage ); - - /** - * Deactivates the view. - */ - void DoDeactivate(); - - /** - * Checks new topic count, if it has been changed after - * application switch. - */ - void ViewActivatedL( - const TVwsViewId& aPrevViewId, - TUid aCustomMessageId,const - TDesC8& aCustomMessage ); - - void ViewDeactivated(); - - private: // MEikMenuObserver - - /** - * Sets the menu items according to the state of the topic, which - * is focused on. Used when options menu is opened. Marks also - * a current topic handle. - * - * @param aResourceId resource id of the menu - * @param aMenuPane used to modify menu dynamically - */ - void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); - - private: // New functions - - /** - * Sets current topic number according to aTopicNumber. - * - * @param aTopicNumber contains current topic number. - */ - void SetCurrentTopicNumber( const TDesC8& aTopicNumber ); - - /** - * Sets current topic number according to aTopicNumber. - * - * @param aTopicNumber new current topic number. - */ - void SetCurrentTopicNumber( const TCbsTopicNumber aTopicNumber ); - - /** - * Updates the topics information. - */ - void ReloadTopicsL(); - - /** - * Prepares container for reloading. - */ - void PrepareReloading(); - - /** - * Reloads topics from the server. - */ - void ReloadL(); - - /** - * Ends reloading. - */ - void EndReloadingL(); - - /** - * Sets focus after reload. Should be called after ReloadTopicsL(). - * - * @param aFocusState focus is set according to this - */ - void SetFocusAfterReload( TTopicListViewFocusState aFocusState ); - - /** - * Sets focus to aIndex. - * - * @param aIndex new focused index - */ - void SetFocusToTopic( TInt aIndex ); - - /** - * Updates the focus according to Selection Service after deletion. - * - * @param aDeletedTopic Calculates the new focus according to deleted - * topic. - */ - void UpdateCurrentTopicAfterDeletion( TCbsTopicNumber aDeletedTopic ); - - /** - * Returns the total amount of topics. - * - * @return It is the amount of topics. - */ - TInt TotalTopics() const; - - /** - * Requests the view to move to the previous topic. - */ - void MoveToPreviousTopic(); - - /** - * Writes a CBS to title pane. - */ - void UpdateTitlePaneL() const; - - /** - * Writes to navi pane a right message: - * No new messages - * One new message - * %N new messages - */ - void UpdateNaviPaneL(); - - /** - * Gets resouce id for text to be displayed. - * - * @param aUnreadMessages Number of unread messages. - * @return resource id for text - */ - TInt GetInfoResourceId( TInt aUnreadMessages ) const; - - /** - * Creates a new decorated label to navi pane. - * - * @param aResourceId text resource id. - * @param aUnreadMessages number of unread messages - */ - void CreateNewLabelL( TInt aResourceId, TInt aUnreadMessages ); - - /** - * Launches an edit or add topic query dialog. - * - * @param aType type of the query. - * ETrue is add and EFalse is edit query. - * @param aTopicName name of the topic - * @param aTopicNumber number of the topic - */ - void ShowTopicQueryL( - TBool aType, - TDes& aTopicName, - TDes& aTopicNumber ); - - /** - * Launchs the edit topic query with the right parameters. - */ - void ShowEditTopicQueryL(); - - /** - * Checks if there has come new topics while this function was - * last called. Shows a note how many new topics has been added, - * since last been in TopicListView. - */ - void CheckNewTopicCountL(); - - /** - * Returns the new topics count from server. - * - * @return new topic count - */ - TInt GetNewTopicsCount(); - - /** - * Changes the topic name and number to the specified. - * - * @param aHandle It is the handle to the topic. - * @param aNumber It is the new number of the topic. - * @param aName It is the name of the topic. - * @return error code in case fail - */ - TInt UpdateTopic( - const TCbsTopicNumber& aOldNumber, - const TCbsTopicNumber& aNumber, - const TCbsTopicName& aName ); - - /** - * Finds topic index by topic number. - * - * @param aIndex it will contain the topic index - * @param aTopicNumber topic number - * @return KErrNone if no errors - */ - TInt FindTopicIndexByNumber( - TInt& aIndex, - const TCbsTopicNumber& aTopicNumber ); - - /** - * Activates the topic view. - */ - void ActivateTopicViewL() const; - - /** - * Activates settings view. - */ - void ActivateSettingsViewL() const; - - /** - * Activates a add from index dialog. - */ - void ActivateAddFromIndexViewL(); - - /** - * Activates an idle object to show an information note. - * Used in call back function. - * - * @param aNewTopics count of new topics - * @return always KErrNone - */ - static TInt ActivateBackgroundNoteL( TAny* aNewTopics ); - - private: - - /** - * It is type for topic handles array. - */ - typedef CArrayFixFlat< TCbsTopicNumber > TCbsUiTopicNumberList; - - /** - * Constructor. - * - * @param aServer connection to the server - */ - CCbsUiTopicListView(MCbs& aServer); - - /** - * Finalizes the construction. - * - * Note that it is assumed that the server exists for the life - * time of the class. - */ - void ConstructL(); - - private: // Data - - // It is the control for the view. - CCbsUiTopicListViewContainer* iContainer; - - // It is the label in status pane. - CAknNavigationDecorator* iDecoratedLabel; - - // Pointer to server session. Owned by UiApp - MCbs& iServer; - - // It is the array that contains the topic numbers. - TCbsUiTopicNumberList* iTopicNumberList; - - // Handle that is focused. - TCbsTopicNumber iCurrentTopicNumber; - - // For updating information about messages to navi pane. - CAknNavigationControlContainer* iNaviPane; - - // iFocusState is set in HandleCommandL and focus is set in - // TopicListChangedL. - TTopicListViewFocusState iFocusState; - - // To see wheather it is needed to update navi pane. - // if ETrue: navi pane is not updated - TBool iAddFromIndexDialogIsActive; - - // for showing background note - CIdle* iBackgroundNote; - - // Count of new topics. - TInt iNewTopicsCount; - - - }; - - -#endif // __CCBSTOPICLISTVIEW_H - - -// End of File