diff -r 000000000000 -r f72a12da539e menufw/menufwui/matrixmenu/inc/mmappui.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/menufw/menufwui/matrixmenu/inc/mmappui.h Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,1069 @@ +/* +* Copyright (c) 2007-2008 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: Application UI class +* Version : %version: MM_83.1.2.1.23.1.18 % << Don't touch! Updated by Synergy at check-out. +* +*/ + + +#ifndef C_MMAPPUI_H +#define C_MMAPPUI_H + +// INCLUDES +#include // for transition effects +#include // for transition effects + +#include +#include +#include +#include +#include //for flip change status +#include + +#include "hncontrollerinterface.h" +#include "mmwidgetobserver.h" +#include "hnsuiteobserver.h" +#include "mmactionrequest.h" +#include "mmpropertysubscriber.h" +#include "hnglobals.h" + + +// FORWARD DECLARATIONS + +class CHnInterface; +class CHnSuiteModel; +class MHnMenuItemModelIterator; +class CAknToolbar; +class CMmWidgetContainer; +class CMmListBoxContainer; +class CMmGridContainer; +class CMmHighlightManager; +class CLiwGenericParamList; +class CHnItemModel; +class CMMExtensionManager; +class CMmTemplateLibrary; +class CMmNoMemory; +class CMmAppkeyHandler; +class CAknStylusPopUpMenu; + +/** + * @ingroup group_matrixmenu + * Matrix Menu Application UI. + * Regular AVKON Application UI class, acts as controller for the application. + *
Implements: + *
    + *
  • MHnControllerInterface - for notifications about model changes.
  • + *
  • MAknToolbarObserver - to get notifications about toolbar events.
  • + *
  • MMmWidgetObserver - + * to get notifications about widget highlight changes.
  • + *
+ * + * @since S60 v5.0 + */ +NONSHARABLE_CLASS(CMmAppUi) : public CAknAppUi, + public MHnControllerInterface, + public MAknToolbarObserver, + public MMmWidgetObserver, + public MMmActionRequest, + public MMmPropertyChangeObserver, + public MAknsSkinChangeObserver + { + +public: + + /** + * 2nd phase constructor. + * + * @since S60 v5.0 + */ + void ConstructL(); + + /** + * C++ default constructor. This needs to be public due to + * the way the framework constructs the AppUi. + * + * @since S60 v5.0 + */ + CMmAppUi(); + + /** + * Virtual Destructor. + * + * @since S60 v5.0 + */ + ~CMmAppUi(); + +// from base class CEikAppUi + + /** + * From CEikAppUi. + * Handles a change to the application's resources which + * are shared across the environment. This function calls + * CEikAppUi::HandleResourceChangeL except when aType is + * KEikDynamicLayoutVariantSwitch. + * + * @since S60 v5.0 + * @param aType The type of resources that have changed. + */ + void HandleResourceChangeL( TInt aType ); + + /** + * From CEikAppUi. + * Takes care of Command Line tail handling. + * + * @since S60 v5.0 + * @param aCommand Not used by this app. + * @param aDocumentName Not used by this app. + * @param aTail Command line tail. + */ + TBool ProcessCommandParametersL( TApaCommand aCommand, + TFileName& aDocumentName, + const TDesC8& aTail ); + + /** + * From CAknAppUi. + * This method is overriden to ignore certain commands in + * certain situations. For not ignored commands it simply + * calls the base class implementation. + * + * @param aCommand A command ID. + */ + void ProcessCommandL(TInt aCommand); + + /** + * From CEikAppUi. + * Takes care of Command Line tail handling. + * + * @since S60 v5.0 + * @param aUid UID of the message. + * @param aParams Message params. + */ + void ProcessMessageL( TUid aUid, const TDesC8& aParams ); + + /** + * From MCoeMessageObserver. + * Handles window server messages. + * + * @since S60 v5.0 + * @param aClientHandleOfTargetWindowGroup The window group that the message was sent to. + * @param aMessageUid The message UID. + * @param aMessageParameters The message parameters. + * @return Indicates whether the message was handled or not handled by the function. + */ + MCoeMessageObserver::TMessageResponse HandleMessageL( + TUint32 aClientHandleOfTargetWindowGroup, + TUid aMessageUid, + const TDesC8& aMessageParameters ); + + /** + * From MEikMenuObserver (CEikAppUi). + * Handles dynamic menu pane initialization. + * + * @since S60 v5.0 + * @param aResourceId Resource ID of the menu pane. + * @param aMenuPane The menu pane itself. + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + +// from base class MHnControllerInterface + + /** + * From MHnControllerInterface. + * Notifies UI to start a refresh after content change. + * + * @since S60 v5.0 + * @param aRefreshType Type of refresh. + */ + void NotifyUiRefreshL( const THnUiRefreshType aRefreshType ); + +// from base class MHnSuiteObserver + + /** + * From MHnSuiteObserver. + * Trigger appropriate action on suite model. + * + * @since S60 v5.0 + * @param aCustomSuiteEvent Event to perform. + * @param aModel Suite model where aCustomSuiteEvent should be envoked. + */ + void HandleSuiteEventL( THnCustomSuiteEvent aCustomSuiteEvent, + CHnSuiteModel* aModel ); + +// from base class MEikListBoxObserver + + /** + * From MEikListBoxObserver. + * Handles list box events. + * + * This pure virtual function is invoked by CEikListBox to + * notify the observer of list box events. + * + * @since S60 v5.0 + * @param aListBox The originating list box. + * @param aEventType A code for the event. Further information + * may be obtained by accessing the list box itself. + */ + void HandleListBoxEventL( CEikListBox* aListBox, + MEikListBoxObserver::TListBoxEvent aEventType ); + +// from base class MMmLongTapObserver + + /** + * From MMmLongTapObserver. + * Handles long tap event reported by widget container. + * + * @since S60 v5.0 + * @param aPenEventLocation The relative to screen pen event location. + */ + void HandleLongTapEventL( const TPoint& aPenEventLocation ); + +// from base class MMmKeyEventObserver + + /** + * From MMmKeyEventObserver. + * Handles key press events. + * + * @since S60 v5.0 + * @param aKeyEvent Key event. + * @param aType Event type. + */ + TKeyResponse HandleKeyPressedL( const TKeyEvent &aKeyEvent, + TEventCode aType ); + +// from base class MMmDragAndDropObserver + + /** + * From MMmDragAndDropObserver. + * Handles the start of dragging of an item. + * + * @since S60 v5.0 + * @param aModelItemIndex Index of the dragged item. + */ + void HandleDragStartL( TInt aModelItemIndex ); + + /** + * From MMmDragAndDropObserver. + * Handles the event of dragging an item over a different one. + * Used to change presentation of folder icons to indicate drop into action. + * + * @since S60 v5.0 + * @param aModelItemIndex Index of the item. + */ + void HandleDragOverL( TInt aModelItemIndex ); + + /** + * From MMmDragAndDropObserver. + * Handles the stop of dragging of an item. + * + * @since S60 v5.0 + * @param aModelItemIndex Index of the dragged item. + */ + void HandleDragStopL( TInt aModelItemIndex ); + + /** + * From MMmDragAndDropObserver. + * Handles update of dragged item index. + * + * @since S60 v5.0 + * @param aModelItemIndex New dragged item index. + */ + void HandleDraggedIndexUpdatedL( TInt aModelItemIndex ); + +// from base class MAknToolbarObserver + + /** + * From MAknToolbarObserver. + * Handles toolbar events for a certain toolbar item. + * + * @since S60 v5.0 + * @param aCommand The command ID of some toolbar item. + */ + void OfferToolbarEventL( TInt aCommand ); + +// from base class MHnControllerInterface + /** + * From MHnControllerInterface. + * Execute extension manager action. + * + * @since S60 v5.0 + * @param aUid UID of the ECom plugin's. + * @param aCommand Command which has to be executed on the plugin. + * Request to the Service. + * @param aEventParamList List of the event parameters needed to + * execute action. Extention Manager is its owner. + * @return Number representing error code. + */ + TInt ExecuteExtensionActionL( const TUid aUid , const TDesC& aCommand, + CLiwGenericParamList* aEventParamList ); + +// from MMmPropertyChangeObserver + /** + * Called when property changed + * @since S60 v3.0 + */ + void PropertyChangedL(TInt aValue); + + /** + * Sets the zoom for the application. + */ + void SetZoom( TAknUiZoom aZoom ); + + /** + * Reloads cascade menu map. + */ + void ReloadCascadeMenuMapL(); + + + /** + * Called by the skin server when skin content is changed and the + * connected client wants to be informed. + * + * @since 2.0 + */ + void SkinContentChanged(); + + /** + * Called by the skin server to indicate that the current skin + * configuration has changed. + * + * @param aReason Reason code. + * + * @since 2.5 + */ + void SkinConfigurationChanged( + const TAknsSkinStatusConfigurationChangeReason aReason ); + + /** + * Called by the skin server to indicate that the available + * skin packages have changed. + * + * @param aReason Reason code. + * + * @since 2.5 + */ + void SkinPackageChanged( + const TAknsSkinStatusPackageChangeReason aReason ); + +private: + + /** + * Enum defining possible exit types for ExitMenuL method. + * + * @since S60 v5.0 + */ + enum TExitType + { + EExitReally, + EExitToIdle, + EExitToPhone + }; + + /** + * Enum defining possible exit types for ExitMenuL method. + * + * @since S60 v5.0 + */ + enum TExitKeyType + { + EExitKeyApplication, + EExitKeyRed + }; + + /** + * Defiens edit mode state. + * + * @since S60 v5.0 + */ + enum TEditModeStatus + { + ENoEditMode, + ETransitionToEditMode, + EEditMode, + ETransitionFromEditMode, + EFastTransitionFromEditMode + }; + + /** + * Indicates if edit mode is on. + * + * @since S60 v5.0 + * @return Returns edit mode status. + */ + TBool IsEditMode(); + + /** + * Adjusts highlight when entering or leaving edit mode. + * + * @since S60 v5.0 + * @param aOriginalHighlight Highlight that would normally be set + * @return A modified value of highlight + */ + TInt AdjustEditModeHighlightL( TInt aOriginalHighlight ); + + /** + * Manages the container lookup. + * + * @since S60 v5.0 + * @return Pointer to the container to be loaded, of NULL + * if a new container should be created. + */ + CMmWidgetContainer* GetAppropriateContainerToLoadL(); + + /** + * Submits an asynchronous service request to show user a message + * when Matrix Menu is out of memory. + * + * @since S60 v5.0 + */ + void HandleOutOfMemoryL(); + + /** + * Resets MM App UI to the initial state (most of the fields). + * + * @since S60 v5.0 + */ + void ResetToInitialStateL(); + + /** + * Refreshes menu pane if needed + */ + void HideMenuPaneIfVisibleL(); + +// from base class CEikAppUi + + /** + * From CEikAppUi. + * Takes care of command handling. + * + * @since S60 v5.0 + * @param aCommand Command to be handled. + */ + void HandleCommandL( TInt aCommand ); + + /** + * From CEikAppUi. + * Handles Window Server events. + * + * @since S60 v5.0 + * @param aEvent Event to be handled. + * @param aDestination Destination control. + */ + void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination ); + + /** + * Indicates if root (main) view is displayed. + * + * @since S60 v5.0 + * @return ETrue if root displayed, EFalse otherwise. + */ + TBool IsRootdisplayedL(); + + /** + * Handles pen down events for an item. + * + * @since S60 v5.0 + * @param aIndex Item index. + */ + void HandleHighlightItemPenDownL( TInt aIndex ); + + /** + * Handles single click event on widget item. + * + * @since S60 v5.0 + * @param aIndex Clicked item index. + */ + void HandleHighlightItemSingleClickedL( TInt aIndex ); + + /** + * Handles drag event. + * + * @since S60 v5.0 + */ + void HandleEventDraggingActionedL(); + + /** + * Handles click (select) events for an item. + * + * @since S60 v5.0 + * @param aIndex Item index. + */ + void HandleHighlightItemDoubleClickedL( TInt aIndex ); + + /** + * Handles suite model initialized event. + * + * @param aModel Suite model that has been initialized. + * @since S60 v5.0 + */ + void HandleSuiteModelInitializedL( CHnSuiteModel* aModel ); + + /** + * Handles suite update events. + * + * @since S60 v5.0 + */ + void UpdateL(); + + /** + * Handles suite remove events. + * + * @since S60 v5.0 + */ + void RemoveL(); + + /** + * Handles suite insert events. + * + * @since S60 v5.0 + */ + void InsertL(); + + /** + * Handles the "Back" softkey event. + * + * @since S60 v5.0 + */ + void HandleBackCommandL(); + + /** + * Refreshes toolbar. + * + * @since S60 v5.0 + */ + void RefreshToolbarL(); + + /** + * Updates app's presentation to show desired suite content. + * + * @since S60 v5.0 + */ + void ShowSuiteL(); + + /** + * Creates new container for suite model. + * + * @since S60 v5.0 + * @param aSuiteModel Suite model to load. + * @param aContainerToLoad Target pointer for the new container. + * @return ETrue if operation is succesful, EFalse otherwise + */ + TBool CreateNewContainerL( CHnSuiteModel* aSuiteModel, + CMmWidgetContainer*& aContainerToLoad ); + + /** + * Forwards the passed event code to Hierarchy Navigator for handling. + * + * @since S60 v5.0 + * @param aEvent Event code. + */ + void ForwardEventToHNL( TInt aEvent ); + + /** + * Forwards the passed event code to Hierarchy Navigator for handling + * regarding the current suite's item referred to by itemid. + * + * @since S60 v5.0 + * @param aEvent Event code. + * @param aItemId Item ID. + * @param aEventParams Additional parameters. + */ + void ForwardEventToHNL( TInt aEvent, TInt aItemId, + CLiwGenericParamList* aEventParams = NULL ); + + /** + * Sets the Status Pane and CBA to indicate the current open suite. + * + * @param aReset Indicates if status pane should be reset. + * @since S60 v5.0 + */ + void RefreshUiPanesL( TBool aReset = EFalse ); + + /** + * Checks recieved messages and forwards to HN. + * + * @since S60 v5.0 + * @param aMessage The message. + */ + void HandleMessageL( const TDesC8& aMessage ); + + /** + * Gets the resource ID of the first free cascade menu pane container. + * Resource containers are defined in nsui.rss under + * r_main_menu_pane_cascade_* tags. + * + * @since @since S60 v5.0 + * @return The ID of the first available cascade manu pane resource + * container, or KErrNotFound if none available. + */ + TInt GetNextCascadeMenuResourceId(); + + /** + * Handles the update of current shown container. + * + * @since S60 v5.0 + * @param aWidgetContainer The widget container to be shown. + */ + void HandlePresentationChangeL( CMmWidgetContainer* aWidgetContainer ); + + /** + * Handles the switching of visible containers. + * + * @since S60 v5.0 + * @param aWidgetContainer The widget to switch to. + */ + void HandleWidgetChangeRefreshL( CMmWidgetContainer* aWidgetContainer ); + + /** + * Handles the refresh if no widget change occured. + * Just model on the stack changed. + * + * @since S60 v5.0 + */ + void HandleNoWidgetChangeRefreshL(); + + /** + * Shows or hides toolbar depending on context. + * + * @since S60 v5.0 + */ + void HandleToolbarVisibilityL(); + + /** + * Updates the toolbar content. + * + * @since S60 v5.0 + */ + void UpdateToolbarL(); + + /** + * Sets the Edit Mode. + * + * @since S60 v5.0 + * @param aIsEditMode ETrue if edit mode needs to be turned on. + */ + void SetEditModeL( TBool aIsEditMode ); + + /** + * Returns TAT/Kastor effect rectangle. + * + * @since S60 v5.0 + * @param aItemModel Model of the selected item. + * @param aItemId Item ID. + * @return Screen rect of the selected item. + */ + TRect GetKastorRectL( CHnItemModel* aItemModel, TInt aItemId ); + + /** + * Returns TAT/Kastor effect depends on selected item. + * + * @since S60 v5.0 + * @param aItemModel Model of the selected item. + * @return Effect id depends on item type and status. + */ + TInt GetKastorEffectL( CHnItemModel* aItemModel ); + + /** + * Handles exiting Matrix. + * + * @since S60 v5.0 + * @param aExitType type of exit. + */ + void ExitMatrix( TExitType aExitType ); + + /** + * Cleans up before exiting Matrix. + * Stops edit mode and resets to root. + * + * @param aExitKey Red key or application key. + * @since S60 v5.0 + */ + void CleanupForExitL( TExitKeyType aExitKey ); + + /** + * Manages bringing homescreen and relevant apps to foreground. + * + * @since S60 v5.0 + * @param aExitType type of exit. + */ + void ShowHomescreenL( TExitType aExitType ); + + /** + * Places the homescreen window underneath the menu window. + * + * This method puts the homescreen window just below the matrix menu + * window (assuming that matrix menu is running in the foreground) so + * that if matrix gets closed and disappears from the screen, then + * homescreen will be visible immediately. If it is impossible to do + * so (for any reason), this method will call ShowHomescreenL. + * + * @since S60 v5.0 + */ + void PrepareHomescreenForMatrixExitL(); + + /** + * Opens the desired application. + * Used in exiting Matrix. + * + * @since S60 v5.0 + * @param aUid UID of the app to open. + */ + void OpenAppL( const TUid aUid ); + + /** + * Loads default root suite + * + * @since S60 v5.0 + */ + void InitializeL(); + + /** + * Refreshes Cba according to current context. + * + * @since S60 v5.0 + */ + void RefreshCbaL(); + + /** + * MSK text. + * + * @since S60 v5.0 + */ + void SetMiddleSoftKeyL(); + + /** + * Starts fullscreen. + * @param aKastorEffect Id of the TAT/Kastor effect. + * + * @since S60 v5.0 + */ + void StartLayoutSwitchFullScreen( TInt aKastorEffect + = AknTransEffect::ELayoutSwitchStart); + + /** + * Ends fullscreen + * + * @since S60 v5.0 + */ + void EndFullScreen(); + + // From MMActionRequest + + /** + * Enables to issue a request to Hn engine. + * + * @since S60 v5.0 + * @param aParam Input Parameters. + * @param aOutput Target list for output. + */ + void HandleRequestL( const CLiwGenericParamList& aParam, + CLiwGenericParamList* aOutput = NULL ); + + /** + * Resets map of widget containers. + * + * @since S60 v5.0 + */ + void ResetContainerMap(); + + /** + * Resets map of widget container to root. + * + * @since S60 v5.0 + */ + void ResetContainerMapToRootL(); + + /** + * Called to retrive flip status. + * + * @since S60 v5.0 + * @return Is flip open. + */ + TBool FlipOpen(); + + /** + * Resets view to root. + * + * @return ETrue if view was not displaying root suite already, EFalse otherwise + */ + TBool ResetToRootL(); + + /** + * Refreshes icons after skin changing + */ + void RefreshIconsL(); + + /** + * Forward event to hierarchy navigator. + * + * @param aOffset Highlight offset. + */ + void HandleHighlightOffsetL( TInt aOffset ); + + /** + * Replaces ETransitionFromEditMode or EFastTransitionFromEditMode to ENoEditMode + */ + void ClearTransitionFromEditModeFlag(); + /** + * Method inherited from CEikAppUi to handle + * out of memory problem. + * + * @param aError KErrNoMemory is handled. + * @param aExtErr Not used. + * @param aErrorText Not used. + * @param aContextText Not used. + * @return EErrorNotHandled in order to display proper information. + */ + TErrorHandlerResponse HandleError( TInt aError, + const SExtendedError &aExtErr, + TDes &aErrorText, + TDes &aContextText ); + + /** + * Update widget data for number of items changed. + * + * @param aChange type of change. + */ + void HandleNumberOfItemsChangedL( TItemsChangeType aChange ); + + /** + * Sets the highlighted item in gui objects accordingly to what + * is stored in the model. The exact result of calling this + * method depends on @c iMakeHightlightedItemFullyVisible + * flag. + */ + void ApplyHighlightFromModelL(); + + /** + * Called when EFocusGained message is received by menu. + * Should be called only from HandleWsEvent. + */ + void HandleFocusGainedL(); + + /** + * Called when application is sent to foreground. + * Should be called only from HandleWsEvent. + */ + void HandleFullOrPartialForegroundGainedL(); + + /** + * Called when application is sent to background. + * Should be called only from HandleWsEvent. + */ + void HandleFullOrPartialForegroundLostL(); + + /** + * Called when EFocusLost message is received by menu. + * Should be called only from HandleWsEvent. + */ + void HandleFocusLostL(); + + /** + * Detects when options menu pops up and hides. + */ + void DetectOptionsMenuOpenDisplayChangeL(); + +private: // Data + + /** + * Grid's Container Widget. + * Own. + */ + //CMmWidgetContainer* iGridContainer; + + /** + * List's Container Widget. + * Own. + */ + //CMmWidgetContainer* iListboxContainer; + + /** + * Current visible Widget. + * Not own. + */ + CMmWidgetContainer* iCurrentContainer; + + /** + * Hash map containig widget containers, with corresponding + * suite id. + */ + RHashMap< TInt, CMmWidgetContainer* > iContainerMap; + + /** + * Array of container pointers, whose deletion should + * be delayed. + */ + RPointerArray< CMmWidgetContainer > iGarbage; + + /** + * Current suite model + * Not own. + */ + CHnSuiteModel* iCurrentSuiteModel; + + /** + * Hierarchy Navigator + * Own. + */ + CHnInterface* iHNInterface; + + /** + * Hash map for dynamic initialization of cascade menu panes. + * Contains item iterator pointers indexed with cascade pane resource IDs. + * MHnMdMenuItemIterator items not owned. + */ + RHashMap iCascadeMenuMap; + + /** + * Indicates the edit mode status. + */ + TEditModeStatus iEditModeStatus; + + /** + * Pointer to application's custom toolbar. + * Own. + */ + CAknToolbar* iToolbar; + + /** + * Index of dragged item. + */ + TInt iItemDragged; + + /** + * Model ID of the dragged item. + */ + TInt iIdDragged; + + /** + * Locks select events for highlight based scrolling. + */ + TBool iKeyClickLocked; + + /** + * Indicates if TAT/Kastor effect is started. + */ + TBool iIsKastorEffectStarted; + + /** + * Extension manager. + * Own. + */ + CMMExtensionManager* iMmExtManager; + + /** + * Sliding keyboard (flip) status + */ + EPSHWRMFlipStatus iKeyboardFlipStatus; + + /** + * Slider event subscriber + * own + */ + CMmPropertySubscriber* iSliderEventSubscriber; + + /** + * Current zoom; + */ + TAknUiZoom iZoom; + + /** + * Screen state. + */ + TBool iScreenOn; + + /** + * Skin change needed + */ + TBool iSkinChangeNeeded; + + /** + * Template library. + */ + CMmTemplateLibrary* iTemplateLibrary; + + /** + * Skin server session. + */ + RAknsSrvSession iSkinSrvSession; + + /** + * Skin change in progress + */ + TBool iSkinChangeInProgress; + + /** + * Widget container that contains only an empty listbox. + * It is displayed only when there is no other container that + * could be displayed. It is needed to avoid ugly flicker + * effects where homescreen becomes visible for a fraction of + * second. + */ + CMmWidgetContainer* iDummyContainer; + + /** + * A template library for iDummyContainer; + */ + CMmTemplateLibrary* iDummyTemplateLib; + + /** + * Out-of-memory condition handler. + */ + CMmNoMemory* iOutOfMemoryHandler; + + /** + * This flag is intended for indicating that the highlithted item must + * be fully visible. It is only used in two cases: + * 1. When an item has been drag-and-dropped into a folder (the item + * moved into the folder must be fully visible when the target suite + * is displayed). + * 2. When turning on edit mode (the item highlighted must be fully + * visible once edit mode is turned on). + */ + TBool iMakeHightlightedItemFullyVisible; + + /** + * An low priority active object used as a helper to detect frequent and + * quick appkey pressing. + * Owns. + */ + CMmAppkeyHandler* iAppkeyHandler; + + /** + * ETrue if Matrix menu has focus i.e. it is in foreground and is not eclipsed + * by any popup note that is not originating from Matrix menu. + */ + TBool iHasFocus; + + /** + * Own. + * Popup menu displayed after long tap. + */ + CAknStylusPopUpMenu* iPopupMenu; + + /** + * Application UI factory for this app UI object. + */ + MEikAppUiFactory* iAppUiFactory; + + /** + * ETrue if Options menu is open. + */ + TBool iOptionsMenuIsOpen; + + }; + +#endif // C_MMAPPUI_H + +// End of File +