messagingappbase/mce/inc/MceMessageListContainer.h
author hgs
Thu, 04 Nov 2010 02:02:03 +0530
changeset 81 2043ea884c04
parent 79 2981cb3aa489
permissions -rw-r--r--
201044_03
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
79
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  
hgs
parents:
diff changeset
    15
*     List container user by message view.
hgs
parents:
diff changeset
    16
*     Derived from CMceListContainer.
hgs
parents:
diff changeset
    17
*
hgs
parents:
diff changeset
    18
*/
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#ifndef MCEMESSAGELISTCONTAINER_H
hgs
parents:
diff changeset
    23
#define MCEMESSAGELISTCONTAINER_H
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
//  INCLUDES
hgs
parents:
diff changeset
    26
#include <coecntrl.h> // CCoeControl
hgs
parents:
diff changeset
    27
#include <msvapi.h>
hgs
parents:
diff changeset
    28
//#include "MceListContainer.h"
hgs
parents:
diff changeset
    29
#include "MceMessageListContainerBase.h"
hgs
parents:
diff changeset
    30
#include "MceMessageListContTimer.h"
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
#include "mcetemplate.h"
hgs
parents:
diff changeset
    33
#include "MceUtils.h"
hgs
parents:
diff changeset
    34
#include "MceListItem.h"
hgs
parents:
diff changeset
    35
#include <centralrepository.h> //CRepository
hgs
parents:
diff changeset
    36
#include <bldvariant.hrh>
hgs
parents:
diff changeset
    37
#include <eikcmobs.h>
hgs
parents:
diff changeset
    38
#include <e32property.h>
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    41
class CMceMessageListView;
hgs
parents:
diff changeset
    42
class CPtiEngine;
hgs
parents:
diff changeset
    43
class CMcePropertySubscriber;
hgs
parents:
diff changeset
    44
class CMsvSession;
hgs
parents:
diff changeset
    45
class CMceBitmapResolver;
hgs
parents:
diff changeset
    46
class CMceMessageListItemArray;
hgs
parents:
diff changeset
    47
class CMceMessageListBox;
hgs
parents:
diff changeset
    48
class MEikListBoxObserver;
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
//CONSTS
hgs
parents:
diff changeset
    51
const TInt KMceSelectionReplacementSize = 5;
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
// CLASS DECLARATION
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
/**
hgs
parents:
diff changeset
    57
*  List container user by message view.
hgs
parents:
diff changeset
    58
*  Derived from CMceListContainer.
hgs
parents:
diff changeset
    59
*/
hgs
parents:
diff changeset
    60
class  CMceMessageListContainer :
hgs
parents:
diff changeset
    61
    public CMceMessageListContainerBase
hgs
parents:
diff changeset
    62
//    public CCoeControl,
hgs
parents:
diff changeset
    63
//    public MEikCommandObserver
hgs
parents:
diff changeset
    64
    {
hgs
parents:
diff changeset
    65
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
        /**
hgs
parents:
diff changeset
    68
        * Two-phased constructor.
hgs
parents:
diff changeset
    69
        */
hgs
parents:
diff changeset
    70
        static CMceMessageListContainer* NewL(
hgs
parents:
diff changeset
    71
            const TRect& aRect,
hgs
parents:
diff changeset
    72
            CMsvSessionPtr aSession,
hgs
parents:
diff changeset
    73
            TMsvId aFolderId,
hgs
parents:
diff changeset
    74
            CMceBitmapResolver& aBitmapResolver,
hgs
parents:
diff changeset
    75
            CMceMessageListView& aParentView );
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
        /**
hgs
parents:
diff changeset
    78
        * Destructor.
hgs
parents:
diff changeset
    79
        */
hgs
parents:
diff changeset
    80
        virtual ~CMceMessageListContainer();
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
    public:
hgs
parents:
diff changeset
    83
    
hgs
parents:
diff changeset
    84
        /**
hgs
parents:
diff changeset
    85
        * Returns list index of the current item
hgs
parents:
diff changeset
    86
        * @return Index of the current item
hgs
parents:
diff changeset
    87
        */
hgs
parents:
diff changeset
    88
        TInt    CurrentItemIndex() const;
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
        /**
hgs
parents:
diff changeset
    91
        * Returns mce's info of the current message
hgs
parents:
diff changeset
    92
        * @return info
hgs
parents:
diff changeset
    93
        */
hgs
parents:
diff changeset
    94
        TMceListItem CurrentItemListItem() const;
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
        /**
hgs
parents:
diff changeset
    97
        * Tries to find item from the currently opened list and retuns
hgs
parents:
diff changeset
    98
        * list index if found. KErrNotFound if not found.
hgs
parents:
diff changeset
    99
        * @param aId: item id to be searched
hgs
parents:
diff changeset
   100
        * @return List index of the item.
hgs
parents:
diff changeset
   101
        */
hgs
parents:
diff changeset
   102
        TInt ItemIndex( TMsvId aId ) const;
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
        /**
hgs
parents:
diff changeset
   105
        * Sets MSK label according to a focused item
hgs
parents:
diff changeset
   106
        * Since 3.2
hgs
parents:
diff changeset
   107
        */
hgs
parents:
diff changeset
   108
        void SetMskL();
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
        /**
hgs
parents:
diff changeset
   111
        * Is Outbox open?
hgs
parents:
diff changeset
   112
        */
hgs
parents:
diff changeset
   113
        TBool IsOutboxOpened() const;
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
        /**
hgs
parents:
diff changeset
   116
        * Returns ETrue if Syncml outbox opened
hgs
parents:
diff changeset
   117
        */
hgs
parents:
diff changeset
   118
        TBool SyncMlOutboxOpened() const;
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    public:     // Functions from base classes
hgs
parents:
diff changeset
   122
    
hgs
parents:
diff changeset
   123
        /**
hgs
parents:
diff changeset
   124
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   125
        */
hgs
parents:
diff changeset
   126
        virtual TInt MceListId() const;
hgs
parents:
diff changeset
   127
    
hgs
parents:
diff changeset
   128
        /**
hgs
parents:
diff changeset
   129
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   130
        */
hgs
parents:
diff changeset
   131
        virtual TInt Count() const;
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
        /**
hgs
parents:
diff changeset
   134
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   135
        */
hgs
parents:
diff changeset
   136
        virtual TInt MessageCount() const;
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
        /**
hgs
parents:
diff changeset
   139
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   140
        */
hgs
parents:
diff changeset
   141
        virtual TInt FolderCount() const;
hgs
parents:
diff changeset
   142
        
hgs
parents:
diff changeset
   143
        /**
hgs
parents:
diff changeset
   144
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   145
        */
hgs
parents:
diff changeset
   146
        virtual TBool SetCurrentItemIdL( TMsvId aEntryId );
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
        /**
hgs
parents:
diff changeset
   149
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   150
        */
hgs
parents:
diff changeset
   151
        virtual void ResetCurrentItemL();
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
        /**
hgs
parents:
diff changeset
   154
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   155
        */
hgs
parents:
diff changeset
   156
        TMsvId FindEntry( const TDesC& aMatchString ) const;
hgs
parents:
diff changeset
   157
        
hgs
parents:
diff changeset
   158
        /**
hgs
parents:
diff changeset
   159
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   160
        */
hgs
parents:
diff changeset
   161
        virtual void ItemCountChangedL( TBool aItemsAdded,
hgs
parents:
diff changeset
   162
                CArrayFix<TInt>* aAddedIndexes = 0 );
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
        /**
hgs
parents:
diff changeset
   165
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   166
        */
hgs
parents:
diff changeset
   167
        virtual void RefreshListbox();
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
        /**
hgs
parents:
diff changeset
   170
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   171
        */
hgs
parents:
diff changeset
   172
        virtual void SetSortTypeL( TInt aSortType, TBool aOrdering );
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
        /**
hgs
parents:
diff changeset
   175
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   176
        */
hgs
parents:
diff changeset
   177
        virtual void SetMtmUiDataRegistry( MMtmUiDataRegistryObserver* aRegistryObserver );
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
        /**
hgs
parents:
diff changeset
   180
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   181
        */
hgs
parents:
diff changeset
   182
        virtual TBool FindFirstUnreadMessageL( TMsvId& aEntryId ) const;
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
        /**
hgs
parents:
diff changeset
   185
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   186
        */
hgs
parents:
diff changeset
   187
        virtual TMessageListItemType CurrentItemType() const;
hgs
parents:
diff changeset
   188
        
hgs
parents:
diff changeset
   189
        /**
hgs
parents:
diff changeset
   190
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   191
        */
hgs
parents:
diff changeset
   192
        void SetFolderL( TMsvId aFolderId );
hgs
parents:
diff changeset
   193
        
hgs
parents:
diff changeset
   194
        /**
hgs
parents:
diff changeset
   195
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   196
        */
hgs
parents:
diff changeset
   197
        TMsvId CurrentFolderId() const;
hgs
parents:
diff changeset
   198
        
hgs
parents:
diff changeset
   199
        /**
hgs
parents:
diff changeset
   200
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   201
        */
hgs
parents:
diff changeset
   202
        const TMsvEntry& FolderEntry() const;
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
        /**
hgs
parents:
diff changeset
   205
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   206
        */
hgs
parents:
diff changeset
   207
        TMsvId  CurrentItemId() const;
hgs
parents:
diff changeset
   208
        
hgs
parents:
diff changeset
   209
        /**
hgs
parents:
diff changeset
   210
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   211
        */
hgs
parents:
diff changeset
   212
        CMsvEntrySelection* CurrentItemSelectionL();
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
        /**
hgs
parents:
diff changeset
   215
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   216
        */
hgs
parents:
diff changeset
   217
        CMsvEntrySelection* CurrentItemSelectionRefreshL();
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
        /**
hgs
parents:
diff changeset
   220
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   221
        */
hgs
parents:
diff changeset
   222
        TInt CurrentItemSelectionCount() const;
hgs
parents:
diff changeset
   223
hgs
parents:
diff changeset
   224
        /**
hgs
parents:
diff changeset
   225
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   226
        */
hgs
parents:
diff changeset
   227
        TInt SelectionCount() const;
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
        /**
hgs
parents:
diff changeset
   230
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   231
        */
hgs
parents:
diff changeset
   232
        virtual TBool IsItemSelected( TMsvId aItemId );
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
        /**
hgs
parents:
diff changeset
   235
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   236
        */
hgs
parents:
diff changeset
   237
        void ClearSelection();
hgs
parents:
diff changeset
   238
hgs
parents:
diff changeset
   239
        /**
hgs
parents:
diff changeset
   240
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   241
        */
hgs
parents:
diff changeset
   242
        void MarkItemSelectionL();
hgs
parents:
diff changeset
   243
hgs
parents:
diff changeset
   244
        /**
hgs
parents:
diff changeset
   245
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   246
        */
hgs
parents:
diff changeset
   247
        void AddCurrentItemToSelectionL();
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
        /**
hgs
parents:
diff changeset
   250
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   251
        */
hgs
parents:
diff changeset
   252
        void RemoveCurrentItemFromSelection();
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
        /**
hgs
parents:
diff changeset
   255
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   256
        * Updates selection indexes by reading selected message's TMsvIds from iSelectedEntries
hgs
parents:
diff changeset
   257
        * and creates new CSelectionIndexArray.
hgs
parents:
diff changeset
   258
        * @param aForceUpdate: set ETrue if index update is wanted to be done even when
hgs
parents:
diff changeset
   259
        *   listbox's selection does not include any items.
hgs
parents:
diff changeset
   260
        *   Usually this is set true only when calling from CMceBaseListView::HandleEntriesDeletedL
hgs
parents:
diff changeset
   261
        */
hgs
parents:
diff changeset
   262
        void RefreshSelectionIndexesL( TBool aForceUpdate = EFalse );
hgs
parents:
diff changeset
   263
hgs
parents:
diff changeset
   264
        /**
hgs
parents:
diff changeset
   265
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   266
        */
hgs
parents:
diff changeset
   267
        void AddAllToSelectionL();
hgs
parents:
diff changeset
   268
        
hgs
parents:
diff changeset
   269
        /**
hgs
parents:
diff changeset
   270
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   271
        */
hgs
parents:
diff changeset
   272
        void MarkAllReadMessagesL();
hgs
parents:
diff changeset
   273
        
hgs
parents:
diff changeset
   274
        /**
hgs
parents:
diff changeset
   275
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   276
        */
hgs
parents:
diff changeset
   277
        TInt MarkedItemsCount();
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
        /**
hgs
parents:
diff changeset
   280
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   281
        */
hgs
parents:
diff changeset
   282
        TBool IsCurrentItemFolder() const;
hgs
parents:
diff changeset
   283
hgs
parents:
diff changeset
   284
        /**
hgs
parents:
diff changeset
   285
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   286
        */
hgs
parents:
diff changeset
   287
        TBool IsItemFolder( TMsvId aItemId ) const;
hgs
parents:
diff changeset
   288
hgs
parents:
diff changeset
   289
        /**
hgs
parents:
diff changeset
   290
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   291
        */
hgs
parents:
diff changeset
   292
        TBool IsItemRemote( TMsvId aItemId ) const;
hgs
parents:
diff changeset
   293
hgs
parents:
diff changeset
   294
        /**
hgs
parents:
diff changeset
   295
        * Checks is item folder.
hgs
parents:
diff changeset
   296
        * @param aIndex index of the item to be checked.
hgs
parents:
diff changeset
   297
        * @return ETrue if item is folder.
hgs
parents:
diff changeset
   298
        */
hgs
parents:
diff changeset
   299
        TBool IsItemFolder(TInt aIndex) const;
hgs
parents:
diff changeset
   300
hgs
parents:
diff changeset
   301
        /**
hgs
parents:
diff changeset
   302
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   303
        */
hgs
parents:
diff changeset
   304
        TBool IsOpenedFolder( TMsvId aFolderId ) const;
hgs
parents:
diff changeset
   305
        
hgs
parents:
diff changeset
   306
        /**
hgs
parents:
diff changeset
   307
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   308
        */
hgs
parents:
diff changeset
   309
        void SetListEmptyTextL(const TDesC& aText);
hgs
parents:
diff changeset
   310
        
hgs
parents:
diff changeset
   311
        /**
hgs
parents:
diff changeset
   312
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   313
        */
hgs
parents:
diff changeset
   314
        void SetAnchorItemIdL( 
hgs
parents:
diff changeset
   315
            TMessageListOperationType aOperationType );
hgs
parents:
diff changeset
   316
            
hgs
parents:
diff changeset
   317
        /**
hgs
parents:
diff changeset
   318
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   319
        */
hgs
parents:
diff changeset
   320
        void HandleMsvSessionEventL( 
hgs
parents:
diff changeset
   321
            MMsvSessionObserver::TMsvSessionEvent aEvent,
hgs
parents:
diff changeset
   322
            CMsvEntrySelection& aSelection,
hgs
parents:
diff changeset
   323
            TBool aDraw );
hgs
parents:
diff changeset
   324
            
hgs
parents:
diff changeset
   325
        /**
hgs
parents:
diff changeset
   326
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   327
        */
hgs
parents:
diff changeset
   328
        TBool DisplayOptionsMenuFromSelectionKey() const;
hgs
parents:
diff changeset
   329
        
hgs
parents:
diff changeset
   330
        /**
hgs
parents:
diff changeset
   331
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   332
        */
hgs
parents:
diff changeset
   333
        TUint OptionsCommandSupported() const;
hgs
parents:
diff changeset
   334
hgs
parents:
diff changeset
   335
        /**
hgs
parents:
diff changeset
   336
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   337
        */
hgs
parents:
diff changeset
   338
        void HandleOptionsCommandL( TInt aCommand );
hgs
parents:
diff changeset
   339
            
hgs
parents:
diff changeset
   340
        /**
hgs
parents:
diff changeset
   341
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   342
        */
hgs
parents:
diff changeset
   343
        void DateTimeFormatChangedL( TInt aChangeFlag );
hgs
parents:
diff changeset
   344
hgs
parents:
diff changeset
   345
        /**
hgs
parents:
diff changeset
   346
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   347
        */
hgs
parents:
diff changeset
   348
        TInt SetSpecialMskL();
hgs
parents:
diff changeset
   349
        
hgs
parents:
diff changeset
   350
        /**
hgs
parents:
diff changeset
   351
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   352
        */
hgs
parents:
diff changeset
   353
        void UpdateIconArrayL();
hgs
parents:
diff changeset
   354
hgs
parents:
diff changeset
   355
        /**
hgs
parents:
diff changeset
   356
        * From CCoeControl
hgs
parents:
diff changeset
   357
        */
hgs
parents:
diff changeset
   358
        void GetHelpContext(TCoeHelpContext& aContext) const;
hgs
parents:
diff changeset
   359
hgs
parents:
diff changeset
   360
        /**
hgs
parents:
diff changeset
   361
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   362
        */
hgs
parents:
diff changeset
   363
        void SetContainerFlag( TMceContainerFlags aFlag, TBool aState );
hgs
parents:
diff changeset
   364
		
hgs
parents:
diff changeset
   365
        /**
hgs
parents:
diff changeset
   366
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   367
        */
hgs
parents:
diff changeset
   368
        void SetMarkingModeOff();
hgs
parents:
diff changeset
   369
hgs
parents:
diff changeset
   370
    public:     // Functions from base classes
hgs
parents:
diff changeset
   371
hgs
parents:
diff changeset
   372
        /**
hgs
parents:
diff changeset
   373
        * From CCoeControl
hgs
parents:
diff changeset
   374
        */
hgs
parents:
diff changeset
   375
        virtual TKeyResponse OfferKeyEventL(
hgs
parents:
diff changeset
   376
            const TKeyEvent& aKeyEvent,
hgs
parents:
diff changeset
   377
            TEventCode aType);        
hgs
parents:
diff changeset
   378
hgs
parents:
diff changeset
   379
            
hgs
parents:
diff changeset
   380
        /**
hgs
parents:
diff changeset
   381
        * From CCoeControl
hgs
parents:
diff changeset
   382
        */
hgs
parents:
diff changeset
   383
        void SizeChanged();
hgs
parents:
diff changeset
   384
            
hgs
parents:
diff changeset
   385
        /**
hgs
parents:
diff changeset
   386
        * From 
hgs
parents:
diff changeset
   387
        */
hgs
parents:
diff changeset
   388
        void HandleResourceChange( TInt aType );
hgs
parents:
diff changeset
   389
            
hgs
parents:
diff changeset
   390
         /**
hgs
parents:
diff changeset
   391
         * From MEikCommandObserver
hgs
parents:
diff changeset
   392
         */
hgs
parents:
diff changeset
   393
        virtual void ProcessCommandL(TInt aCommand);
hgs
parents:
diff changeset
   394
         
hgs
parents:
diff changeset
   395
        /**
hgs
parents:
diff changeset
   396
        * From CCoeControl.
hgs
parents:
diff changeset
   397
        * Handles pointer events.
hgs
parents:
diff changeset
   398
        * @param aPointerEvent The pointer event. 
hgs
parents:
diff changeset
   399
        */
hgs
parents:
diff changeset
   400
        virtual void HandlePointerEventL( const TPointerEvent& aPointerEvent );
hgs
parents:
diff changeset
   401
        
hgs
parents:
diff changeset
   402
        /**
hgs
parents:
diff changeset
   403
        * From CCoeControl
hgs
parents:
diff changeset
   404
        */
hgs
parents:
diff changeset
   405
        TInt CountComponentControls() const;
hgs
parents:
diff changeset
   406
hgs
parents:
diff changeset
   407
        /**
hgs
parents:
diff changeset
   408
        * From CCoeControl
hgs
parents:
diff changeset
   409
        */
hgs
parents:
diff changeset
   410
        CCoeControl* ComponentControl(TInt aIndex) const;
hgs
parents:
diff changeset
   411
hgs
parents:
diff changeset
   412
        
hgs
parents:
diff changeset
   413
    protected:  // Functions from base classes
hgs
parents:
diff changeset
   414
hgs
parents:
diff changeset
   415
        /**
hgs
parents:
diff changeset
   416
        * From CMceListContainer
hgs
parents:
diff changeset
   417
        */
hgs
parents:
diff changeset
   418
//        virtual CEikTextListBox* CreateListBoxL( );        
hgs
parents:
diff changeset
   419
hgs
parents:
diff changeset
   420
        // From CCoeControl
hgs
parents:
diff changeset
   421
        void FocusChanged(TDrawNow aDrawNow);
hgs
parents:
diff changeset
   422
        
hgs
parents:
diff changeset
   423
    private:
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
        /**
hgs
parents:
diff changeset
   426
        * Symbian OS constructor.
hgs
parents:
diff changeset
   427
        */
hgs
parents:
diff changeset
   428
        void ConstructL(
hgs
parents:
diff changeset
   429
            const TRect& aRect,
hgs
parents:
diff changeset
   430
            CMsvSessionPtr aSession,
hgs
parents:
diff changeset
   431
            CMceBitmapResolver& aBitmapResolver,
hgs
parents:
diff changeset
   432
            TMsvId aFolderId );
hgs
parents:
diff changeset
   433
hgs
parents:
diff changeset
   434
        /**
hgs
parents:
diff changeset
   435
        * Constructor is private.
hgs
parents:
diff changeset
   436
        */
hgs
parents:
diff changeset
   437
        CMceMessageListContainer(
hgs
parents:
diff changeset
   438
            CMceMessageListView& aParentView );
hgs
parents:
diff changeset
   439
hgs
parents:
diff changeset
   440
            
hgs
parents:
diff changeset
   441
        /**
hgs
parents:
diff changeset
   442
         * Function that check if a key can be search
hgs
parents:
diff changeset
   443
         * @param aPointerEvent The pointer event
hgs
parents:
diff changeset
   444
         * @return ETrue if it can
hgs
parents:
diff changeset
   445
         * since 3.2
hgs
parents:
diff changeset
   446
         */
hgs
parents:
diff changeset
   447
        TBool IsValidSearchKey(const TKeyEvent& aKeyEvent);
hgs
parents:
diff changeset
   448
hgs
parents:
diff changeset
   449
        /**
hgs
parents:
diff changeset
   450
         * Handles a change in qwerty input mode setting.
hgs
parents:
diff changeset
   451
         * @return KErrNone if ok.
hgs
parents:
diff changeset
   452
         */
hgs
parents:
diff changeset
   453
        TInt HandleQwertyModeChangeNotification();
hgs
parents:
diff changeset
   454
hgs
parents:
diff changeset
   455
        /**
hgs
parents:
diff changeset
   456
         * Handles a change in qwerty input mode setting.
hgs
parents:
diff changeset
   457
         * @return KErrNone if ok.
hgs
parents:
diff changeset
   458
         */
hgs
parents:
diff changeset
   459
        static TInt QwertyModeChangeNotification( TAny* aObj );
hgs
parents:
diff changeset
   460
hgs
parents:
diff changeset
   461
hgs
parents:
diff changeset
   462
        /**
hgs
parents:
diff changeset
   463
        * Adds item to iSelectedEntries
hgs
parents:
diff changeset
   464
        * @param aEntryId: id of the entry to be added.
hgs
parents:
diff changeset
   465
        */
hgs
parents:
diff changeset
   466
        void AddItemToSelectionL( TMsvId aEntryId );
hgs
parents:
diff changeset
   467
hgs
parents:
diff changeset
   468
        /**
hgs
parents:
diff changeset
   469
        * Removes item from iSelectedEntries
hgs
parents:
diff changeset
   470
        * @param aEntryId: id of the entry to be removed.
hgs
parents:
diff changeset
   471
        */
hgs
parents:
diff changeset
   472
        void RemoveItemFromSelection( TMsvId aEntryId );
hgs
parents:
diff changeset
   473
hgs
parents:
diff changeset
   474
        /**
hgs
parents:
diff changeset
   475
        * Handles focus when operation is completed. 
hgs
parents:
diff changeset
   476
        * This is called by SetAnchorItemIdL when it gets
hgs
parents:
diff changeset
   477
        * EMessageListOperationCompleted.
hgs
parents:
diff changeset
   478
        */
hgs
parents:
diff changeset
   479
        void HandleOperationCompletedL();
hgs
parents:
diff changeset
   480
        
hgs
parents:
diff changeset
   481
        /**
hgs
parents:
diff changeset
   482
         * Handles shortcut for search
hgs
parents:
diff changeset
   483
         * Since 5.0
hgs
parents:
diff changeset
   484
         */
hgs
parents:
diff changeset
   485
        void HandleShortcutForSearchL( const TKeyEvent& aKeyEvent );
hgs
parents:
diff changeset
   486
hgs
parents:
diff changeset
   487
        /*
hgs
parents:
diff changeset
   488
        * Function that check if * key can change msglist state
hgs
parents:
diff changeset
   489
        * @return ETrue if it can
hgs
parents:
diff changeset
   490
        * Since 5.0
hgs
parents:
diff changeset
   491
        */
hgs
parents:
diff changeset
   492
        TBool StateCanBeChangedByStarKeyL() const;
hgs
parents:
diff changeset
   493
        
hgs
parents:
diff changeset
   494
        /*
hgs
parents:
diff changeset
   495
        *  Check if * key has been handled
hgs
parents:
diff changeset
   496
        *  @return ETrue if it's handled
hgs
parents:
diff changeset
   497
        *  Since 5.0
hgs
parents:
diff changeset
   498
        */
hgs
parents:
diff changeset
   499
        TBool HasHandleStarKeyDoneL();
hgs
parents:
diff changeset
   500
        
hgs
parents:
diff changeset
   501
        /*
hgs
parents:
diff changeset
   502
        *  mark item read/unread
hgs
parents:
diff changeset
   503
        * Since 5.0
hgs
parents:
diff changeset
   504
        */
hgs
parents:
diff changeset
   505
        void MarkReadUnreadWithStarKeyL();
hgs
parents:
diff changeset
   506
        /*
hgs
parents:
diff changeset
   507
        * Check if message list is sort by date
hgs
parents:
diff changeset
   508
        *  @return ETrue if it is
hgs
parents:
diff changeset
   509
        *  Since 5.0
hgs
parents:
diff changeset
   510
        */
hgs
parents:
diff changeset
   511
        TBool IsSortByDate();
hgs
parents:
diff changeset
   512
hgs
parents:
diff changeset
   513
hgs
parents:
diff changeset
   514
hgs
parents:
diff changeset
   515
    private:
hgs
parents:
diff changeset
   516
        CMceMessageListBox*            iListBox;
hgs
parents:
diff changeset
   517
        CMceMessageListItemArray*          iListItems;
hgs
parents:
diff changeset
   518
//        TMceListType                iListType;
hgs
parents:
diff changeset
   519
        CMsvEntrySelection*         iSelectedEntries;
hgs
parents:
diff changeset
   520
        TMsvId                      iAnchorItemId;
hgs
parents:
diff changeset
   521
        TInt                        iAnchorItemIndex;
hgs
parents:
diff changeset
   522
        
hgs
parents:
diff changeset
   523
        TInt                        iCurrMskResource;
hgs
parents:
diff changeset
   524
hgs
parents:
diff changeset
   525
//        CMceMessageListView&            iOwningView;        
hgs
parents:
diff changeset
   526
        CPtiEngine*                     iT9Interface;
hgs
parents:
diff changeset
   527
        CMceMessageListContainerKeyTimer* iT9Timer;        
hgs
parents:
diff changeset
   528
hgs
parents:
diff changeset
   529
        CMcePropertySubscriber*     iQwertyModeStatusSubscriber;
hgs
parents:
diff changeset
   530
        RProperty                   iQwertyModeStatusProperty;        
hgs
parents:
diff changeset
   531
        TBool                       iPreviousInputMethod;
hgs
parents:
diff changeset
   532
        TBool                       iInputMethodQwerty;
hgs
parents:
diff changeset
   533
        
hgs
parents:
diff changeset
   534
        TMessageListOperationType   iLastOperationType;
hgs
parents:
diff changeset
   535
        TBool 			            iDialerEvent ;
hgs
parents:
diff changeset
   536
        
hgs
parents:
diff changeset
   537
        CMsvEntrySelection* 		iAddedMsvIds;
hgs
parents:
diff changeset
   538
        
hgs
parents:
diff changeset
   539
    };
hgs
parents:
diff changeset
   540
    
hgs
parents:
diff changeset
   541
#endif
hgs
parents:
diff changeset
   542
hgs
parents:
diff changeset
   543
// End of file