--- /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 <gfxtranseffect/gfxtranseffect.h> // for transition effects
+#include <akntranseffect.h> // for transition effects
+
+#include <e32hashtab.h>
+#include <aknappui.h>
+#include <akntoolbarobserver.h>
+#include <eiklbo.h>
+#include <hwrmdomainpskeys.h> //for flip change status
+#include <AknsSrvClient.h>
+
+#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.
+ * <br>Implements:
+ * <ul>
+ * <li>MHnControllerInterface - for notifications about model changes.</li>
+ * <li>MAknToolbarObserver - to get notifications about toolbar events.</li>
+ * <li>MMmWidgetObserver -
+ * to get notifications about widget highlight changes.</li>
+ * </ul>
+ *
+ * @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<TInt, MHnMenuItemModelIterator*> 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
+