diff -r ebe688cedc25 -r 7fdbb852d323 email/mail/ViewerSrc/MsgMailViewerAttachmentsDlg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/mail/ViewerSrc/MsgMailViewerAttachmentsDlg.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,146 @@ +/* +* Copyright (c) 2002 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: This dialog is used for Attachment handling. +* +*/ + + +#ifndef MSGMAILVIEWERATTACHMENTS_H +#define MSGMAILVIEWERATTACHMENTS_H + +// INCLUDES +#include +#include // MMsvSessionObserver +#include "MMsgMailAttachmentDialogObserver.h" + +// FORWARD DECLARATIONS +class CMsgMailViewerDocument; + +// CLASS DECLARATION + +/** +* Dialog for attachments. +* Mail attachments are handled from this dialog. +*/ +class CMsgMailViewerAttachmentsDlg :public CMsgViewAttachmentsDialog, + public MMsvSessionObserver + { + public: // Constructors and destructor + /** + * NewL + * @param aTitle Dialog title text + * @param aAttachmentModel a reference to attachment model + * @param aDocument a reference to app document. + */ + static CMsgMailViewerAttachmentsDlg* NewL( + TDesC& aTitle, + CMsgAttachmentModel& aAttachmentModel, + CMsgMailViewerDocument& aDocument, + MMsgMailAttachmentDialogObserver& aDlgObserver + ); + + /** + * Destructor + */ + ~CMsgMailViewerAttachmentsDlg(); + + /** + * NotifySizeChanged, calls SizeChanged() method of + * dialog's listbox + * + */ + void NotifySizeChanged(); + + /** + * Updates all attachments fetched flags + * in attachment model. + * + */ + void UpdateAttachmentsFetchFlags(); + + /** + * From MEikListBoxObserverClass + */ + void HandleListBoxEventL( + CEikListBox* aListBox, TListBoxEvent aEventType ); + + /** + * Updates list of attatchments if attatchment + * dialog is opened before all attatchments + * are loaded. + */ + void UpdateAttatchmentListL(); + + private: // Implementation + void UpdateChangedAttachmentsL( + const CMsvEntrySelection& aChangedEntries ); + void FetchRemoteAttachmentL( TInt aIndex ); + void UpdateModelInfoL( TInt aIndex ); + void OpenAttachmentL(); + void DoFetchOrOpenL( TInt aIndex ); + void DoProcessCommandL( TInt aCommandId ); + void DoSendViaL(); + void PurgeAttachmentL( TInt aIndex ); + TBool CanRemoveAttachment( CMsgAttachmentInfo& aInfo ); + void SetMiddleSoftKeyLabelL( + TInt aResourceId, + TInt aCommandId ); + void UpdateMiddleSoftKeyL( TInt aIndex ); + + + private: // Constructor + CMsgMailViewerAttachmentsDlg( + TDesC& aTitle, + CMsgAttachmentModel& aAttachmentModel, + CMsgMailViewerDocument& aDocument, + MMsgMailAttachmentDialogObserver& aDlgObserver ); + /** + * 2nd phase constructor + */ + void ConstructL(); + + private: // Functions from base classes + /// from CAknDialog + void DynInitMenuPaneL(TInt aMenuId, CEikMenuPane* aMenuPane); + /// From CCoeControl + TKeyResponse OfferKeyEventL( + const TKeyEvent& aKeyEvent,TEventCode aType); + /// from CAknDialog + void ProcessCommandL(TInt aCommandId); + /// From CCoeControl + void GetHelpContext( TCoeHelpContext& aContext) const; + /// From MMsvSessionObserver + void HandleSessionEventL(TMsvSessionEvent aEvent, + TAny* aArg1, TAny* aArg2, TAny* aArg3); + //From CEikDialog + TBool OkToExitL(TInt aButtonId); + + private: // Data + /** + * A reference to the application Document. + */ + CMsgMailViewerDocument& iDocument; + + /// Internal status flags + TInt iFlags; + + /** + * Ref: application UI object. + */ + MMsgMailAttachmentDialogObserver& iDlgObserver; + }; + +#endif // MSGMAILVIEWATTACHMENTS_H + +// End of File