diff -r 000000000000 -r 72b543305e3a email/mail/ViewerSrc/cmsgmailviewercontactcaller.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/mail/ViewerSrc/cmsgmailviewercontactcaller.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,106 @@ +/* +* Copyright (c) 2006 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: Mail viewer contact caller. +* +*/ + +#ifndef C_CMSGMAILVIEWERCONTACTCALLER_H +#define C_CMSGMAILVIEWERCONTACTCALLER_H + +#include // CBase + +// FORWARD DECLARATIONS +class CEikMenuPane; +class CAiwServiceHandler; +class CMsgMailViewerContactMatcher; + +/** + * Mail Viewer contact caller. + * + * @lib none + * @since S60 v3.2 + */ +NONSHARABLE_CLASS(CMsgMailViewerContactCaller) + { +public: + + /** + * NewL + * + * @since S60 v3.2 + * @param service handler for attaching Call interest + * @param contact matcher reference + * @return self + */ + static CMsgMailViewerContactCaller* NewL( + CAiwServiceHandler& aServiceHandler, + CMsgMailViewerContactMatcher& aContactMatcher ); + + ~CMsgMailViewerContactCaller(); + +public: + + /** + * To be called from owner's DynInitMenuPaneL. + * @param aResourceId resource id from caller + * @param aMenuPane menu pane from caller + * @param aAddress address + * @param aShowCallOption ETrue if option can be shown in menu + */ + void DynInitMenuPaneL( TInt aResourceId, + CEikMenuPane* aMenuPane, + TBool aShowCallOption ); + + /** + * Method to test if given command is applicable for this class + * and at this very moment. + * @param aCommand command id + * @return ETrue if command can be handled + */ + TBool CanHandleCommand( TInt aCommand ) const; + + /** + * Command handler. Use CanHandleCommand first to test if + * command is applicable. + * @param aCommand command id + * @param aEmailAddress address + */ + void CallToContactL( TInt aCommand, const TDesC& aEmailAddress ); + +private: // implementation + + static TInt MatchDoneL( TAny* aCaller ); + + void DoCallToContactL(); + +private: + + CMsgMailViewerContactCaller( + CAiwServiceHandler& aServiceHandler, + CMsgMailViewerContactMatcher& aContactMatcher ); + + void ConstructL(); + +private: // data + + TInt iCommand; + + /// AIW service handler reference + CAiwServiceHandler& iServiceHandler; + + /// contact matcher reference + CMsgMailViewerContactMatcher& iContactMatcher; + }; + +#endif // C_CMSGMAILVIEWERCONTACTCALLER_H