uifw/EikStd/coctlsrc/aknitemactionmenu.cpp
branchRCL_3
changeset 9 aabf2c525e0f
parent 4 8ca85d2f0db7
child 10 9f56a4e1b8ab
--- a/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp	Fri Feb 19 23:04:46 2010 +0200
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp	Fri Mar 12 15:43:43 2010 +0200
@@ -39,9 +39,10 @@
 // ---------------------------------------------------------------------------
 //
 CAknItemActionMenu* CAknItemActionMenu::NewL(
-        MAknCollection& aCollection )
+        MAknCollection& aCollection, MObjectProvider* aOwner )
     {
-    CAknItemActionMenu* self = CAknItemActionMenu::NewLC( aCollection );
+    CAknItemActionMenu* self = CAknItemActionMenu::NewLC( 
+            aCollection, aOwner );
     CleanupStack::Pop( self );
     return self;
     }
@@ -51,9 +52,10 @@
 // CAknItemActionMenu::NewLC
 // ---------------------------------------------------------------------------
 //
-CAknItemActionMenu* CAknItemActionMenu::NewLC( MAknCollection& aCollection )
+CAknItemActionMenu* CAknItemActionMenu::NewLC(
+        MAknCollection& aCollection, MObjectProvider* aOwner )
     {
-    CAknItemActionMenu* self = new ( ELeave ) CAknItemActionMenu();
+    CAknItemActionMenu* self = new ( ELeave ) CAknItemActionMenu( aOwner );
     CleanupStack::PushL( self );
     self->ConstructL( aCollection );
     return self;
@@ -71,6 +73,12 @@
     delete iMenuPane;
     delete iMenuData;
     iStates.Close();
+    
+    for ( TInt i = 0; i < iObservers.Count(); ++i )
+        {
+        iObservers[i]->SetItemActionMenu( NULL );
+        }
+
     iObservers.Close();
     }
 
@@ -310,15 +318,26 @@
 
 
 // ---------------------------------------------------------------------------
+// CAknItemActionMenu::Owner
+// ---------------------------------------------------------------------------
+//
+ MObjectProvider* CAknItemActionMenu::Owner() const
+     {
+     return iOwner;
+     }
+
+
+// ---------------------------------------------------------------------------
 // CAknItemActionMenu::CAknItemActionMenu
 // ---------------------------------------------------------------------------
 //
-CAknItemActionMenu::CAknItemActionMenu()
+CAknItemActionMenu::CAknItemActionMenu( MObjectProvider* aOwner )
     : iPopupMenu( NULL ),
     iMenuBarObserver( NULL ),
     iMenuBar( NULL ),
     iMenuPane( NULL ),
-    iMenuData( NULL )
+    iMenuData( NULL ),
+    iOwner( aOwner )
     {
     AKNTASHOOK_ADD( this, "CAknItemActionMenu" );
     }