mobilemessaging/mmsui/viewerinc/UniMmsViewerAppUi.h
author hgs
Wed, 03 Nov 2010 09:52:46 +0530
changeset 79 2981cb3aa489
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
79
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2006 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
*     CMmsViewerAppUi class definition.
hgs
parents:
diff changeset
    16
*
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
#ifndef MMSVIEWERAPPUI_H
hgs
parents:
diff changeset
    22
#define MMSVIEWERAPPUI_H
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// INCLUDES
hgs
parents:
diff changeset
    25
#include <finditemengine.h>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
#ifdef RD_SCALABLE_UI_V2
hgs
parents:
diff changeset
    28
#include <akntoolbarobserver.h>
hgs
parents:
diff changeset
    29
#endif
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include <MuiuMessageIterator.h>
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
#include <MsgEditorAppUi.h>             // CMsgEditorAppUi
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
#include <cenrepnotifyhandler.h>
hgs
parents:
diff changeset
    36
#include <DRMCommon.h>
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
#include <msgasynccontrolobserver.h>    //MMsgMediaControlObserver
hgs
parents:
diff changeset
    39
#include <uniobject.h>
hgs
parents:
diff changeset
    40
#include <unidrminfo.h>                 // CUniDrmInfo
hgs
parents:
diff changeset
    41
#include <AknNaviDecoratorObserver.h>
hgs
parents:
diff changeset
    42
#include <aknlongtapdetector.h> // for long tap
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
#include "MmsViewer.hrh"                // enumerations
hgs
parents:
diff changeset
    45
#include "MmsViewerOperation.h"
hgs
parents:
diff changeset
    46
#include "UniMmsSvkEvents.h"               // MMmsSvkEventsObserver
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
// FUNCTION PROTOTYPES
hgs
parents:
diff changeset
    49
GLREF_C void Panic( TMmsViewerExceptions aPanic ); 
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    52
#ifndef RD_MSG_NAVIPANE_IMPROVEMENT
hgs
parents:
diff changeset
    53
class CAknNavigationDecorator;
hgs
parents:
diff changeset
    54
#endif
hgs
parents:
diff changeset
    55
class CAknNavigationControlContainer;
hgs
parents:
diff changeset
    56
class CAknTitlePane;
hgs
parents:
diff changeset
    57
class CAknWaitDialog;
hgs
parents:
diff changeset
    58
class CMdaAudioPlayerUtility;
hgs
parents:
diff changeset
    59
class MVideoControlStateObserver;
hgs
parents:
diff changeset
    60
class CFindItemMenu;
hgs
parents:
diff changeset
    61
class CFindItemEngine;
hgs
parents:
diff changeset
    62
class CDocumentHandler;
hgs
parents:
diff changeset
    63
class CDRMRights;
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
class CAknLocalScreenClearer;
hgs
parents:
diff changeset
    66
class CMmsViewerLaunchOperation;
hgs
parents:
diff changeset
    67
class CMmsViewerChangeSlideOperation;
hgs
parents:
diff changeset
    68
class CMmsViewerHeader;
hgs
parents:
diff changeset
    69
class CMmsViewerSendReadReportOperation;
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
class CMsgMediaInfo;
hgs
parents:
diff changeset
    72
class CMsgMediaControl;
hgs
parents:
diff changeset
    73
class CMsgAudioControl;
hgs
parents:
diff changeset
    74
class CMsgVideoControl;
hgs
parents:
diff changeset
    75
class CMsgImageControl;
hgs
parents:
diff changeset
    76
#ifdef RD_SVGT_IN_MESSAGING
hgs
parents:
diff changeset
    77
class CMsgSvgControl;
hgs
parents:
diff changeset
    78
#endif
hgs
parents:
diff changeset
    79
class CMmsConformance;
hgs
parents:
diff changeset
    80
class CUniSlideLoader;
hgs
parents:
diff changeset
    81
class CUniSmilModel;
hgs
parents:
diff changeset
    82
class CUniObjectList;
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
class CRepository;
hgs
parents:
diff changeset
    85
class CSendingServiceInfo;
hgs
parents:
diff changeset
    86
class CMsgVoIPExtension;
hgs
parents:
diff changeset
    87
class CAknInputBlock;
hgs
parents:
diff changeset
    88
class CPeriodic;
hgs
parents:
diff changeset
    89
class CAknVolumeControl;
hgs
parents:
diff changeset
    90
class CAknInputBlock;
hgs
parents:
diff changeset
    91
class CAknToolbar;
hgs
parents:
diff changeset
    92
class CAknStylusPopUpMenu;
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
// CLASS DECLARATION
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
/**
hgs
parents:
diff changeset
    97
*  CMmsViewerAppUi
hgs
parents:
diff changeset
    98
*  Inherited from CMsgEditorAppUi
hgs
parents:
diff changeset
    99
*/
hgs
parents:
diff changeset
   100
class CMmsViewerAppUi :
hgs
parents:
diff changeset
   101
    public CMsgEditorAppUi,
hgs
parents:
diff changeset
   102
    public MCenRepNotifyHandlerCallback,
hgs
parents:
diff changeset
   103
    public MMsgAsyncControlObserver,
hgs
parents:
diff changeset
   104
    public MMmsViewerOperationObserver,     // ViewerOperationEvent
hgs
parents:
diff changeset
   105
    public MMmsSvkEventsObserver,           // MmsSvkChangeVolumeL
hgs
parents:
diff changeset
   106
    public MAknServerAppExitObserver,       // for image viewer
hgs
parents:
diff changeset
   107
#ifdef RD_SCALABLE_UI_V2
hgs
parents:
diff changeset
   108
#ifndef RD_MSG_NAVIPANE_IMPROVEMENT
hgs
parents:
diff changeset
   109
    public MAknNaviDecoratorObserver,       //for navidecorator
hgs
parents:
diff changeset
   110
#endif
hgs
parents:
diff changeset
   111
    public MAknToolbarObserver,             //toolbar
hgs
parents:
diff changeset
   112
#endif
hgs
parents:
diff changeset
   113
    public MCoeControlObserver,              // of CAknVolumeControl
hgs
parents:
diff changeset
   114
    public MUniObjectObserver,
hgs
parents:
diff changeset
   115
    public MAknLongTapDetectorCallBack
hgs
parents:
diff changeset
   116
    {
hgs
parents:
diff changeset
   117
    public:  // Constructors and destructor
hgs
parents:
diff changeset
   118
        
hgs
parents:
diff changeset
   119
        /**
hgs
parents:
diff changeset
   120
        * C++ default constructor.
hgs
parents:
diff changeset
   121
        */
hgs
parents:
diff changeset
   122
        CMmsViewerAppUi();
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
        /**
hgs
parents:
diff changeset
   125
        * Destructor.
hgs
parents:
diff changeset
   126
        */
hgs
parents:
diff changeset
   127
        virtual ~CMmsViewerAppUi();
hgs
parents:
diff changeset
   128
        
hgs
parents:
diff changeset
   129
    protected: 
hgs
parents:
diff changeset
   130
    
hgs
parents:
diff changeset
   131
        /**
hgs
parents:
diff changeset
   132
         * Prepare to exit.
hgs
parents:
diff changeset
   133
         * from CEikAppUi
hgs
parents:
diff changeset
   134
         */
hgs
parents:
diff changeset
   135
        void PrepareToExit();
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
    private: // New functions        
hgs
parents:
diff changeset
   138
        
hgs
parents:
diff changeset
   139
        /**
hgs
parents:
diff changeset
   140
        * Calls InitNavipaneL, PrepareHeaderL and PrepareBodyL
hgs
parents:
diff changeset
   141
        * and does some validity checks.
hgs
parents:
diff changeset
   142
        */
hgs
parents:
diff changeset
   143
        void DrawSlideL();
hgs
parents:
diff changeset
   144
        
hgs
parents:
diff changeset
   145
        /**
hgs
parents:
diff changeset
   146
        * Set waiting note.
hgs
parents:
diff changeset
   147
        */
hgs
parents:
diff changeset
   148
        void SetPendingNote(    TInt                aResourceId, 
hgs
parents:
diff changeset
   149
                                CUniObject*         aObject = NULL,
hgs
parents:
diff changeset
   150
                                TInt                aError = KErrNone );
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
        /**
hgs
parents:
diff changeset
   153
        * Shows notes related to message opening, 
hgs
parents:
diff changeset
   154
        * which could not shown until loading was complete
hgs
parents:
diff changeset
   155
        */
hgs
parents:
diff changeset
   156
        void ShowPendingNoteL();
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
        /**
hgs
parents:
diff changeset
   159
        * Changes slide. Calls ResetViewL and DrawSlideL. Creates
hgs
parents:
diff changeset
   160
        * a screen blanker to hide the view operations from the user.
hgs
parents:
diff changeset
   161
        * @param aSlideNumber The number of the slide to be shown next.
hgs
parents:
diff changeset
   162
        * @param aScreenClearer Screen clearer is run
hgs
parents:
diff changeset
   163
        */
hgs
parents:
diff changeset
   164
        void ChangeSlideL( TInt aSlideNumber, TBool aScreenClearer );
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
        /**
hgs
parents:
diff changeset
   167
        * Initializes navipane according to message content
hgs
parents:
diff changeset
   168
        */
hgs
parents:
diff changeset
   169
        void InitNavipaneL();
hgs
parents:
diff changeset
   170
        
hgs
parents:
diff changeset
   171
        /**
hgs
parents:
diff changeset
   172
        * Sub function for InitNavipaneL();
hgs
parents:
diff changeset
   173
        * @param aText string in the right hand side of navipane
hgs
parents:
diff changeset
   174
        */
hgs
parents:
diff changeset
   175
#ifndef RD_MSG_NAVIPANE_IMPROVEMENT
hgs
parents:
diff changeset
   176
        void CreateTabGroupL( const TDesC& aText );
hgs
parents:
diff changeset
   177
#endif 
hgs
parents:
diff changeset
   178
        /**
hgs
parents:
diff changeset
   179
        * Resets the message view. This function is called
hgs
parents:
diff changeset
   180
        * when moving from slide to slide.
hgs
parents:
diff changeset
   181
        * @param TBool ETrue -> only body reseted
hgs
parents:
diff changeset
   182
        *              EFalse -> body and header reseted
hgs
parents:
diff changeset
   183
        */
hgs
parents:
diff changeset
   184
        void ResetViewL();
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
        // Command functions
hgs
parents:
diff changeset
   188
        
hgs
parents:
diff changeset
   189
        /**
hgs
parents:
diff changeset
   190
        * Implements reply commands.
hgs
parents:
diff changeset
   191
        * Launches MMS Editor for replying/forwarding.
hgs
parents:
diff changeset
   192
        * @param aCase either EReplyToSender or EReplyToAll
hgs
parents:
diff changeset
   193
        */
hgs
parents:
diff changeset
   194
        void DoReplyL( TInt aCase );
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
        /**
hgs
parents:
diff changeset
   197
        * Implements forward command.
hgs
parents:
diff changeset
   198
        * Launches MMS Editor for replying/forwarding.
hgs
parents:
diff changeset
   199
        */
hgs
parents:
diff changeset
   200
        void DoForwardL();
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
        TBool CanForwardL( TInt& aResourceId );
hgs
parents:
diff changeset
   203
        TBool CanForwardObjectsL( TInt& aResourceId );
hgs
parents:
diff changeset
   204
        void CanForwardObjectsInListL( 
hgs
parents:
diff changeset
   205
                                        CUniObjectList* aObjectList, 
hgs
parents:
diff changeset
   206
                                        TInt& aSdCount, 
hgs
parents:
diff changeset
   207
                                        TInt& aFlCount, 
hgs
parents:
diff changeset
   208
                                        TInt& aNonConfCount, 
hgs
parents:
diff changeset
   209
                                        TInt& aNormalCount,
hgs
parents:
diff changeset
   210
                                        TInt& aResourceId ) const;
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
        /**
hgs
parents:
diff changeset
   213
        * Implements reply via SMS/Audio message command.
hgs
parents:
diff changeset
   214
        * Launches SMS/Audio message/Email Editor by utilising SendUI.
hgs
parents:
diff changeset
   215
        * @param aCase EMmsViewerReplyViaAudio or EMmsViewerReplyViaMail
hgs
parents:
diff changeset
   216
        */
hgs
parents:
diff changeset
   217
        void DoReplyViaL( TInt aCase);
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
        /**
hgs
parents:
diff changeset
   220
        * Implements the view image command.
hgs
parents:
diff changeset
   221
        * Launches PhotoAlbum's ImageViewer.
hgs
parents:
diff changeset
   222
        */
hgs
parents:
diff changeset
   223
        void DoViewImageL();
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
        /**
hgs
parents:
diff changeset
   226
        * Implements the objects command.
hgs
parents:
diff changeset
   227
        * Opens the Objects view where the user can access
hgs
parents:
diff changeset
   228
        * individual media elements in a list format.
hgs
parents:
diff changeset
   229
        */
hgs
parents:
diff changeset
   230
        void DoObjectsL();
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
        /**
hgs
parents:
diff changeset
   233
        * Implements the move command.
hgs
parents:
diff changeset
   234
        * Shows a folder selection dialog
hgs
parents:
diff changeset
   235
        * (CMsgFolderSelectionDialog), moves the message
hgs
parents:
diff changeset
   236
        * entry into selected folder and exits the viewer.
hgs
parents:
diff changeset
   237
        */
hgs
parents:
diff changeset
   238
        void DoMoveMessageL();
hgs
parents:
diff changeset
   239
        
hgs
parents:
diff changeset
   240
        /**
hgs
parents:
diff changeset
   241
        * Implements the "Send" key functionality.
hgs
parents:
diff changeset
   242
        * Uses MsvUiServiceUtilities::CallServiceL to create a call.
hgs
parents:
diff changeset
   243
        */
hgs
parents:
diff changeset
   244
        void DoHandleSendKeyL();
hgs
parents:
diff changeset
   245
        
hgs
parents:
diff changeset
   246
        /**
hgs
parents:
diff changeset
   247
        * Implements the message info command.
hgs
parents:
diff changeset
   248
        * Opens message info dialog provided by MMS ui mtm.
hgs
parents:
diff changeset
   249
        */
hgs
parents:
diff changeset
   250
        void DoMessageInfoL();
hgs
parents:
diff changeset
   251
        
hgs
parents:
diff changeset
   252
        /**
hgs
parents:
diff changeset
   253
        * Start SMIL presentation
hgs
parents:
diff changeset
   254
        */
hgs
parents:
diff changeset
   255
        void DoShowPresentationL();
hgs
parents:
diff changeset
   256
hgs
parents:
diff changeset
   257
        /**
hgs
parents:
diff changeset
   258
        * Implements the delete command.
hgs
parents:
diff changeset
   259
        * Shows a confirmation query, deletes the message
hgs
parents:
diff changeset
   260
        * entry and exits the viewer.
hgs
parents:
diff changeset
   261
        */
hgs
parents:
diff changeset
   262
        void DoDeleteAndExitL();
hgs
parents:
diff changeset
   263
hgs
parents:
diff changeset
   264
        /**
hgs
parents:
diff changeset
   265
        * Sets qtn_drm_preview_msg into waiting queue ( SetPendingNote() ),
hgs
parents:
diff changeset
   266
        * if needed.
hgs
parents:
diff changeset
   267
        */ 
hgs
parents:
diff changeset
   268
        void ResolveDrmWaitingNotes();
hgs
parents:
diff changeset
   269
        
hgs
parents:
diff changeset
   270
        //Audio related functions:
hgs
parents:
diff changeset
   271
        //
hgs
parents:
diff changeset
   272
        
hgs
parents:
diff changeset
   273
        /**
hgs
parents:
diff changeset
   274
        * Cancels the automatic play of an audio (or a video)
hgs
parents:
diff changeset
   275
        * file.
hgs
parents:
diff changeset
   276
        */
hgs
parents:
diff changeset
   277
        void CancelAutoplay();
hgs
parents:
diff changeset
   278
                  
hgs
parents:
diff changeset
   279
        /**
hgs
parents:
diff changeset
   280
        * State of an control on the UI has changed
hgs
parents:
diff changeset
   281
        * @param aControl control
hgs
parents:
diff changeset
   282
        * @param aState new state
hgs
parents:
diff changeset
   283
        * @param aState previous state
hgs
parents:
diff changeset
   284
        */
hgs
parents:
diff changeset
   285
        void MsgAsyncControlStateChanged(   
hgs
parents:
diff changeset
   286
                                    CMsgBaseControl& aControl,
hgs
parents:
diff changeset
   287
                                    TMsgAsyncControlState aNewState,
hgs
parents:
diff changeset
   288
                                    TMsgAsyncControlState aOldState );
hgs
parents:
diff changeset
   289
        void DoMsgMediaControlStateChangedL(   
hgs
parents:
diff changeset
   290
                                    CMsgMediaControl& aControl,
hgs
parents:
diff changeset
   291
                                    TMsgAsyncControlState aNewState,
hgs
parents:
diff changeset
   292
                                    TMsgAsyncControlState aOldState );
hgs
parents:
diff changeset
   293
        
hgs
parents:
diff changeset
   294
        /**
hgs
parents:
diff changeset
   295
        * Asynchronous control on the UI has received resource change event.
hgs
parents:
diff changeset
   296
        *
hgs
parents:
diff changeset
   297
        * @param aControl control
hgs
parents:
diff changeset
   298
        * @param aType event type
hgs
parents:
diff changeset
   299
        */
hgs
parents:
diff changeset
   300
        void MsgAsyncControlResourceChanged( CMsgBaseControl& aControl, TInt aType );
hgs
parents:
diff changeset
   301
        
hgs
parents:
diff changeset
   302
        void DoVideoStateChangeL( TInt aState );
hgs
parents:
diff changeset
   303
        void DoAudioStateChangeL( TInt aState );
hgs
parents:
diff changeset
   304
hgs
parents:
diff changeset
   305
        /**
hgs
parents:
diff changeset
   306
        * Handles the actual navipane and softkey updating according
hgs
parents:
diff changeset
   307
        * to the state of audio playback. This function does not set 
hgs
parents:
diff changeset
   308
        * volume control visible, it is done using ShowVolumeL( ).
hgs
parents:
diff changeset
   309
        * When playing starts empties the navi pane.
hgs
parents:
diff changeset
   310
        * Hides the volume control when playing stops.
hgs
parents:
diff changeset
   311
        */
hgs
parents:
diff changeset
   312
        void UpdatePanesL( TBool aAudioPlaying, TBool aVideoPlaying );
hgs
parents:
diff changeset
   313
hgs
parents:
diff changeset
   314
        /**
hgs
parents:
diff changeset
   315
        * From MCenRepNotifyHandlerCallback
hgs
parents:
diff changeset
   316
        */
hgs
parents:
diff changeset
   317
        void HandleNotifyInt(TUint32 aId, TInt aNewValue);
hgs
parents:
diff changeset
   318
        void HandleNotifyError(TUint32 aId, TInt error, CCenRepNotifyHandler* aHandler);
hgs
parents:
diff changeset
   319
        void HandleNotifyGeneric(TUint32 aId);
hgs
parents:
diff changeset
   320
hgs
parents:
diff changeset
   321
        /**
hgs
parents:
diff changeset
   322
        * From MMessageIteratorObserver. 
hgs
parents:
diff changeset
   323
        * @param See documentation of MMessateIteratorObserver
hgs
parents:
diff changeset
   324
        */
hgs
parents:
diff changeset
   325
#ifndef RD_MSG_NAVIPANE_IMPROVEMENT
hgs
parents:
diff changeset
   326
        void HandleIteratorEventL(TMessageIteratorEvent aEvent);
hgs
parents:
diff changeset
   327
#endif        
hgs
parents:
diff changeset
   328
        /**
hgs
parents:
diff changeset
   329
        * Returns ETrue if the message is self composed and
hgs
parents:
diff changeset
   330
        * EFalse otherwise (a received message).
hgs
parents:
diff changeset
   331
        * @return ETrue if message is self composed,
hgs
parents:
diff changeset
   332
        *         EFalse otherwise (received)
hgs
parents:
diff changeset
   333
        */
hgs
parents:
diff changeset
   334
        TBool IsOwnMessage() const;
hgs
parents:
diff changeset
   335
                
hgs
parents:
diff changeset
   336
        /**
hgs
parents:
diff changeset
   337
        * Returns ETrue if the message has a sender, EFalse
hgs
parents:
diff changeset
   338
        * otherwise (either self composed message or received
hgs
parents:
diff changeset
   339
        * from a secret number).
hgs
parents:
diff changeset
   340
        * @return ETrue if message has sender
hgs
parents:
diff changeset
   341
        *         EFalse otherwise
hgs
parents:
diff changeset
   342
        */
hgs
parents:
diff changeset
   343
        TBool HasSender() const;
hgs
parents:
diff changeset
   344
        
hgs
parents:
diff changeset
   345
        /**
hgs
parents:
diff changeset
   346
        * Checks whether Reply->To all should be shown.
hgs
parents:
diff changeset
   347
        * For received messages checks that there is more
hgs
parents:
diff changeset
   348
        * than one recipient. For sent messages checks that
hgs
parents:
diff changeset
   349
        * there is at least one recipient.
hgs
parents:
diff changeset
   350
        * @return ETrue if Reply->To all should be shown
hgs
parents:
diff changeset
   351
        *         EFalse otherwise
hgs
parents:
diff changeset
   352
        */
hgs
parents:
diff changeset
   353
        TBool ShowReplyToAll() const;
hgs
parents:
diff changeset
   354
hgs
parents:
diff changeset
   355
        /**
hgs
parents:
diff changeset
   356
        * Checks whether Reply menu should be shown at all.
hgs
parents:
diff changeset
   357
        * @return ETrue if Reply menu should be shown
hgs
parents:
diff changeset
   358
        *         EFalse otherwise
hgs
parents:
diff changeset
   359
        */
hgs
parents:
diff changeset
   360
        TBool ShowReplyMenu() const;
hgs
parents:
diff changeset
   361
        
hgs
parents:
diff changeset
   362
        // Notes:
hgs
parents:
diff changeset
   363
hgs
parents:
diff changeset
   364
        /**
hgs
parents:
diff changeset
   365
        * Show an information note
hgs
parents:
diff changeset
   366
        * @param aResourceId The resource if of the note to be shown
hgs
parents:
diff changeset
   367
        */
hgs
parents:
diff changeset
   368
        void ShowInformationNoteL( TInt aResourceId );
hgs
parents:
diff changeset
   369
        
hgs
parents:
diff changeset
   370
        /**
hgs
parents:
diff changeset
   371
        * Show an information note
hgs
parents:
diff changeset
   372
        * @param aResourceId The resource if of the note to be shown
hgs
parents:
diff changeset
   373
        */
hgs
parents:
diff changeset
   374
        void ShowErrorNoteL( TInt aResourceId );
hgs
parents:
diff changeset
   375
        
hgs
parents:
diff changeset
   376
        /**
hgs
parents:
diff changeset
   377
        * Show a confirmation query
hgs
parents:
diff changeset
   378
        * @param aResourceId The resource if of the query to be shown
hgs
parents:
diff changeset
   379
        */
hgs
parents:
diff changeset
   380
        TInt ShowConfirmationQueryL( TInt aResourceId ) const;
hgs
parents:
diff changeset
   381
hgs
parents:
diff changeset
   382
        TInt ShowConfirmationQueryL(   TInt            aResourceId,
hgs
parents:
diff changeset
   383
                                        const TDesC&    aString) const;
hgs
parents:
diff changeset
   384
hgs
parents:
diff changeset
   385
        /**
hgs
parents:
diff changeset
   386
        * Auxiliary function. Shows a confirmation query if it is not shown before. 
hgs
parents:
diff changeset
   387
        *
hgs
parents:
diff changeset
   388
        * @param aResourceID
hgs
parents:
diff changeset
   389
        * @return the return value returned by CAknQueryDialog::ExecuteLD
hgs
parents:
diff changeset
   390
        */  
hgs
parents:
diff changeset
   391
        TInt ShowGuidedModeConfirmationQueryL( TInt aResourceID );
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
        /**
hgs
parents:
diff changeset
   394
        * Shows "Out of disk" error note if disk space would
hgs
parents:
diff changeset
   395
        * go below critical level when allocating aSize
hgs
parents:
diff changeset
   396
        * @param aSize Bytes wanted to allocate
hgs
parents:
diff changeset
   397
        * @return ETrue if below critical after allocation
hgs
parents:
diff changeset
   398
        *         EFalse if allocation OK
hgs
parents:
diff changeset
   399
        */
hgs
parents:
diff changeset
   400
        TBool ShowOutOfDiskNoteIfBelowCriticalLevelL( TInt aSize );
hgs
parents:
diff changeset
   401
hgs
parents:
diff changeset
   402
        /**
hgs
parents:
diff changeset
   403
        * Return a pointer to document-object
hgs
parents:
diff changeset
   404
        * @return CMmsViewerDocument*
hgs
parents:
diff changeset
   405
        */        
hgs
parents:
diff changeset
   406
        CMmsViewerDocument* Document() const;
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
        /**
hgs
parents:
diff changeset
   409
        * Shows any DRM related notes that are related to
hgs
parents:
diff changeset
   410
        * message opening:
hgs
parents:
diff changeset
   411
        * - "No rights" query
hgs
parents:
diff changeset
   412
        * - "Expired rights" query
hgs
parents:
diff changeset
   413
        * - "Preview rights" note
hgs
parents:
diff changeset
   414
        */
hgs
parents:
diff changeset
   415
        void ResolveDRMNotesL();
hgs
parents:
diff changeset
   416
hgs
parents:
diff changeset
   417
        /**
hgs
parents:
diff changeset
   418
        * Returns the control id of the currently focused control.
hgs
parents:
diff changeset
   419
        * @return Control id of the focused control or
hgs
parents:
diff changeset
   420
        *         EMsgComponentIdNull if no control focused
hgs
parents:
diff changeset
   421
        */
hgs
parents:
diff changeset
   422
        TInt FocusedControlId();
hgs
parents:
diff changeset
   423
hgs
parents:
diff changeset
   424
        /**
hgs
parents:
diff changeset
   425
        * Sets automatic highlighting on/off.
hgs
parents:
diff changeset
   426
        * @param aEnable if ETrue sets automatic highlighting on,
hgs
parents:
diff changeset
   427
        *                if EFalse sets automatic highlighting off
hgs
parents:
diff changeset
   428
        */
hgs
parents:
diff changeset
   429
        void SetFindModeL( TBool aEnable );
hgs
parents:
diff changeset
   430
hgs
parents:
diff changeset
   431
 
hgs
parents:
diff changeset
   432
        /**
hgs
parents:
diff changeset
   433
        * Starts to play/display media including image.
hgs
parents:
diff changeset
   434
        * @param aControl control to be played
hgs
parents:
diff changeset
   435
        */         
hgs
parents:
diff changeset
   436
        void MediaPlayL(CMsgMediaControl* aControl);
hgs
parents:
diff changeset
   437
hgs
parents:
diff changeset
   438
        /**
hgs
parents:
diff changeset
   439
        * Handle selection key for media object ( excluding 3gpp presentation )
hgs
parents:
diff changeset
   440
        * This function is entered when Options menu->Play is selected.
hgs
parents:
diff changeset
   441
        * Resulting action is one of the following: play, embedded play, activate or get rights.
hgs
parents:
diff changeset
   442
        * @param aMedia control to be be handled
hgs
parents:
diff changeset
   443
        */         
hgs
parents:
diff changeset
   444
        void MediaOpenL( CMsgMediaControl* aMedia );
hgs
parents:
diff changeset
   445
hgs
parents:
diff changeset
   446
        /**
hgs
parents:
diff changeset
   447
        * Stops playing media. Does not stop animations. 
hgs
parents:
diff changeset
   448
        */         
hgs
parents:
diff changeset
   449
        void MediaStop();
hgs
parents:
diff changeset
   450
hgs
parents:
diff changeset
   451
        /**
hgs
parents:
diff changeset
   452
        * Stops playing single media.
hgs
parents:
diff changeset
   453
        * @param aControl control to be played
hgs
parents:
diff changeset
   454
        */         
hgs
parents:
diff changeset
   455
        void MediaStop(CMsgMediaControl* aControl);
hgs
parents:
diff changeset
   456
hgs
parents:
diff changeset
   457
        /**
hgs
parents:
diff changeset
   458
        * Closes every media control. Closing means freeing file
hgs
parents:
diff changeset
   459
        * specific resources that other application can use the file.
hgs
parents:
diff changeset
   460
        */         
hgs
parents:
diff changeset
   461
        void MediaClose();
hgs
parents:
diff changeset
   462
hgs
parents:
diff changeset
   463
        /**
hgs
parents:
diff changeset
   464
        * Closes single media.
hgs
parents:
diff changeset
   465
        * @param aControl control to be played
hgs
parents:
diff changeset
   466
        */         
hgs
parents:
diff changeset
   467
        void MediaClose(CMsgMediaControl* aControl);
hgs
parents:
diff changeset
   468
hgs
parents:
diff changeset
   469
        /**
hgs
parents:
diff changeset
   470
        * Reloads slide
hgs
parents:
diff changeset
   471
        */
hgs
parents:
diff changeset
   472
        void ReloadSlideL();
hgs
parents:
diff changeset
   473
hgs
parents:
diff changeset
   474
        /**
hgs
parents:
diff changeset
   475
        * Resets every control. Frees all resources
hgs
parents:
diff changeset
   476
        */         
hgs
parents:
diff changeset
   477
        void MediaReset();
hgs
parents:
diff changeset
   478
hgs
parents:
diff changeset
   479
        /**
hgs
parents:
diff changeset
   480
        * Resets single control. Frees all resources
hgs
parents:
diff changeset
   481
        */         
hgs
parents:
diff changeset
   482
        void MediaReset(CMsgMediaControl* aControl);
hgs
parents:
diff changeset
   483
hgs
parents:
diff changeset
   484
        /**
hgs
parents:
diff changeset
   485
        * Checks whether media is initialised and media control can be
hgs
parents:
diff changeset
   486
        * selected. 
hgs
parents:
diff changeset
   487
        * This function returns ETrue, if media is DRM protected and
hgs
parents:
diff changeset
   488
        * no rights exist.
hgs
parents:
diff changeset
   489
        */         
hgs
parents:
diff changeset
   490
        TBool MediaInitializedL( CMsgMediaControl*   aMedia );
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
        /**
hgs
parents:
diff changeset
   493
        * Checks whether media can be played or tried to be played.
hgs
parents:
diff changeset
   494
        * This function returns EFalse, if media is DRM protected and
hgs
parents:
diff changeset
   495
        * no rights exist.
hgs
parents:
diff changeset
   496
        */         
hgs
parents:
diff changeset
   497
        TBool CMmsViewerAppUi::MediaCanPlay(const CMsgMediaControl* aMedia,
hgs
parents:
diff changeset
   498
                                            const CUniObject* aMmsObject ) const;
hgs
parents:
diff changeset
   499
hgs
parents:
diff changeset
   500
hgs
parents:
diff changeset
   501
        /**
hgs
parents:
diff changeset
   502
        * Checks whether media can be stopped or tried to be played
hgs
parents:
diff changeset
   503
        */         
hgs
parents:
diff changeset
   504
        TBool MediaCanStop(CMsgMediaControl* aMedia);
hgs
parents:
diff changeset
   505
hgs
parents:
diff changeset
   506
        /**
hgs
parents:
diff changeset
   507
        * Checks whether media can be paused.
hgs
parents:
diff changeset
   508
        * This means also that media is really playing.
hgs
parents:
diff changeset
   509
        */         
hgs
parents:
diff changeset
   510
        TBool MediaIsRunning(CMsgMediaControl* aMedia);
hgs
parents:
diff changeset
   511
hgs
parents:
diff changeset
   512
        /**
hgs
parents:
diff changeset
   513
        * Returns UI control id
hgs
parents:
diff changeset
   514
        * @param aControl TMmsContolIds only
hgs
parents:
diff changeset
   515
        */         
hgs
parents:
diff changeset
   516
        CMsgMediaControl* MediaControlById(TInt aControl);
hgs
parents:
diff changeset
   517
hgs
parents:
diff changeset
   518
        /**
hgs
parents:
diff changeset
   519
        * Starts animation
hgs
parents:
diff changeset
   520
        */
hgs
parents:
diff changeset
   521
        void StartAnimationL();
hgs
parents:
diff changeset
   522
        
hgs
parents:
diff changeset
   523
        /**
hgs
parents:
diff changeset
   524
         * Stops animation
hgs
parents:
diff changeset
   525
         */
hgs
parents:
diff changeset
   526
        void StopAnimation();
hgs
parents:
diff changeset
   527
        
hgs
parents:
diff changeset
   528
        /**
hgs
parents:
diff changeset
   529
        * Implements saving text or media object into file system from
hgs
parents:
diff changeset
   530
        * mms viewer. Saves pure text files directly and otherwise 
hgs
parents:
diff changeset
   531
        * for multimedia and xHTML files calls DoSaveObjectL()
hgs
parents:
diff changeset
   532
        */
hgs
parents:
diff changeset
   533
        void SaveObjectL();
hgs
parents:
diff changeset
   534
 
hgs
parents:
diff changeset
   535
        /**
hgs
parents:
diff changeset
   536
        * Implements multimedia objects and xhtml into file system from
hgs
parents:
diff changeset
   537
        * mms viewer.
hgs
parents:
diff changeset
   538
        */
hgs
parents:
diff changeset
   539
        void DoSaveObjectL(CUniObject& aObject );
hgs
parents:
diff changeset
   540
 
hgs
parents:
diff changeset
   541
        /**
hgs
parents:
diff changeset
   542
        * Shows "Upload" list query and if an item is selected, send the message
hgs
parents:
diff changeset
   543
        * as upload.
hgs
parents:
diff changeset
   544
        */
hgs
parents:
diff changeset
   545
        void UploadL();
hgs
parents:
diff changeset
   546
        
hgs
parents:
diff changeset
   547
        /** 
hgs
parents:
diff changeset
   548
        * From CEikAppUi
hgs
parents:
diff changeset
   549
        */
hgs
parents:
diff changeset
   550
        void HandleResourceChangeL(TInt aType);
hgs
parents:
diff changeset
   551
hgs
parents:
diff changeset
   552
        /**
hgs
parents:
diff changeset
   553
        * Opens image into (embedded) image viewer
hgs
parents:
diff changeset
   554
        */
hgs
parents:
diff changeset
   555
        void ViewImageL( CMsgMediaControl& aMediaCtrl );
hgs
parents:
diff changeset
   556
hgs
parents:
diff changeset
   557
        /**
hgs
parents:
diff changeset
   558
        * Consumes DRM rights, if DRM protected media. If no DRM rights left 
hgs
parents:
diff changeset
   559
        * or other error occurs during consuming rights, updates icon
hgs
parents:
diff changeset
   560
        * @return   ETrue: media was not DRM protected or DRM rights were 
hgs
parents:
diff changeset
   561
        *                   consumed successfully
hgs
parents:
diff changeset
   562
        *           EFalse: media was DRM protected and no rights were left 
hgs
parents:
diff changeset
   563
        *                   or other error occurred
hgs
parents:
diff changeset
   564
        */
hgs
parents:
diff changeset
   565
        TBool HandleConsumeRightsL( CMsgMediaControl& aMedia ); 
hgs
parents:
diff changeset
   566
hgs
parents:
diff changeset
   567
hgs
parents:
diff changeset
   568
        /**
hgs
parents:
diff changeset
   569
        * If image has not rights, error note must be shown.
hgs
parents:
diff changeset
   570
        * This function handles the situation.
hgs
parents:
diff changeset
   571
        */
hgs
parents:
diff changeset
   572
        void HandleImageNoRightsInLaunch( );
hgs
parents:
diff changeset
   573
        // From MAknLongTapDetectorCallBack
hgs
parents:
diff changeset
   574
        /**
hgs
parents:
diff changeset
   575
         * @see MAknLongTapDetectorCallBack
hgs
parents:
diff changeset
   576
         */
hgs
parents:
diff changeset
   577
        void HandleLongTapEventL(
hgs
parents:
diff changeset
   578
            const TPoint& aPenEventLocation, 
hgs
parents:
diff changeset
   579
            const TPoint& aPenEventScreenLocation );
hgs
parents:
diff changeset
   580
        
hgs
parents:
diff changeset
   581
        /**
hgs
parents:
diff changeset
   582
         *  For Handling iMskId for an embedded object
hgs
parents:
diff changeset
   583
         */
hgs
parents:
diff changeset
   584
 		void HandleSelectionKeyL( );
hgs
parents:
diff changeset
   585
hgs
parents:
diff changeset
   586
hgs
parents:
diff changeset
   587
    private: // Functions from base classes
hgs
parents:
diff changeset
   588
        
hgs
parents:
diff changeset
   589
        /**
hgs
parents:
diff changeset
   590
        * From MsgEditorAppUi
hgs
parents:
diff changeset
   591
        */
hgs
parents:
diff changeset
   592
        void DoMsgSaveExitL();
hgs
parents:
diff changeset
   593
            
hgs
parents:
diff changeset
   594
        /**
hgs
parents:
diff changeset
   595
        * From MMsgEditorLauncher.
hgs
parents:
diff changeset
   596
        * Part of the function is implemented in the DoFinaliseLaunchViewL()
hgs
parents:
diff changeset
   597
        */
hgs
parents:
diff changeset
   598
        void LaunchViewL();
hgs
parents:
diff changeset
   599
    
hgs
parents:
diff changeset
   600
        /**
hgs
parents:
diff changeset
   601
        * The actual implementation of LaunchViewL
hgs
parents:
diff changeset
   602
        */
hgs
parents:
diff changeset
   603
        void DoLaunchViewL();
hgs
parents:
diff changeset
   604
hgs
parents:
diff changeset
   605
        /**
hgs
parents:
diff changeset
   606
        * From MMsgEditorObserver
hgs
parents:
diff changeset
   607
        * @param See documentation of MMsgEditorObserver
hgs
parents:
diff changeset
   608
        */
hgs
parents:
diff changeset
   609
        CMsgBaseControl* CreateCustomControlL( TInt aControlType );
hgs
parents:
diff changeset
   610
        
hgs
parents:
diff changeset
   611
        /**
hgs
parents:
diff changeset
   612
        * From MMsgEditorObserver
hgs
parents:
diff changeset
   613
        * @param See documentation of MMsgEditorObserver
hgs
parents:
diff changeset
   614
        */
hgs
parents:
diff changeset
   615
        void EditorObserver(TMsgEditorObserverFunc aFunc, TAny* aArg1, TAny* aArg2, TAny* aArg3);
hgs
parents:
diff changeset
   616
hgs
parents:
diff changeset
   617
        void DoEditorObserverL(TMsgEditorObserverFunc aFunc, TAny* aArg1, TAny* aArg2, TAny* aArg3);
hgs
parents:
diff changeset
   618
hgs
parents:
diff changeset
   619
        /**
hgs
parents:
diff changeset
   620
        * From CCoeAppUi
hgs
parents:
diff changeset
   621
        * @param See documentation of CCoeAppUi
hgs
parents:
diff changeset
   622
        * @return TKeyResponse
hgs
parents:
diff changeset
   623
        */
hgs
parents:
diff changeset
   624
        TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
hgs
parents:
diff changeset
   625
hgs
parents:
diff changeset
   626
        /**
hgs
parents:
diff changeset
   627
        * From CCoeAppUi
hgs
parents:
diff changeset
   628
        * @param See documentation of CCoeAppUi
hgs
parents:
diff changeset
   629
        */
hgs
parents:
diff changeset
   630
        void HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination);
hgs
parents:
diff changeset
   631
        
hgs
parents:
diff changeset
   632
        /**
hgs
parents:
diff changeset
   633
        * From CEikAppUi
hgs
parents:
diff changeset
   634
        * @param See documentation of CEikAppUi
hgs
parents:
diff changeset
   635
        */
hgs
parents:
diff changeset
   636
        void HandleCommandL( TInt aCommand );
hgs
parents:
diff changeset
   637
hgs
parents:
diff changeset
   638
        /**
hgs
parents:
diff changeset
   639
        * From CAknAppUi
hgs
parents:
diff changeset
   640
        * @param See documentation of CAknAppUi
hgs
parents:
diff changeset
   641
        */
hgs
parents:
diff changeset
   642
        void ProcessCommandL( TInt aCommand );
hgs
parents:
diff changeset
   643
hgs
parents:
diff changeset
   644
        /**
hgs
parents:
diff changeset
   645
        * From MEikMenuObserver
hgs
parents:
diff changeset
   646
        * @param See documentation of MEikMenuObserver
hgs
parents:
diff changeset
   647
        */
hgs
parents:
diff changeset
   648
        void DynInitMenuPaneL( TInt aMenuId, CEikMenuPane* aMenuPane );
hgs
parents:
diff changeset
   649
hgs
parents:
diff changeset
   650
        /**
hgs
parents:
diff changeset
   651
        * From MAknServerAppExitObserver. Must not leave.
hgs
parents:
diff changeset
   652
        * DoHandleServerAppExitL
hgs
parents:
diff changeset
   653
        */
hgs
parents:
diff changeset
   654
        void HandleServerAppExit(TInt aReason);        
hgs
parents:
diff changeset
   655
hgs
parents:
diff changeset
   656
        /**
hgs
parents:
diff changeset
   657
        * From MAknNaviDecoratorObserver
hgs
parents:
diff changeset
   658
        * Handles the events coming from arrow presses
hgs
parents:
diff changeset
   659
        *  related to next/previous message
hgs
parents:
diff changeset
   660
        */
hgs
parents:
diff changeset
   661
#ifdef RD_SCALABLE_UI_V2
hgs
parents:
diff changeset
   662
#ifndef RD_MSG_NAVIPANE_IMPROVEMENT
hgs
parents:
diff changeset
   663
        void HandleNaviDecoratorEventL( TInt aEventID );   
hgs
parents:
diff changeset
   664
#endif
hgs
parents:
diff changeset
   665
#endif
hgs
parents:
diff changeset
   666
        /**
hgs
parents:
diff changeset
   667
        * From CCoeControl
hgs
parents:
diff changeset
   668
        * Handles volume changes from volume of navi pane.
hgs
parents:
diff changeset
   669
        * When Pen enabled volume can change many steps at one tap.
hgs
parents:
diff changeset
   670
        */
hgs
parents:
diff changeset
   671
        void HandleControlEventL(CCoeControl* aControl, TCoeEvent aEventType);
hgs
parents:
diff changeset
   672
   
hgs
parents:
diff changeset
   673
#ifdef RD_SCALABLE_UI_V2
hgs
parents:
diff changeset
   674
        /**
hgs
parents:
diff changeset
   675
         * From MAknToolbarObserver
hgs
parents:
diff changeset
   676
         * Should be used to set the properties of some toolbar components 
hgs
parents:
diff changeset
   677
         * before it is drawn.
hgs
parents:
diff changeset
   678
         * @param aResourceId The resource ID for particular toolbar
hgs
parents:
diff changeset
   679
         * @param aToolbar The toolbar object pointer
hgs
parents:
diff changeset
   680
         */
hgs
parents:
diff changeset
   681
        virtual void DynInitToolbarL(   TInt            aResourceId, 
hgs
parents:
diff changeset
   682
                                        CAknToolbar*    aToolbar );
hgs
parents:
diff changeset
   683
        
hgs
parents:
diff changeset
   684
        /**
hgs
parents:
diff changeset
   685
         * From MAknToolbarObserver
hgs
parents:
diff changeset
   686
         * Handles toolbar events for a certain toolbar item.
hgs
parents:
diff changeset
   687
         * @param aCommand The command ID of some toolbar item.
hgs
parents:
diff changeset
   688
         */
hgs
parents:
diff changeset
   689
        virtual void OfferToolbarEventL( TInt aCommand );
hgs
parents:
diff changeset
   690
#endif
hgs
parents:
diff changeset
   691
   
hgs
parents:
diff changeset
   692
    private:
hgs
parents:
diff changeset
   693
hgs
parents:
diff changeset
   694
        /**
hgs
parents:
diff changeset
   695
        * By default Symbian OS constructor is private.
hgs
parents:
diff changeset
   696
        */
hgs
parents:
diff changeset
   697
        void ConstructL(); 
hgs
parents:
diff changeset
   698
hgs
parents:
diff changeset
   699
        /** 
hgs
parents:
diff changeset
   700
        * Launches help application
hgs
parents:
diff changeset
   701
        */
hgs
parents:
diff changeset
   702
        void LaunchHelpL();
hgs
parents:
diff changeset
   703
hgs
parents:
diff changeset
   704
        /** 
hgs
parents:
diff changeset
   705
        * Gets help context
hgs
parents:
diff changeset
   706
        */
hgs
parents:
diff changeset
   707
        
hgs
parents:
diff changeset
   708
        CArrayFix<TCoeHelpContext>* HelpContextL() const;          
hgs
parents:
diff changeset
   709
hgs
parents:
diff changeset
   710
        void ViewerOperationEvent(  TMmsViewerOperationType     aOperation,
hgs
parents:
diff changeset
   711
                                    TMmsViewerOperationEvent    aEvent,
hgs
parents:
diff changeset
   712
                                    TInt                        aError );
hgs
parents:
diff changeset
   713
        void DoViewerOperationEventL(   TMmsViewerOperationType     aOperation,
hgs
parents:
diff changeset
   714
                                        TMmsViewerOperationEvent    aEvent );
hgs
parents:
diff changeset
   715
hgs
parents:
diff changeset
   716
            /// loading slide has completed
hgs
parents:
diff changeset
   717
        void DoViewerOperationEventSlideL();
hgs
parents:
diff changeset
   718
            /// loading launch has completed
hgs
parents:
diff changeset
   719
        void DoViewerOperationEventLaunchL( );
hgs
parents:
diff changeset
   720
hgs
parents:
diff changeset
   721
        TUint32 ObjectsAvailable();
hgs
parents:
diff changeset
   722
hgs
parents:
diff changeset
   723
        void BeginActiveWait( CMmsViewerOperation* aOperation );
hgs
parents:
diff changeset
   724
        void EndActiveWait();
hgs
parents:
diff changeset
   725
hgs
parents:
diff changeset
   726
        /**
hgs
parents:
diff changeset
   727
        * Launches wait dialog.
hgs
parents:
diff changeset
   728
        * @param aParam if slide change operation, this is index of new slide
hgs
parents:
diff changeset
   729
        */
hgs
parents:
diff changeset
   730
        void LaunchWaitDialogL( TInt aParam = 0 );
hgs
parents:
diff changeset
   731
hgs
parents:
diff changeset
   732
        /**
hgs
parents:
diff changeset
   733
        * Executes part of the launching. See LaunchViewL()
hgs
parents:
diff changeset
   734
        */
hgs
parents:
diff changeset
   735
        void DoFinaliseLaunchViewL();
hgs
parents:
diff changeset
   736
hgs
parents:
diff changeset
   737
        /**
hgs
parents:
diff changeset
   738
        * Gets focused CUniObject. 
hgs
parents:
diff changeset
   739
        * Object is returned only,if is EMsgImageControlId, EMsgVideoControlId, or EMsgAudioControlId.
hgs
parents:
diff changeset
   740
        * iFocusedObjectType is applicable always.
hgs
parents:
diff changeset
   741
        * @since 3.0
hgs
parents:
diff changeset
   742
        */
hgs
parents:
diff changeset
   743
        CUniObject* GetFocusedMmsObject();
hgs
parents:
diff changeset
   744
hgs
parents:
diff changeset
   745
        /**
hgs
parents:
diff changeset
   746
        * Checks whether silent ringing type is selected.
hgs
parents:
diff changeset
   747
        * @ret ETrue, silence set
hgs
parents:
diff changeset
   748
        *      EFalse, silence not set
hgs
parents:
diff changeset
   749
        */
hgs
parents:
diff changeset
   750
        TBool IsSilenceL();
hgs
parents:
diff changeset
   751
        
hgs
parents:
diff changeset
   752
        /**
hgs
parents:
diff changeset
   753
        * Calls mms mtm ui to launch delivery status dialog after user has choosed EMmsViewerDeliveryStatus from the options menu.
hgs
parents:
diff changeset
   754
        *
hgs
parents:
diff changeset
   755
        * @since    3.0
hgs
parents:
diff changeset
   756
        */
hgs
parents:
diff changeset
   757
        void OpenDeliveryPopupL( );
hgs
parents:
diff changeset
   758
    
hgs
parents:
diff changeset
   759
        void PrintNeededControls( );
hgs
parents:
diff changeset
   760
hgs
parents:
diff changeset
   761
        /*
hgs
parents:
diff changeset
   762
        * @return ETrue, editor is properly initialised to receive commands
hgs
parents:
diff changeset
   763
        *         EFalse, editor is not yet properly initialised to receive commands
hgs
parents:
diff changeset
   764
        */
hgs
parents:
diff changeset
   765
        TBool IsLaunched() const;
hgs
parents:
diff changeset
   766
hgs
parents:
diff changeset
   767
        CUniObject* ObjectByMediaControl( CMsgMediaControl& aControl);
hgs
parents:
diff changeset
   768
        CUniObject* ObjectByBaseControl( CMsgBaseControl& aControl );
hgs
parents:
diff changeset
   769
hgs
parents:
diff changeset
   770
        /*
hgs
parents:
diff changeset
   771
        * Checks whether description exists in the stored message.
hgs
parents:
diff changeset
   772
        * If it doesn't exist, description is saved into message store 
hgs
parents:
diff changeset
   773
        * from first found. Uses SetAndSaveDescriptionL() 
hgs
parents:
diff changeset
   774
        */ 
hgs
parents:
diff changeset
   775
        void CheckAndSetDescriptionL();
hgs
parents:
diff changeset
   776
        
hgs
parents:
diff changeset
   777
        /*
hgs
parents:
diff changeset
   778
        * Saves description into received message from
hgs
parents:
diff changeset
   779
        * given text object. Existence of description is no more
hgs
parents:
diff changeset
   780
        * checked. 
hgs
parents:
diff changeset
   781
        * aText text object from which description is saved
hgs
parents:
diff changeset
   782
        */ 
hgs
parents:
diff changeset
   783
        void SetAndSaveDescriptionL(const CPlainText& aText);
hgs
parents:
diff changeset
   784
hgs
parents:
diff changeset
   785
        /*
hgs
parents:
diff changeset
   786
        * Update icon or text of MSK CBA button
hgs
parents:
diff changeset
   787
        */ 
hgs
parents:
diff changeset
   788
        void UpdateMskL( );
hgs
parents:
diff changeset
   789
        
hgs
parents:
diff changeset
   790
        void WaitReleaseOfImageL( CUniObject& aObject );
hgs
parents:
diff changeset
   791
hgs
parents:
diff changeset
   792
        /*
hgs
parents:
diff changeset
   793
        * Check whether media object is lacking rights.
hgs
parents:
diff changeset
   794
        * If media has no rights 
hgs
parents:
diff changeset
   795
        * @param aMedia media to check 
hgs
parents:
diff changeset
   796
        * @return KErrNone, valid drm rights exits or media is not drm protected
hgs
parents:
diff changeset
   797
        *         other value, no drm rights
hgs
parents:
diff changeset
   798
        * @since 3.2
hgs
parents:
diff changeset
   799
        */ 
hgs
parents:
diff changeset
   800
        TInt MediaHasNoDrmRights( CMsgMediaControl* aMedia );
hgs
parents:
diff changeset
   801
hgs
parents:
diff changeset
   802
        /**
hgs
parents:
diff changeset
   803
        * Implements HandleCommandL()
hgs
parents:
diff changeset
   804
        * @param See documentation of CEikAppUi
hgs
parents:
diff changeset
   805
        */
hgs
parents:
diff changeset
   806
        void DoHandleCommandL( TInt aCommand );
hgs
parents:
diff changeset
   807
hgs
parents:
diff changeset
   808
        /**
hgs
parents:
diff changeset
   809
        * Sends read report if permitted and asked
hgs
parents:
diff changeset
   810
        */
hgs
parents:
diff changeset
   811
        void SendReadReportL(   TMmsViewerOperationType     aOperation,
hgs
parents:
diff changeset
   812
                                TMmsViewerOperationEvent    aEvent );
hgs
parents:
diff changeset
   813
hgs
parents:
diff changeset
   814
        /**
hgs
parents:
diff changeset
   815
        * The function must be called when the volume is changed. 
hgs
parents:
diff changeset
   816
        * Any checks are not needed from caller of this function.
hgs
parents:
diff changeset
   817
        * This function changes the volume even, if volume control is not visible 
hgs
parents:
diff changeset
   818
        * in the navi pane.
hgs
parents:
diff changeset
   819
        * If changing volume level makes sense this function
hgs
parents:
diff changeset
   820
        * - changes the volume level into cenrep
hgs
parents:
diff changeset
   821
        * - show the new volume on the volume control of the navi pane.
hgs
parents:
diff changeset
   822
        * ( To check exact conditions when volume control is visible in the navi pane, 
hgs
parents:
diff changeset
   823
        * see .cpp file)
hgs
parents:
diff changeset
   824
        *         *
hgs
parents:
diff changeset
   825
        * This function resolves itself only whether the audio or video is playing.
hgs
parents:
diff changeset
   826
        * Then DoChangeVolumeL() is called, if applicable.
hgs
parents:
diff changeset
   827
        * After that to show the new volume level in the navi pane ShowVolumeL() is called.
hgs
parents:
diff changeset
   828
        *
hgs
parents:
diff changeset
   829
        * @param aVolume: indicates either absolute value, if aChange is EFalse
hgs
parents:
diff changeset
   830
        *                 or change of volume, if aChange is ETrue.
hgs
parents:
diff changeset
   831
        * @param aChange: indicates whether aVolume is absolute value or change of 
hgs
parents:
diff changeset
   832
        *                 the current volume.
hgs
parents:
diff changeset
   833
        */
hgs
parents:
diff changeset
   834
        void ChangeVolumeL( TInt aVolume, TBool aChange );
hgs
parents:
diff changeset
   835
hgs
parents:
diff changeset
   836
        /**
hgs
parents:
diff changeset
   837
        * Otherwise like ChangeVolumeL but either audio or video must be playing.
hgs
parents:
diff changeset
   838
        * This function saves the new volume level into CenRep, if applicable.
hgs
parents:
diff changeset
   839
        * Sets the new level into audio or video player.
hgs
parents:
diff changeset
   840
        * ( To check exact conditions when volume control is visible in the navi pane, 
hgs
parents:
diff changeset
   841
        * see .cpp file)
hgs
parents:
diff changeset
   842
        *
hgs
parents:
diff changeset
   843
        * If volume set is set before playback this function can be called as follows
hgs
parents:
diff changeset
   844
        * DoChangeVolumeL( 0 , ETrue, * )
hgs
parents:
diff changeset
   845
        * @param aVolume: indicates either absolute value, if aChange is Efalse
hgs
parents:
diff changeset
   846
        *                 or change of volume, if aChange is Etrue.
hgs
parents:
diff changeset
   847
        * @param aChange: indicates whether aVolume is absolute value or change of 
hgs
parents:
diff changeset
   848
        *                 the current volume.
hgs
parents:
diff changeset
   849
        * @param aAudioPlaying  ETrue audio is playing
hgs
parents:
diff changeset
   850
        *                       EFalse video is playing
hgs
parents:
diff changeset
   851
        * @return TInt new absolute volume level
hgs
parents:
diff changeset
   852
        *              KErrNotFound, if volume level is not known.
hgs
parents:
diff changeset
   853
        *              In this case ShowVolumeL should not be called
hgs
parents:
diff changeset
   854
        *              
hgs
parents:
diff changeset
   855
        */
hgs
parents:
diff changeset
   856
        TInt DoChangeVolumeL( TInt aVolume, TBool aChange, TBool aAudioPlaying );
hgs
parents:
diff changeset
   857
hgs
parents:
diff changeset
   858
        /**
hgs
parents:
diff changeset
   859
        * Set volume control visible into navi pane, if applicable. 
hgs
parents:
diff changeset
   860
        * Either audio or video must be playing.
hgs
parents:
diff changeset
   861
        * ( To check exact conditions when volume control is visible in the navi pane, 
hgs
parents:
diff changeset
   862
        * see .cpp file)
hgs
parents:
diff changeset
   863
        *
hgs
parents:
diff changeset
   864
        * @param aNewVolume: new volume level
hgs
parents:
diff changeset
   865
        * @param aAudioPlaying  ETrue audio is playing
hgs
parents:
diff changeset
   866
        *                       EFalse video is playing
hgs
parents:
diff changeset
   867
        */
hgs
parents:
diff changeset
   868
        void ShowVolumeL(   TInt  aNewVolume,
hgs
parents:
diff changeset
   869
                            TBool aAudioPlaying );
hgs
parents:
diff changeset
   870
hgs
parents:
diff changeset
   871
        /** 
hgs
parents:
diff changeset
   872
        * Enables receiving events changes in foreground application status.
hgs
parents:
diff changeset
   873
        * Resolves those Window groups id, which do no stop animation, audio or
hgs
parents:
diff changeset
   874
        * video playback. The workgroup ids are assigned to member variables */
hgs
parents:
diff changeset
   875
        void GetNonStoppingWgIds( );
hgs
parents:
diff changeset
   876
hgs
parents:
diff changeset
   877
        /** 
hgs
parents:
diff changeset
   878
        * After receiving event in change of foreground application status,
hgs
parents:
diff changeset
   879
        * checks whether new foreground application causes stopping animation,
hgs
parents:
diff changeset
   880
        * playback of audio or video.
hgs
parents:
diff changeset
   881
        * Result is set to iIsStopPlaybackWgId.
hgs
parents:
diff changeset
   882
        */
hgs
parents:
diff changeset
   883
        void ResolveCurrentWgIdL( );
hgs
parents:
diff changeset
   884
hgs
parents:
diff changeset
   885
        /**
hgs
parents:
diff changeset
   886
        * Activates input blocker properly.
hgs
parents:
diff changeset
   887
        *
hgs
parents:
diff changeset
   888
        * @param aActiveObjectToCancel Pointer to an active object that is called when 
hgs
parents:
diff changeset
   889
        *                              input blocker is cancelled. Can be NULL.
hgs
parents:
diff changeset
   890
        */
hgs
parents:
diff changeset
   891
        void ActivateInputBlockerL( CActive* aActiveObjectToCancel );
hgs
parents:
diff changeset
   892
        
hgs
parents:
diff changeset
   893
        /**
hgs
parents:
diff changeset
   894
        * Deactivates input blocker properly.
hgs
parents:
diff changeset
   895
        */
hgs
parents:
diff changeset
   896
        void DeactivateInputBlocker();
hgs
parents:
diff changeset
   897
hgs
parents:
diff changeset
   898
        /**
hgs
parents:
diff changeset
   899
        * Resets flags to enter normal operation state e.g. accept commands
hgs
parents:
diff changeset
   900
        */
hgs
parents:
diff changeset
   901
        void ResetOperationState();
hgs
parents:
diff changeset
   902
hgs
parents:
diff changeset
   903
        /**
hgs
parents:
diff changeset
   904
        * Handles delayed (external) exit 
hgs
parents:
diff changeset
   905
        * @param aDelayTime in microsecods
hgs
parents:
diff changeset
   906
        */        
hgs
parents:
diff changeset
   907
        void DoDelayedExit( TInt aDelayTime );
hgs
parents:
diff changeset
   908
hgs
parents:
diff changeset
   909
        /**
hgs
parents:
diff changeset
   910
        * To check whether asyncronous controls are ready and wait note dismissed
hgs
parents:
diff changeset
   911
        * @return TBool
hgs
parents:
diff changeset
   912
        */        
hgs
parents:
diff changeset
   913
        TBool AreControlsReadyAndWaitNoteDismissedL( );
hgs
parents:
diff changeset
   914
        
hgs
parents:
diff changeset
   915
#ifdef RD_SCALABLE_UI_V2
hgs
parents:
diff changeset
   916
        /**
hgs
parents:
diff changeset
   917
        * Sets tool bar item visibilities
hgs
parents:
diff changeset
   918
        * @return TBool
hgs
parents:
diff changeset
   919
        */        
hgs
parents:
diff changeset
   920
        void SetToolBarItemVisibilities();
hgs
parents:
diff changeset
   921
#endif
hgs
parents:
diff changeset
   922
hgs
parents:
diff changeset
   923
        /**
hgs
parents:
diff changeset
   924
        * Checks whether DRM rights have been consumed
hgs
parents:
diff changeset
   925
        * @return TBool
hgs
parents:
diff changeset
   926
        */                
hgs
parents:
diff changeset
   927
        TBool IsRightsConsumed( CUniObject& aObject ) const;
hgs
parents:
diff changeset
   928
hgs
parents:
diff changeset
   929
        /**
hgs
parents:
diff changeset
   930
        * Checks whether objects has drm rights left just now
hgs
parents:
diff changeset
   931
        * @return TBool
hgs
parents:
diff changeset
   932
        */                
hgs
parents:
diff changeset
   933
        TBool IsRightsNow( CUniObject& aObject ) const;
hgs
parents:
diff changeset
   934
hgs
parents:
diff changeset
   935
        /**
hgs
parents:
diff changeset
   936
        * Checks whether object has drm rights when downloaded to the current slide
hgs
parents:
diff changeset
   937
        * @return TBool
hgs
parents:
diff changeset
   938
        */                
hgs
parents:
diff changeset
   939
        TBool IsDrmRightsWhenLoaded( CUniObject& aObject ) const;
hgs
parents:
diff changeset
   940
hgs
parents:
diff changeset
   941
        /// MUniObjectObserver
hgs
parents:
diff changeset
   942
        void HandleUniObjectEvent(  CUniObject&  aUniObject,
hgs
parents:
diff changeset
   943
                                    TUniObjectEvent aUniEvent );
hgs
parents:
diff changeset
   944
        void SimulateUniObjectEventL( );
hgs
parents:
diff changeset
   945
        /**
hgs
parents:
diff changeset
   946
        * Reloads one control without need to reload whole slide.
hgs
parents:
diff changeset
   947
        *
hgs
parents:
diff changeset
   948
        * @since S60 5.0
hgs
parents:
diff changeset
   949
        *
hgs
parents:
diff changeset
   950
        * @param aMediaControl Control which needs to be reloaded.
hgs
parents:
diff changeset
   951
        * @param aObject Object related to the control
hgs
parents:
diff changeset
   952
        */
hgs
parents:
diff changeset
   953
        void ReloadControlL( CMsgMediaControl* aControl, CUniObject& aObject );
hgs
parents:
diff changeset
   954
hgs
parents:
diff changeset
   955
        /**
hgs
parents:
diff changeset
   956
        * Resolve CUniObject related to media control.
hgs
parents:
diff changeset
   957
        *
hgs
parents:
diff changeset
   958
        * @since S60 5.0
hgs
parents:
diff changeset
   959
        * @param aControl control for which CUniObjects is needed
hgs
parents:
diff changeset
   960
        * @return CUniObject related to the given control
hgs
parents:
diff changeset
   961
        */
hgs
parents:
diff changeset
   962
        CMsgMediaControl* MediaControlByObject( CUniObject&    aUniObject );
hgs
parents:
diff changeset
   963
hgs
parents:
diff changeset
   964
        /**
hgs
parents:
diff changeset
   965
        * Sets title of the mms viewer app into status pane
hgs
parents:
diff changeset
   966
        */
hgs
parents:
diff changeset
   967
        void SetTitleIconL();
hgs
parents:
diff changeset
   968
        
hgs
parents:
diff changeset
   969
        /**
hgs
parents:
diff changeset
   970
        * Check whether video call is active or not
hgs
parents:
diff changeset
   971
        */
hgs
parents:
diff changeset
   972
        TBool IsVideoCall();
hgs
parents:
diff changeset
   973
hgs
parents:
diff changeset
   974
    private:     // From MMmsSvkEventsObserver
hgs
parents:
diff changeset
   975
                /**
hgs
parents:
diff changeset
   976
        * Called when volume level should be changed.
hgs
parents:
diff changeset
   977
        * Set volume control visible into navi pane.
hgs
parents:
diff changeset
   978
        * This function calls ChangeVolumeL
hgs
parents:
diff changeset
   979
        * @param aVolumeChange: +1 change volume up
hgs
parents:
diff changeset
   980
        *                       -1 change volume down
hgs
parents:
diff changeset
   981
        */
hgs
parents:
diff changeset
   982
        void MmsSvkChangeVolumeL( TInt aVolumeChange );
hgs
parents:
diff changeset
   983
        
hgs
parents:
diff changeset
   984
        /**
hgs
parents:
diff changeset
   985
        * Callback for CPeriodic
hgs
parents:
diff changeset
   986
        */        
hgs
parents:
diff changeset
   987
        static TInt DelayedExitL( TAny* aThis );
hgs
parents:
diff changeset
   988
                            
hgs
parents:
diff changeset
   989
    private:     // Data
hgs
parents:
diff changeset
   990
hgs
parents:
diff changeset
   991
        enum TMmsViewerFlags
hgs
parents:
diff changeset
   992
            {
hgs
parents:
diff changeset
   993
            EImageBeingViewed            = 0x0001,
hgs
parents:
diff changeset
   994
                    
hgs
parents:
diff changeset
   995
            ELaunchSuccessful           = 0x0010,
hgs
parents:
diff changeset
   996
			EPresentationHasAudio       = 0x0020,   
hgs
parents:
diff changeset
   997
			// Two more videos in the same message with smil is now supported 
hgs
parents:
diff changeset
   998
			// ENoPresentationPlaying      = 0x0040,
hgs
parents:
diff changeset
   999
            ESuspiciousSmil             = 0x0080,
hgs
parents:
diff changeset
  1000
            EShowGuidedConf             = 0x0100,
hgs
parents:
diff changeset
  1001
            EAutohighLightEnabled       = 0x0200,
hgs
parents:
diff changeset
  1002
            EProhibitNonDrmMusic        = 0x0400,
hgs
parents:
diff changeset
  1003
            EVideoHasAudio              = 0x0800,
hgs
parents:
diff changeset
  1004
            EUploadInitialized          = 0x1000,
hgs
parents:
diff changeset
  1005
            // Character key events are sent to application first, which sets the volume into volume control. 
hgs
parents:
diff changeset
  1006
            // When touch enabled volume control of navi pane is supported, touch events are sent to volume control first.
hgs
parents:
diff changeset
  1007
            // And sets its new volume itself. The latter case is indicated by following flag
hgs
parents:
diff changeset
  1008
            EVolumeControlTriggered     = 0x2000,
hgs
parents:
diff changeset
  1009
            EViewerExiting              = 0x4000,
hgs
parents:
diff changeset
  1010
            EInObjectsView              = 0x8000,
hgs
parents:
diff changeset
  1011
            EInitialFlags = EVideoHasAudio
hgs
parents:
diff changeset
  1012
            };
hgs
parents:
diff changeset
  1013
hgs
parents:
diff changeset
  1014
        enum TViewerState
hgs
parents:
diff changeset
  1015
            {
hgs
parents:
diff changeset
  1016
            ENormal = 0,
hgs
parents:
diff changeset
  1017
            EBusy,
hgs
parents:
diff changeset
  1018
            EReseted
hgs
parents:
diff changeset
  1019
            };
hgs
parents:
diff changeset
  1020
hgs
parents:
diff changeset
  1021
        enum TReplyForwardCase
hgs
parents:
diff changeset
  1022
            {
hgs
parents:
diff changeset
  1023
            EReplyToSender,
hgs
parents:
diff changeset
  1024
            EReplyToAll
hgs
parents:
diff changeset
  1025
            };
hgs
parents:
diff changeset
  1026
            
hgs
parents:
diff changeset
  1027
            // determines which errors are shown during/after phase completion
hgs
parents:
diff changeset
  1028
        enum TOpeningPhase
hgs
parents:
diff changeset
  1029
            {
hgs
parents:
diff changeset
  1030
            EOpeningNone    = 0,
hgs
parents:
diff changeset
  1031
            EOpeningMessage,    
hgs
parents:
diff changeset
  1032
            EOpeningSlide
hgs
parents:
diff changeset
  1033
			};
hgs
parents:
diff changeset
  1034
hgs
parents:
diff changeset
  1035
        //Reference pointers:
hgs
parents:
diff changeset
  1036
        CUniSmilModel*              iSmilModel;
hgs
parents:
diff changeset
  1037
hgs
parents:
diff changeset
  1038
        CMmsClientMtm*              iMtm;
hgs
parents:
diff changeset
  1039
        CAknNavigationControlContainer* iNaviPane;
hgs
parents:
diff changeset
  1040
        CEikButtonGroupContainer*   iButtonGroup;
hgs
parents:
diff changeset
  1041
hgs
parents:
diff changeset
  1042
        //Owned pointers:
hgs
parents:
diff changeset
  1043
#ifndef RD_MSG_NAVIPANE_IMPROVEMENT
hgs
parents:
diff changeset
  1044
        CAknNavigationDecorator*    iNaviDecorator; // Overrides the variable in base class
hgs
parents:
diff changeset
  1045
#endif
hgs
parents:
diff changeset
  1046
        CAknNavigationDecorator*    iVolumeDecorator;
hgs
parents:
diff changeset
  1047
hgs
parents:
diff changeset
  1048
        CUniSlideLoader*            iSlideLoader;
hgs
parents:
diff changeset
  1049
        
hgs
parents:
diff changeset
  1050
        CMmsViewerHeader*           iHeader;
hgs
parents:
diff changeset
  1051
        CMmsViewerLaunchOperation*  iLaunchOperation;
hgs
parents:
diff changeset
  1052
        CMmsViewerChangeSlideOperation* iChangeSlideOperation;
hgs
parents:
diff changeset
  1053
        CAknLocalScreenClearer*     iScreenClearer;
hgs
parents:
diff changeset
  1054
hgs
parents:
diff changeset
  1055
        CAknWaitDialog*             iWaitDialog;
hgs
parents:
diff changeset
  1056
        CUniObject*                 iPendingNoteObject;
hgs
parents:
diff changeset
  1057
        TInt                        iPendingNoteError;
hgs
parents:
diff changeset
  1058
        TInt                        iPendingNoteResource;
hgs
parents:
diff changeset
  1059
        TInt                        iPendingNotePriority;
hgs
parents:
diff changeset
  1060
       
hgs
parents:
diff changeset
  1061
        CFindItemMenu*              iFindItemMenu;
hgs
parents:
diff changeset
  1062
        
hgs
parents:
diff changeset
  1063
        CDocumentHandler*           iDocHandler;
hgs
parents:
diff changeset
  1064
hgs
parents:
diff changeset
  1065
        CCenRepNotifyHandler*       iNotifyHandler;
hgs
parents:
diff changeset
  1066
        CRepository*                iCUiRepository;
hgs
parents:
diff changeset
  1067
        CRepository*                iMmsRepository;
hgs
parents:
diff changeset
  1068
hgs
parents:
diff changeset
  1069
        TInt                        iViewerFlags;
hgs
parents:
diff changeset
  1070
        TUint32                     iReleasedObjects;
hgs
parents:
diff changeset
  1071
        TViewerState                iViewerState;
hgs
parents:
diff changeset
  1072
hgs
parents:
diff changeset
  1073
		TInt                        iSupportedFeatures;
hgs
parents:
diff changeset
  1074
hgs
parents:
diff changeset
  1075
        CActiveSchedulerWait        iWait;
hgs
parents:
diff changeset
  1076
hgs
parents:
diff changeset
  1077
        CMsgImageControl*           iImage;
hgs
parents:
diff changeset
  1078
            /// if 3gpp presentation, this is not set
hgs
parents:
diff changeset
  1079
        CMsgAudioControl*           iAudio;
hgs
parents:
diff changeset
  1080
        CMsgVideoControl*           iVideo;
hgs
parents:
diff changeset
  1081
#ifdef RD_SVGT_IN_MESSAGING
hgs
parents:
diff changeset
  1082
        CMsgSvgControl*            iSvgt;
hgs
parents:
diff changeset
  1083
#endif        
hgs
parents:
diff changeset
  1084
        TInt                        iNewSlide;
hgs
parents:
diff changeset
  1085
            /// enum TOpeningPhase
hgs
parents:
diff changeset
  1086
        TInt                        iOpeningState;
hgs
parents:
diff changeset
  1087
        RPointerArray<CSendingServiceInfo> iUploadServices;
hgs
parents:
diff changeset
  1088
        
hgs
parents:
diff changeset
  1089
        // Own: Contains information of the VoIP profiles.
hgs
parents:
diff changeset
  1090
        CMsgVoIPExtension*          iMmsVoIPExtension;        
hgs
parents:
diff changeset
  1091
        // Events from SVK keys 
hgs
parents:
diff changeset
  1092
        CMmsSvkEvents*              iSvkEvents;
hgs
parents:
diff changeset
  1093
		CAknInputBlock*				iInputBlocker;
hgs
parents:
diff changeset
  1094
        CMmsConformance*            iMmsConformance;
hgs
parents:
diff changeset
  1095
        
hgs
parents:
diff changeset
  1096
        /// save focused control for restoring the focus later
hgs
parents:
diff changeset
  1097
        TInt                        iFocusedControlId;
hgs
parents:
diff changeset
  1098
        /// current resource of MSK CBA button
hgs
parents:
diff changeset
  1099
        TInt                        iMskId;
hgs
parents:
diff changeset
  1100
        CMmsViewerOperation*        iActiveOperation;
hgs
parents:
diff changeset
  1101
        CPeriodic*                  iIdle;
hgs
parents:
diff changeset
  1102
hgs
parents:
diff changeset
  1103
        // Pen Support: Target of last pointer event
hgs
parents:
diff changeset
  1104
        CMsgBaseControl*            iPointerTarget;
hgs
parents:
diff changeset
  1105
hgs
parents:
diff changeset
  1106
        /** 
hgs
parents:
diff changeset
  1107
        * When Objects view is entered, iNoTitlePaneUpdate is set to ETrue.
hgs
parents:
diff changeset
  1108
        * If layout change takes place during objects view, title must not 
hgs
parents:
diff changeset
  1109
        * be set into title pane. 
hgs
parents:
diff changeset
  1110
        */
hgs
parents:
diff changeset
  1111
#ifndef RD_MSG_NAVIPANE_IMPROVEMENT
hgs
parents:
diff changeset
  1112
        TBool                       iNoTitlePaneUpdate;
hgs
parents:
diff changeset
  1113
#endif
hgs
parents:
diff changeset
  1114
        CGulIcon*                   iTitleIcon;
hgs
parents:
diff changeset
  1115
        
hgs
parents:
diff changeset
  1116
        // Contains prohibit mime types.
hgs
parents:
diff changeset
  1117
        HBufC*                      iProhibitMimeTypeBuffer;
hgs
parents:
diff changeset
  1118
        
hgs
parents:
diff changeset
  1119
        /// Sends read report
hgs
parents:
diff changeset
  1120
        CMmsViewerSendReadReportOperation* iSendReadReportOperation;        
hgs
parents:
diff changeset
  1121
hgs
parents:
diff changeset
  1122
        /** applications, which should not stop playback of animation, audio or video        
hgs
parents:
diff changeset
  1123
        * Wg=Window Group
hgs
parents:
diff changeset
  1124
        */
hgs
parents:
diff changeset
  1125
        TInt                        iFastSwapWgId;   
hgs
parents:
diff changeset
  1126
        TInt                        iSysWgId;
hgs
parents:
diff changeset
  1127
        TInt                        iAknNotifyServerWgId;
hgs
parents:
diff changeset
  1128
        TInt                        iMmsViewerWgId;
hgs
parents:
diff changeset
  1129
        TInt                        iScreenSaverWgId;	
hgs
parents:
diff changeset
  1130
        // Whether playback needs to be stopped
hgs
parents:
diff changeset
  1131
        TBool                       iIsStopPlaybackWgId;
hgs
parents:
diff changeset
  1132
        CAknToolbar*                iToolbar;
hgs
parents:
diff changeset
  1133
        TInt                        iMaxForwardSlideCount;
hgs
parents:
diff changeset
  1134
        CAknTitlePane*              iTitlePane; 
hgs
parents:
diff changeset
  1135
        CGulIcon*                   iAppIcon;
hgs
parents:
diff changeset
  1136
        // Own: For long tap detecting
hgs
parents:
diff changeset
  1137
        CAknLongTapDetector* iLongTapDetector;
hgs
parents:
diff changeset
  1138
hgs
parents:
diff changeset
  1139
        // For long tap handling
hgs
parents:
diff changeset
  1140
        TBool iTapConsumed;     
hgs
parents:
diff changeset
  1141
      /** 
hgs
parents:
diff changeset
  1142
      * Contact image selection stylus popup menu 
hgs
parents:
diff changeset
  1143
      * Own. 
hgs
parents:
diff changeset
  1144
      */  
hgs
parents:
diff changeset
  1145
        CAknStylusPopUpMenu* iEmbeddedObjectStylusPopup;
hgs
parents:
diff changeset
  1146
    };
hgs
parents:
diff changeset
  1147
hgs
parents:
diff changeset
  1148
#endif      //  MMSVIEWERAPPUI_H
hgs
parents:
diff changeset
  1149
hgs
parents:
diff changeset
  1150
// End of File