email/mail/inc/MMailAppUiInterface.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/mail/inc/MMailAppUiInterface.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,201 @@
+/*
+* Copyright (c) 2002-2004 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:  Message App UI call back interface.
+*
+*/
+
+
+
+#ifndef MMAILAPPUIINTERFACE_H
+#define MMAILAPPUIINTERFACE_H
+
+#include <badesca.h>
+#include <e32const.h>
+
+// DATA TYPES
+enum TMailUiParams
+	{
+	EMailUseDefaultNaviPane = KBit0
+	};
+
+// FORWARD DECLARATIONS
+class CCoeControl;
+class MMailMsgBaseControl;
+class CMsvAttachment;
+class CEikStatusPane;
+class CRichText;
+
+// CLASS DECLARATION
+
+/**
+*  MMailAppUiInterface interface.
+*
+*  @since Series 60 3.0
+*/
+class MMailAppUiInterface
+    {
+    public:  // destructor
+        /**
+        * Destructor.
+        */
+        virtual ~MMailAppUiInterface(){};
+
+    public: // New functions
+        /**
+        * AddAttachmentsL.
+        * Add attachment to mail UI application.
+        * @since Series 60 3.0
+        * @param aAttachmentInfo attachment info.
+        * @param aCanBeRemoved ETrue if attachment can be removed via
+        * attachment view. 
+        */
+        virtual void AddAttachmentL(
+        	CMsvAttachment& aAttachmentInfo,
+        	TBool aCanBeRemoved = ETrue ) = 0;
+        
+        /**
+        * AddControlL.
+        * @since Series 60 3.0
+        * @param aControlType controls to be created.
+        * See TMailControlType.
+        */
+        virtual void AddControlL(TInt aControlType) = 0;
+
+        /**
+        * AddControlL.
+        * @since Series 60 3.0
+        * @param aControl Replaces default body control with custom control.
+        * This can  be called only once. Leaves with KErrAlreadyExists if
+        * body control is already replaced with custom control.
+        */
+        virtual void AddControlL(CCoeControl& aControl) = 0;
+
+        /**
+        * AddControlL.
+        * @since Series 60 3.0
+        * @param aControl Replaces default body control with custom control.
+        * This can  be called only once. Leaves with KErrAlreadyExists if
+        * body control is already replaced with custom control.
+        */
+        virtual void AddControlL(MMailMsgBaseControl& aControl) = 0;
+
+        /**
+        * ParentControl.
+        * @since Series 60 3.0
+        * @param aText wait note text.
+        * @return message view control. << window-owning >>
+        */
+        virtual CCoeControl& ParentControl() = 0;
+        
+        /**
+        * StatusPane.
+        * @since Series 60 3.0
+        * @return pointer to status pane or NULL.
+        */        
+        virtual CEikStatusPane* StatusPane() = 0;
+
+        /**
+        * StartWaitNoteL.
+        * @since Series 60 3.0
+        * Start Mail viewer "Opening" wait note.
+        */
+        virtual void StartWaitNoteL(/*const TDesC& aText*/) = 0;
+
+        /**
+        * StopWaitNote.
+        * @since Series 60 3.0
+        * Stop the wait note.
+        */
+        virtual void StopWaitNote() = 0;
+
+        /**
+        * SetTitleTextL.
+        * @since Series 60 3.0
+        * @param aResourceId title text resource id
+        * See <avkon.rh> "STRUCT TITLE_PANE"
+        */
+        virtual void SetTitleTextL(TInt aResourceId) = 0;
+
+        /**
+        * SetFromFieldTextL.
+        * @since Series 60 3.0
+        * @param aControlType header control type.
+        * @param aText Recipient array.
+        * Does nothing if used control type is not created with AddControlL
+        */
+        virtual void SetAddressFieldTextL(TInt aControlType, CDesCArray& aText) = 0;
+        
+        /**
+        * SetFromFieldTextL.
+        * @since Series 60 3.0
+        * @param aControlType header control type.
+        * @param aText recipient text
+        * Does nothing if used control type is not created with AddControlL
+        */
+        virtual void SetAddressFieldTextL(TInt aControlType, const TDesC& aText) = 0;
+
+        /**
+        * SetBodyTextL.
+        * @since Series 60 3.0
+        * @param aText Body text.
+        */
+        virtual void SetBodyTextL(CRichText& aText) = 0;
+
+        /**
+        * SetSubjectFieldTextL.
+        * @since Series 60 3.0
+        * @param aControlType header control type.
+        * Does nothing if used control type is not created with AddControlL
+        */
+        virtual void SetSubjectL(const TDesC& aText) = 0;
+        
+        /**
+        * MsgViewRect.
+        * @since Series 60 3.0
+        * @param aPane View part id.
+        * @return reserved size for selected view.
+        */
+        virtual TRect MsgViewRect(TInt aPane) = 0;        
+        
+        /**
+        * AppUiHandleCommandL.
+        * @since Series 60 3.0
+        * @param aCommand AppUi command ID.
+        */        
+        virtual void AppUiHandleCommandL(TInt aCommand) = 0;
+        
+        /**
+        * Checks if next or previous message is available.
+        * @param aForward  direction: ETrue = next, EFalse = previous.
+        * @return ETrue if next message is available in desired direction.
+        */
+        virtual TBool IsNextMessageAvailableL( TBool aForward ) = 0;
+        
+        /**
+        * Launch editor/viewer for next/previous message.
+        * @param aForward  direction: ETrue = next, EFalse = previous.
+        */
+        virtual void NextMessageL( TBool aForward ) = 0;
+        
+        /**
+         * View plugin notifies when the message is ready to be shown
+         * @since S60 5.0
+         */
+        virtual void ViewMessageComplete() = 0;
+        
+    };
+
+#endif      // MMAILAPPUIINTERFACE_H
+
+// End of File