meetingrequest/mrgui/inc/cesmrviewerdialog.h
branchRCL_3
changeset 12 4ce476e64c59
parent 0 8466d47a6819
child 16 b5fbb9b25d57
--- a/meetingrequest/mrgui/inc/cesmrviewerdialog.h	Mon Mar 15 12:39:10 2010 +0200
+++ b/meetingrequest/mrgui/inc/cesmrviewerdialog.h	Wed Mar 31 21:08:33 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -17,15 +17,15 @@
 #ifndef CESMRVIEWERDIALOG_H
 #define CESMRVIEWERDIALOG_H
 
-#include <AknDialog.h>
+#include <akndialog.h>
 #include <akntoolbarobserver.h>
-#include <AknNaviDecoratorObserver.h>
-#include <msvapi.h>
-
+#include <aknserverapp.h>
 #include "mesmruibase.h"
 #include "mesmrresponseobserver.h"
 #include "resmrstatic.h"
 #include "mesmrfieldeventobserver.h"
+#include "mesmrnaviarroweventobserver.h"
+#include "cesmrfieldbuilderinterface.h"
 
 class MESMRFieldStorage;
 class MESMRCalEntry;
@@ -33,14 +33,15 @@
 class MAgnEntryUiCallback;
 class CESMRPolicy;
 class CESMRSendUI;
-class CAiwServiceHandler;
 class CCEUIPolicyResolver;
 class CESMRPolicyManager;
 class CESMRLocationPluginHandler;
 class CESMRFeatureSettings;
-class CAknNavigationDecorator;
-class MESMRMeetingRequestEntry;
-class TFSMailMsgId;
+class CMRToolbar;
+class TDataType;
+class MMRInfoProvider;
+class MMRFocusStrategy;
+class CESMRTitlePaneHandler;
 
 /**
  *  CESMRViewerDialog implements the viewer dialog for meeting requests.
@@ -54,23 +55,20 @@
          public MESMRResponseObserver,
          public MESMRFieldEventObserver,
          public MAknToolbarObserver,
-         public MAknNaviDecoratorObserver,
-         public MMsvSessionObserver
+         public MESMRNaviArrowEventObserver
     {
 public:
 
     /**
      * Two-phased constructor.
      *
-     * @param aStorage Field storage contains all the fields for list component.
-     * @param aEntry ESMR calendar entry (wraps the CCalEntry object)
+     * @param aInfoProvider Reference to MR / entry info provider.
      * @param aCallback Callback interface for AgnEntryUI
      * @return Pointer to created and initialized esmr editor dialog.
      */
      IMPORT_C static CESMRViewerDialog* NewL(
-        CESMRPolicy* aPolicy,
-        MESMRCalEntry& aEntry,
-        MAgnEntryUiCallback& aCallback );
+             MMRInfoProvider& aInfoProvider,
+             MAgnEntryUiCallback& aCallback );
     /*
      * Destructor.
      */
@@ -86,7 +84,7 @@
             CEikMenuPane* aMenuPane );
     void ActivateL();
     void PreLayoutDynInitL();
-
+    
 public: // From MESUIBase
     TInt ExecuteViewLD();
 
@@ -96,48 +94,26 @@
     void ChangeReadyResponseL();
 
 public: // From MAknToolbarObserver
-    virtual void OfferToolbarEventL( TInt aCommand );
-
-public: // from MAknNaviDecoratorObserver
-    void HandleNaviDecoratorEventL( TInt aEventID );
+    void DynInitToolbarL ( TInt aResourceId, CAknToolbar* aToolbar );
+    void OfferToolbarEventL ( TInt aCommand );
 
-public: // from MMsvSessionObserver
-    void HandleSessionEventL( 
-        TMsvSessionEvent aEvent, TAny* aArg1,
-        TAny* aArg2, TAny* aArg3 );
-    
-public:
-    /**
-     *  Static method that is given as callback to CIdle object
-     *  handling the navigation decorator right arrow event.
-     *  
-     *  @param aObjPtr TAny-casted pointer to an instance of this class.
-     *  @return Always KErrNone.
-     */
-    static TInt RunCmdMailNextMessageIdle( TAny* aObjPtr );
-    
-    /**
-     *  Static method that is given as callback to CIdle object
-     *  handling the navigation decorator left arrow event.
-     *  
-     *  @param aObjPtr TAny-casted pointer to an instance of this class.
-     *  @return Always KErrNone.
-     */
-    static TInt RunCmdMailPreviousMessageIdle( TAny* aObjPtr );
-    
 protected: // MESMRFieldEventObserver
     void HandleFieldEventL( const MESMRFieldEvent& aEvent );
+    
+public: // From MESMRNaviArrowEventObserver
+    void HandleNaviArrowEventL( const TInt aCommand );
 
 private: // Implementation
     void DoProcessCommandL( TInt aCommand );
-    CESMRViewerDialog( MESMRCalEntry& aEntry, MAgnEntryUiCallback& aCallback );
-    void ConstructL( CESMRPolicy* aPolicy );
+    CESMRViewerDialog(
+            MMRInfoProvider& aInfoProvider,
+            MAgnEntryUiCallback& aCallback );
+    void ConstructL();
     void OpenInDayModeL();
     void CommandTailL(HBufC16*& aTailBuffer);
-    TBool HandleCommandForRecurrentEventL( TInt aCommand );
+    TBool HandleCommandForEventL( TInt aCommand );
     void SendCalendarEntryL(TInt aCommandId);
     void TryInsertSendMenuL(CEikMenuPane* aMenuPane);
-    void HandlePrintCommandL(TInt aCommand);
     void HandleEmailSubmenuL(
             TInt aResourceId,
             CEikMenuPane* aMenuPane );
@@ -147,54 +123,51 @@
     void HandleDynamicMenuItemsL(
             TInt aResourceId,
             CEikMenuPane* aMenuPane );
-    TBool SupportsAttendeeStatusL();
+    TBool SupportsMailBoxCapabilityL( 
+            MESMRBuilderExtension::TMRCFSMailBoxCapability aCapa );
     TBool HandleMRExitL(
             TInt aCommand  );
-    TBool SupportsForwardingAsMeetingL( 
-            MESMRMeetingRequestEntry* aEntry,
-            TBool aForceResetDefaultMRMailbox );
+    void HandleForwardMenuL(
+            TInt aResourceId,
+            CEikMenuPane* aMenuPane );
     CESMRLocationPluginHandler& LocationPluginHandlerL();
     void SetDefaultMiddleSoftKeyL();
-    TPtrC DigMailboxAndRemovePrefixL();
-    void MakeMrGuiToolbarButtonsL();
-    void ClearToolbarL();
-    TInt AccountIdL( const TFSMailMsgId& aMailboxId );
+    TInt TryToSaveAttachmentL();
+    void SetContextMenu();
+    void ShowContextMenuL();
+    TBool UserWantToHandleAttachmentsL();
+    void InitLocationMenuL(
+            CEikMenuPane* aMenuPane );
+    void ConstructToolbarL();
+    void ProcessCommandEventL( const MESMRFieldEvent& aEvent );
+    void ProcessFieldEventL( const MESMRFieldEvent& aEvent );
     
 private: // Data
 
-    /// Own: Feature manager initialization flag
-    TBool iFeatureManagerInitialized;
-    /// Ref: The only control in this dialog. Fwk deletes.
+     /// Ref: The only control in this dialog. Fwk deletes.
     CESMRView* iView;
-    /// Ref: Reference to MESRCalEntry (CCalEntry wrapper)
-    MESMRCalEntry& iEntry;
     /// Ref: Agn Entry UI callback interface
     MAgnEntryUiCallback& iCallback;
-    /// Ref: Pointer to policy
-    CESMRPolicy* iPolicy;
     /// Own: Calendar Global data
     CESMRSendUI* iESMRSendUI;
-    /// Own: AIW Service handler
-    CAiwServiceHandler* iServiceHandler;
     /// Own: Flag for marking exit
     TBool iExitTriggered;
     /// Own: Static TLS data handler
     RESMRStatic iESMRStatic;
-    // Own: Location plugin handler.    
+    // Own: Location plugin handler.
     CESMRLocationPluginHandler* iLocationPluginHandler;
     // Own: Feature settings.
     CESMRFeatureSettings* iFeatures;
-    // Not own: Pointer to previous toolbar observer.
-    MAknToolbarObserver* iOldObserver;
-    // flag to indicate toolbar can be cleared
-    TBool iClearToolbar;
-    // Own: CIdle object through which navi button events are handled.
-    //      CIdle with callback is used because the navi buttons events
-    //      cause deletion of this dialog, but the actual button event 
-    //      handling needs to be completed before closing the dialog.
-    CIdle* iIdleNaviEventRunner;
-    // Not own: Pointer to navigation decorator
-    CAknNavigationDecorator* iESMRNaviDecorator;
+    /// Own: Toolbar
+    CMRToolbar* iToolbar;
+    /// Ref: Reference to mrinfo provider
+    MMRInfoProvider& iInfoProvider;
+    /// Own: Context menu resource ID.
+    TInt iContextMenuResourceId;
+    /// Own: Focus strategy of the viewer
+    MMRFocusStrategy* iFocusStrategy;
+    /// Own: Titlepane handler
+    CESMRTitlePaneHandler* iTitlePane;
     };
 
 #endif // CESMRVIEWERDIALOG_H