messagingappbase/mce/inc/MceOneRowMessageListContainer.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
*     Container for main 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 MCEONEROWMESSAGELISTCONTAINER_H
hgs
parents:
diff changeset
    23
#define MCEONEROWMESSAGELISTCONTAINER_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 <bldvariant.hrh>
hgs
parents:
diff changeset
    28
#include <akntreelistobserver.h>
hgs
parents:
diff changeset
    29
#include <msvstd.h>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include "MceMessageListContainerBase.h"
hgs
parents:
diff changeset
    32
#include "MceMessageListContTimer.h"
hgs
parents:
diff changeset
    33
#include "MceOneRowMessageListArray.h"
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    36
class CMceOneRowListItemArray;
hgs
parents:
diff changeset
    37
class CAknSingleColumnStyleTreeList;
hgs
parents:
diff changeset
    38
class CAknsBasicBackgroundControlContext;
hgs
parents:
diff changeset
    39
class CPtiEngine;
hgs
parents:
diff changeset
    40
class CAknTreeList;
hgs
parents:
diff changeset
    41
class CMtmUiDataRegistry;
hgs
parents:
diff changeset
    42
// CLASS DECLARATION
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
/**
hgs
parents:
diff changeset
    46
*  Container for main view.
hgs
parents:
diff changeset
    47
*  Derived from CMceListContainer.
hgs
parents:
diff changeset
    48
*/
hgs
parents:
diff changeset
    49
class  CMceOneRowMessageListContainer :
hgs
parents:
diff changeset
    50
    public CMceMessageListContainerBase,
hgs
parents:
diff changeset
    51
    public MAknTreeListObserver,
hgs
parents:
diff changeset
    52
    public MMceOneRowListItemArrayObserver
hgs
parents:
diff changeset
    53
    {
hgs
parents:
diff changeset
    54
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
        /**
hgs
parents:
diff changeset
    57
        * Two-phased constructor.
hgs
parents:
diff changeset
    58
        */
hgs
parents:
diff changeset
    59
        static CMceOneRowMessageListContainer* NewL(
hgs
parents:
diff changeset
    60
            CMceMessageListView& aParentView,
hgs
parents:
diff changeset
    61
            const TRect& aRect,
hgs
parents:
diff changeset
    62
            CMsvSessionPtr aSession,
hgs
parents:
diff changeset
    63
            MMtmUiDataRegistryObserver& aRegObserver );
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
        /**
hgs
parents:
diff changeset
    66
        * Destructor.
hgs
parents:
diff changeset
    67
        */
hgs
parents:
diff changeset
    68
        virtual ~CMceOneRowMessageListContainer();
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
        /**
hgs
parents:
diff changeset
    71
        * From MAknTreeListObserver.
hgs
parents:
diff changeset
    72
        * Handles tree list events.
hgs
parents:
diff changeset
    73
        */
hgs
parents:
diff changeset
    74
        TBool HandleTreeListEvent( CAknTreeList& aList, TAknTreeItemID aItem,
hgs
parents:
diff changeset
    75
            TEvent aEvent );
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
        /**
hgs
parents:
diff changeset
    78
        * Resets tree list
hgs
parents:
diff changeset
    79
        */
hgs
parents:
diff changeset
    80
        void ResetListbox();
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
        /**
hgs
parents:
diff changeset
    83
        * Returns ETrue if empty list or there are items selected.
hgs
parents:
diff changeset
    84
        */
hgs
parents:
diff changeset
    85
        TBool DisplayOptionsMenuFromSelectionKey() const;
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
        /**
hgs
parents:
diff changeset
    88
        * From MMceOneRowListItemArrayObserver
hgs
parents:
diff changeset
    89
        */
hgs
parents:
diff changeset
    90
        void MceListItemArrayChangedL(
hgs
parents:
diff changeset
    91
            CArrayFixFlat<TInt>& aChangedItems );
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
        /**
hgs
parents:
diff changeset
    94
        * From MMceOneRowListItemArrayObserver
hgs
parents:
diff changeset
    95
        */
hgs
parents:
diff changeset
    96
        void HandleMarkCommandL( TInt aCommand );
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
        /**
hgs
parents:
diff changeset
    99
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   100
        */
hgs
parents:
diff changeset
   101
        TInt MceListId() const;
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
        /**
hgs
parents:
diff changeset
   104
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   105
        */
hgs
parents:
diff changeset
   106
        virtual TInt Count() const;
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
        /**
hgs
parents:
diff changeset
   109
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   110
        */
hgs
parents:
diff changeset
   111
        virtual TInt MessageCount() const;
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
        /**
hgs
parents:
diff changeset
   114
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   115
        */
hgs
parents:
diff changeset
   116
        virtual TInt FolderCount() const;
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
        /**
hgs
parents:
diff changeset
   119
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   120
        */
hgs
parents:
diff changeset
   121
        virtual TBool SetCurrentItemIdL( TMsvId aEntryId );
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 void ResetCurrentItemL();
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
        TMsvId FindEntry( const TDesC& aMatchString ) 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 void ItemCountChangedL( TBool aItemsAdded,
hgs
parents:
diff changeset
   137
                CArrayFix<TInt>* aAddedIndexes = 0 );
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
        /**
hgs
parents:
diff changeset
   140
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   141
        */
hgs
parents:
diff changeset
   142
        virtual void RefreshListbox();
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
        /**
hgs
parents:
diff changeset
   145
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   146
        */
hgs
parents:
diff changeset
   147
        virtual TBool FindFirstUnreadMessageL( TMsvId& aEntryId ) const;
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
        /**
hgs
parents:
diff changeset
   150
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   151
        */
hgs
parents:
diff changeset
   152
        virtual TMessageListItemType CurrentItemType() const;
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
        /**
hgs
parents:
diff changeset
   155
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   156
        */
hgs
parents:
diff changeset
   157
        void SetFolderL( TMsvId aFolderId );
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
        /**
hgs
parents:
diff changeset
   160
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   161
        */
hgs
parents:
diff changeset
   162
        TMsvId CurrentFolderId() const;
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
        const TMsvEntry& FolderEntry() const;
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
        TInt CurrentItemIndex() const;
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
        TMsvId  CurrentItemId() const;
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
        CMsvEntrySelection* CurrentItemSelectionL();
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
        CMsvEntrySelection* CurrentItemSelectionRefreshL();
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
        TInt CurrentItemSelectionCount() const;
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
        TInt SelectionCount() 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
        virtual TBool IsItemSelected( TMsvId aItemId );
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
        void ClearSelection();
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
        void MarkItemSelectionL();
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
        void AddCurrentItemToSelectionL();
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
        void RemoveCurrentItemFromSelection();
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
        void RefreshSelectionIndexesL( TBool aForceUpdate = EFalse );
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
        void AddAllToSelectionL();
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 MarkAllReadMessagesL();
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
        TInt MarkedItemsCount();
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
        TBool IsCurrentItemFolder() const;
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
        TBool IsItemFolder( TMsvId aItemId ) const;
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
        /**
hgs
parents:
diff changeset
   255
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   256
        */
hgs
parents:
diff changeset
   257
        TBool IsItemFolder( TInt aIndex ) const;
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
        /**
hgs
parents:
diff changeset
   260
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   261
        */
hgs
parents:
diff changeset
   262
        TBool IsItemRemote( TMsvId aItemId ) const;
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
        TBool IsOpenedFolder( TMsvId aFolderId ) const;
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
        virtual void SetSortTypeL( TInt aSortType, TBool aOrdering );
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
        virtual void SetMtmUiDataRegistry( MMtmUiDataRegistryObserver* aRegistryObserver );
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
        void SetListEmptyTextL(const TDesC& aText);
hgs
parents:
diff changeset
   283
hgs
parents:
diff changeset
   284
        /**
hgs
parents:
diff changeset
   285
        * From CCoeControl
hgs
parents:
diff changeset
   286
        */
hgs
parents:
diff changeset
   287
        void GetHelpContext(TCoeHelpContext& aContext) 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
        void SetAnchorItemIdL(
hgs
parents:
diff changeset
   293
            TMessageListOperationType aOperationType );
hgs
parents:
diff changeset
   294
hgs
parents:
diff changeset
   295
        /**
hgs
parents:
diff changeset
   296
        * From CMceMessageListContainerBase
hgs
parents:
diff changeset
   297
        */
hgs
parents:
diff changeset
   298
        void HandleMsvSessionEventL(
hgs
parents:
diff changeset
   299
            MMsvSessionObserver::TMsvSessionEvent aEvent,
hgs
parents:
diff changeset
   300
            CMsvEntrySelection& aSelection,
hgs
parents:
diff changeset
   301
            TBool aDraw );
hgs
parents:
diff changeset
   302
        
hgs
parents:
diff changeset
   303
        /**
hgs
parents:
diff changeset
   304
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   305
        */
hgs
parents:
diff changeset
   306
        TUint OptionsCommandSupported() const;
hgs
parents:
diff changeset
   307
hgs
parents:
diff changeset
   308
        /**
hgs
parents:
diff changeset
   309
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   310
        */
hgs
parents:
diff changeset
   311
        void HandleOptionsCommandL( TInt aCommand );
hgs
parents:
diff changeset
   312
        
hgs
parents:
diff changeset
   313
        /**
hgs
parents:
diff changeset
   314
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   315
        */
hgs
parents:
diff changeset
   316
        void DateTimeFormatChangedL( TInt aChangeFlag );
hgs
parents:
diff changeset
   317
hgs
parents:
diff changeset
   318
        /**
hgs
parents:
diff changeset
   319
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   320
        */
hgs
parents:
diff changeset
   321
        TInt SetSpecialMskL();
hgs
parents:
diff changeset
   322
            
hgs
parents:
diff changeset
   323
        /**
hgs
parents:
diff changeset
   324
        * Expands focused node
hgs
parents:
diff changeset
   325
        */
hgs
parents:
diff changeset
   326
        void ExpandFocusedNode();
hgs
parents:
diff changeset
   327
hgs
parents:
diff changeset
   328
        /**
hgs
parents:
diff changeset
   329
        * Collapses focused node
hgs
parents:
diff changeset
   330
        */
hgs
parents:
diff changeset
   331
        void CollapseFocusedNode();
hgs
parents:
diff changeset
   332
        
hgs
parents:
diff changeset
   333
        /**
hgs
parents:
diff changeset
   334
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   335
        */
hgs
parents:
diff changeset
   336
        void UpdateIconArrayL( );
hgs
parents:
diff changeset
   337
		
hgs
parents:
diff changeset
   338
        /**
hgs
parents:
diff changeset
   339
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   340
        */
hgs
parents:
diff changeset
   341
        void SetMarkingModeOff();
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
    public:     // Functions from base classes
hgs
parents:
diff changeset
   344
hgs
parents:
diff changeset
   345
        /**
hgs
parents:
diff changeset
   346
        * From CCoeControl
hgs
parents:
diff changeset
   347
        */
hgs
parents:
diff changeset
   348
        TInt CountComponentControls() const;
hgs
parents:
diff changeset
   349
hgs
parents:
diff changeset
   350
        /**
hgs
parents:
diff changeset
   351
        * From CCoeControl
hgs
parents:
diff changeset
   352
        */
hgs
parents:
diff changeset
   353
        CCoeControl* ComponentControl(TInt aIndex) const;
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
        virtual TKeyResponse OfferKeyEventL(
hgs
parents:
diff changeset
   359
            const TKeyEvent& aKeyEvent,
hgs
parents:
diff changeset
   360
            TEventCode aType );
hgs
parents:
diff changeset
   361
hgs
parents:
diff changeset
   362
        /**
hgs
parents:
diff changeset
   363
        * From CCoeControl
hgs
parents:
diff changeset
   364
        */
hgs
parents:
diff changeset
   365
        void SizeChanged();
hgs
parents:
diff changeset
   366
hgs
parents:
diff changeset
   367
        /**
hgs
parents:
diff changeset
   368
        * From CAknAppUi
hgs
parents:
diff changeset
   369
        */
hgs
parents:
diff changeset
   370
        void HandleResourceChange( TInt aType );
hgs
parents:
diff changeset
   371
hgs
parents:
diff changeset
   372
        /**
hgs
parents:
diff changeset
   373
        * From MEikCommandObserver
hgs
parents:
diff changeset
   374
        */
hgs
parents:
diff changeset
   375
        virtual void ProcessCommandL(TInt aCommand);
hgs
parents:
diff changeset
   376
hgs
parents:
diff changeset
   377
        /**
hgs
parents:
diff changeset
   378
        * Retrieves an object of the same type as that encapsulated in aId.
hgs
parents:
diff changeset
   379
        *
hgs
parents:
diff changeset
   380
        * @param aId An encapsulated object type ID.
hgs
parents:
diff changeset
   381
        */
hgs
parents:
diff changeset
   382
        TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
hgs
parents:
diff changeset
   383
hgs
parents:
diff changeset
   384
        /**
hgs
parents:
diff changeset
   385
        * Tries to find item from the currently opened list and retuns
hgs
parents:
diff changeset
   386
        * list index if found. KErrNotFound if not found.
hgs
parents:
diff changeset
   387
        * @param aId: item id to be searched
hgs
parents:
diff changeset
   388
        * @return List index of the item.
hgs
parents:
diff changeset
   389
        */
hgs
parents:
diff changeset
   390
        TInt ItemIndex( TMsvId aId ) const;
hgs
parents:
diff changeset
   391
hgs
parents:
diff changeset
   392
        /**
hgs
parents:
diff changeset
   393
        * From CCoeControl.
hgs
parents:
diff changeset
   394
        * Draws this CHierarchicalColumnListAppView to the screen.
hgs
parents:
diff changeset
   395
        *
hgs
parents:
diff changeset
   396
        * @param aRect the rectangle of this view that needs updating.
hgs
parents:
diff changeset
   397
        */
hgs
parents:
diff changeset
   398
        void Draw( const TRect& aRect ) const;
hgs
parents:
diff changeset
   399
hgs
parents:
diff changeset
   400
        /**
hgs
parents:
diff changeset
   401
        * Sets MSK command
hgs
parents:
diff changeset
   402
        * @param aLabelResourceId Resource Id for MSK
hgs
parents:
diff changeset
   403
        */
hgs
parents:
diff changeset
   404
        void ChangeMskCommand( TInt aLabelResourceId );
hgs
parents:
diff changeset
   405
hgs
parents:
diff changeset
   406
        /**
hgs
parents:
diff changeset
   407
        * From CMceMessageListContainerBase 
hgs
parents:
diff changeset
   408
        */
hgs
parents:
diff changeset
   409
        void SetContainerFlag( TMceContainerFlags aFlag, TBool aState );
hgs
parents:
diff changeset
   410
hgs
parents:
diff changeset
   411
    protected:  // Functions from base classes
hgs
parents:
diff changeset
   412
        // From CCoeControl
hgs
parents:
diff changeset
   413
        void FocusChanged(TDrawNow aDrawNow);
hgs
parents:
diff changeset
   414
hgs
parents:
diff changeset
   415
    private:
hgs
parents:
diff changeset
   416
hgs
parents:
diff changeset
   417
        /**
hgs
parents:
diff changeset
   418
        * Symbian OS constructor.
hgs
parents:
diff changeset
   419
        */
hgs
parents:
diff changeset
   420
        void ConstructL(
hgs
parents:
diff changeset
   421
            const TRect& aRect,
hgs
parents:
diff changeset
   422
            CMsvSessionPtr aSession,
hgs
parents:
diff changeset
   423
            MMtmUiDataRegistryObserver& aRegObserver );
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
        /**
hgs
parents:
diff changeset
   426
        * Constructor is private.
hgs
parents:
diff changeset
   427
        */
hgs
parents:
diff changeset
   428
        CMceOneRowMessageListContainer( CMceMessageListView& aParentView );
hgs
parents:
diff changeset
   429
hgs
parents:
diff changeset
   430
        /**
hgs
parents:
diff changeset
   431
         * Function that check if a key can be search
hgs
parents:
diff changeset
   432
         * @param aPointerEvent The pointer event
hgs
parents:
diff changeset
   433
         * @return ETrue if it can
hgs
parents:
diff changeset
   434
         * since 3.2
hgs
parents:
diff changeset
   435
         */
hgs
parents:
diff changeset
   436
        TBool IsValidSearchKey(const TKeyEvent& aKeyEvent);
hgs
parents:
diff changeset
   437
hgs
parents:
diff changeset
   438
        /**
hgs
parents:
diff changeset
   439
        * Add children items to specified node
hgs
parents:
diff changeset
   440
        * @param aParentId Parent node Id
hgs
parents:
diff changeset
   441
        */
hgs
parents:
diff changeset
   442
        void AddChildrenL( TAknTreeItemID aParentId );
hgs
parents:
diff changeset
   443
hgs
parents:
diff changeset
   444
        /**
hgs
parents:
diff changeset
   445
        * Removes children from specified node
hgs
parents:
diff changeset
   446
        * @param aParentId Parent node Id
hgs
parents:
diff changeset
   447
        */
hgs
parents:
diff changeset
   448
        void RemoveChildren( TAknTreeItemID aParentId );
hgs
parents:
diff changeset
   449
hgs
parents:
diff changeset
   450
        /**
hgs
parents:
diff changeset
   451
        * Gets number of marked items
hgs
parents:
diff changeset
   452
        * @return number of marked items
hgs
parents:
diff changeset
   453
        */
hgs
parents:
diff changeset
   454
        TInt GetMarkedItemsCountL() const;
hgs
parents:
diff changeset
   455
        
hgs
parents:
diff changeset
   456
        /**
hgs
parents:
diff changeset
   457
        * Adds default icons
hgs
parents:
diff changeset
   458
        */
hgs
parents:
diff changeset
   459
        void AddDefaultIconsL();
hgs
parents:
diff changeset
   460
        
hgs
parents:
diff changeset
   461
        /**
hgs
parents:
diff changeset
   462
        * Adds an entry to tree list
hgs
parents:
diff changeset
   463
        * @param aEntryIndex index of new entry
hgs
parents:
diff changeset
   464
        */
hgs
parents:
diff changeset
   465
        void AddEntryL( TInt aEntryIndex );
hgs
parents:
diff changeset
   466
        
hgs
parents:
diff changeset
   467
        /**
hgs
parents:
diff changeset
   468
        * Updates an entry
hgs
parents:
diff changeset
   469
        * @param aEntryId TMsvId of the entry to be changed
hgs
parents:
diff changeset
   470
        */
hgs
parents:
diff changeset
   471
        void UpdateEntryL( TMsvId aEntryId );
hgs
parents:
diff changeset
   472
        
hgs
parents:
diff changeset
   473
        /**
hgs
parents:
diff changeset
   474
        * Updates tree list when new entry created
hgs
parents:
diff changeset
   475
        * @param aSelection Items created
hgs
parents:
diff changeset
   476
        * @param aDraw Will list be drawed immediality
hgs
parents:
diff changeset
   477
        */
hgs
parents:
diff changeset
   478
        void EntryCreatedL( 
hgs
parents:
diff changeset
   479
            CMsvEntrySelection& aSelection,
hgs
parents:
diff changeset
   480
            TBool aDraw );
hgs
parents:
diff changeset
   481
        
hgs
parents:
diff changeset
   482
        /**
hgs
parents:
diff changeset
   483
        * Updates tree list when entry deleted
hgs
parents:
diff changeset
   484
        * @param aSelection Items deleted
hgs
parents:
diff changeset
   485
        * @param aDraw Will list be drawed immediality
hgs
parents:
diff changeset
   486
        */
hgs
parents:
diff changeset
   487
        void EntryDeletedL( 
hgs
parents:
diff changeset
   488
            CMsvEntrySelection& aSelection,
hgs
parents:
diff changeset
   489
            TBool aDraw );
hgs
parents:
diff changeset
   490
        
hgs
parents:
diff changeset
   491
        /**
hgs
parents:
diff changeset
   492
         * Handles shortcut for search
hgs
parents:
diff changeset
   493
         * Since 5.0
hgs
parents:
diff changeset
   494
         */
hgs
parents:
diff changeset
   495
        void HandleShortcutForSearchL( const TKeyEvent& aKeyEvent );
hgs
parents:
diff changeset
   496
hgs
parents:
diff changeset
   497
        /*
hgs
parents:
diff changeset
   498
        * Function that check if * key can change msglist state
hgs
parents:
diff changeset
   499
        * @return ETrue if it can
hgs
parents:
diff changeset
   500
        * Since 5.0
hgs
parents:
diff changeset
   501
        */
hgs
parents:
diff changeset
   502
        TBool StateCanBeChangedByStarKeyL() const;
hgs
parents:
diff changeset
   503
        
hgs
parents:
diff changeset
   504
        /*
hgs
parents:
diff changeset
   505
        *  Check if * key has been handled
hgs
parents:
diff changeset
   506
        *  @return ETrue if it's handled
hgs
parents:
diff changeset
   507
        *  Since 5.0
hgs
parents:
diff changeset
   508
        */
hgs
parents:
diff changeset
   509
        TBool HasHandleStarKeyDoneL();
hgs
parents:
diff changeset
   510
        
hgs
parents:
diff changeset
   511
        /*
hgs
parents:
diff changeset
   512
        *  mark item read/unread
hgs
parents:
diff changeset
   513
        * Since 5.0
hgs
parents:
diff changeset
   514
        */
hgs
parents:
diff changeset
   515
        void MarkReadUnreadWithStarKeyL();
hgs
parents:
diff changeset
   516
hgs
parents:
diff changeset
   517
        /*
hgs
parents:
diff changeset
   518
        * Check if message list is sort by date
hgs
parents:
diff changeset
   519
        *  @return ETrue if it is
hgs
parents:
diff changeset
   520
        *  Since 5.0
hgs
parents:
diff changeset
   521
        */
hgs
parents:
diff changeset
   522
        TBool IsSortByDate();
hgs
parents:
diff changeset
   523
hgs
parents:
diff changeset
   524
        /*
hgs
parents:
diff changeset
   525
        * Get icon id for subtitle icon
hgs
parents:
diff changeset
   526
        * @param aSortType used sorting 
hgs
parents:
diff changeset
   527
        * @param aSetUnread ETrue if unread type of icon
hgs
parents:
diff changeset
   528
        * @return Icon id 
hgs
parents:
diff changeset
   529
        */
hgs
parents:
diff changeset
   530
        TInt GetSubtitleIcon ( TBool aSetUnread );
hgs
parents:
diff changeset
   531
hgs
parents:
diff changeset
   532
        /*
hgs
parents:
diff changeset
   533
        * Updates subtitle icon
hgs
parents:
diff changeset
   534
        * @param aSubtitleID: subtitle ID
hgs
parents:
diff changeset
   535
        * @param aReadStatusKnown: ETrue if there is known unread item under subtitle
hgs
parents:
diff changeset
   536
        */
hgs
parents:
diff changeset
   537
        void UpdateSubtitleIconL( TAknTreeItemID aSubtitleID, TBool aReadStatusKnown );
hgs
parents:
diff changeset
   538
hgs
parents:
diff changeset
   539
        /**
hgs
parents:
diff changeset
   540
        * From CCoeControl.
hgs
parents:
diff changeset
   541
        * Handles pointer events.
hgs
parents:
diff changeset
   542
        * @param aPointerEvent The pointer event. 
hgs
parents:
diff changeset
   543
        */
hgs
parents:
diff changeset
   544
        virtual void HandlePointerEventL( const TPointerEvent& aPointerEvent );
hgs
parents:
diff changeset
   545
hgs
parents:
diff changeset
   546
        /**
hgs
parents:
diff changeset
   547
        * Saves marked items
hgs
parents:
diff changeset
   548
        */
hgs
parents:
diff changeset
   549
        void SaveMarkingL();
hgs
parents:
diff changeset
   550
        /**
hgs
parents:
diff changeset
   551
        * Handles focus when operation is completed. 
hgs
parents:
diff changeset
   552
        * This is called by SetAnchorItemIdL when it gets
hgs
parents:
diff changeset
   553
        * EMessageListOperationCompleted.
hgs
parents:
diff changeset
   554
        */
hgs
parents:
diff changeset
   555
        void HandleOperationCompletedL();
hgs
parents:
diff changeset
   556
hgs
parents:
diff changeset
   557
        /**
hgs
parents:
diff changeset
   558
         * Check the MTM technology type for Mail Technology 
hgs
parents:
diff changeset
   559
         * @param aMtm: Mtm Uid
hgs
parents:
diff changeset
   560
         * @return : ETrue if Mtm Technology is Mail
hgs
parents:
diff changeset
   561
         *           otherwsie EFalse
hgs
parents:
diff changeset
   562
         */
hgs
parents:
diff changeset
   563
        TBool IsMailMtmTechnology( TUid aMtm )const;
hgs
parents:
diff changeset
   564
        
hgs
parents:
diff changeset
   565
    private:
hgs
parents:
diff changeset
   566
hgs
parents:
diff changeset
   567
        CAknSingleColumnStyleTreeList*      iTreeListBox;
hgs
parents:
diff changeset
   568
        CMceOneRowListItemArray*            iListItems;
hgs
parents:
diff changeset
   569
        CMceOneRowBitmapResolver*           iBitmapResolver;
hgs
parents:
diff changeset
   570
        CMsvEntrySelection*                 iSelectedEntries;
hgs
parents:
diff changeset
   571
        TMsvId                              iAnchorItemId;
hgs
parents:
diff changeset
   572
        TAknTreeItemID                      iAnchorItemIndex;
hgs
parents:
diff changeset
   573
        TMessageListOperationType           iLastOperationType;
hgs
parents:
diff changeset
   574
        TMsvId                              iSelectedItemWaitingIndex;
hgs
parents:
diff changeset
   575
hgs
parents:
diff changeset
   576
        /**
hgs
parents:
diff changeset
   577
        * Background control context.
hgs
parents:
diff changeset
   578
        * Own.
hgs
parents:
diff changeset
   579
        */
hgs
parents:
diff changeset
   580
        CAknsBasicBackgroundControlContext* iBgContext;
hgs
parents:
diff changeset
   581
hgs
parents:
diff changeset
   582
        TAknTreeItemID              iNodeId;
hgs
parents:
diff changeset
   583
        TBool                       iMarkingModeEnabled;
hgs
parents:
diff changeset
   584
        CPtiEngine*                 iT9Interface;
hgs
parents:
diff changeset
   585
        CMceMessageListContainerKeyTimer* iT9Timer;        
hgs
parents:
diff changeset
   586
        TBool                       iPreviousInputMethod;
hgs
parents:
diff changeset
   587
        TBool                       iInputMethodQwerty;
hgs
parents:
diff changeset
   588
        TMceFlags                   iContainerFlags;
hgs
parents:
diff changeset
   589
        TDay                        iStartOfWeek;
hgs
parents:
diff changeset
   590
        TBool 			            iDialerEvent;
hgs
parents:
diff changeset
   591
        /**
hgs
parents:
diff changeset
   592
         * CMail Changes, it will be ETrue if 
hgs
parents:
diff changeset
   593
         * KFeatureIdFfEmailFramework is enabled
hgs
parents:
diff changeset
   594
         */
hgs
parents:
diff changeset
   595
        TBool                       iEmailFramework;
hgs
parents:
diff changeset
   596
        CMtmUiDataRegistry*         iUiRegistry;
hgs
parents:
diff changeset
   597
        /**
hgs
parents:
diff changeset
   598
         * For mass deletion of messages in onerowlist 
hgs
parents:
diff changeset
   599
         * iDeletedMessges will keeptrack of no of messages got actually 
hgs
parents:
diff changeset
   600
         *                 deleted and we got the call back from m/w
hgs
parents:
diff changeset
   601
         * iSelectedSubTitles will keep list of all the subtitles from where
hgs
parents:
diff changeset
   602
         *                 messages got deleted but not the subtitle.  
hgs
parents:
diff changeset
   603
         */
hgs
parents:
diff changeset
   604
        TInt                        iDeletedMessges;
hgs
parents:
diff changeset
   605
        RArray<TAknTreeItemID>      iSelectedSubTitles;
hgs
parents:
diff changeset
   606
hgs
parents:
diff changeset
   607
    };
hgs
parents:
diff changeset
   608
hgs
parents:
diff changeset
   609
#endif
hgs
parents:
diff changeset
   610
hgs
parents:
diff changeset
   611
// End of file