diff -r 594d59766373 -r 7d48bed6ce0c cbs/cbsui/UiInc/CCbsUiTopicView.h --- a/cbs/cbsui/UiInc/CCbsUiTopicView.h Thu Aug 19 10:28:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,391 +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: Header file for the CCbsUiTopicView class. -* -* -*/ - - -#ifndef __CCBSUITOPICVIEW_H -#define __CCBSUITOPICVIEW_H - -// INCLUDES -#include -#include -#include -#include "MCbsUiTopicMonitorObserver.h" -#include "MSaveMessageController.h" -#include "CbsUiDebug.h" - - -// FORWARD DECLARATIONS - -class CCbsUiTopicViewContainer; -class MCbs; -class CAknNavigationDecorator; -class CAknNavigationControlContainer; - -// CLASS DEFINITIONS - -/** -* For showing message in one topic. -*/ -class CCbsUiTopicView : public CAknView, - public MCbsUiTopicMonitorObserver, - public MSaveMessageController, - public MAknNaviDecoratorObserver - { - private: // Data declaration - - enum TTopicViewFocusState - { - ESetFocusToCurrentHandle, - ESetFocusToFirstItem, - ESetFocusToNewestMessage, - ENoFocusUpdate - }; - - public: // Constructors and destructor - - /** - * Creates instance of the class. - * - * @param aServer reference to the server - * @return It is the created instance. - */ - static CCbsUiTopicView* NewL( MCbs& aServer ); - - /** - * Destructor. - */ - ~CCbsUiTopicView(); - - public: // New functions - - /** - * Marks the current handle. This should be called only when - * the Options menu is created and when the Ok (selection) key - * has been pressed. - */ - void MarkCurrentlyFocusedHandle(); - - /** - * Handle changes in container when rect changes. - */ - void HandleRectChangeInContainer(); - - 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 MSaveMessageController - - /** - * Saves a message (the saved message won't be deleted to make - * room for new messages). - * - * Return codes: - * KErrNone Message is saved. - * KErrGeneral Message not saved -- total maximum of saved - * messages reached. - * KErrNotFound Message not saved -- no message associated - * with the given handle. - * KErrDiskFull Message not saved -- FFS out of space. - * - * @param aHandle Handle to the message to be saved. - * @return Return code. - */ - TInt SaveMessage( const TCbsMessageHandle& aHandle ); - - private: // from MEikMenuObserver - - /** - * Sets the options menu according to the current message. - * - * @param aResouceId Id of the resouce. - * @param aMenuPane Pointer to the menu pane. - */ - void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); - - /** - * Overrides MEikMenuObserver function SetEmphasis. Default - * implementation has been copied here. - * - * Checks if the menu pane is showing. If the menu pane is not - * showing, message is unlocked, because it has been locked when - * the menu pane was created. - * - * @param aMenuControl pointer to the menu control - * @param aEmphasis ETrue if menu is showing; otherwise EFalse - */ - void SetEmphasis( CCoeControl* aMenuControl,TBool aEmphasis ); - - public: // from CAknView - - /** - * Returns the view id. - */ - TUid Id() const; - - /** - * To catch which command is selected before menu pane is closed. - * - * @param aCommand command to be processed - */ - void ProcessCommandL( TInt aCommand ); - - /** - * Processes the command. - * - * @param aCommand It is the command to be processed. - */ - void HandleCommandL( TInt aCommand ); - - protected: // from CAknView - - /** - * Activates the view. - * - * @param aPrevViewId previous view id - * @param aCustomMessageId id of the custom message - * @param aCustomMessage message data - */ - void DoActivateL( - const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, const TDesC8& aCustomMessage ); - - /** - * Deactivates the view. - */ - void DoDeactivate(); - - private: // New functions - - /** - * Sets focus to message, according to aIndex. - * - * @param aIndex Index of the focused message. - */ - void SetFocusToMessage( TInt aIndex ); - - /** - * Reloads the messages. - */ - void ReloadMessagesL(); - - /** - * Return the total amount of messages. ("loaded"). - * - * @return total amount of messages - */ - TInt TotalMessages() const; - - /** - * Locks the message in the server. Only one message can locked - * at same time. When new message is locked, old message is unlocked. - * - * @param aHandle Message handle to be locked. - */ - TInt LockMessage( TCbsMessageHandle aHandle ); - - /** - * Unlocks the message from the server. - */ - void UnLockMessage(); - - /** - * Updates the status pane. - */ - void UpdateTitlePaneL( const TCbsTopic& aTopic ) const; - - /** - * Updates the title pane. - */ - void UpdateNaviPaneL( const TCbsTopic& aTopic ); - - /** - * Shows the message in a dialog. - */ - void ShowMessageL(); - - /** - * Finds message index by handle. - * - * @param aIndex it will contain the topic index - * @param aMessageHandle handle to the message - * @return KErrNone if handle exists - */ - TInt FindMessageIndexByHandle( - TInt& aIndex, - const TCbsMessageHandle& aMessageHandle ); - - /** - * Loads all message titles from the server in one topic and offers - * those to the container. - * - * @param aTopicNumber Message headers will be loaded from this topic. - */ - void LoadAllMessageTitlesL( TCbsTopicNumber aTopicNumber ); - - /** - * Prepares container for reloading. - */ - void PrepareReloading(); - - /** - * Sets focus in the list box according to current topic number. - * It also set the focus according to the view focus state. - * - * @param aFocusState indicates where to put the focus - */ - void SetFocusAfterReloading( TTopicViewFocusState aFocusState ); - - /** - * Sets a new current handle according to aDeletedHandle. - * - * @param aDeletedHandle A handle to message which has been deleted. - */ - void SetNewCurrentHandle( TCbsMessageHandle aDeletedHandle ); - - /** - * Sets current topic number according to aToPrev - * - * @param aToPrev Sets current topic number to previous if ETrue - */ - void SetCurrentTopicNumber( TBool aToPrev ); - - /** - * Sets current topic number to aTopicNumberDes. It is used in - * view activation. - * - * @param aTopicNumberDes new current topic number - */ - void SetCurrentTopicNumberAndMessageHandle( const TDesC8& aTopicNumberDes ); - - /** - * Activates message view with the aMsgHandle. - * - * @param aMsgHandle A message handle to be activeted. - */ - void ActivateMsgViewL( TCbsMessageHandle aMsgHandle ) const; - - /** - * Activates topic list view with topic number. - * - * @param aTopicNumber sets the topic number in topic list view. - */ - void ActivateTopicListViewL( TCbsTopicNumber aTopicNumber ) const; - - /** - * Checks if it is possible to move to previous, next - * or both directions. - * - * @param aToPrevious ETrue if it is possible to move to previous topic - * @param aToNext ETrue if it is possible to move to next topic - * @param error code - */ - TInt CheckIfCanMove( TBool& aToPrevious, TBool& aToNext ); - - /** - * Activates the list box after changes. List box is owned by - * the container. - */ - void ActivateListBoxL(); - - /** - * Set the middle soft key text. - * - * @param aResourceId Resource to be read (text label) - * @param aCommandId Command ID for MSK command - */ - void SetMiddleSoftKeyLabelL( const TInt aResourceId, const TInt aCommandId ); - - /** - * Removes MSK command mappings. - */ - void RemoveCommandFromMSK(); - - private: - - /** - * It defines the type for message handle lists. - */ - typedef CArrayFixFlat< TCbsMessageHandle > TCbsUiMessageHandleList; - - /** - * Constructor. - * - * @param aServer reference to the server - * @param aApplication reference to the application - */ - CCbsUiTopicView( MCbs& aServer ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - private: // From MAknNaviDecoratorObserver - - /** - * Method for handling touch events on navigator (navi pane) - * - * @param aEventID Id of the event. - */ - void HandleNaviDecoratorEventL( TInt aEventID ); - - private: // Data - - // container to the CCbsUiTopicView - CCbsUiTopicViewContainer* iContainer; - - // navi pane variables - CAknNavigationControlContainer* iNaviContainer; - - // navi pane - CAknNavigationDecorator* iDecoratedLabel; - - // navi pane - CAknNavigationDecorator* iPreviousDecoratedLabel; - - // reference to server - MCbs& iServer; - - // array for message handles - TCbsUiMessageHandleList* iHandles; - - // handle to a message, which is focused on. - TCbsMessageHandle iCurrentHandle; - - // Topic number, which this view is currently handling. - TCbsTopicNumber iCurrentTopicNumber; - - // If this is ETrue, message can be unlocked and there fore - // deleted. It is set EFalse in ProcessCommandL, ETrue - // in DoActivateL and in HandleCommandL. - TBool iCanUnlock; - - }; - - -#endif // __CCBSUITOPICVIEW_H - -// End of File