344 |
344 |
345 CAknItemActionMenu* menu( NULL ); |
345 CAknItemActionMenu* menu( NULL ); |
346 for ( TInt i = 0; i < iUnregisteredMenus.Count(); i++ ) |
346 for ( TInt i = 0; i < iUnregisteredMenus.Count(); i++ ) |
347 { |
347 { |
348 TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] ); |
348 TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] ); |
349 CEikMenuBar* ownerMenubar( NULL ); |
349 if ( data.iOwner ) |
350 data.iOwner->MopGetObjectNoChaining( ownerMenubar ); |
350 { |
351 if ( ownerMenubar == &aMenuBar ) |
351 CEikMenuBar* ownerMenubar( NULL ); |
352 { |
352 data.iOwner->MopGetObjectNoChaining( ownerMenubar ); |
353 menu = data.iMenu; |
353 if ( ownerMenubar == &aMenuBar ) |
354 if ( menu ) |
|
355 { |
354 { |
356 AddRegisterEntryL( aMenuBar, *menu ); |
355 menu = data.iMenu; |
357 iUnregisteredMenus.Remove( i ); |
356 if ( menu ) |
|
357 { |
|
358 AddRegisterEntryL( aMenuBar, *menu ); |
|
359 iUnregisteredMenus.Remove( i ); |
|
360 } |
|
361 break; |
358 } |
362 } |
359 break; |
|
360 } |
363 } |
361 } |
364 } |
362 |
365 |
363 _AKNTRACE_FUNC_EXIT; |
366 _AKNTRACE_FUNC_EXIT; |
364 } |
367 } |
391 for ( TInt i = 0; i < iUnregisteredMenus.Count(); i++ ) |
394 for ( TInt i = 0; i < iUnregisteredMenus.Count(); i++ ) |
392 { |
395 { |
393 TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] ); |
396 TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] ); |
394 if ( data.iMenu == &aItemActionMenu ) |
397 if ( data.iMenu == &aItemActionMenu ) |
395 { |
398 { |
396 data.iOwner->MopGetObjectNoChaining( menuBar ); |
399 if ( data.iOwner ) |
397 if ( menuBar ) |
|
398 { |
400 { |
399 AddRegisterEntryL( *menuBar, aItemActionMenu ); |
401 data.iOwner->MopGetObjectNoChaining( menuBar ); |
400 iUnregisteredMenus.Remove( i ); |
402 if ( menuBar ) |
|
403 { |
|
404 AddRegisterEntryL( *menuBar, aItemActionMenu ); |
|
405 iUnregisteredMenus.Remove( i ); |
|
406 } |
401 } |
407 } |
402 break; |
408 break; |
403 } |
409 } |
404 } |
410 } |
405 |
411 |
875 |
881 |
876 _AKNTRACE_FUNC_EXIT; |
882 _AKNTRACE_FUNC_EXIT; |
877 return instance; |
883 return instance; |
878 } |
884 } |
879 |
885 |
|
886 // --------------------------------------------------------------------------- |
|
887 // AknItemActionMenuRegister::DoSetConstructingMenuBarOwnerL |
|
888 // --------------------------------------------------------------------------- |
|
889 // |
|
890 void AknItemActionMenuRegister::DoSetConstructingMenuBarOwnerL( |
|
891 MObjectProvider* aMenuBarOwner ) |
|
892 { |
|
893 if ( aMenuBarOwner ) |
|
894 { |
|
895 CEikDialog* dialog( NULL ); |
|
896 aMenuBarOwner->MopGetObjectNoChaining( dialog ); |
|
897 // Get information if the constructing menu bar owner is a dialog |
|
898 // and store it to iIsConstructingDialog |
|
899 if ( dialog ) |
|
900 { |
|
901 iIsConstructingDialog = ETrue; |
|
902 } |
|
903 } |
|
904 else if ( !aMenuBarOwner && iIsConstructingDialog ) |
|
905 { |
|
906 // When setting constructing menubar owner to NULL from a dialog check |
|
907 // if there is item with the same menubar owner in iUnregisteredMenus |
|
908 // and try to find correct menubar for it. |
|
909 for ( TInt i = 0; i < iUnregisteredMenus.Count(); i++ ) |
|
910 { |
|
911 TAknUnregisteredMenuData& data( iUnregisteredMenus[ i ] ); |
|
912 if ( data.iOwner == iMenuBarOwner ) |
|
913 { |
|
914 data.iOwner = iMenuBarOwner = NULL; |
|
915 CEikMenuBar* menuBar = FindCurrentMenuBarL(); |
|
916 if ( menuBar ) |
|
917 { |
|
918 AddRegisterEntryL( *menuBar, *data.iMenu ); |
|
919 iUnregisteredMenus.Remove( i ); |
|
920 } |
|
921 iIsConstructingDialog = EFalse; |
|
922 return; |
|
923 } |
|
924 } |
|
925 } |
|
926 iMenuBarOwner = aMenuBarOwner; |
|
927 } |
880 |
928 |
881 // --------------------------------------------------------------------------- |
929 // --------------------------------------------------------------------------- |
882 // AknItemActionMenuRegister::TAknUnregisteredObserverData |
930 // AknItemActionMenuRegister::TAknUnregisteredObserverData |
883 // ::TAknUnregisteredObserverData |
931 // ::TAknUnregisteredObserverData |
884 // --------------------------------------------------------------------------- |
932 // --------------------------------------------------------------------------- |