classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h
branchRCL_3
changeset 56 d48ab3b357f1
parent 55 aecbbf00d063
child 64 85902f042028
equal deleted inserted replaced
55:aecbbf00d063 56:d48ab3b357f1
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    18 #ifndef C_AKNITEMACTIONMENU_H
    18 #ifndef C_AKNITEMACTIONMENU_H
    19 #define C_AKNITEMACTIONMENU_H
    19 #define C_AKNITEMACTIONMENU_H
    20 
    20 
    21 #include <e32base.h>
    21 #include <e32base.h>
    22 #include <eikmobs.h>
    22 #include <eikmobs.h>
       
    23 #include <coemop.h>
    23 
    24 
    24 class MAknCollection;
    25 class MAknCollection;
    25 class MAknCollectionObserver;
    26 class MAknCollectionObserver;
    26 class CAknStylusPopUpMenu;
    27 class CAknStylusPopUpMenu;
    27 class CEikMenuBar;
    28 class CEikMenuBar;
    28 class CAknItemActionMenuData;
    29 class CAknItemActionMenuData;
       
    30 class CAknMarkingMode;
    29 
    31 
    30 /**
    32 /**
    31  * Item action menu.
    33  * Item action menu.
    32  * 
    34  * 
    33  * Classes implementing @c MAknCollection interface can launch
    35  * Classes implementing @c MAknCollection interface can launch
    64                                           public MEikMenuObserver
    66                                           public MEikMenuObserver
    65     {
    67     {
    66 
    68 
    67 public:
    69 public:
    68 
    70 
       
    71     DECLARE_TYPE_ID( 0x2002C344 )
       
    72 
    69     /**
    73     /**
    70      * Two-phased constructor.
    74      * Two-phased constructor.
    71      * 
    75      * 
    72      * @internal
    76      * @internal
    73      * @param aCollection Collection.
    77      * @param aCollection Collection.
    74      */
    78      * @param aOwner Menu's owner.
    75     static CAknItemActionMenu* NewL( MAknCollection& aCollection );
    79      */
       
    80     static CAknItemActionMenu* NewL( MAknCollection& aCollection,
       
    81             MObjectProvider* aOwner );
    76 
    82 
    77     /**
    83     /**
    78      * Two-phased constructor.
    84      * Two-phased constructor.
    79      * 
    85      * 
    80      * @internal
    86      * @internal
    81      * @param aCollection Collection.
    87      * @param aCollection Collection.
    82      */
    88      * @param aOwner Menu's owner.
    83     static CAknItemActionMenu* NewLC( MAknCollection& aCollection );
    89      */
       
    90     static CAknItemActionMenu* NewLC( MAknCollection& aCollection,
       
    91             MObjectProvider* aOwner );
    84 
    92 
    85     /**
    93     /**
    86      * Destructor.
    94      * Destructor.
    87      */
    95      */
    88     virtual ~CAknItemActionMenu();
    96     virtual ~CAknItemActionMenu();
    96      */
   104      */
    97     IMPORT_C static CAknItemActionMenu* RegisterCollectionL(
   105     IMPORT_C static CAknItemActionMenu* RegisterCollectionL(
    98             MAknCollection& aCollection );
   106             MAknCollection& aCollection );
    99 
   107 
   100     /**
   108     /**
       
   109      * Adds collection to the item action menu of this view / dialog / appUi.
       
   110      * 
       
   111      * @param aCollection Collection implementing MAknCollection interface.
       
   112      * @param aMenuBarOwner Owner of the menubar that collection will be
       
   113      *        registered with.
       
   114      * @return Pointer to the item action menu instance.
       
   115      * Ownership does not transfer to caller.
       
   116      */
       
   117     IMPORT_C static CAknItemActionMenu* RegisterCollectionL(
       
   118             MAknCollection& aCollection, MObjectProvider* aMenuBarOwner );
       
   119 
       
   120     /**
   101      * Removes collection of this item action menu.
   121      * Removes collection of this item action menu.
   102      * 
   122      * 
   103      * @param aCollection Collection to be removed.
   123      * @param aCollection Collection to be removed.
   104      */
   124      */
   105     IMPORT_C void RemoveCollection( MAknCollection& aCollection );
   125     IMPORT_C void RemoveCollection( MAknCollection& aCollection );
   193      *
   213      *
   194      * @internal
   214      * @internal
   195      * @return Collection count.
   215      * @return Collection count.
   196      */
   216      */
   197     TInt CollectionCount() const;
   217     TInt CollectionCount() const;
       
   218     
       
   219     /**
       
   220      * Returns pointer to item action menu's owner.
       
   221      *
       
   222      * @return Menu's owner
       
   223      */
       
   224     MObjectProvider* Owner() const;
       
   225 
       
   226     /**
       
   227      * Provides marking mode handler.
       
   228      *
       
   229      * @internal
       
   230      * @return Marking mode handler.
       
   231      */
       
   232     CAknMarkingMode& MarkingMode();
       
   233     
       
   234     /**
       
   235      * Returns ETrue if collection has marked items.
       
   236      * 
       
   237      * @internal
       
   238      * @return ETrue if collection has marked items.
       
   239      */
       
   240     TBool CollectionHasMarkedItems();
       
   241     
       
   242     /**
       
   243      * Hides this item action menu.
       
   244      * 
       
   245      * @internal
       
   246      */
       
   247     void HideMenu();
   198 
   248 
   199 private:
   249 private:
   200 
   250 
   201     /**
   251     /**
   202      * C++ constructor.
   252      * C++ constructor.
   203      */
   253      *
   204     CAknItemActionMenu();
   254      * @param aOwner Menu's owner.
       
   255      */     
       
   256     CAknItemActionMenu( MObjectProvider* aOwner );
   205 
   257 
   206     /**
   258     /**
   207      * Symbian second-phase constructor.
   259      * Symbian second-phase constructor.
   208      *
   260      *
   209      * @param aCollection Collection.
   261      * @param aCollection Collection.
   292     /**
   344     /**
   293      * Menu data.
   345      * Menu data.
   294      * Own.
   346      * Own.
   295      */
   347      */
   296     CAknItemActionMenuData* iMenuData;
   348     CAknItemActionMenuData* iMenuData;
       
   349     
       
   350     /**
       
   351      * Pointer to menu's owner. 
       
   352      * Not own
       
   353      */
       
   354     MObjectProvider* iOwner;
       
   355 
       
   356     /**
       
   357      * Multiple marking handler.
       
   358      * Own.
       
   359      */
       
   360     CAknMarkingMode* iMarking;
   297     };
   361     };
   298 
   362 
   299 #endif // C_AKNITEMACTIONMENU_H
   363 #endif // C_AKNITEMACTIONMENU_H