diff -r 2fe1408b6811 -r e1b950c65cb4 epoc32/include/mw/eikmobs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/mw/eikmobs.h Wed Mar 31 12:27:01 2010 +0100 @@ -0,0 +1,125 @@ +// Copyright (c) 1997-2009 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: +// + +#ifndef __EIKMOBS_H__ +#define __EIKMOBS_H__ + +#include +#include +#include + +class CCoeControl; +class CEikMenuPane; +class CEikMenuBar; +class CEikHotKeyTable; +class TPoint; + +/** Menu observer interface. + +Menu observers cooperate with menu bars and menu panes, initialising them +before display and responding to menu events appropriately. CEikAppUi implements +MEikMenuObserver, so these functions may be implemented on an application's +App UI. + +@publishedAll +@released */ +class MEikMenuObserver : public MEikCommandObserver + { +public: + /** Menu types */ + enum TMenuType + { + /** Menu pane. */ + EMenuPane, + /** Menu bar. */ + EMenuBar + }; +public: + IMPORT_C virtual void HandleAttemptDimmedSelectionL(TInt aCommandId); + IMPORT_C virtual TBool CheckHotKeyNotDimmedL(TInt aCommandId); + IMPORT_C virtual void RestoreMenuL(CCoeControl* aMenuControl,TInt aResourceId,TMenuType aType); + IMPORT_C virtual void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane); + IMPORT_C virtual void DynInitMenuBarL(TInt aResourceId,CEikMenuBar* aMenuBar); + IMPORT_C virtual void HandleSideBarMenuL(TInt aResourceId,const TPoint& aPos,TInt aModifiers,const CEikHotKeyTable* aTable); + IMPORT_C virtual void OfferKeyToAppL(const TKeyEvent& aKeyEvent,TEventCode aType); + /** 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. */ + virtual void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis)=0; +public: + IMPORT_C virtual CCoeControl* CreateCustomCommandControlL(TInt aControlType); +protected: + IMPORT_C MEikMenuObserver(); +private: + IMPORT_C virtual void Reserved_1_MenuObserver(); + IMPORT_C virtual void Reserved_2_MenuObserver(); +private: // from MEikCommandObserver. do not override! + IMPORT_C void MEikCommandObserver_Reserved1(); + IMPORT_C void MEikCommandObserver_Reserved2(); +private: + TInt iMEikMenuObserver_Spare1; + }; + + +/** Provides additional functionality to an auto menu title, in the form of an +OfferHotKeyL() method, which is not required in the normal MEikMenuObserver. + +Auto menu titles are used to ensure that some menu panes appear in every menu +constructed for an application. + +@publishedAll +@released */ +class MEikAutoMenuObserver : public MEikMenuObserver + { +public: + /** Offers the specified hot key to the auto menu title. + + Implement this function if you expect to handle any events from an auto menu. + + @param aKeyEvent The key event. + @param aType The type of key event. + @return The auto menu title's response. */ + virtual TKeyResponse OfferHotKeyL(const TKeyEvent& aKeyEvent,TEventCode aType)=0; +public: // from MEikMenuObserver + IMPORT_C void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis); +public: + IMPORT_C virtual void HandleAttemptDimmedSelectionL(TInt aCommandId); + IMPORT_C virtual TBool CheckHotKeyNotDimmedL(TInt aCommandId); + IMPORT_C virtual void RestoreMenuL(CCoeControl* aMenuControl,TInt aResourceId,TMenuType aType); + IMPORT_C virtual void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane); + IMPORT_C virtual void DynInitMenuBarL(TInt aResourceId,CEikMenuBar* aMenuBar); + IMPORT_C virtual void HandleSideBarMenuL(TInt aResourceId,const TPoint& aPos,TInt aModifiers,const CEikHotKeyTable* aTable); + IMPORT_C virtual void OfferKeyToAppL(const TKeyEvent& aKeyEvent,TEventCode aType); + IMPORT_C virtual CCoeControl* CreateCustomCommandControlL(TInt aControlType); +protected: + IMPORT_C MEikAutoMenuObserver(); +private: + IMPORT_C virtual void Reserved_1_MenuObserver(); + IMPORT_C virtual void Reserved_2_MenuObserver(); +private: // from MEikCommandObserver. do not override! + IMPORT_C void MEikCommandObserver_Reserved1(); + IMPORT_C void MEikCommandObserver_Reserved2(); +private: + TInt iMEikAutoMenuObserver_Spare1; + }; + + +#endif // __EIKMOBS_H__