diff -r 000000000000 -r 2f259fa3e83a lafagnosticuifoundation/cone/inc/COEVWMAN.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lafagnosticuifoundation/cone/inc/COEVWMAN.H Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,128 @@ +// 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 "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: +// + +#ifndef __COEVWMAN_H__ +#define __COEVWMAN_H__ + +#include // class MVwsSessionWrapperObserver + +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif + +class CCoeAppUi; +class CCoeEnv; +class MCoeView; +class MCoeViewDeactivationObserver; +class MCoeViewActivationObserver; +class CCoeControl; +class CCoeView; +class MCoeViewObserver; +class CCoeViewObserver; +class CVwsSessionWrapper; + + +/** + * The CCoeViewManager class provides Cone's view management and implements the view specific functionality accessed + * through the CCoeAppUi API. + * + */ +class CCoeViewManager : public CBase, public MVwsSessionWrapperObserver + { +public: + static CCoeViewManager* NewL(CCoeEnv& aCoeEnv,CCoeAppUi& aAppUi,CCoeAppUi* aPreviousAppUi); + ~CCoeViewManager(); +private: + CCoeViewManager(CCoeEnv& aCoeEnv,CCoeAppUi& aAppUi,CCoeAppUi* aPreviousAppUi); + void ConstructL(); +public: // view activation + void ActivateViewL(const TVwsViewId& aViewId, TBool aActivatingTopView = EFalse); + void ActivateViewL(const TVwsViewId& aViewId,const TUid& aCustomMessageId,const TDesC8& aCustomMessage, TBool aActivatingTopView = EFalse); + void ActivateTopViewL(); + void DeactivateActiveViewL(); + void DeactivateActiveViewIfOwnerMatchL(); + void CreateActivateViewEventL(const TVwsViewId& aViewId,const TUid& aCustomMessageId,const TDesC8& aCustomMessage); +public: // view registration + void RegisterViewL(MCoeView& aView); + void DeregisterView(const MCoeView& aView); + void RegisterApplicationViewL(const TUid& aAppUid); + void DeregisterApplicationView(); + void CheckInitializeViewsL(const TUid& aAppUid); + void SetDefaultViewL(const MCoeView& aView); + void SetApplicationViewAsDefaultL(); + TInt GetDefaultViewId(TVwsViewId& aViewId) const; + TInt GetActiveViewId(TVwsViewId& aViewId) const; +public: // view switch observation + void AddViewDeactivationObserverL(MCoeViewDeactivationObserver* aViewDeactivationObserver); + void RemoveViewDeactivationObserver(MCoeViewDeactivationObserver* aViewDeactivationObserver); + void NotifyNextDeactivation(const TVwsViewId& aViewId, MCoeViewDeactivationObserver& aViewDeactivationObserver); + void NotifyNextDeactivation(MCoeViewDeactivationObserver& aViewDeactivationObserver); + void AddViewActivationObserverL(MCoeViewActivationObserver* aViewActivationObserver); + void RemoveViewActivationObserver(MCoeViewActivationObserver* aViewActivationObserver); + void NotifyNextActivation(const TVwsViewId& aViewId, MCoeViewActivationObserver& aViewActivationObserver); + void NotifyNextActivation(MCoeViewActivationObserver& aViewActivationObserver); + void AddViewObserverL(MCoeViewObserver* aViewObserver); + void RemoveViewObserver(MCoeViewObserver* aViewObserver); +public: // View session configuration + TInt EnableExternalViewSwitches(TBool aEnable); +private: // From MVwsSessionWrapperObserver. + void HandleViewEventL(const TVwsViewEvent& aEvent); +public: // view related interfaces. + void DoActivationL(const TVwsViewId& aViewId,const TVwsViewId& aPreviousViewId,const TUid& aCustomMessageId,TInt aCustomMessageLength); + void DoDeactivation(const TVwsViewId& aViewId, const TVwsViewId& aActiveViewId, const TVwsViewEvent::TVwsViewEventType aType); + void HandleViewDeactivationNotification(const TVwsViewId& aViewId,const TVwsViewId& aActiveViewId); + void HandleViewActivationNotification(const TVwsViewId& aActiveViewId,const TVwsViewId& aViewToDeactivatedId); + TVwsViewIdAndMessage HandleScreenDeviceChangedL(const TVwsViewId& aViewId); + TInt ViewIndex(const MCoeView& aView) const; + TInt ViewIndex(const TVwsViewId& aViewId) const; + void SetSystemDefaultViewL(const TVwsViewId& aViewId,TInt aMode); + void SetSystemDefaultViewL(const TVwsViewId& aViewId); + TBool IsViewConstructed(const TVwsViewId& aViewId) const; + void GetSystemDefaultViewL(TVwsViewId& aViewId); + TBool CheckSourceOfViewSwitchL(const TSecurityPolicy& aSecurityPolicy,const char* aDiagnostic) const; + TInt GetTopViewId(TVwsViewId& aViewId) const; + void SetCustomControl(const TInt aCustomControl); + void SetWindowGroupOrdinal(const TInt aWindowGroupOrdinal); + void UpdateViewServerBackgroundColor(const TRgb& aBgColor); +private: + friend class CTestDriver; +private: + void CompleteActivation(TInt aActiveViewIndex,const TVwsViewId& aViewId,const TVwsViewId& aPreviousViewId); +private: + CCoeAppUi& iAppUi; + CCoeEnv& iCoeEnv; + TPtrC8 iCustomMessage; + CCoeAppUi* iPreviousAppUi; + TBool iRegisteredApplicationView; + CCoeViewObserver* iViewObserver; + CArrayPtrFlat iViewArray; + CVwsSessionWrapper* iVwsSession; + CArrayPtrFlat iViewDeactivationObserverArray; + MCoeViewDeactivationObserver* iNextViewDeactivationObserver; + CArrayPtrFlat iViewActivationObserverArray; + MCoeViewActivationObserver* iNextViewActivationObserver; + CArrayPtrFlat iViewObserverArray; + TInt iActiveViewIndex; + TVwsViewId iDefaultViewId; + TVwsViewId iLastActiveViewId; + TVwsViewId iActiveViewId; + TVwsViewId iApplicationViewId; + TBool iActivatingTopView; + TVwsViewId iActivatingViewId; + TInt iCustomControl; + TInt iWindowGroupOrdinal; + }; + +#endif // __COEVWMAN_H__