epoc32/include/mw/eikmnbut.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
--- a/epoc32/include/mw/eikmnbut.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/mw/eikmnbut.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,160 @@
-eikmnbut.h
+/*
+* Copyright (c) 2000-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Uikon legacy button that launches a menu when activated
+*
+*/
+
+
+#if !defined(__EIKMNBUT_H__)
+#define __EIKMNBUT_H__
+
+#if !defined(__EIKMOBS_H__)
+#include <eikmobs.h>
+#endif										 
+
+#if !defined(__EIKCMBUT_H__)
+#include <eikcmbut.h>
+#endif
+
+class CEikMenuPane;
+
+/**
+ *  This class implements a command button that, when pressed, raises a Menu pane.
+ *
+ *  This class does NOT implement S60 look-and-feel and is not skinned.
+ *
+ *  @lib eikcoctl.dll
+ *  @since S60 1.0
+ */
+class CEikMenuButton : public CEikCommandButton, private MEikMenuObserver
+{
+public:
+    /**
+    * C++ constructor
+    */
+    IMPORT_C CEikMenuButton();
+    
+    /**
+    * destructor
+    */
+    IMPORT_C ~CEikMenuButton();
+
+    /**
+    * 2nd phase constructor using a MNBUT resource struct
+    *
+    * @param aReader    A constructed resource reader.
+    */
+    IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
+    
+    /**
+    * Launch the related menu pane
+    * 
+    * @param aObserver Mandatory supplied menu observer pointer.
+    */
+    IMPORT_C void LaunchPopupMenuL(MEikMenuObserver* aObserver);
+    
+    /**
+    * Set the menu pane id to be launched when the control is activated.
+    * 
+    * @param aMenuPaneId  Resource ID of the menu pane to be launched
+    */
+    IMPORT_C void SetMenuPaneId(TInt aMenuPaneId);
+    
+protected:
+
+    /**
+    * From CCoeControl
+    *
+    * Serialize the state of the control to the given stream
+    *
+    * @param aWriteStream   Stream to write to
+    */
+    IMPORT_C void WriteInternalStateL(RWriteStream& aWriteStream) const;
+
+public: // from CEikButtonBase
+
+    /**
+    * Triggers the change of appearance of the button that is associated with the button being pressed
+    */
+    IMPORT_C void Animate();
+
+public: // From CCoeControl
+    
+    /**
+    * From CCoeControl
+    *
+    * Framework method called when a pointer event is found to be within this control's boundaries. 
+    * The default implementation causes the associated menu to be presented to the screen.
+    *
+    * @param aPointerEvent  Pointer event to process
+    */
+    IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+
+private: 
+ 
+    /**
+    * From MEikCommandObserver
+    *
+    * Framework method called to processs a command ID
+    *
+    * @param aCommandId ID of the command to respond to.
+    */
+    IMPORT_C void ProcessCommandL(TInt aCommandId);
+    
+    /**
+    * From MEikMenuObserver
+    *
+    * Called by the Uikon framework to handle the emphasising or de-emphasising of 
+    * a menu window. 
+    * 
+    * CEikMenuBar objects call this on their observer to emphasise 
+    * themselves when they are displayed, and de-emphasise themselves when they 
+    * stop displaying.
+    * 
+    * @param aMenuControl The menu control
+    * @param aEmphasis ETrue to emphasize the menu, EFalse otherwise
+    */
+    IMPORT_C void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis);
+    
+private:
+    void ClosePopupMenu();
+    void DoLaunchPopupMenuL();
+private:
+    /**
+    * From CAknControl
+    */
+    IMPORT_C void* ExtensionInterface( TUid aInterface );
+    
+private:
+    /**
+    *  The object to receive the menu events
+    *  Not Owned
+    */
+    MEikMenuObserver* iMenuObserver;
+    
+    /**
+    * Holds a menu pane object to be popped up
+    * Owned
+    */
+    CEikMenuPane* iMenuPopup;
+    
+    /**
+    * Resource ID of the menu pane
+    */
+    TInt iMenuPaneId;
+    
+    TInt iSpare;
+    };
+
+#endif