--- /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 <e32base.h> // 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