classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h
branchRCL_3
changeset 56 d48ab3b357f1
parent 55 aecbbf00d063
child 64 85902f042028
--- a/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h	Tue Aug 31 15:28:30 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h	Wed Sep 01 12:16:19 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -20,12 +20,14 @@
 
 #include <e32base.h>
 #include <eikmobs.h>
+#include <coemop.h>
 
 class MAknCollection;
 class MAknCollectionObserver;
 class CAknStylusPopUpMenu;
 class CEikMenuBar;
 class CAknItemActionMenuData;
+class CAknMarkingMode;
 
 /**
  * Item action menu.
@@ -66,21 +68,27 @@
 
 public:
 
-    /**
-     * Two-phased constructor.
-     * 
-     * @internal
-     * @param aCollection Collection.
-     */
-    static CAknItemActionMenu* NewL( MAknCollection& aCollection );
+    DECLARE_TYPE_ID( 0x2002C344 )
 
     /**
      * Two-phased constructor.
      * 
      * @internal
      * @param aCollection Collection.
+     * @param aOwner Menu's owner.
      */
-    static CAknItemActionMenu* NewLC( MAknCollection& aCollection );
+    static CAknItemActionMenu* NewL( MAknCollection& aCollection,
+            MObjectProvider* aOwner );
+
+    /**
+     * Two-phased constructor.
+     * 
+     * @internal
+     * @param aCollection Collection.
+     * @param aOwner Menu's owner.
+     */
+    static CAknItemActionMenu* NewLC( MAknCollection& aCollection,
+            MObjectProvider* aOwner );
 
     /**
      * Destructor.
@@ -98,6 +106,18 @@
             MAknCollection& aCollection );
 
     /**
+     * Adds collection to the item action menu of this view / dialog / appUi.
+     * 
+     * @param aCollection Collection implementing MAknCollection interface.
+     * @param aMenuBarOwner Owner of the menubar that collection will be
+     *        registered with.
+     * @return Pointer to the item action menu instance.
+     * Ownership does not transfer to caller.
+     */
+    IMPORT_C static CAknItemActionMenu* RegisterCollectionL(
+            MAknCollection& aCollection, MObjectProvider* aMenuBarOwner );
+
+    /**
      * Removes collection of this item action menu.
      * 
      * @param aCollection Collection to be removed.
@@ -195,13 +215,45 @@
      * @return Collection count.
      */
     TInt CollectionCount() const;
+    
+    /**
+     * Returns pointer to item action menu's owner.
+     *
+     * @return Menu's owner
+     */
+    MObjectProvider* Owner() const;
+
+    /**
+     * Provides marking mode handler.
+     *
+     * @internal
+     * @return Marking mode handler.
+     */
+    CAknMarkingMode& MarkingMode();
+    
+    /**
+     * Returns ETrue if collection has marked items.
+     * 
+     * @internal
+     * @return ETrue if collection has marked items.
+     */
+    TBool CollectionHasMarkedItems();
+    
+    /**
+     * Hides this item action menu.
+     * 
+     * @internal
+     */
+    void HideMenu();
 
 private:
 
     /**
      * C++ constructor.
-     */
-    CAknItemActionMenu();
+     *
+     * @param aOwner Menu's owner.
+     */     
+    CAknItemActionMenu( MObjectProvider* aOwner );
 
     /**
      * Symbian second-phase constructor.
@@ -294,6 +346,18 @@
      * Own.
      */
     CAknItemActionMenuData* iMenuData;
+    
+    /**
+     * Pointer to menu's owner. 
+     * Not own
+     */
+    MObjectProvider* iOwner;
+
+    /**
+     * Multiple marking handler.
+     * Own.
+     */
+    CAknMarkingMode* iMarking;
     };
 
 #endif // C_AKNITEMACTIONMENU_H