uifw/EikStd/coctlsrc/aknitemactionmenuregisterarray.cpp
branchRCL_3
changeset 56 d48ab3b357f1
parent 55 aecbbf00d063
equal deleted inserted replaced
55:aecbbf00d063 56:d48ab3b357f1
    17 #include <akncollection.h>
    17 #include <akncollection.h>
    18 #include <aknitemactionmenu.h>
    18 #include <aknitemactionmenu.h>
    19 #include <eikmenub.h>
    19 #include <eikmenub.h>
    20 
    20 
    21 #include "aknitemactionmenuregisterarray.h"
    21 #include "aknitemactionmenuregisterarray.h"
       
    22 #include "akntrace.h"
    22 
    23 
    23 // ---------------------------------------------------------------------------
    24 // ---------------------------------------------------------------------------
    24 // CCAknItemActionMenuRegisterArray::NewL
    25 // CCAknItemActionMenuRegisterArray::NewL
    25 // ---------------------------------------------------------------------------
    26 // ---------------------------------------------------------------------------
    26 //
    27 //
    27 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewL()
    28 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewL()
    28     {
    29     {
       
    30     _AKNTRACE_FUNC_ENTER;
    29     CAknItemActionMenuRegisterArray* self =
    31     CAknItemActionMenuRegisterArray* self =
    30         CAknItemActionMenuRegisterArray::NewLC();
    32         CAknItemActionMenuRegisterArray::NewLC();
    31     CleanupStack::Pop( self );
    33     CleanupStack::Pop( self );
       
    34     _AKNTRACE_FUNC_EXIT;
    32     return self;
    35     return self;
    33     }
    36     }
    34 
    37 
    35 
    38 
    36 // ---------------------------------------------------------------------------
    39 // ---------------------------------------------------------------------------
    37 // CCAknItemActionMenuRegisterArray::NewLC
    40 // CCAknItemActionMenuRegisterArray::NewLC
    38 // ---------------------------------------------------------------------------
    41 // ---------------------------------------------------------------------------
    39 //
    42 //
    40 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewLC()
    43 CAknItemActionMenuRegisterArray* CAknItemActionMenuRegisterArray::NewLC()
    41     {
    44     {
       
    45     _AKNTRACE_FUNC_ENTER;
    42     CAknItemActionMenuRegisterArray* self =
    46     CAknItemActionMenuRegisterArray* self =
    43         new ( ELeave ) CAknItemActionMenuRegisterArray();
    47         new ( ELeave ) CAknItemActionMenuRegisterArray();
    44     CleanupStack::PushL( self );
    48     CleanupStack::PushL( self );
       
    49     _AKNTRACE_FUNC_EXIT;
    45     return self;
    50     return self;
    46     }
    51     }
    47 
    52 
    48 
    53 
    49 // ---------------------------------------------------------------------------
    54 // ---------------------------------------------------------------------------
    50 // CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray
    55 // CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray
    51 // ---------------------------------------------------------------------------
    56 // ---------------------------------------------------------------------------
    52 //
    57 //
    53 CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray()
    58 CAknItemActionMenuRegisterArray::~CAknItemActionMenuRegisterArray()
    54     {
    59     {
       
    60     _AKNTRACE_FUNC_ENTER;
    55     iRegisterArray.ResetAndDestroy();
    61     iRegisterArray.ResetAndDestroy();
    56     iRegisterArray.Close();
    62     iRegisterArray.Close();
       
    63     _AKNTRACE_FUNC_EXIT;
    57     }
    64     }
    58 
    65 
    59 
    66 
    60 // ---------------------------------------------------------------------------
    67 // ---------------------------------------------------------------------------
    61 // CAknItemActionMenuRegisterArray::AddEntryL
    68 // CAknItemActionMenuRegisterArray::AddEntryL
    62 // ---------------------------------------------------------------------------
    69 // ---------------------------------------------------------------------------
    63 //
    70 //
    64 void CAknItemActionMenuRegisterArray::AddEntryL(
    71 void CAknItemActionMenuRegisterArray::AddEntryL(
    65         CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
    72         CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
    66     {
    73     {
       
    74     _AKNTRACE_FUNC_ENTER;
    67     CRegisterEntry* newEntry = CRegisterEntry::NewLC(
    75     CRegisterEntry* newEntry = CRegisterEntry::NewLC(
    68             aMenuBar, aItemActionMenu );
    76             aMenuBar, aItemActionMenu );
    69     iRegisterArray.AppendL( newEntry );
    77     iRegisterArray.AppendL( newEntry );
    70     CleanupStack::Pop( newEntry );
    78     CleanupStack::Pop( newEntry );
       
    79     _AKNTRACE_FUNC_EXIT;
    71     }
    80     }
    72 
    81 
    73 
    82 
    74 // ---------------------------------------------------------------------------
    83 // ---------------------------------------------------------------------------
    75 // CAknItemActionMenuRegisterArray::UnregisterMenuBar
    84 // CAknItemActionMenuRegisterArray::UnregisterMenuBar
    76 // ---------------------------------------------------------------------------
    85 // ---------------------------------------------------------------------------
    77 //
    86 //
    78 void CAknItemActionMenuRegisterArray::UnregisterMenuBar(
    87 void CAknItemActionMenuRegisterArray::UnregisterMenuBar(
    79         CEikMenuBar& aMenuBar )
    88         CEikMenuBar& aMenuBar )
    80     {
    89     {
       
    90     _AKNTRACE_FUNC_ENTER;
    81     CRegisterEntry* entry( NULL );
    91     CRegisterEntry* entry( NULL );
    82     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
    92     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
    83         {
    93         {
    84         entry = iRegisterArray[ i ];
    94         entry = iRegisterArray[ i ];
    85         if ( entry->MenuBar() == &aMenuBar )
    95         if ( entry->MenuBar() == &aMenuBar )
    95                 RemoveEntry( i );
   105                 RemoveEntry( i );
    96                 }
   106                 }
    97             break;
   107             break;
    98             }
   108             }
    99         }
   109         }
       
   110     _AKNTRACE_FUNC_EXIT;
   100     }
   111     }
   101 
   112 
   102 
   113 
   103 // ---------------------------------------------------------------------------
   114 // ---------------------------------------------------------------------------
   104 // CAknItemActionMenuRegisterArray::UnregisterItemActionMenu
   115 // CAknItemActionMenuRegisterArray::UnregisterItemActionMenu
   105 // ---------------------------------------------------------------------------
   116 // ---------------------------------------------------------------------------
   106 //
   117 //
   107 void CAknItemActionMenuRegisterArray::UnregisterItemActionMenu(
   118 void CAknItemActionMenuRegisterArray::UnregisterItemActionMenu(
   108         CAknItemActionMenu& aItemActionMenu )
   119         CAknItemActionMenu& aItemActionMenu )
   109     {
   120     {
       
   121     _AKNTRACE_FUNC_ENTER;
   110     CRegisterEntry* entry( NULL );
   122     CRegisterEntry* entry( NULL );
       
   123 
   111     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
   124     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
   112         {
   125         {
   113         entry = iRegisterArray[ i ];
   126         entry = iRegisterArray[ i ];
   114         if ( entry->ItemActionMenu() == &aItemActionMenu )
   127         if ( entry->ItemActionMenu() == &aItemActionMenu )
   115             {
   128             {
   119                 RemoveEntry( i );
   132                 RemoveEntry( i );
   120                 }
   133                 }
   121             break;
   134             break;
   122             }
   135             }
   123         }
   136         }
       
   137     _AKNTRACE_FUNC_EXIT;
   124     }
   138     }
   125 
   139 
   126 
   140 
   127 // ---------------------------------------------------------------------------
   141 // ---------------------------------------------------------------------------
   128 // CAknItemActionMenuRegisterArray::RegisterCollectionObserverL
   142 // CAknItemActionMenuRegisterArray::RegisterCollectionObserverL
   129 // ---------------------------------------------------------------------------
   143 // ---------------------------------------------------------------------------
   130 //
   144 //
   131 TBool CAknItemActionMenuRegisterArray::RegisterCollectionObserverL(
   145 TBool CAknItemActionMenuRegisterArray::RegisterCollectionObserverL(
   132         CEikMenuBar& aMenuBar, MAknCollectionObserver& aObserver )
   146         CEikMenuBar& aMenuBar, MAknCollectionObserver& aObserver )
   133     {
   147     {
       
   148     _AKNTRACE_FUNC_ENTER;
   134     TBool menuBarFound( EFalse );
   149     TBool menuBarFound( EFalse );
   135     CRegisterEntry* entry( NULL );
   150     CRegisterEntry* entry( NULL );
   136     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
   151     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
   137         {
   152         {
   138         entry = iRegisterArray[ i ];
   153         entry = iRegisterArray[ i ];
   145                 }
   160                 }
   146             menuBarFound = ETrue;
   161             menuBarFound = ETrue;
   147             break;
   162             break;
   148             }
   163             }
   149         }
   164         }
       
   165     _AKNTRACE_FUNC_EXIT;
   150     return menuBarFound;
   166     return menuBarFound;
   151     }
   167     }
   152 
   168 
   153 
   169 
   154 // ---------------------------------------------------------------------------
   170 // ---------------------------------------------------------------------------
   156 // ---------------------------------------------------------------------------
   172 // ---------------------------------------------------------------------------
   157 //
   173 //
   158 void CAknItemActionMenuRegisterArray::UnregisterCollectionObserver(
   174 void CAknItemActionMenuRegisterArray::UnregisterCollectionObserver(
   159         MAknCollectionObserver& aObserver )
   175         MAknCollectionObserver& aObserver )
   160     {
   176     {
       
   177     _AKNTRACE_FUNC_ENTER;
   161     CRegisterEntry* entry( NULL );
   178     CRegisterEntry* entry( NULL );
       
   179 
   162     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
   180     for ( TInt i = 0; i < iRegisterArray.Count(); i++ )
   163         {
   181         {
   164         entry = iRegisterArray[ i ];
   182         entry = iRegisterArray[ i ];
   165         if ( entry->ItemActionMenu() )
   183         if ( entry->ItemActionMenu() )
   166             {
   184             {
   167             entry->ItemActionMenu()->RemoveCollectionObserver( aObserver );
   185             entry->ItemActionMenu()->RemoveCollectionObserver( aObserver );
   168             }
   186             }
   169         }
   187         }
       
   188     _AKNTRACE_FUNC_EXIT;
   170     }
   189     }
   171 
   190 
   172 
   191 
   173 // ---------------------------------------------------------------------------
   192 // ---------------------------------------------------------------------------
   174 // CAknItemActionMenuRegisterArray::CAknItemActionMenuRegisterArray
   193 // CAknItemActionMenuRegisterArray::CAknItemActionMenuRegisterArray
   192 // CAknItemActionMenuRegisterArray::RemoveEntry
   211 // CAknItemActionMenuRegisterArray::RemoveEntry
   193 // ---------------------------------------------------------------------------
   212 // ---------------------------------------------------------------------------
   194 //
   213 //
   195 void CAknItemActionMenuRegisterArray::RemoveEntry( TInt aIndex )
   214 void CAknItemActionMenuRegisterArray::RemoveEntry( TInt aIndex )
   196     {
   215     {
       
   216     _AKNTRACE_FUNC_ENTER;
   197     if ( aIndex >= 0 && aIndex < iRegisterArray.Count() )
   217     if ( aIndex >= 0 && aIndex < iRegisterArray.Count() )
   198         {
   218         {
   199         CRegisterEntry* entry = iRegisterArray[ aIndex ];
   219         CRegisterEntry* entry = iRegisterArray[ aIndex ];
   200         delete entry;
   220         delete entry;
   201         entry = NULL;
   221         entry = NULL;
   202         iRegisterArray.Remove( aIndex );
   222         iRegisterArray.Remove( aIndex );
   203         }
   223         }
       
   224     _AKNTRACE_FUNC_EXIT;
   204     }
   225     }
   205 
   226 
   206 
   227 
   207 // ---------------------------------------------------------------------------
   228 // ---------------------------------------------------------------------------
   208 // CCAknItemActionMenuRegisterArray::CRegisterEntry::NewL
   229 // CCAknItemActionMenuRegisterArray::CRegisterEntry::NewL
   210 //
   231 //
   211 CAknItemActionMenuRegisterArray::CRegisterEntry*
   232 CAknItemActionMenuRegisterArray::CRegisterEntry*
   212     CAknItemActionMenuRegisterArray::CRegisterEntry::NewL(
   233     CAknItemActionMenuRegisterArray::CRegisterEntry::NewL(
   213             CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
   234             CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
   214     {
   235     {
       
   236     _AKNTRACE_FUNC_ENTER;
   215     CRegisterEntry* self = CRegisterEntry::NewLC( aMenuBar, aItemActionMenu );
   237     CRegisterEntry* self = CRegisterEntry::NewLC( aMenuBar, aItemActionMenu );
   216     CleanupStack::Pop( self );
   238     CleanupStack::Pop( self );
       
   239     _AKNTRACE_FUNC_EXIT;
   217     return self;
   240     return self;
   218     }
   241     }
   219 
   242 
   220 
   243 
   221 // ---------------------------------------------------------------------------
   244 // ---------------------------------------------------------------------------
   224 //
   247 //
   225 CAknItemActionMenuRegisterArray::CRegisterEntry*
   248 CAknItemActionMenuRegisterArray::CRegisterEntry*
   226     CAknItemActionMenuRegisterArray::CRegisterEntry::NewLC(
   249     CAknItemActionMenuRegisterArray::CRegisterEntry::NewLC(
   227             CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
   250             CEikMenuBar& aMenuBar, CAknItemActionMenu& aItemActionMenu )
   228     {
   251     {
       
   252     _AKNTRACE_FUNC_ENTER;
   229     CRegisterEntry* self =
   253     CRegisterEntry* self =
   230         new ( ELeave ) CRegisterEntry( aMenuBar, aItemActionMenu );
   254         new ( ELeave ) CRegisterEntry( aMenuBar, aItemActionMenu );
   231     CleanupStack::PushL( self );
   255     CleanupStack::PushL( self );
       
   256     _AKNTRACE_FUNC_EXIT;
   232     return self;
   257     return self;
   233     }
   258     }
   234 
   259 
   235 
   260 
   236 // ---------------------------------------------------------------------------
   261 // ---------------------------------------------------------------------------
   237 // CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry
   262 // CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry
   238 // ---------------------------------------------------------------------------
   263 // ---------------------------------------------------------------------------
   239 //
   264 //
   240 CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry()
   265 CAknItemActionMenuRegisterArray::CRegisterEntry::~CRegisterEntry()
   241     {
   266     {
       
   267     _AKNTRACE_FUNC_ENTER;
   242     delete iActionMenu;
   268     delete iActionMenu;
       
   269     _AKNTRACE_FUNC_EXIT;
   243     }
   270     }
   244 
   271 
   245 
   272 
   246 // ---------------------------------------------------------------------------
   273 // ---------------------------------------------------------------------------
   247 // CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar
   274 // CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar
   248 // ---------------------------------------------------------------------------
   275 // ---------------------------------------------------------------------------
   249 //
   276 //
   250 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar()
   277 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveMenuBar()
   251     {
   278     {
       
   279     _AKNTRACE_FUNC_ENTER;
   252     iMenuBar = NULL;
   280     iMenuBar = NULL;
       
   281     _AKNTRACE_FUNC_EXIT;
   253     }
   282     }
   254 
   283 
   255 
   284 
   256 // ---------------------------------------------------------------------------
   285 // ---------------------------------------------------------------------------
   257 // CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar
   286 // CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar
   258 // ---------------------------------------------------------------------------
   287 // ---------------------------------------------------------------------------
   259 //
   288 //
   260 CEikMenuBar* CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar()
   289 CEikMenuBar* CAknItemActionMenuRegisterArray::CRegisterEntry::MenuBar()
   261     {
   290     {
       
   291     _AKNTRACE_FUNC_ENTER;
       
   292     _AKNTRACE_FUNC_EXIT;
   262     return iMenuBar;
   293     return iMenuBar;
   263     }
   294     }
   264 
   295 
   265 
   296 
   266 // ---------------------------------------------------------------------------
   297 // ---------------------------------------------------------------------------
   267 // CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu
   298 // CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu
   268 // ---------------------------------------------------------------------------
   299 // ---------------------------------------------------------------------------
   269 //
   300 //
   270 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu()
   301 void CAknItemActionMenuRegisterArray::CRegisterEntry::RemoveItemActionMenu()
   271     {
   302     {
       
   303     _AKNTRACE_FUNC_ENTER;
   272     delete iActionMenu;
   304     delete iActionMenu;
   273     iActionMenu = NULL;
   305     iActionMenu = NULL;
       
   306     _AKNTRACE_FUNC_EXIT;
   274     }
   307     }
   275 
   308 
   276 
   309 
   277 // ---------------------------------------------------------------------------
   310 // ---------------------------------------------------------------------------
   278 // CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu
   311 // CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu
   279 // ---------------------------------------------------------------------------
   312 // ---------------------------------------------------------------------------
   280 //
   313 //
   281 CAknItemActionMenu*
   314 CAknItemActionMenu*
   282     CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu()
   315     CAknItemActionMenuRegisterArray::CRegisterEntry::ItemActionMenu()
   283     {
   316     {
       
   317     _AKNTRACE_FUNC_ENTER;
       
   318     _AKNTRACE_FUNC_EXIT;
   284     return iActionMenu;
   319     return iActionMenu;
   285     }
   320     }
   286 
   321 
   287 
   322 
   288 // ---------------------------------------------------------------------------
   323 // ---------------------------------------------------------------------------