diff -r 594d59766373 -r 7d48bed6ce0c cbs/cbsui/UiInc/CCbsUIMsgView.h --- a/cbs/cbsui/UiInc/CCbsUIMsgView.h Thu Aug 19 10:28:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,362 +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: -* Class for viewing messages. -* -* -*/ - - -#ifndef __CBSMSGVIEW_H -#define __CBSMSGVIEW_H - -// INCLUDES -#include -#include -#include -#include "MCbsUiTopicMonitorObserver.h" -#include "MSaveMessageController.h" -#include "CbsUiDebug.h" - - -// FORWARD DECLARATIONS -class CCbsUiTopicView; -class CCbsUiMsgViewContainer; -class CAknNavigationDecorator; -class CFindItemMenu; -class MCbs; -class CAknNavigationControlContainer; - -// CLASS DECLARATION -/** -* It is the class for viewing messages. -*/ -class CCbsUiMsgView : public CAknView, - public MCbsUiTopicMonitorObserver, - public MSaveMessageController, - public MAknNaviDecoratorObserver - { - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CCbsUiMsgView(); - - /** - * Two-phased constructor. - * - * @param aServer Reference to cbs server. - */ - static CCbsUiMsgView* NewL( MCbs& aServer ); - - private: // From MEikMenuObserver - - /* - * Adds find item and checks weather delete, keep or both of - * them should be removed. - * - * @param aResourceId resource ID for identifying the menu pane being - * initialised. - * @param aMenuPane the in-memory representation of the menu pane. - */ - void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); - - private: // From MAknNaviDecoratorObserver - - /** - * Method for handling touch events on navigator (navi pane) - * - * @param aEventID Id of the event. - */ - void HandleNaviDecoratorEventL( TInt aEventID ); - - public: // From MEikCommandObserver - - /** - * Closes context menu if it exists. - * - * @param aCommandId Command id, which has been pressed. - */ - void ProcessCommandL( TInt aCommandId ); - - public: // From CAknView - - /** - * Returns view id. - * - * @return View ID. - */ - TUid Id() const; - - /** - * Handles the command. - * - * @param aCommand menu command which user has selected from - * option menu - */ - void HandleCommandL( TInt aCommand ); - - /** - * Activates the message view. Actiovation depends on the message. - * Three variations are: normal, immediate and - * soft notification messages. - * - * @param aPrevViewId Previous view id. - * @param aCustomMessageId With this different mechanism of activations - * are used. Immediate message uses - * KCbsImmediateMessageIdInt and normal message - * uses KCbsUiCustomMessageId. If the message id - * differ from these, the message is activated - * by soft notification - * @param aCustomMessage Message content. - */ - void DoActivateL( - const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage ); - - /** - * Deactivates the view and destroys needed objects. - */ - void DoDeactivate(); - - public: // From MSaveMessageController, these are called from - // CbsUiUtility - - /** - * 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 ); - - public: - - /** - * Sets the message information to navi pane. e.g. Message 1/3. - */ - void UpdateNaviPaneL(); - - /** - * When called, next message is displayed - */ - void MoveToNextMessageL(); - - /** - * When called, previous message is displayed - */ - void MoveToPreviousMessageL(); - - /** - * 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 ); - - /** - * Handle changes in container when rect changes. - * Update message and set new rect to container. - */ - void HandleRectChangeInContainerL(); - - private: // Data structures - - enum TMsgViewSetHandle - { - EToNext, - EToPrevious - }; - - private: // New functions - - /** - * Creates a find item dialog and pass a message to - * it and gives the search case, what to look. - * - * @param aCommand search case - */ - void DoSearchL( TInt aCommand ); - - /** - * Removes and destroys the context menu. - */ - void CloseContextMenu(); - - /** - * Launch the context menu. - */ - void LaunchContextMenuL(); - - /** - * Deletes a old message. - */ - void DeleteOldMessage(); - - /** - * Loads a message from topic view. - * - * @return error code if Loading of message has been leaved and catched. - */ - TInt DoLoadMessageL(); - - /** - * Activates topic view with defined topic number and message handle. - * - * @param aTopicNumber which topic the message belongs - * @param aHandle which message handle is activating topic view. - */ - void ActivateTopicViewL( - TCbsTopicNumber aTopicNumber, TCbsMessageHandle aHandle); - - /** - * Sets current message handle to aMessageHandle. - * - * @param aMessageHandle message handle - */ - void SetCurrentMessageHandle( const TDesC8& aMessageHandle ); - - /** - * Loads current message buffer. - */ - void LoadMessageL(); - - /** - * Adds date and time to a aMessage. - * - * @param aTime A time when message was received. - * @param aMessage Address of actual pointer variable. So after - * reallocation real message content is also changed. - * @param aResourceArrayId Used resource array for date and time format. - */ - void AddDateAndTimeL( - const TInt64 aTime, HBufC** aMessage, TUint aResourceArrayId ) const; - - /** - * Returns topic number of current message. - * - * @return current topic number - */ - TCbsTopicNumber CurrentTopicNumber() const; - - /** - * Gets message position in topic where th aHandle belongs. - * - * @param aHandle message handle - * @param aPosition It will contain the message position in topic. - * @param aTotal It will contain the total message count in topic, - * @return error code - */ - TInt GetMessagePosition( - TCbsMessageHandle aHandle, TInt& aPosition, TInt& aTotal ); - - /** - * Sets aHandle to previous or next according to aTo - * if possible. - * - * @param aTo sets aHandle to prev or next - * @return ETrue if aHandle has been set. - */ - TBool SetHandleTo( TCbsMessageHandle& aHandle, TMsgViewSetHandle aTo ); - - /** - * Deletes a message according to a aHandle. - * - * @param aHandle handle to be deleted. - * @return ETrue if message was deleted - */ - TBool DeleteMessageL( TCbsMessageHandle aHandle ); - - /** - * Activates topic list view. - */ - void ActivateTopicListViewL() const; - - /** - * Sets current message to newest hot marked message or - * activates the topic list view. - * - * @return ETrue if new view is launched - */ - TBool HandleSoftNotificationL(); - - private: - - /** - * C++ constructor. - * - * @param aServer Reference to cbs server. - */ - CCbsUiMsgView( MCbs& aServer ); - - /** - * Two-phased constructor. - */ - void ConstructL(); - - private: // Data - - // message buffer - HBufC* iMessage; - - // Container class - CCbsUiMsgViewContainer* iContainer; - - // Navi pane variables - CAknNavigationControlContainer* iNaviContainer; - - // NaviPaneDecorator - CAknNavigationDecorator* iDecoratedLabel; - - // NaviPaneDecorator - CAknNavigationDecorator* iPreviousDecoratedLabel; - - // Find item common component - CFindItemMenu* iFindItemMenu; - - // Context sensitive menu, which appears when pushed ok key - CEikMenuBar* iContextMenu; - - // To get a topic count and messages inside - // a topic. - MCbs& iServer; - - // Tells if the message is class 0. - TBool iIsClass0; - - // Current message handle - TCbsMessageHandle iCurrentHandle; - - // True if launched from the other application. - TBool iFromOtherApplication; - - }; - -#endif //__CBSMSGVIEW_H - - -// End of file