uifw/EikStd/coctlinc/aknitemactionmenudata.h
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/EikStd/coctlinc/aknitemactionmenudata.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2009 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Item action menu data.
+*
+*/
+
+#ifndef C_AKNITEMACTIONMENUDATA_H
+#define C_AKNITEMACTIONMENUDATA_H
+
+#include <e32base.h>
+
+class CAknStylusPopUpMenu;
+class MDesCArray;
+
+/**
+ * Menu pane item maximum text length.
+ */
+const TInt KMenuPaneItemTextLength( 40 );
+
+/**
+ * Menu pane item text buf.
+ */
+typedef TBuf<KMenuPaneItemTextLength> TMenuItemTextBuf;
+
+/**
+ * Item action menu data.
+ *
+ * @lib eikcoctl
+ * @since S60 v5.2
+ */
+NONSHARABLE_CLASS( CAknItemActionMenuData ) : public CBase
+    {
+
+public:
+
+    /**
+     * Two-phased constructor.
+     */
+    static CAknItemActionMenuData* NewL();
+
+    /**
+     * Destructor.
+     */
+    virtual ~CAknItemActionMenuData();
+
+    /**
+     * Adds menu data item to menu data array.
+     * 
+     * @param aCommandId Menu item command id.
+     * @param aCascadeId Menu item cascade id.
+     * @param aText Menu item text.
+     */
+    void AddMenuItemToDataArrayL(
+            TInt aCommandId, TInt aCascadeId, const TDesC& aText );
+
+    /**
+     * Adds menu data items styluspopupmenu.
+     * 
+     * @param aPopupMenu Stylus popup menu.
+     */
+    void AddMenuItemsToStylusPopupMenuL( CAknStylusPopUpMenu* aPopupMenu );
+
+    /**
+     * Provides menu items for query dialog.
+     * 
+     * @return Text array for query dialog.
+     */
+    MDesCArray* MenuItemsForQueryDialogL();
+
+    /**
+     * Returns menu item cascade id for requested index.
+     * 
+     * @param aIndex Menu item index + 1.
+     * @return Menu item cascade id if it has one.
+     * Otherwise 0.
+     */
+    TInt MenuItemCascadeId( TInt aIndex );
+
+    /**
+     * Returns menu item text for requested index.
+     * 
+     * @param aIndex Menu item index + 1.
+     * @return Menu item text.
+     */
+    TDesC& MenuItemText( TInt aIndex );
+
+    /**
+     * Returns menu item command id for requested index.
+     * 
+     * @param aIndex Menu item index + 1.
+     * @return Menu item command id.
+     */
+    TInt MenuItemCommandId( TInt aIndex );
+
+    /**
+     * Resets menu data array.
+     */
+    void Reset();
+
+    /**
+     * Returns menu data array item count.
+     * 
+     * @return Data array item count.
+     */
+    TInt Count() const;
+
+private:
+
+    /**
+     * C++ constructor.
+     */
+    CAknItemActionMenuData();
+
+private: // data
+
+    /**
+     * Single item action menu item data structure.
+     */
+    class TAknItemActionMenuData
+        {
+
+    public:
+
+        /**
+         * Menu item command id.
+         */
+        TInt iCommandId;
+
+        /**
+         * Menu item cascade id.
+         */
+        TInt iCascadeId;
+
+        /**
+         * Menu item text.
+         */
+        TMenuItemTextBuf iText;
+        };
+
+    /**
+     * Menu data.
+     */
+    RArray<TAknItemActionMenuData> iMenuData;
+    };
+
+#endif // C_AKNITEMACTIONMENUDATA_H