mobilemessaging/unieditor/application/inc/UniEditorAppUi.h
changeset 0 72b543305e3a
child 2 0bf1d54f37d9
equal deleted inserted replaced
-1:000000000000 0:72b543305e3a
       
     1 /*
       
     2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   Unified SMS and MMS Editor Application UI class definition.      
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef _UNIEDITORAPPUI_H
       
    21 #define _UNIEDITORAPPUI_H
       
    22 
       
    23 //  INCLUDES
       
    24 
       
    25 #include <gmxmlparser.h>                // for MMDXMLParserObserver & CMDXMLParser
       
    26 
       
    27 #include <MsgEditorAppUi.h>             // for CMsgEditorAppUi
       
    28 #include <MsgEditorView.h>
       
    29 #include <MsgAddressControl.h>
       
    30 #include <MsgBodyControl.h>             // for CMsgBodyControl
       
    31 #include <MsgEditor.hrh>
       
    32 #include <msgimagecontrol.h>            // for CMsgImageControl (needed in .inl)
       
    33 #include <msgasynccontrolobserver.h>
       
    34 
       
    35 #include <MsgRecipientItem.h>           // for CMsgRecipientArray
       
    36 #include <MsgAttachmentUtils.h>
       
    37 #include <MMGFetchVerifier.h>
       
    38 #include <akntoolbarobserver.h>
       
    39 #include <AknServerApp.h>               // for MAknServerAppExitObserver
       
    40 #include <AknProgressDialog.h>          // for MProgressDialogCallback
       
    41 #include <peninputclient.h>
       
    42 #include <peninputsrveventhandler.h>
       
    43 #include <cenrepnotifyhandler.h>    // MCenRepNotifyHandlerCallback
       
    44 
       
    45 #include <eikedwob.h>                   // for MEikEdwinObserver
       
    46 
       
    47 // Needed by inline functions
       
    48 #include "uniobjectlist.h"
       
    49 #include "unidatamodel.h"
       
    50 #include "UniSendingSettings.h"
       
    51 
       
    52 #include "UniEditorHeader.h"            // THeadersFields,  
       
    53 #include "UniEditorApp.hrh"             // TUniEditorPanicIds
       
    54 #include "UniEditorOperation.h"         // MUniEditorOperatorObserver
       
    55 
       
    56 // CONSTANTS
       
    57 
       
    58 // FUNCTION PROTOTYPES
       
    59 
       
    60 // FORWARD DECLARATIONS
       
    61 class TFilename;
       
    62 class TChar;
       
    63 class CAknTitlePane;
       
    64 class CAknNavigationDecorator;
       
    65 class CAknNavigationControlContainer;
       
    66 class CAknWaitDialog;
       
    67 class CUniEditorDocument;
       
    68 class CAknLocalScreenClearer;
       
    69 class CRepository;
       
    70 class CSelectionItemList;
       
    71 class CEikImage; // for context icon
       
    72 class CAknInfoPopupNoteController;
       
    73 class CDocumentHandler;
       
    74 class CAknIconArray;
       
    75 class CAknInputBlock;
       
    76 class CMDXMLDocument;
       
    77 class CAknToolbar;
       
    78 
       
    79 class CMsgMediaInfo;
       
    80 class CMsgImageControl;
       
    81 class TMsgControlsIds;
       
    82 
       
    83 class CUniClientMtm;
       
    84 class CUniSmilModel;
       
    85 class CUniSlideLoader;
       
    86 class CUniEditorLaunchOperation;
       
    87 class CUniEditorSaveOperation;
       
    88 class CUniEditorSendOperation;
       
    89 class CUniEditorChangeSlideOperation;
       
    90 class CUniEditorInsertOperation;
       
    91 class CUniEditorVCardOperation;
       
    92 class CUniEditorHeader;
       
    93 class CAknToolbarExtension;
       
    94 
       
    95 // CLASS DECLARATION
       
    96 
       
    97 /**
       
    98 * CUniEditorAppUi
       
    99 *
       
   100 * @since 3.2
       
   101 */
       
   102 class CUniEditorAppUi : 
       
   103     public CMsgEditorAppUi,
       
   104     public MMGFetchVerifier,
       
   105     public MMsgAsyncControlObserver,
       
   106     public MUniEditorOperationObserver,
       
   107     public MAknToolbarObserver,
       
   108     public MMDXMLParserObserver,
       
   109     public MAknServerAppExitObserver,
       
   110     public MEikEdwinObserver,
       
   111     public MProgressDialogCallback,
       
   112     public MPenUiActivationHandler,
       
   113     public MCenRepNotifyHandlerCallback
       
   114     {
       
   115     public:  // Constructors and destructor
       
   116         
       
   117         /**
       
   118         * C++ default constructor.
       
   119         */
       
   120         CUniEditorAppUi();
       
   121 
       
   122         /**
       
   123         * Destructor.
       
   124         */
       
   125         virtual ~CUniEditorAppUi();
       
   126 
       
   127         /**
       
   128         * Removes object from screen.  (Objectsview callback method)
       
   129         * @param aRegion, region to remove the object from
       
   130         * @param aLayout, layout before removed from model
       
   131         */
       
   132         void RemoveObjectL( TUniRegion aRegion, TUniLayout aLayout );
       
   133 
       
   134         /**
       
   135         * Changes object order on screen. (Objectsview callback method)
       
   136         * @param aLayout, new layout
       
   137         */
       
   138         void ChangeOrderL( TUniLayout aLayout );
       
   139 
       
   140         /**
       
   141         * If there is image control, sets image release/lock
       
   142         * according to parameter. Otherwise does nothing.
       
   143         * @param aRelease, ETrue = release/unlock, EFalse = lock
       
   144         */
       
   145         void ReleaseImage( TBool aRelease );
       
   146 
       
   147         /**
       
   148         * Saves, if needed and exits
       
   149         */        
       
   150         void ExitAndSaveL();
       
   151         
       
   152         /**
       
   153         * Wrapper on the FetchFileL function of Base Editor.
       
   154         * Called by "Insert" functions.
       
   155         *
       
   156         * @param aFetchType, EImage or ENewImage or
       
   157         *                    EAudio or ENewAudio or
       
   158         *                    EVideo or ENewVideo
       
   159         */
       
   160         TBool FetchFileL( MsgAttachmentUtils::TMsgAttachmentFetchType aFetchType );
       
   161 
       
   162         /**
       
   163         * Sets focus to first focusable control on body.
       
   164         */
       
   165         void SetFocusToBodyBeginningL();
       
   166         
       
   167         /**
       
   168         * Callback for CPeriodic
       
   169         */        
       
   170         static TInt DelayedExitL( TAny* aThis );
       
   171         
       
   172         /**
       
   173         * Callback for MProgressDialogCallback
       
   174         */        
       
   175         void DialogDismissedL( TInt /*dismissed*/ );
       
   176         
       
   177         /**
       
   178         * Exit Unieditor without save during critimal memory condition
       
   179         */   
       
   180         void ExitWithoutSave();
       
   181     public: // Functions from base classes
       
   182     
       
   183         /**
       
   184         * From MMsgEditorObserver. Calls DoEditorObserverL()
       
   185         *
       
   186         * For passing events from Base Editor to MMS Editor
       
   187         */
       
   188         void EditorObserver( TMsgEditorObserverFunc aFunc,
       
   189                              TAny* aArg1,
       
   190                              TAny* aArg2,
       
   191                              TAny* aArg3 );
       
   192         
       
   193         /**
       
   194         * Handles the editor observer event.
       
   195         */
       
   196         void DoEditorObserverL( TMsgEditorObserverFunc aFunc,
       
   197                                 TAny* aArg1,
       
   198                                 TAny* aArg2,
       
   199                                 TAny* aArg3 );
       
   200 
       
   201         /**
       
   202         * From MMGFetchVerifier
       
   203         */
       
   204         TBool VerifySelectionL( const MDesCArray* aSelectedFiles );
       
   205 
       
   206         /**
       
   207          * From MAknToolbarObserver
       
   208          */
       
   209         void DynInitToolbarL( TInt aResourceId, CAknToolbar* aToolbar );
       
   210         
       
   211         /**
       
   212          * From MAknToolbarObserver
       
   213          */
       
   214         void OfferToolbarEventL( TInt aCommand );
       
   215     
       
   216         /**
       
   217          * From MApaServerAppExitObserver
       
   218          */
       
   219         void HandleServerAppExit( TInt aReason );
       
   220     
       
   221         /**
       
   222         * From MEikEdwinObserver
       
   223         */
       
   224         void HandleEdwinEventL( CEikEdwin* aEdwin, TEdwinEvent aEventType );
       
   225         
       
   226         /**
       
   227          * From CMsgEditorAppUi
       
   228          */
       
   229         void HandleEntryMovedL( TMsvId aOldParent, TMsvId aNewParent );
       
   230         
       
   231         /*
       
   232         * From MPenUiActivationHandler
       
   233         */
       
   234         void OnPeninputUiDeactivated();
       
   235         
       
   236         /*
       
   237         * From MPenUiActivationHandler
       
   238         */
       
   239         void OnPeninputUiActivated();       
       
   240     
       
   241     private: // Functions from base classes
       
   242             
       
   243         /**
       
   244         * From MMsgEditorLauncher
       
   245         */
       
   246         void LaunchViewL();
       
   247 
       
   248         /**
       
   249         * From CCoeAppUi 
       
   250         */
       
   251         TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
       
   252 
       
   253         /**
       
   254         * From CEikAppUi 
       
   255         */
       
   256         void HandleCommandL( TInt aCommand );
       
   257         
       
   258         /**
       
   259         * Performs the command.
       
   260         */
       
   261         void DoHandleCommandL( TInt aCommand );
       
   262         
       
   263         /**
       
   264          * Performs the command.
       
   265          */
       
   266         void DoOfferToolbarEventL( TInt aCommand );
       
   267         
       
   268         /**
       
   269         * From CAknAppUi.
       
   270         *
       
   271         * Handles navipane updating when launched from idle and
       
   272         * when returning from preview.
       
   273         *
       
   274         * @param aForeground, ETrue if app is foreground.
       
   275         */
       
   276         void HandleForegroundEventL(TBool aForeground);
       
   277 
       
   278         /**
       
   279         * From MEikMenuObserver 
       
   280         */
       
   281         void DynInitMenuPaneL( TInt aMenuId, CEikMenuPane* aMenuPane );
       
   282         
       
   283         /**
       
   284         * Helper function to be called in normal unimode and upload mode.
       
   285         * Handles the menu options based on the focused media object
       
   286         */
       
   287         void DynInitFocusedMediaBasedOptionsL( CEikMenuPane* aMenuPane );
       
   288         
       
   289         /**
       
   290         * From MUniEditorOperationObserver. Called when operation 
       
   291         * state is changed.
       
   292         */
       
   293         void EditorOperationEvent( TUniEditorOperationType aOperation,
       
   294                                    TUniEditorOperationEvent aEvent );
       
   295 
       
   296         /**
       
   297         * Performs the real operation event handling
       
   298         */
       
   299         void DoEditorOperationEventL( TUniEditorOperationType aOperation,
       
   300                                       TUniEditorOperationEvent aEvent );
       
   301 
       
   302         /**
       
   303         * From MUniEditorOperationObserver. Query is wanted to be shown 
       
   304         * to the user.
       
   305         */
       
   306         TBool EditorOperationQuery( TUniEditorOperationType aOperation,
       
   307                                     TUniEditorOperationQuery aEvent );        
       
   308 
       
   309         
       
   310         /**
       
   311         * Shows the query to the user.
       
   312         */
       
   313         TBool DoEditorOperationQueryL( TUniEditorOperationType aOperation,
       
   314                                        TUniEditorOperationQuery aEvent );        
       
   315 
       
   316         /**
       
   317         * Performs the change slide operation event handling.
       
   318         */
       
   319         void DoChangeSlideCompleteL();
       
   320         
       
   321         /**
       
   322         * Performs the insert operation event handling.
       
   323         */
       
   324         void DoInsertCompleteL( TUniEditorOperationEvent aEvent );
       
   325         
       
   326         /**
       
   327         * Performs the 2nd phase of insert operation event handling.
       
   328         */
       
   329         void DoInsertComplete2ndPhaseL();
       
   330         
       
   331         /**
       
   332         * Performs launch operation event handling.
       
   333         */
       
   334         void DoLaunchCompleteL();
       
   335         
       
   336         /**
       
   337         * Performs save operation event handling.
       
   338         */
       
   339         void DoSaveCompleteL();
       
   340         
       
   341         /**
       
   342         * Performs the 2nd phase of saving operation event handling.
       
   343         */
       
   344         void DoSavingComplete2ndPhase();
       
   345         
       
   346         /**
       
   347         * Performs send operation event handling.
       
   348         */
       
   349         void DoSendCompleteL();
       
   350         
       
   351         /**
       
   352         * Performs 2nd phase of send operation event handling.
       
   353         */
       
   354         void DoSendComplete2ndPhase();
       
   355         
       
   356         /**
       
   357         * Performs vCard insert operation event handling.
       
   358         */
       
   359         void DoVCardCompleteL();
       
   360         
       
   361         /**
       
   362         * Shows insert errors
       
   363         */
       
   364         void ShowInsertErrorsL();
       
   365         
       
   366         /**
       
   367         * From MMsgAsyncControlObserver. Called when asynchronous control
       
   368         * state is changed
       
   369         */
       
   370         void MsgAsyncControlStateChanged( CMsgBaseControl& aControl,
       
   371                                           TMsgAsyncControlState aNewState,
       
   372                                           TMsgAsyncControlState aOldState );
       
   373         
       
   374         /**
       
   375         * From MMsgAsyncControlObserver. Called when asynchronous control
       
   376         * receives resource change event.
       
   377         */
       
   378         void MsgAsyncControlResourceChanged( CMsgBaseControl& aControl, TInt aType );
       
   379         
       
   380         /**
       
   381         * 2nd phase constructor.
       
   382         */
       
   383         void ConstructL(); 
       
   384 
       
   385     private:
       
   386     
       
   387         enum TUniEditorInsertTextType
       
   388             {
       
   389             ETemplateText,
       
   390             EMemoText
       
   391             };
       
   392         
       
   393         enum TUniEditorInsertOtherType
       
   394             {
       
   395             ETextFile,
       
   396             EOtherFile
       
   397             };
       
   398             
       
   399     private: // New functions
       
   400           
       
   401         /**
       
   402         * Update the msglength information in navipane.
       
   403         * Reads the current size from document.
       
   404         *
       
   405         * @param aForceDraw, forces drawing of size label. 
       
   406         */
       
   407         void MsgLengthToNavipaneL( TBool aForceDraw = EFalse );    
       
   408         
       
   409         /**
       
   410         * Calculates the SMS Messages Characters left in the current segment and Total No. of segments in the message
       
   411         * Total No. of segments in the message
       
   412         *
       
   413         * @Return value
       
   414         * charsLeft: Characters left in the current segment
       
   415         * msgsParts: Total No of segments 
       
   416         */
       
   417         void CalculateSMSMsgLen(TInt& charsLeft, TInt& msgsParts);
       
   418 
       
   419         /**
       
   420         * Check if message has any data i.e. either in header ("To"),
       
   421         * in message body or as attachments.
       
   422         *
       
   423         * @return ETrue, message empty,
       
   424         *         EFalse, message not empty
       
   425         */        
       
   426         TBool IsMessageEmpty() const;
       
   427 
       
   428         /**
       
   429         * Draw the "not viewable" icons
       
   430         * (editable 3GPP SMIL or non-editable SMIL).
       
   431         *
       
   432         * @param aEditable, ETrue should be set if SMIL is Template SMIL
       
   433         */
       
   434         void InsertPresentationL( TBool aEditable );
       
   435 
       
   436         /**
       
   437         * Updates the address size to CUniEditorDocument
       
   438         */
       
   439         void SetAddressSize();
       
   440 
       
   441         /**
       
   442         * Updates the subject size to CUniEditorDocument
       
   443         */
       
   444         void SetSubjectSize();
       
   445 
       
   446         /**
       
   447         * Checks message content and if ok send message
       
   448         */        
       
   449         void DoUserSendL();
       
   450 
       
   451         /**
       
   452         * Handles message saving after exit 
       
   453         */        
       
   454         void DoMsgSaveExitL();
       
   455 
       
   456         /**
       
   457         * Handles delayed (external) exit 
       
   458         * @param aDelayTime in microsecods
       
   459         */        
       
   460         void DoDelayedExit( TInt aDelayTime );
       
   461 
       
   462         /**
       
   463         * Handles message saving after user has pressed close.
       
   464         */        
       
   465         void DoBackSaveL();
       
   466 
       
   467         /**
       
   468         * Does actual saving of message to DRAFT folder.
       
   469         *
       
   470         * @param aSaveType, Controls how the saving is done
       
   471         *                   e.g. keep entry hidden etc.
       
   472         */        
       
   473         void DoSaveL( TUniSaveType aSaveType ); 
       
   474 
       
   475         /**
       
   476         * Verifies addresses in address control.
       
   477         *
       
   478         * @return ETrue, if verify successful,
       
   479         *         EFalse otherwise
       
   480         */        
       
   481         TBool VerifyAddressesL( TBool& aModified );
       
   482 
       
   483         /**
       
   484         * Handles user move and select page commands. 
       
   485         */        
       
   486         void DoUserMoveOrSelectPageL( TBool aMovePage );
       
   487         
       
   488         /**
       
   489         * Handles user objects view command. 
       
   490         */        
       
   491         void DoUserObjectsViewL( TBool aFocusAttachments );
       
   492 
       
   493         /**
       
   494         * Handles user add recipient command. 
       
   495         */        
       
   496         void DoUserAddRecipientL();
       
   497 
       
   498         /**
       
   499         * Handles user message info command. 
       
   500         */        
       
   501         void DoUserMessageInfoL();
       
   502 
       
   503         /**
       
   504         * Handles user sending settings command. 
       
   505         */        
       
   506         void DoUserSendingOptionsL();
       
   507 
       
   508         /**
       
   509         * Handles user insert media command. 
       
   510         */        
       
   511         void DoUserInsertMediaL();
       
   512         
       
   513         /**
       
   514         * Handles user insert image command. Creates attachment
       
   515         * and draws image to display. 
       
   516         *
       
   517         * @param aFetchType, ENewImage or EImage 
       
   518         */        
       
   519         void DoUserInsertImageL( MsgAttachmentUtils::TMsgAttachmentFetchType aFetchType );
       
   520 
       
   521         /**
       
   522         * Handles user insert video command. Creates attachment
       
   523         * and draws image to display. 
       
   524         *
       
   525         * @param aFetchType, ENewVideo or EVideo
       
   526         */        
       
   527         void DoUserInsertVideoL( MsgAttachmentUtils::TMsgAttachmentFetchType aFetchType );
       
   528 
       
   529         /**
       
   530         * Handles user insert audio command. Creates atta and draws audio 
       
   531         * (indicator) to display.
       
   532         *
       
   533         * @param aFetchType, ENewAudio or EAudio 
       
   534         */        
       
   535         void DoUserInsertAudioL( MsgAttachmentUtils::TMsgAttachmentFetchType aFetchType );
       
   536 
       
   537         /**
       
   538         * Starts insert operation
       
   539         *
       
   540         * @param aAddSlide Indicates whether new slide should be added.
       
   541         * @param aAddAsAttachment Indicates that file is inserted as attachment.
       
   542         */
       
   543         void DoStartInsertL( TBool aAddSlide, TBool aAddAsAttachment );
       
   544 
       
   545         /**
       
   546         * Creates a media info object from given file and
       
   547         * performs a preliminary check whether it is ok to 
       
   548         * insert the given media file.
       
   549         *
       
   550         * The media info object is created to "iInsertingMedia"
       
   551         * member variable.
       
   552         *
       
   553         * @param aMediaType Media type to be checked
       
   554         * @param aFileName  Media file to be checked
       
   555         * @return ETrue if media info object was created
       
   556         *         EFalse otherwise
       
   557         */        
       
   558         TBool CreateMediaInfoForInsertL( TMsgMediaType aMediaType,
       
   559                                          const TDesC& aFileName );
       
   560 
       
   561         /**
       
   562         * Checks whether the media object in "iInsertingMedia"
       
   563         * member variable is SuperDistributable or not. If yes
       
   564         * and Full OMA DRM is supported gives "Send without 
       
   565         * rights query".
       
   566         *
       
   567         * Deletes the "iInsertingMedia" variable if query is
       
   568         * not accepted.
       
   569         *
       
   570         * @return ETrue, if it is ok to insert the media
       
   571         *         EFalse, otherwise (iInsertingMedia deleted!)
       
   572         */
       
   573         TBool SuperDistributionCheckForInsertL();
       
   574 
       
   575 
       
   576         /**
       
   577         * Checks whether it is ok to insert the media object
       
   578         * in "iInsertingMedia" member variable.
       
   579         *
       
   580         * Deletes the "iInsertingMedia" variable if inserting
       
   581         * is not allowed.
       
   582         *
       
   583         * @return ETrue, if it is ok to insert the media
       
   584         *         EFalse, otherwise (iInsertingMedia deleted!)
       
   585         */
       
   586         TBool CheckMediaInfoForInsertL();
       
   587 
       
   588         /**
       
   589         * Handles user insert slide command. 
       
   590         */
       
   591         void DoUserInsertSlideL();
       
   592         
       
   593         /**
       
   594         * Handles user remove slide command. 
       
   595         */
       
   596         void DoUserRemoveSlideL();
       
   597 
       
   598         /**
       
   599         * Does the actual slide removal. First removes
       
   600         * All objects from the slide, then removes the
       
   601         * actual slide and finally changes the current slide
       
   602         */        
       
   603         void DoRemoveSlideL();
       
   604 
       
   605         /**
       
   606         * Handles user slide change command, i.e. 
       
   607         * this is called when the user scrolls out of
       
   608         * the current slide.
       
   609         * 
       
   610         * @param aSlideNum  Number of the next slide to be drawn
       
   611         */        
       
   612         void DoUserChangeSlideL( TInt aSlideNum );
       
   613 
       
   614         /**
       
   615         * Sets focus after slide is drawn
       
   616         */        
       
   617         void DoSetFocusL();
       
   618 
       
   619         /**
       
   620         * Sets text to title pane
       
   621         */        
       
   622         void SetTitleL();
       
   623 
       
   624         /**
       
   625         * Handles user remove image, audio of video media object
       
   626         * @param aMediaControlId media control id
       
   627         * @param aRegion region the control resides
       
   628         * @param aConfirmResource confirm query to be shown to user
       
   629         */        
       
   630         void DoUserRemoveMediaL(    TMsgControlId   aMediaControlId,
       
   631                                     TUniRegion      aRegion );
       
   632 
       
   633         /**
       
   634         * Handles user insert text command.
       
   635         *
       
   636         * @param aType Text type wanted to be inserted.
       
   637         */
       
   638         void DoUserInsertTextL( TUniEditorInsertTextType aType );
       
   639         
       
   640         /**
       
   641         * Handles user insert other file command.
       
   642         *
       
   643         * @param aType Other file type wanted to be inserted.
       
   644         */
       
   645         void DoUserInsertOtherFileL( TUniEditorInsertOtherType aType );
       
   646         
       
   647         /**
       
   648         * Handles user insert vCard command.        
       
   649         */
       
   650         void DoUserInsertVCardL();
       
   651         
       
   652 //        /**
       
   653 //        * Handles user insert SVG command.        
       
   654 //        */
       
   655 //        void DoUserInsertSvgL();
       
   656         
       
   657         /**
       
   658         * Draws navipane at launch time.
       
   659         */
       
   660         void InitNaviPaneL();
       
   661 
       
   662         /**
       
   663         * Updates following navi indicators to both avkon editor pane and navidecorator pane
       
   664         * - Priority low / high
       
   665         */
       
   666         void UpdateIndicatorIconsL();
       
   667 
       
   668         /**
       
   669         * Auxiliary function. Shows a infomation note using notewrappers. 
       
   670         *
       
   671         * @param aResourceID
       
   672         * @param aWaiting, is note waiting or not.
       
   673         */  
       
   674         void ShowInformationNoteL(TInt aResourceID, TBool aWaiting );
       
   675 
       
   676         /**
       
   677         * Auxiliary function. Shows an error note using notewrappers. 
       
   678         *
       
   679         * @param aResourceID
       
   680         * @param aWaiting, is note waiting or not.
       
   681         */  
       
   682         void ShowErrorNoteL(TInt aResourceID, TBool aWaiting );
       
   683 
       
   684         /**
       
   685         * Auxiliary function. 
       
   686         * Shows a confirmation query.
       
   687         *
       
   688         * @param aResourceID
       
   689         * @return the return value returned by CAknQueryDialog::ExecuteLD
       
   690         */  
       
   691         TInt ShowConfirmationQueryL( TInt aResourceID );
       
   692         TInt ShowConfirmationQueryL( const TDesC& aText ) const;
       
   693         TInt ShowConfirmationNoQuestionQueryL( const TDesC& aText ) const;
       
   694         TInt ShowConfirmableInfoL( TInt aResourceID );
       
   695         TInt ShowConfirmableInfoL( const TDesC& aText ) const;
       
   696         TInt ShowConfirmableInfoErrorL( const TDesC& aText ) const;
       
   697 
       
   698         /**
       
   699         * Auxiliary function. Shows a confirmation query if it is not shown before. 
       
   700         *
       
   701         * @param aResourceID
       
   702         * @return the return value returned by CAknQueryDialog::ExecuteLD
       
   703         */  
       
   704         TInt ShowGuidedModeConfirmationQueryL( TInt aResourceID );
       
   705 
       
   706         /**
       
   707         * Shows wait note using CAknWaitDialog.
       
   708         *
       
   709         * @param aResourceID
       
   710         */
       
   711         TBool ShowWaitNoteL( TInt aResourceId );
       
   712         
       
   713         /**
       
   714         * Remove wait note from screen.
       
   715         */
       
   716         void RemoveWaitNote();
       
   717 
       
   718         /** 
       
   719         * Handles text addition to model when needed, updates size
       
   720         * when addreses or bodytext edited.
       
   721         */        
       
   722         void HandleCharInputL();
       
   723 
       
   724         /** 
       
   725         * Checks whether text object should be added to smilmodel when
       
   726         * after characters are added/removed
       
   727         */        
       
   728         void UpdateSmilTextAttaL();
       
   729 
       
   730         /**
       
   731         * Message size according to TS 23.140 v5.5.0
       
   732         *
       
   733         * @return size in bytes
       
   734         */
       
   735         TInt MessageSizeInBytes();
       
   736 
       
   737         /**
       
   738         * Handles selection key press.
       
   739         */
       
   740         void DoSelectionKeyL();
       
   741         
       
   742         /**
       
   743         * Performs launch finalization.
       
   744         */
       
   745         void FinalizeLaunchL();
       
   746         
       
   747         /**
       
   748         * Shows possible notes related to editor launching. 
       
   749         * These notes include both error notes and notes related to content & MMS creation mode.
       
   750         *
       
   751         * @aParam aShutDown  Returns ETrue    if launching can proceed
       
   752         *                            EFalse   if launching should be aborted immediatelly.
       
   753         */
       
   754         void ShowLaunchNotesL( TBool& aShutDown );
       
   755 
       
   756         /**
       
   757         * Sets an error resource id to be handled later
       
   758         * (usually after LaunchViewL).
       
   759         *
       
   760         * @param aStoreId   IN/OUT  The correct id is stored here
       
   761         * @param aNewId     IN      Error id
       
   762         */
       
   763         void SetErrorResource( TInt& aStoreId, TInt aNewId );
       
   764         
       
   765         /**
       
   766         * Determines error "priority"
       
   767         */
       
   768         TInt ErrorPriority( TInt aErrorId );
       
   769 
       
   770         /**
       
   771         * Checks if phone is in offline mode or not
       
   772         *
       
   773         * @return ETrue if phone is in offline mode
       
   774         *         Otherwise EFalse.
       
   775         */
       
   776         TBool IsPhoneOfflineL() const;
       
   777 
       
   778         /**
       
   779         * Checks whether there's enough disk space
       
   780         * to save the message.
       
   781         *
       
   782         * @return ETrue if there is enough disk space.
       
   783         *         Otherwise EFalse.
       
   784         */
       
   785         TBool CanSaveMessageL() const;
       
   786 
       
   787         /** 
       
   788         * Launches help application
       
   789         */
       
   790         void LaunchHelpL();
       
   791 
       
   792         /** 
       
   793         * Gets help context
       
   794         */
       
   795         CArrayFix<TCoeHelpContext>* HelpContextL() const;          
       
   796 
       
   797         /** 
       
   798         * User selects a new template and launches smil editor
       
   799         */
       
   800         void NewTemplateL();
       
   801 
       
   802         /** 
       
   803         * Opens smil editor for template message opened from drafts folder
       
   804         */
       
   805         void OpenTemplateL();
       
   806 
       
   807         /** 
       
   808         * Called when user wants to play created presentation
       
   809         * Starts creating SMIL DOM
       
   810         */
       
   811         void PlayPresentationL();
       
   812         
       
   813         /** 
       
   814         * When the SMIL DOM creation is ready, this function is called by the callback funtion
       
   815         * to start the SMILPlayer dialog.
       
   816         */
       
   817         void DoCompletePlayPresentationL();
       
   818         
       
   819         /** 
       
   820         * Removes template from message.
       
   821         */
       
   822         void RemoveTemplateL();
       
   823 
       
   824         /**
       
   825         * Handles user change order command.
       
   826         */
       
   827         void DoUserChangeOrderL( TUniLayout aLayout );
       
   828 
       
   829         /**
       
   830         * Begins active scheduler loop
       
   831         */
       
   832         void BeginActiveWait( CUniEditorOperation* aOperation );
       
   833         
       
   834         /**
       
   835         * Stops active scheduler loop
       
   836         */
       
   837         void EndActiveWait();
       
   838         
       
   839         /**
       
   840         * Returns available objects as a bit mask
       
   841         */
       
   842         TUint32 ObjectsAvailable();
       
   843         
       
   844         /**
       
   845         * Handles resource change events.
       
   846         */
       
   847         void HandleResourceChangeL(TInt aType);
       
   848     
       
   849         /**
       
   850         * ParseFileCompleteL
       
   851         * Call back function used to inform client of Parser when SMIL dom is ready for preview
       
   852         */
       
   853         void ParseFileCompleteL();
       
   854 
       
   855         /** 
       
   856         * Accessor
       
   857         * Get pointer to image control
       
   858         *
       
   859         * @return Pointer to image control or
       
   860         *         NULL if image control does not exist
       
   861         */
       
   862         inline CMsgImageControl* ImageCtrl() const;
       
   863 
       
   864         /** 
       
   865         * Accessor
       
   866         * To check whether To field is ON CURRENT SLIDE.
       
   867         * Address handling should take place through CUniEditorHeader
       
   868         *
       
   869         * @return Pointer to image control or
       
   870         *         NULL if image control does not exist
       
   871         */
       
   872         inline CMsgAddressControl* ToCtrl() const;
       
   873 
       
   874         /** 
       
   875         * Accessor
       
   876         * To check whether Subject field is on ON CURRENT SLIDE
       
   877         * Subject handling should take place through CUniEditorHeader
       
   878         *
       
   879         * @return Pointer to image control or
       
   880         *         NULL if image control does not exist
       
   881         */
       
   882         inline CMsgExpandableControl* SubjectCtrl() const;
       
   883    
       
   884         /** 
       
   885         * Accessor
       
   886         * Get pointer to body control
       
   887         *
       
   888         * @return Pointer to body control or
       
   889         *         NULL if body control does not exist
       
   890         */
       
   891         inline CMsgBodyControl* BodyCtrl() const;
       
   892 
       
   893         /** 
       
   894         * Accessor
       
   895         * Get pointer to address control rich text editor
       
   896         *
       
   897         * @return Pointer to address control editor or
       
   898         *         NULL if address control does not exist
       
   899         */
       
   900         inline CEikRichTextEditor* RecipientCtrlEditor(CUniBaseHeader::THeaderFields aField) const;
       
   901 
       
   902         /** 
       
   903         * Accessor
       
   904         * Get pointer to subject control rich text editor
       
   905         *
       
   906         * @return Pointer to subject control editor or
       
   907         *         NULL if subject control does not exist
       
   908         */
       
   909         inline CEikRichTextEditor* SubjectCtrlEditor() const;
       
   910 
       
   911         /** 
       
   912         * Accessor
       
   913         * Get pointer to body control rich text editor
       
   914         *
       
   915         * @return Pointer to body control editor or
       
   916         *         NULL if body control does not exist
       
   917         */
       
   918         inline CEikRichTextEditor* BodyCtrlEditor() const;
       
   919 
       
   920         /** 
       
   921         * Accessor
       
   922         * Get pointer to document instance
       
   923         *
       
   924         * @return Pointer to UniEditorDocument
       
   925         */
       
   926         inline CUniEditorDocument* Document() const;
       
   927 
       
   928         /**
       
   929         * Check if message header is empty
       
   930         *
       
   931         * @return ETrue, to field is empty,
       
   932         *         EFalse, to field has text
       
   933         */        
       
   934         inline TBool IsHeaderEmpty() const;
       
   935 
       
   936         /**
       
   937         * Check if message body is empty
       
   938         *
       
   939         * @return ETrue, message body empty,
       
   940         *         EFalse, message body not empty
       
   941         */        
       
   942         inline TBool IsBodyEmpty() const;
       
   943 
       
   944         /**
       
   945         * Accessor
       
   946         * Get reference to file session
       
   947         *
       
   948         * @return Reference to file session
       
   949         */        
       
   950         inline RFs& FsSession() const;
       
   951     
       
   952         /**
       
   953         * Implements AddHeaders command
       
   954         */
       
   955         void DoUserAddHeadersL();
       
   956         
       
   957         /**
       
   958         * Collects statistics about additional headers after user
       
   959         * has closed the multiselection list.
       
   960         * @param aIndexesOut list of (un)selected items. Values are TBool 
       
   961         * @param aVariation flags of variation
       
   962         * @param aNewSelectionFlags OUT contains headers, which user selected
       
   963         * @param aRemoveFlags OUT contains headers to be removed from UI
       
   964         * @param aRemovewarningFlags OUT contains headers to be removed from UI,
       
   965         *        which contains data
       
   966         * @param aAddFlags OUT contains headers to be added to the UI
       
   967         * 
       
   968         *        Every flag is a combination of EMmsFeatureSubject, EMmsFeatureCc
       
   969         *        and EMmsFeatureBcc of enum TMmsFeatures
       
   970         */
       
   971         void AddHeadersCollectStatisticsL( CArrayFix<TInt>& aIndexesOut, 
       
   972                                            TInt aVariation,
       
   973                                            TInt& aNewSelectionFlags,
       
   974                                            TInt& aRemoveFlags,
       
   975                                            TInt& aRemoveWarningFlags,
       
   976                                            TInt& aAddFlags) const;
       
   977 
       
   978 
       
   979         /**
       
   980         * Returns count of headers, which have flag set
       
   981         * @param aFlags combination of flags of EMmsFeatureSubject, EMmsFeatureCc
       
   982         * and EMmsFeatureBcc of enum TMmsFeatures
       
   983         * @return count of headers
       
   984         */
       
   985         TInt AddHeadersCount( TInt aFlags ) const;
       
   986         
       
   987         /**
       
   988         * Set scroll positions of editor controls to the end of
       
   989         * of the text (address controls and body text if before image)
       
   990         * or beginning of body text, if body text is after media object.
       
   991         * This function is usually called after inserting media has been successful.
       
   992         */
       
   993         void SetCursorPositionsForInsertL();
       
   994 
       
   995         /**
       
   996         * Add icon of priority to navi pane
       
   997         */
       
   998         void PriorityToNaviPane();
       
   999         
       
  1000         /**
       
  1001         * Removes text from the current page
       
  1002         */
       
  1003         void RemoveCurrentTextObjectL();
       
  1004         
       
  1005         /**
       
  1006         * Checks body message type.
       
  1007         */
       
  1008         void CheckBodyForMessageTypeL();
       
  1009         
       
  1010         /**
       
  1011         * Checks header message type.
       
  1012         */
       
  1013         void CheckHeaderForMessageTypeL();
       
  1014         
       
  1015         /**
       
  1016         * Checks if the body content is SMS conformant
       
  1017         */
       
  1018         TBool IsBodySmsCompatibleL( TBool aInAutoMode = ETrue );
       
  1019         
       
  1020         /**
       
  1021         * Set iSmsSize and EUnicodeMode
       
  1022         */
       
  1023         void CheckSmsSizeAndUnicodeL();
       
  1024         
       
  1025         /**
       
  1026         * Checks if there are too many recipients and shows a note
       
  1027         * @return ETrue - if recipients OK otherwise EFalse
       
  1028         */
       
  1029         TBool CheckMaxRecipientsAndShowNoteL( TBool aSendCheck = EFalse );
       
  1030         
       
  1031         /**
       
  1032         * Returns SMS plugin
       
  1033         */
       
  1034         inline CUniEditorPlugin* SmsPlugin();
       
  1035         
       
  1036         /**
       
  1037         * Returns MMS plugin
       
  1038         */
       
  1039         inline CUniEditorPlugin* MmsPlugin();        
       
  1040         
       
  1041         /**
       
  1042         * Returns whether editor is fully launched or not.
       
  1043         */
       
  1044         inline TBool IsLaunched() const;
       
  1045         
       
  1046         /**
       
  1047         * Creates a string from integer
       
  1048         * If size is less than 10 kilobytes -> string with one decimal
       
  1049         * If size is 0 or 10k or more -> integer string
       
  1050         * 
       
  1051         * @since    3.1
       
  1052         * @param    aSizeInBytes    IN size to be converted to string
       
  1053         *                           in bytes
       
  1054         * @param    aSize   IN/OUT the size string
       
  1055         * @param    aInteger    OUT the integer part of the string
       
  1056         * @param    aFragment   OUT the decimal part of the string
       
  1057         */
       
  1058         void CreateMmsNaviSizeStringL( const TInt aSizeInBytes,
       
  1059                                        TDes& aSize,
       
  1060                                        TInt& aInteger,
       
  1061                                        TInt& aFragment );
       
  1062                 
       
  1063         /**
       
  1064         * Handles insert other file command from toolbar.
       
  1065         */
       
  1066         void DoToolbarInsertOtherL();
       
  1067         
       
  1068         /**
       
  1069         * Shows list query
       
  1070         */
       
  1071         TBool ShowListQueryL( TInt aResourceID, TInt& aSelectedIndex ) const;
       
  1072         
       
  1073         /**
       
  1074         * Hides popup note
       
  1075         */
       
  1076         void HidePopupNote();
       
  1077         
       
  1078         /**
       
  1079         * Shows popup note
       
  1080         */
       
  1081         void ShowPopupNoteL( TBool aMms );
       
  1082         
       
  1083         /**
       
  1084         * Plays focused item
       
  1085         */
       
  1086         void PlayFocusedItemL();
       
  1087         
       
  1088         /**
       
  1089         * Checks the size of the sms body and shows notes
       
  1090         * If aSendCheck is ETrue, checks only if the body exceeds the max size
       
  1091         */
       
  1092         void CheckMaxSmsSizeAndShowNoteL( TBool aSendCheck = EFalse );
       
  1093         
       
  1094         /**
       
  1095         * Sets or removes edwin control's maximum size 
       
  1096         */
       
  1097         void SetOrRemoveMaxSizeInEdwin();
       
  1098         
       
  1099         /**
       
  1100         * Checks the focused item and updates the middle softkey accordingly
       
  1101         */
       
  1102         void UpdateMiddleSoftkeyL();
       
  1103         
       
  1104         /**
       
  1105         * Sets input mode to address fields
       
  1106         */
       
  1107         void SetInputModeToAddressFields( TInt aInputMode );
       
  1108         
       
  1109         /**
       
  1110         * Handles user priority change command.
       
  1111         */
       
  1112         void DoEditMmsPriorityL();
       
  1113         
       
  1114         /**
       
  1115         * Creates radio button array
       
  1116         */
       
  1117         CAknIconArray* RadioButtonArrayL();
       
  1118         
       
  1119         /**
       
  1120         * Confirms SMS message sending in multiple parts
       
  1121         */
       
  1122         TBool ConfirmSmsSendInMultiplePartsL();
       
  1123         
       
  1124         /**
       
  1125         * Sets title icons sizes.
       
  1126         */
       
  1127         void SetTitleIconsSizeL();
       
  1128         
       
  1129         /**
       
  1130         * Tells if email addresses are accepted by the message
       
  1131         * For example locked sms + EmailOverSms or not-locked sms
       
  1132         */
       
  1133         TBool AcceptEmailAddresses();
       
  1134         
       
  1135         /**
       
  1136         * Tells if the message is locked in sms mode
       
  1137         * (either by restricted reply or temporarily in sending options)
       
  1138         */
       
  1139         TBool IsHardcodedSms();
       
  1140         
       
  1141         /**
       
  1142         * Resolves control id of the focused control after the launch.
       
  1143         */
       
  1144         TMsgControlId ResolveLaunchFocusedControlL();
       
  1145         
       
  1146         /**
       
  1147         * Sets correct message type locking to MTM
       
  1148         */
       
  1149         void SetMessageTypeLockingL();
       
  1150         
       
  1151         /**
       
  1152         * Activates input blocker properly.
       
  1153         *
       
  1154         * @param aActiveObjectToCancel Pointer to an active object that is called when 
       
  1155         *                              input blocker is cancelled. Can be NULL.
       
  1156         */
       
  1157         void ActivateInputBlockerL( CActive* aActiveObjectToCancel );
       
  1158         
       
  1159         /**
       
  1160         * Deactivates input blocker properly.
       
  1161         */
       
  1162         void DeactivateInputBlocker();
       
  1163         
       
  1164         /**
       
  1165         * Updates toolbar items status to correct one.
       
  1166         */
       
  1167         void UpdateToolbarL();
       
  1168         
       
  1169         /**
       
  1170         * Check whether message is locked to SMS mode and if
       
  1171         * it includes an attachment (i.e. vCard or vCal). Performs
       
  1172         * actions related to changes from in and out of this state.
       
  1173         */
       
  1174         void CheckLockedSmsWithAttaL();
       
  1175         
       
  1176         /**
       
  1177          * Sets fixed toolbar dimmed.
       
  1178          */
       
  1179         void SetFixedToolbarDimmed();
       
  1180         
       
  1181         /**
       
  1182          * Cleanup item for setting toolbar enabled.
       
  1183          */
       
  1184         static void EnableFixedToolbar( TAny* aAny );
       
  1185         
       
  1186           /**
       
  1187          * Cleanup item for Updating fixed toolbar Dimmed.
       
  1188          */
       
  1189          static void UpdateFixedToolbar( TAny* aAny );
       
  1190         /**
       
  1191          * Cleanup item for.Disabling SendKey
       
  1192          */
       
  1193         static void DisableSendKey( TAny* aAny );
       
  1194         
       
  1195         
       
  1196         
       
  1197         /**
       
  1198          * Creates fixed toolbar.
       
  1199          * 
       
  1200          * @param aDimmed ETrue if all toolbar items are wanted to be set dimmed.
       
  1201          *                EFalse otherwise.
       
  1202          */
       
  1203         void CreateFixedToolbarL( TBool aSetDimmed );
       
  1204         
       
  1205         /**
       
  1206         * Sets extension button to dimmed/undimmed.
       
  1207         * 
       
  1208         * @param aExtension Toolbar extension
       
  1209         * @param aButtonId Toolbar button id
       
  1210         * @param aDimmed ETrue/EFalse Dimmed/Undimmed.
       
  1211         */
       
  1212         void SetExtensionButtonDimmed( CAknToolbarExtension* aExtension, TInt aButtonId, TBool aDimmed );
       
  1213         
       
  1214         /**
       
  1215          * Enables toolbar.
       
  1216          */
       
  1217         void DoEnableFixedToolbar();
       
  1218         /**
       
  1219          * Update toolbar.
       
  1220          */
       
  1221         void DoUpdateFixedToolbar();
       
  1222                 
       
  1223         /**
       
  1224          * Handles enter key processing.
       
  1225          */
       
  1226         TBool DoEnterKeyL();
       
  1227         
       
  1228         /**
       
  1229         * Verifys and if valid to show SMS Size, then sends it to the PenInput server
       
  1230         */
       
  1231         void SmsMsgLenToPenInputL();
       
  1232         
       
  1233         /**
       
  1234         * Verifys whether Updated Message Length is required to send to Pen Input or not
       
  1235         */
       
  1236         TBool UpdateMsgLenToPenInput();
       
  1237         
       
  1238         /**
       
  1239          *     Notification from central repository
       
  1240          */
       
  1241        	void HandleNotifyInt( TUint32 aId, TInt aNewValue );
       
  1242     private:     // Enumerations
       
  1243 
       
  1244     enum TUniEditorFlags
       
  1245         {
       
  1246         EUseEstimatedSmilSize   = 0x0001,
       
  1247         ELaunchSuccessful       = 0x0002,
       
  1248         EShowGuidedConf         = 0x0004,
       
  1249         EEditorExiting          = 0x0008,
       
  1250         ERunAppShutterAtExit    = 0x0010,
       
  1251         EEditorClosing          = 0x0020,
       
  1252         EInsertAddsSlide        = 0x0040,   
       
  1253         EMaxRecipientShown      = 0x0080,   // max recipient note already shown
       
  1254         EShowInfoPopups         = 0x0100,   // show "message type changed" notes
       
  1255         EMaxSmsSizeNoteShown    = 0x0200,   // max size of sms note is shown
       
  1256         ESubjectOkInSms         = 0x0400,   // if defined subject is ok to show also in sms auto mode
       
  1257         EHideSizeCounter        = 0x0800,   // hide size counters in navipane
       
  1258         ESmsCounterShownLast    = 0x1000,    // last time a counter was updated it was sms counter
       
  1259         EShowSmsSentInManyParts = 0x2000,    // ask the query "message will be sent in x parts"
       
  1260         EDoNotUpdateTitlePane   = 0x4000,    // set while Objects view is open so the title pane remains ok if layout is changed
       
  1261         EShowSmsSizeNoteNextTime = 0x8000, // when max sms size reached -> show this note after next letter
       
  1262         EToolbarHidden          = 0x10000,
       
  1263         ELockedSmsWithAtta      = 0x20000,
       
  1264         EMsgEditInProgress      = 0x40000,
       
  1265         ESmsSizeWarningNoteShown = 0x80000, // Korean req: 415-5434
       
  1266         EHideMessageTypeOption   = 0x100000
       
  1267         };
       
  1268 
       
  1269     private:     // Data
       
  1270 
       
  1271         TInt                       iDisplaySize;       // Current msg size in navipane. Kb/Mb
       
  1272 
       
  1273         CAknLocalScreenClearer*    iScreenClearer;
       
  1274         CPeriodic*                 iIdle;
       
  1275 
       
  1276         CUniSmilModel*             iSmilModel;         // Fetch pointer from document at launch
       
  1277         CUniClientMtm*             iMtm;               // Fetch pointer from document at launch
       
  1278 
       
  1279         CMDXMLParser*              iParser;    // SMIL Parser fore presentation preview
       
  1280         CMDXMLDocument*            iDom;        // Dom created by parser for smil player
       
  1281 
       
  1282         CAknInputBlock*            iInputBlocker;    // AknInputBlocker
       
  1283 
       
  1284         CAknWaitDialog*            iWaitDialog;
       
  1285         TInt                       iWaitResId;
       
  1286 
       
  1287         TInt                       iOriginalSlide;
       
  1288         TInt                       iNextSlide;
       
  1289         TMsgControlId              iNextFocus;
       
  1290         CAknTitlePane*             iTitlePane;
       
  1291         HBufC*                     iTitleSms;
       
  1292         HBufC*                     iTitleMms;
       
  1293         TInt                       iSmsBodyLength;
       
  1294         TInt                       iSmsSubjectLength;
       
  1295         TInt                       iPrevSmsLength; 
       
  1296 
       
  1297         HBufC*                     iSmsLengthFormatBuffer;
       
  1298         HBufC*                     iMmsLengthFormatBuffer;
       
  1299 
       
  1300         CGulIcon*                  iIconSms;
       
  1301         CGulIcon*                  iIconMms;
       
  1302         
       
  1303         CAknInfoPopupNoteController* iPopupNote;
       
  1304         HBufC*                     iPopupChangedMmsBuffer;
       
  1305         HBufC*                     iPopupChangedSmsBuffer;
       
  1306 
       
  1307         CRepository*               iMuiuSettRepository;
       
  1308 
       
  1309         TUint32                    iEditorFlags;
       
  1310         TInt                       iSupportedFeatures;
       
  1311 
       
  1312         CUniSlideLoader*           iSlideLoader;
       
  1313 
       
  1314         CUniEditorHeader*          iHeader;
       
  1315         CUniEditorChangeSlideOperation* iChangeSlideOperation;
       
  1316         CUniEditorInsertOperation* iInsertOperation;
       
  1317         CUniEditorLaunchOperation* iLaunchOperation;
       
  1318         CUniEditorSaveOperation*   iSaveOperation;
       
  1319         CUniEditorSendOperation*   iSendOperation;
       
  1320         CUniEditorOperation*       iActiveOperation;
       
  1321         CUniEditorVCardOperation*  iVCardOperation;
       
  1322 
       
  1323         CMsgMediaInfo*             iInsertingMedia;
       
  1324         TMsgMediaType              iInsertingType;
       
  1325         
       
  1326         CActiveSchedulerWait       iWait;
       
  1327         
       
  1328         CAknNavigationControlContainer* iNaviPane;
       
  1329 
       
  1330         CDocumentHandler*           iDocHandler;
       
  1331         TInt                        iMskResId;
       
  1332         
       
  1333         // Used to connect pointer down and up events to correct control. Not owned.
       
  1334         CMsgBaseControl*            iFocusedControl;
       
  1335         CMsgBaseControl*            iStoredBodyControl;
       
  1336         
       
  1337         CAknToolbar*                iFixedToolbar;
       
  1338         
       
  1339         RPeninputServer             iPeninputServer;
       
  1340         CCenRepNotifyHandler*       iNotifyHandler;
       
  1341         CRepository*                iInputTxtLangRepository;
       
  1342         TBool                       iMsgLenToVKB;
       
  1343         
       
  1344         //Turkish SMS-PREQ2265 specific...
       
  1345         TInt                        iNumOfPDUs;
       
  1346         TInt                        iCharsLeft;
       
  1347         TBool                       iNLTFeatureSupport;
       
  1348 		HBufC*                      iPrevBuffer;
       
  1349         TBool						iSettingsChanged;    
       
  1350         
       
  1351         //Korean Req: 415-5434
       
  1352         HBufC*                     iPopupSmsSizeAboveLimitBuffer;
       
  1353         HBufC*                     iPopupSmsSizeBelowLimitBuffer;
       
  1354     };
       
  1355 
       
  1356 #include "UniEditorAppUi.inl"
       
  1357 
       
  1358 #endif      //  _UniEditorAPPUI_H
       
  1359 
       
  1360 // End of File
       
  1361