diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrgui/inc/cesmrviewerdialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/inc/cesmrviewerdialog.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,173 @@ +/* +* 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" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ESMR viewer dialog +* +*/ +#ifndef CESMRVIEWERDIALOG_H +#define CESMRVIEWERDIALOG_H + +#include +#include +#include +#include "mesmruibase.h" +#include "mesmrresponseobserver.h" +#include "resmrstatic.h" +#include "mesmrfieldeventobserver.h" +#include "mesmrnaviarroweventobserver.h" +#include "cesmrfieldbuilderinterface.h" + +class MESMRFieldStorage; +class MESMRCalEntry; +class CESMRView; +class MAgnEntryUiCallback; +class CESMRPolicy; +class CESMRSendUI; +class CCEUIPolicyResolver; +class CESMRPolicyManager; +class CESMRLocationPluginHandler; +class CESMRFeatureSettings; +class CMRToolbar; +class TDataType; +class MMRInfoProvider; +class MMRFocusStrategy; +class CESMRTitlePaneHandler; + +/** + * CESMRViewerDialog implements the viewer dialog for meeting requests. + * + * @see mesmruibase.h, mesmruifactory.h + * @lib esmrgui.lib + */ +NONSHARABLE_CLASS( CESMRViewerDialog ): + public CAknDialog, + public MESMRUiBase, + public MESMRResponseObserver, + public MESMRFieldEventObserver, + public MAknToolbarObserver, + public MESMRNaviArrowEventObserver + { +public: + + /** + * Two-phased constructor. + * + * @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( + MMRInfoProvider& aInfoProvider, + MAgnEntryUiCallback& aCallback ); + /* + * Destructor. + */ + ~CESMRViewerDialog(); + +public: // From CAknDialog + SEikControlInfo CreateCustomControlL( TInt aType ); + TKeyResponse OfferKeyEventL(const TKeyEvent& aEvent, TEventCode aType); + TBool OkToExitL (TInt aButtonId); + void ProcessCommandL( TInt aCommand ); + void DynInitMenuPaneL( + TInt aResourceId, + CEikMenuPane* aMenuPane ); + void ActivateL(); + void PreLayoutDynInitL(); + +public: // From MESUIBase + TInt ExecuteViewLD(); + +public: // From MESMRResponseObserver + TBool Response( TInt aCommand ); + void ExitDialog(); + void ChangeReadyResponseL(); + +public: // From MAknToolbarObserver + void DynInitToolbarL ( TInt aResourceId, CAknToolbar* aToolbar ); + void OfferToolbarEventL ( TInt aCommand ); + +protected: // MESMRFieldEventObserver + void HandleFieldEventL( const MESMRFieldEvent& aEvent ); + +public: // From MESMRNaviArrowEventObserver + void HandleNaviArrowEventL( const TInt aCommand ); + +private: // Implementation + void DoProcessCommandL( TInt aCommand ); + CESMRViewerDialog( + MMRInfoProvider& aInfoProvider, + MAgnEntryUiCallback& aCallback ); + void ConstructL(); + void OpenInDayModeL(); + void CommandTailL(HBufC16*& aTailBuffer); + TBool HandleCommandForEventL( TInt aCommand ); + void SendCalendarEntryL(TInt aCommandId); + void TryInsertSendMenuL(CEikMenuPane* aMenuPane); + void HandleEmailSubmenuL( + TInt aResourceId, + CEikMenuPane* aMenuPane ); + void HandlePolicyMenuL( + TInt aResourceId, + CEikMenuPane* aMenuPane ); + void HandleDynamicMenuItemsL( + TInt aResourceId, + CEikMenuPane* aMenuPane ); + TBool SupportsMailBoxCapabilityL( + MESMRBuilderExtension::TMRCFSMailBoxCapability aCapa ); + TBool HandleMRExitL( + TInt aCommand ); + void HandleForwardMenuL( + TInt aResourceId, + CEikMenuPane* aMenuPane ); + CESMRLocationPluginHandler& LocationPluginHandlerL(); + void SetDefaultMiddleSoftKeyL(); + 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 + + /// Ref: The only control in this dialog. Fwk deletes. + CESMRView* iView; + /// Ref: Agn Entry UI callback interface + MAgnEntryUiCallback& iCallback; + /// Own: Calendar Global data + CESMRSendUI* iESMRSendUI; + /// Own: Flag for marking exit + TBool iExitTriggered; + /// Own: Static TLS data handler + RESMRStatic iESMRStatic; + // Own: Location plugin handler. + CESMRLocationPluginHandler* iLocationPluginHandler; + // Own: Feature settings. + CESMRFeatureSettings* iFeatures; + /// 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