--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrgui/inc/cesmrcontactmenuattachmenthandler.h Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,149 @@
+/*
+* Copyright (c) 2007-2009 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: Creates and display attachment action menu.
+*
+*/
+
+
+#ifndef CESMRCONTACTMENUATTACHMENTHANDLER_H
+#define CESMRCONTACTMENUATTACHMENTHANDLER_H
+
+#include <e32base.h>
+#include <eikcmobs.h>
+
+// Forward declarations
+class CEikMenuPane;
+class CFscContactActionMenu;
+class CGulIcon;
+// <cmail>
+class CESMRAttachmentInfo;
+// </cmail>
+
+NONSHARABLE_CLASS( CESMRContactMenuAttachmentHandler ) : public CBase
+ {
+public: // enumarations
+ /**
+ * Predefined action menu items that are availabe
+ */
+ enum TESMRAttachmentActionMenuItem
+ {
+ EActionOpen = 0
+ };
+
+public: // Constructors and destructors
+
+ /**
+ * Two-phase constructor.
+ *
+ * @param aContactActionMenu contact action menu
+ * @return new instance of the class
+ */
+ static CESMRContactMenuAttachmentHandler* NewL(
+ CFscContactActionMenu& aContactActionMenu );
+
+ /**
+ * Destructor
+ */
+ ~CESMRContactMenuAttachmentHandler();
+
+public: // New methods
+ /**
+ * Resets/disables attachment contact menu handler.
+ */
+ void Reset();
+
+ /**
+ * Sets attachment info for action menu to show/hide options.
+ * Ownership does not change.
+ *
+ * @param aAttachmentInfo attachment info object
+ */
+ void SetAttachmentInfo( CESMRAttachmentInfo* aAttachmentInfo );
+
+ /**
+ * Enables contact action menu and options menu for given attachment(s).
+ */
+ void InitActionMenuL( );
+
+ /**
+ * Returns true if options menu / actions is available.
+ */
+ TBool OptionsMenuAvailable( );
+
+ /**
+ * Initializes options menu / actions submenu.
+ *
+ * @param aActionMenuPane actions submenu
+ */
+ void InitOptionsMenuL( CEikMenuPane* aActionMenuPane );
+
+ /**
+ * Executes contact action menu.
+ */
+ void ShowActionMenuL( );
+
+ /**
+ * Sets command observer for field. Field can use command
+ * observer for triggering commands.
+ * @param @aCommandObserver Reference to command observer
+ */
+ void SetCommandObserver( MEikCommandObserver* aCommandObserver );
+
+private:
+
+ /**
+ * C++ default Constructor
+ * @param aContactActionMenu contact action menu
+ */
+ CESMRContactMenuAttachmentHandler(
+ CFscContactActionMenu& aContactActionMenu );
+
+ /**
+ * Symbian 2nd phase constructor
+ */
+ void ConstructL();
+
+ /**
+ * Creates a single actionmenu item with selectable command
+ * @param aResourceId
+ * @param aCommandUid
+ */
+ void CreateMenuItemL( TInt aResourceId, TUid aCommandUid );
+
+ /**
+ * create icons to actionmenu
+ */
+ CGulIcon* CreateIconL( TUid aCommandUid );
+
+private: // data
+
+ /// Ref: Contact action menu
+ CFscContactActionMenu& iContactActionMenu;
+
+ /// Not owned
+ CESMRAttachmentInfo* iAttachmentInfo;
+
+ /// Own:
+ TBool iOptionsMenuAvailable;
+
+ /// Own: array of actionmenu icons
+ RPointerArray<CGulIcon> iIconArray;
+
+ /// Ref: Pointer to command observer
+ MEikCommandObserver* iCommandObserver;
+ };
+
+#endif // CESMRCONTACTMENUATTACHMENTHANDLER_H
+
+// End of file