wvuing/wvuiave/AppSrc/CCAChatViewContainer.h
branchRCL_3
changeset 13 a941bc465d9f
parent 0 094583676ce7
equal deleted inserted replaced
12:6ca72c0fe49a 13:a941bc465d9f
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Container class for chat group view
       
    15  *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CCACHATVIEWCONTAINER_H
       
    21 #define CCACHATVIEWCONTAINER_H
       
    22 
       
    23 // INCLUDES
       
    24 #include "mcagroupeventobserverpc.h"
       
    25 #include "MCALayoutChangeObserver.h"
       
    26 #include "ChatDefinitions.h"            // KNickNameLength
       
    27 #include "mcatapeventobserver.h"
       
    28 #include "MCAMsgAddedToRichTxtCtrlObserver.h"
       
    29 #include "CCAMessageEditor.h"   // MCAMessageEditorObserver
       
    30 #include <NewFileService.hrh> // TNewServiceFileType
       
    31 #include <eikedwob.h>
       
    32 #include <aknutils.h>
       
    33 
       
    34 // FORWARD DECLARATIONS
       
    35 class MCAViewSwitcher;
       
    36 class MCARecipientObserver;
       
    37 class CCAMessageEditor;
       
    38 class CCAAppUi;
       
    39 class MCASkinVariant;
       
    40 class CCAMessageExtensionsHandler;
       
    41 class CCAChatViewControl;
       
    42 class MObjectProvider;
       
    43 class MCAConversationMessage;
       
    44 class MCAGroupPC;
       
    45 class CCAEditIndicator;
       
    46 class MCAGroupUtilsPC;
       
    47 class CCAChatView;
       
    48 
       
    49 
       
    50 
       
    51 // CLASS DECLARATION
       
    52 
       
    53 /**
       
    54  *  This is container class for chat view
       
    55  *  @since 3.2
       
    56  */
       
    57 class CCAChatViewContainer : public CCoeControl,
       
    58             public MEikEdwinSizeObserver,
       
    59             public MCAGroupEventObserverPC,
       
    60             public MCALayoutChangeObserver,
       
    61             public MCATapEventObserver,
       
    62             public MCoeControlObserver,
       
    63             public MCAMessageEditorObserver,
       
    64             public MCAMsgAddedToRichTxtCtrlObserver
       
    65     {
       
    66     public: // Enumerations
       
    67 
       
    68         /**
       
    69          * Observed controls (MCATapEventObserver)
       
    70          */
       
    71         enum TTouchableControls
       
    72             {
       
    73             EMessageList = 1,
       
    74             EMessageEditor
       
    75             };
       
    76 
       
    77     public: // Constructors and destructor
       
    78 
       
    79         /**
       
    80          * Symbian OS default constructor.
       
    81          * @param aRect Frame rectangle for container.
       
    82          * @param aViewSwitcher Handle to view switcher.
       
    83          * @param aGroupPC Handle to group pc
       
    84          * @param aRecipientObserver Recipient observer
       
    85          * @param aParent Context access mechanism.
       
    86          * @param aExtensionHandler Ref. to Msg. Extension Handler
       
    87          * @param aCba Pointer to Button Group Container class
       
    88          * @param aActivateFromTabSwitch Flag used while switching
       
    89          * in tabs, to do focus in text box
       
    90          * @param aTabId Ref. to tab id for this group
       
    91          */
       
    92         static CCAChatViewContainer* NewL( const TRect& aRect,
       
    93                                            MCAViewSwitcher& aViewSwitcher,
       
    94                                            MCAGroupPC* aGroupPC,
       
    95                                            MCARecipientObserver& aRecipientObserver,
       
    96                                            MObjectProvider* aParent,
       
    97                                            CCAMessageExtensionsHandler& aExtensionHandler,
       
    98                                            CEikButtonGroupContainer* aCba,
       
    99                                            const TBool aActivateFromTabSwitch,
       
   100                                            TInt& aTabId,
       
   101                                            CCAChatView * aView );
       
   102 
       
   103         /**
       
   104          * Destructor.
       
   105          */
       
   106         virtual ~CCAChatViewContainer();
       
   107 
       
   108     private:    // constructors
       
   109 
       
   110         /**
       
   111          * Default constructor
       
   112          * @param aViewSwitcher Handle to view switcher.
       
   113          * @param aGroupPC Handle to group pc
       
   114          * @param aRecipientObserver Recipient observer
       
   115          * @param aParent Context access mechanism.
       
   116          * @param aExtensionHandler Ref. to Msg. Extension Handler
       
   117          * @param aCba Pointer to Button Group Container class
       
   118          * @param aTabId Ref. to tab id for this group
       
   119          */
       
   120         CCAChatViewContainer(
       
   121             MCAViewSwitcher& aViewSwitcher,
       
   122             MCAGroupPC* aGroupPC,
       
   123             MCARecipientObserver& aRecipientObserver,
       
   124             CCAMessageExtensionsHandler& aMessageHandler,
       
   125             CEikButtonGroupContainer* aCba, TInt& aTabId, CCAChatView * aView );
       
   126 
       
   127         /**
       
   128          * Symbian OS default constructor.
       
   129          * @param aRect Frame rectangle for container.
       
   130          * @param aParent Context access mechanism.
       
   131          * @param aActivateFromTabSwitch Flag used while switching
       
   132          * in tabs, to do focus in text box
       
   133          */
       
   134         void ConstructL( const TRect& aRect, MObjectProvider* aParent,
       
   135                          const TBool aActivateFromTabSwitch );
       
   136 
       
   137 
       
   138     public:
       
   139 
       
   140         /**
       
   141          * Switches the tab
       
   142          */
       
   143         void SwitchTabL();
       
   144 
       
   145         /**
       
   146          * Check if selected item is object
       
   147          * @param aIsOpenable method sets this ETrue if selected item
       
   148          *                    is openable object else set to EFalse
       
   149          * @param aSavePossible method sets this ETrue if selected item
       
   150          *                    is savable object else set to EFalse
       
   151          * @return ETrue if selected item is object
       
   152          */
       
   153         TBool IsObjectSelected( TBool& aIsOpenable , TBool& aSavePossible );
       
   154 
       
   155         /**
       
   156          * @return Selected message or NULL if nothing selected
       
   157          */
       
   158         MCAConversationMessage* SelectedMessage();
       
   159 
       
   160         /**
       
   161          * @return Selected item
       
   162          */
       
   163         HBufC* SelectedItemL();
       
   164 
       
   165         /**
       
   166          * @return Type of selected item
       
   167          */
       
   168         TInt SelectedItemType();
       
   169 
       
   170         /**
       
   171          * Sets item highlighting on or off (automatic find)
       
   172          * @param aHihghlight ETrue to set finder on
       
   173          */
       
   174         void SetItemHighlight( TBool aHighlight );
       
   175 
       
   176         /**
       
   177          * Should we fetch new messages or not
       
   178          * @param aFetch ETrue if this chat is in foreground and should receive messages,
       
   179          *               EFalse otherwise.
       
   180          */
       
   181         void FetchMessages( TBool aFetch );
       
   182 
       
   183         /**
       
   184          * Checks if current message is private or not
       
   185          * @return Is message private or not ETrue if private message
       
   186          */
       
   187         TBool CheckIfPrivateMessageL();
       
   188 
       
   189         /**
       
   190          * Does really group properties change
       
   191          * @param aGroupd Group id
       
   192          */
       
   193         void DoHandleGroupPropertiesChangedL();
       
   194 
       
   195         /**
       
   196          * Handles the leaving of the group and
       
   197          * switching of view etc. logic
       
   198          * @param aReason Reason for leaving the group
       
   199          */
       
   200         void DoHandleGroupLeftL( TInt aReason );
       
   201 
       
   202         /**
       
   203          * Checks if user can invite friends to this group
       
   204          * @since 3.2
       
   205          * @return Is invitation allowed or not
       
   206          */
       
   207         TBool IsInvitationAllowed() const;
       
   208 
       
   209         /**
       
   210          * Start invite editor for current group
       
   211          * @since 3.2
       
   212          */
       
   213         void InviteFriendsToGroupL();
       
   214 
       
   215         /**
       
   216          * This checks if scroll mode is on or off
       
   217          * @since 3.2
       
   218          * @return Returns if scrolling is stopped or not (TBool)
       
   219          */
       
   220         TBool IsStopped() const;
       
   221 
       
   222         /**
       
   223          * This method starts scrolling
       
   224          * @since 3.2
       
   225          */
       
   226         void StartScrollingL( const TBool aActivateFromTabSwitch = EFalse );
       
   227 
       
   228         /**
       
   229          * This method stops scrolling
       
   230          * @since 3.2
       
   231          */
       
   232         void StopScrollingL();
       
   233 
       
   234         /**
       
   235          * Updates the softkeys dynamically
       
   236          */
       
   237         void UpdateCbaL();
       
   238 
       
   239         /**
       
   240          * Sets item emphasization on or off
       
   241          * @since 3.2
       
   242          * @param aIsEmphasized On/Off (TBool)
       
   243          */
       
   244         void SetItemEmphasize( const TBool aIsEmphasized );
       
   245 
       
   246         /**
       
   247          * This method checks if emphasization is on or off
       
   248          * @since 3.2
       
   249          * @return Is emphasization on or off (TBool)
       
   250          */
       
   251         TBool IsEmphasized() const;
       
   252 
       
   253         /**
       
   254          * This method returns pointer to msg editor
       
   255          * @since 3.2
       
   256          * @return Handle to editor
       
   257          */
       
   258         CCAMessageEditor& Editor() const;
       
   259 
       
   260         /**
       
   261          * This function forwards the message to group
       
   262          * @since 3.2
       
   263          */
       
   264         void ForwardToGroupL();
       
   265 
       
   266         /**
       
   267          * This function forwards the message to contact
       
   268          * @since 3.2
       
   269          */
       
   270         void ForwardToContactL();
       
   271 
       
   272         /**
       
   273          * This method handles message sending
       
   274          * @since 3.2
       
   275          */
       
   276         void SendMessageL();
       
   277 
       
   278         /**
       
   279          * This method handles object sending
       
   280          * @param aNewFile If ETrue, a new file will be created before sending
       
   281          * @param aFileType Type of file to be created when creating new file
       
   282          * @since 3.2
       
   283          */
       
   284         void SendObjectL( TBool aNewFile,
       
   285                           TNewServiceFileType aFileType = ENewFileServiceImage );
       
   286 
       
   287         /**
       
   288          * This method initialises whisper message
       
   289          * @since 3.2
       
   290          * @param aNickName A nick name whom to send whisper message
       
   291          * @param aGroupMsg ETrue if multiple recipients (to group)
       
   292          */
       
   293         void InitPrivateMessageL( const TDesC& aNickName, const TBool aGroupMsg );
       
   294 
       
   295         /**
       
   296          * This function returns handle to array of recipients
       
   297          * @since 3.2
       
   298          * @return Handle to recipient array
       
   299          */
       
   300         CDesCArrayFlat& Recipients() const;
       
   301 
       
   302         /**
       
   303          * This function returns handle to array of SentRecipients
       
   304          * @since 3.2
       
   305          * @return Handle to sent recipient array
       
   306          */
       
   307         CDesCArrayFlat* SentRecipients() const;
       
   308 
       
   309         /**
       
   310          * This function allows reply to focused contact
       
   311          * @since 3.2
       
   312          */
       
   313         void ReplyL();
       
   314 
       
   315         /**
       
   316          * This function displays chat properties dialog
       
   317          * @since 3.2
       
   318          */
       
   319         void EditChatGroupPropertiesL();
       
   320 
       
   321         /**
       
   322          * This function allows leaving from group
       
   323          * @since 3.2
       
   324          */
       
   325         void LeaveGroupL();
       
   326 
       
   327         /**
       
   328          * This method displays chat info
       
   329          * @since 3.2
       
   330          */
       
   331         void DisplayChatInfoL();
       
   332 
       
   333         /**
       
   334          * Checks if application user has sent a message
       
   335          * @since 3.2
       
   336          * @return ETrue if did
       
   337          */
       
   338         TBool ApplicationUserSentThis() const;
       
   339 
       
   340         /**
       
   341          * @since 3.2
       
   342          * @return ETrue if this is received message
       
   343          */
       
   344         TBool Received() const;
       
   345 
       
   346 
       
   347         /**
       
   348          * Sets the Logging/Saving on
       
   349          * @since 3.2
       
   350          */
       
   351         void SaveChatL();
       
   352 
       
   353         /**
       
   354          * Sets the logging off
       
   355          * @since 3.2
       
   356          */
       
   357         void SetLoggingOffL();
       
   358 
       
   359         /**
       
   360          * Checks if whispering is allowed
       
   361          * @since 3.2
       
   362          * @return ETrue if allowed
       
   363          */
       
   364         TBool IsWhisperAllowedL() const;
       
   365 
       
   366         /**
       
   367          * Checks if user is admin in this group
       
   368          * @since 3.2
       
   369          * @return ETrue if admin else EFalse
       
   370          */
       
   371         TBool IsUserAdmin() const;
       
   372 
       
   373         /**
       
   374          * Checks if group is open
       
   375          * @since 3.2
       
   376          * @return ETrue if open else EFalse
       
   377          */
       
   378         TBool IsGroupOpen() const;
       
   379 
       
   380         /**
       
   381          * Tests if extension (in chars) fits to editor
       
   382          * @return ETrue if fits
       
   383          * @param aLength Extensions length in chars
       
   384          * @since 3.2
       
   385          */
       
   386         TBool ExtensionFits( TInt aLength );
       
   387 
       
   388         /**
       
   389          * @return Forward to contact-menu visible (ETrue)
       
   390          * @since 3.2
       
   391          */
       
   392         TBool FwdContactVisible();
       
   393 
       
   394         /**
       
   395          * @return Forward to group-menu visible (ETrue)
       
   396          * @since 3.2
       
   397          */
       
   398         TBool FwdGroupVisible();
       
   399 
       
   400         /**
       
   401          * This function does basic clearing after the message is sent
       
   402          * aActivateFromTabSwitch - Flag used in Tab switching
       
   403          */
       
   404         void ResetAfterSendL( const TBool aActivateFromTabSwitch = EFalse );
       
   405 
       
   406 
       
   407         /**
       
   408          * Sets the size of all icons; smileys etc.
       
   409          * @param aParentRect Size of the parent object (view)
       
   410          */
       
   411         void ResizeIcons( TRect aParentRect );
       
   412 
       
   413         /**
       
   414          * Method to force refresh in the rich text editor,
       
   415          * called from view when adding a smiley.
       
   416          * @since 3.2
       
   417          */
       
   418         void RefreshEditorL();
       
   419 
       
   420         /**
       
   421          * Is item highlight on or off.
       
   422          * @since 3.2
       
   423          * @return ETrue if find activated, EFalse otherwise
       
   424          */
       
   425         TBool IsItemHighlight() const;
       
   426 
       
   427         /**
       
   428          * Returns TRect for reading pane text line element.
       
   429          * Used to determine icon sizes.
       
   430          * @since 3.2
       
   431          * @return TRect for reading pane text line element.
       
   432          */
       
   433         const TRect TextRect() const;
       
   434 
       
   435 #ifdef RD_MULTIPLE_DRIVE
       
   436 
       
   437         /**
       
   438          *	show memorey selection dialog and updatesthe same to the cenrep.
       
   439          *	Leaves if HBufC::NewL fails.
       
   440 		 *	@return ETrue if ok 
       
   441          *	@since 2.1
       
   442          */
       
   443 	    TBool ShowMemorySelectionDialogL();
       
   444 
       
   445 #endif
       
   446 
       
   447 
       
   448     private:    // From MCAMessageEditorObserver
       
   449 
       
   450         /**
       
   451          * Handle editor event.
       
   452          */
       
   453         void HandleMessageEditorEventL( TEditorEvent aEvent );
       
   454 
       
   455     private: // Functions from MCALayoutChangeObserver
       
   456 
       
   457         /**
       
   458         * From MCALayoutChangeObserver, for observing layout changes
       
   459         */
       
   460         void LayoutChangedL( TInt aType );
       
   461 
       
   462     private: // From MCAGroupEventObserverPC
       
   463 
       
   464         /**
       
   465          * Called when the server has indicated that the user is not a member
       
   466          * anymore.
       
   467          * @param aReason specifies why.
       
   468          */
       
   469         void HandleGroupLeft( TInt aReason );
       
   470 
       
   471         /**
       
   472          * Called when new group properties are received from the
       
   473          * the network. These are server initiated properties.
       
   474          */
       
   475         void HandleGroupPropertiesChanged();
       
   476 
       
   477     private: // Functions from MEikEdwinSizeObserver
       
   478 
       
   479         /**
       
   480          * From MEikEdwinSizeObserver, This method handles edwin's size change
       
   481          * @param aEdwin The edwin for which the size event is being handled.
       
   482          * @param aEventType The event type.
       
   483          * @param aDesirableEdwinSize The desired size for the edwin identified by aEdwin.
       
   484          * @return The return value depends on your implementation.
       
   485          * Return ETrue if you wish to redraw the edwin. EFalse otherwise.
       
   486          */
       
   487         TBool HandleEdwinSizeEventL( CEikEdwin* aEdwin,
       
   488                                      TEdwinSizeEvent aEventType, TSize aDesirableEdwinSize );
       
   489 
       
   490     private: //from MCAMsgAddedToRichTxtCtrlObserver
       
   491         //when user navigate among tab.
       
   492 
       
   493         /**
       
   494          * @see MCAMsgAddedToRichTxtCtrlObserver
       
   495          */
       
   496         void HandleMessageAddedL( const TInt aMessageCount );
       
   497 
       
   498     private: // From MCATapEventObserver
       
   499 
       
   500         /**
       
   501          * @see MCATapEventObserver
       
   502          */
       
   503         void HandleTapEventL( TTapEvent aEvent, TUint aControlId );
       
   504 
       
   505     private: // From MCoeControlObserver
       
   506 
       
   507         /**
       
   508          * @see MCoeControlObserver
       
   509          */
       
   510         void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
       
   511 
       
   512     private: // Functions CCoeControl
       
   513 
       
   514         /**
       
   515          * From CoeControl, Handles "size changed"-events..
       
   516          */
       
   517         void SizeChanged();
       
   518 
       
   519         /**
       
   520          * From CoeControl, Returns the number of control contained by this class.
       
   521          * @return Number of controls contained
       
   522          */
       
   523         TInt CountComponentControls() const;
       
   524 
       
   525         /**
       
   526          * From CCoeControl, Returns handle to control pointed by aIndex
       
   527          * @param aIndex Wanted control's index [0..n]
       
   528          * @return Handle to wanted control
       
   529          */
       
   530         CCoeControl* ComponentControl( TInt aIndex ) const;
       
   531 
       
   532         /**
       
   533          * From CCoeControl, Gets called when drawing is needed (by framework)
       
   534          * @param aRect Rect that needs to be drawed
       
   535          */
       
   536         void Draw( const TRect& aRect ) const;
       
   537 
       
   538         /**
       
   539          * From CCoeControl, Handles key-events
       
   540          * @param aEvent Event that occured
       
   541          * @param aType Type of key-event (EEventKey, EEventKeyUp or EEventKeyDown)
       
   542          * @return Containers response to event (EKeyWasNotConsumed/ EKeyWasConsumed)
       
   543          */
       
   544         TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
       
   545 
       
   546         /*
       
   547          * From CCoeControl.
       
   548          * @param aContext Help context
       
   549          */
       
   550         void GetHelpContext( TCoeHelpContext& aContext ) const;
       
   551 
       
   552 		/*
       
   553 		* From CCoeControl.
       
   554 		* @param aDrawNow Draw param
       
   555 		*/
       
   556 		void FocusChanged(TDrawNow aDrawNow);
       
   557 
       
   558     private: //New functions
       
   559 
       
   560         /**
       
   561          * This function displays information notes
       
   562          * @param aResourceId Resource ID of note
       
   563          */
       
   564         void DisplayInfoNoteL( const TInt aResourceId );
       
   565 
       
   566 
       
   567         /**
       
   568          * This function clears selected text from editor
       
   569          * @param aSelectionLength Length of selected string
       
   570          */
       
   571         void ClearSelectionL( const TInt aSelectionLength );
       
   572 
       
   573         /**
       
   574          * Creates private message header
       
   575          * @param aIconHeader Icon header
       
   576          * @param aGroupMsg If ETrue then group icon else single icon
       
   577          * @param aNick Descriptor that contains nick name
       
   578          * @param aMsg Descriptor that contains message
       
   579          */
       
   580         void CreatePrivMsgHeaderL( TPictureHeader& aIconHeader,
       
   581                                    const TBool& aGroupMsg,
       
   582                                    TDesC& aNick,
       
   583                                    HBufC* aMsg );
       
   584 
       
   585         /**
       
   586          * Creates private message header for A/H variant
       
   587          * @param aIconHeader Icon header
       
   588          * @param aGroupMsg If ETrue then group icon else single icon
       
   589          * @param aNick Descriptor that contains nick name
       
   590          * @param aMsg Descriptor that contains message
       
   591          */
       
   592         void CreatePrivMsgAHHeaderL( TPictureHeader& aIconHeader,
       
   593                                      const TBool& aGroupMsg,
       
   594                                      TDesC& aNick,
       
   595                                      HBufC* aMsg );
       
   596 
       
   597         /**
       
   598          * Loads bitmaps that are needed in this container
       
   599          */
       
   600         void LoadBitmapsL();
       
   601 
       
   602 
       
   603     private: //data
       
   604 
       
   605         // Owns. Chat view control
       
   606         CCAChatViewControl* iChatView;
       
   607 
       
   608         //Doesn't own. Handle to recipient observer
       
   609         MCARecipientObserver& iRecipientObserver;
       
   610 
       
   611         // Doesn't own. Handle to view switcher
       
   612         MCAViewSwitcher& iViewSwitcher;
       
   613 
       
   614         // Doesn't own. Handle to group process component
       
   615         MCAGroupPC* iGroupPC;
       
   616 
       
   617 
       
   618         // Owns. Editor used for chat input
       
   619         CCAMessageEditor* iEditor;
       
   620 
       
   621         // Owns. Graphics for private icon
       
   622         CGulIcon* iPrivIcon;
       
   623         CGulIcon* iPrivToMany;
       
   624         CGulIcon* iToMe;
       
   625 
       
   626         //Owns. "Unsupported" icon
       
   627         CGulIcon* iUnsupported;
       
   628 
       
   629         //Owns. "Corrupted" icon
       
   630         CGulIcon* iCorrupted;
       
   631 
       
   632         TBool iIsEmphasis;
       
   633         TBool iIsPrivateMsgActive;
       
   634 
       
   635         TBool iIsLoggedIn;
       
   636         TBool iIsEditorStateChanged;
       
   637         // Is whispering allowed in group
       
   638         TBool iWhisperingAllowed;
       
   639         // Is group open
       
   640         TBool iIsOpen;
       
   641 
       
   642         TInt iNickLength;
       
   643         TInt iCurrentTextLenght;
       
   644 
       
   645         TAknLayoutRect iOutLine;
       
   646         TAknLayoutRect iHoriline;
       
   647         TAknLayoutRect iVertLine;
       
   648 
       
   649         // Owns. Array of screennames
       
   650         CDesCArrayFlat* iRecipients;
       
   651         CDesCArrayFlat* iSentRecipients;
       
   652 
       
   653         //Owns. Group id
       
   654         HBufC* iGroupId;
       
   655 
       
   656         //doesn't own
       
   657         CCAAppUi* iAppUi;
       
   658 
       
   659         MCASkinVariant* iSkinVar;
       
   660 
       
   661         // these are set by InitPrivateMessage
       
   662         // needed for layout changing
       
   663         TBuf<KNicknameMaxLength> iCurrentNickInPrivMsg;
       
   664         TBool					 iIsGroupMsgInPrivMsg;
       
   665 
       
   666         //Extension handler
       
   667         CCAMessageExtensionsHandler& iMessageExtensionsHandler;
       
   668 
       
   669         TBool iItemHighlight;
       
   670 
       
   671         // Does not own. Pointer to cba of view.
       
   672         CEikButtonGroupContainer* iCba;
       
   673 
       
   674         // See IMVariant.hrh.
       
   675         // Flag depends on EIMFeatSendkeyInMsgList.
       
   676         TBool iSendkeyInMsgList;
       
   677 
       
   678         //owns
       
   679         CCAEditIndicator* iEditIndicator;
       
   680 
       
   681         //Tab id
       
   682         TInt& iTabId;
       
   683 
       
   684         //Doesnt own,pointer to Group Utils PC
       
   685         MCAGroupUtilsPC* iGroupUtilsPC;
       
   686         // Used for switching tabs
       
   687         TBool ifocusFlag;
       
   688 
       
   689         CCAChatView *iView;
       
   690     };
       
   691 
       
   692 #endif //CCACHATVIEWCONTAINER_H
       
   693 
       
   694 // End of File