diff -r 000000000000 -r 8466d47a6819 emailuis/emailui/inc/FreestyleEmailUiSendAttachmentsListControl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/emailui/inc/FreestyleEmailUiSendAttachmentsListControl.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,240 @@ +/* +* Copyright (c) 2007 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: FreestyleEmailUi attachments list control class +* +*/ + + + +#ifndef FREESTYLEMAILUI_SENDATTACHMENTSLISTCONTROL_H_ +#define FREESTYLEMAILUI_SENDATTACHMENTSLISTCONTROL_H_ + +#include + +// LOCAL INCLUDES +#include "FreestyleEmailUiAttachmentsListModel.h" +#include "fsccontactactionmenudefines.h" + +// FORWARD DECLARATIONS +class CFSEmailUiSendAttachmentsListVisualiser; +class CFSEmailUiSendAttachmentsListModel; +class CFreestyleEmailUiAppUi; +class CGulIcon; +class CFscContactActionService; +class CFscContactActionMenu; +class CFSEmailUiSendAttachmentsListModelItem; +class CAknWaitNote; + +/** +* CFsGenericListAppUi application UI class. +* Interacts with the user through the UI and request message processing +* from the handler class +*/ +// +class CFreestyleEmailUiSendAttachmentsListControl + : public CAlfControl, public MFsActionMenuPositionGiver, public MMGFetchVerifier + { +// +public: + + /** + * Two-phased constructor. + * + * @param aEnv Reference to the ALF environment. + */ + static CFreestyleEmailUiSendAttachmentsListControl* NewL( + CAlfEnv& aEnv, + CFSEmailUiSendAttachmentsListVisualiser* aVisualiser, + CFreestyleEmailUiAppUi* aAppUi ); + + /** + * Two-phased constructor. + * + * @param aEnv Reference to the ALF environment. + */ + static CFreestyleEmailUiSendAttachmentsListControl* NewLC( + CAlfEnv& aEnv, + CFSEmailUiSendAttachmentsListVisualiser* aVisualiser, + CFreestyleEmailUiAppUi* aAppUi ); + + + /** + * Virtual destructor. + */ + virtual ~CFreestyleEmailUiSendAttachmentsListControl(); + + // +public: // from MMGFetchVerifier + TBool VerifySelectionL( const MDesCArray* aSelectedFiles ); + // + +public: // new methods + + /** + * OfferEventL + * From ALF + */ + TBool OfferEventL( const TAlfEvent& aEvent ); + + /** + * AppendAttachmentToListL + * Adds new attachment to list and email body + * @param aType Type of attachment to add + * + * @return ETrue if attachment was added. + * EFalse if user cancelled or operation failed. + */ + TBool AppendAttachmentToListL(MsgAttachmentUtils::TMsgAttachmentFetchType aType = MsgAttachmentUtils::EUnknown); + + /** + * AppendFileToModelL + * Adds new file to list model + */ + void AppendFileToModelL( + const TFSMailMsgId aPartId, + const TDesC& aFileName, + TInt aSize, + TFileType aFileType = EUnidentifiedType, + TBool aReadOnly = EFalse, + TBool aRemoteFile = EFalse ); + + /** + * TotalAttachmentSize + * Return total size of a attachments in the model + */ + TInt TotalAttachmentSize() const; + + /** + * RemoveAttachmentFromListL + * removes item by given index + * or + * removes currently highlighted item from model + */ + void RemoveAttachmentFromListL( const TInt aIndex = -1 ); + + /** + * RemoveAllAttachmentsL + * Removes all items from model + */ + void RemoveAllAttachmentsL(); + + /** + * OpenHighlightedFileL + */ + void OpenHighlightedFileL(); + + /** + * Model + * Retuns pointer to list model + */ + CFSEmailUiSendAttachmentsListModel* Model(); + + /** + * DeleteModel + * Deletes model, used from visualiser because of alf dest sequence + */ + void DeleteModel(); + + // touch + /** + * Helper class for setting msk up to date. + */ + void SetMskL(); + + /** + * ShowActionMenu + * Displays popup menu when user hits right with joystick + * and handles selected command + */ + void ShowActionMenuL( CFSEmailUiSendAttachmentsListModelItem* aItem ); + // + + +public: // methods from base classes + + /** + * From CCoeControl + */ + void HandleCommandL( TInt aCommand ); + +// + /** + * From MFsActionMenuPositionGiver + */ + TPoint ActionMenuPosition(); +// + +private: // constructors + + /** + * Constructor. + * + * @param aEnv Reference to the ALF environment. + * @param aVisualiser Reference to visualiser for command handling. + */ + CFreestyleEmailUiSendAttachmentsListControl( + CFSEmailUiSendAttachmentsListVisualiser* aVisualiser, + CFreestyleEmailUiAppUi* aAppUi ); + + /** + * Two-phased constructor. + */ + void ConstructL(CAlfEnv& aEnv); + +private: // methods used internally + + /** + * LoadModelContentL + * Loads draft email attachments to model + */ + void LoadModelContentL(); + + // touch + /** + * ShowActionMenu + * Displays popup menu when user hits right with joystick + * and handles selected command + */ + //void ShowActionMenuL( CFSEmailUiSendAttachmentsListModelItem* aItem ); + // touch + + /** + * FileDrmProtectedL + */ + TBool FileDrmProtectedL( RFile& aFile ); + + /** + * FileDrmProtectedL + */ + TBool FileDrmProtectedL( const TDesC& aFilePath ); + +private: // data + + // Visualizer. Not owned. + CFSEmailUiSendAttachmentsListVisualiser* iVisualiser; + + // Model. Owned. + CFSEmailUiSendAttachmentsListModel* iModel; + + // AppUi. Not owned. + CFreestyleEmailUiAppUi* iAppUi; + + // Contact action service. Owned. + CFscContactActionService* iService; + + // Wait note for long running operations. Owns itself. + CAknWaitDialog* iWaitNote; + }; + +#endif /*FREESTYLEMAILUI_SENDATTACHMENTSLISTCONTROL_H_*/