lafagnosticuifoundation/cone/inc/COEVWMAN.H
changeset 0 2f259fa3e83a
equal deleted inserted replaced
-1:000000000000 0:2f259fa3e83a
       
     1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 #ifndef __COEVWMAN_H__
       
    17 #define __COEVWMAN_H__
       
    18 
       
    19 #include <viewcli.h>	// class MVwsSessionWrapperObserver
       
    20 
       
    21 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
       
    22 #include <vwsdefpartner.h>
       
    23 #endif
       
    24 
       
    25 class CCoeAppUi;
       
    26 class CCoeEnv;
       
    27 class MCoeView;
       
    28 class MCoeViewDeactivationObserver;
       
    29 class MCoeViewActivationObserver;
       
    30 class CCoeControl;
       
    31 class CCoeView;
       
    32 class MCoeViewObserver;
       
    33 class CCoeViewObserver;
       
    34 class CVwsSessionWrapper;
       
    35 
       
    36 
       
    37 /**
       
    38  * The CCoeViewManager class provides Cone's view management and implements the view specific functionality accessed
       
    39  * through the CCoeAppUi API.
       
    40  *
       
    41  */
       
    42 class CCoeViewManager : public CBase, public MVwsSessionWrapperObserver
       
    43 	{
       
    44 public:
       
    45 	static CCoeViewManager* NewL(CCoeEnv& aCoeEnv,CCoeAppUi& aAppUi,CCoeAppUi* aPreviousAppUi);
       
    46 	~CCoeViewManager();
       
    47 private:
       
    48 	CCoeViewManager(CCoeEnv& aCoeEnv,CCoeAppUi& aAppUi,CCoeAppUi* aPreviousAppUi);
       
    49 	void ConstructL();
       
    50 public: // view activation
       
    51 	void ActivateViewL(const TVwsViewId& aViewId, TBool aActivatingTopView = EFalse);
       
    52 	void ActivateViewL(const TVwsViewId& aViewId,const TUid& aCustomMessageId,const TDesC8& aCustomMessage, TBool aActivatingTopView = EFalse);
       
    53 	void ActivateTopViewL();
       
    54 	void DeactivateActiveViewL();
       
    55 	void DeactivateActiveViewIfOwnerMatchL();
       
    56 	void CreateActivateViewEventL(const TVwsViewId& aViewId,const TUid& aCustomMessageId,const TDesC8& aCustomMessage);
       
    57 public: // view registration
       
    58 	void RegisterViewL(MCoeView& aView);
       
    59 	void DeregisterView(const MCoeView& aView);
       
    60 	void RegisterApplicationViewL(const TUid& aAppUid);			
       
    61 	void DeregisterApplicationView();
       
    62 	void CheckInitializeViewsL(const TUid& aAppUid);
       
    63 	void SetDefaultViewL(const MCoeView& aView);
       
    64 	void SetApplicationViewAsDefaultL();
       
    65 	TInt GetDefaultViewId(TVwsViewId& aViewId) const;
       
    66 	TInt GetActiveViewId(TVwsViewId& aViewId) const;
       
    67 public: // view switch observation
       
    68 	void AddViewDeactivationObserverL(MCoeViewDeactivationObserver* aViewDeactivationObserver);
       
    69 	void RemoveViewDeactivationObserver(MCoeViewDeactivationObserver* aViewDeactivationObserver);
       
    70 	void NotifyNextDeactivation(const TVwsViewId& aViewId, MCoeViewDeactivationObserver& aViewDeactivationObserver);
       
    71 	void NotifyNextDeactivation(MCoeViewDeactivationObserver& aViewDeactivationObserver);
       
    72 	void AddViewActivationObserverL(MCoeViewActivationObserver* aViewActivationObserver);
       
    73 	void RemoveViewActivationObserver(MCoeViewActivationObserver* aViewActivationObserver);
       
    74 	void NotifyNextActivation(const TVwsViewId& aViewId, MCoeViewActivationObserver& aViewActivationObserver);
       
    75 	void NotifyNextActivation(MCoeViewActivationObserver& aViewActivationObserver);
       
    76 	void AddViewObserverL(MCoeViewObserver* aViewObserver);
       
    77 	void RemoveViewObserver(MCoeViewObserver* aViewObserver);
       
    78 public: // View session configuration
       
    79 	TInt EnableExternalViewSwitches(TBool aEnable);
       
    80 private: // From MVwsSessionWrapperObserver.
       
    81 	void HandleViewEventL(const TVwsViewEvent& aEvent);
       
    82 public: // view related interfaces.
       
    83 	void DoActivationL(const TVwsViewId& aViewId,const TVwsViewId& aPreviousViewId,const TUid& aCustomMessageId,TInt aCustomMessageLength);
       
    84 	void DoDeactivation(const TVwsViewId& aViewId, const TVwsViewId& aActiveViewId, const TVwsViewEvent::TVwsViewEventType aType);
       
    85 	void HandleViewDeactivationNotification(const TVwsViewId& aViewId,const TVwsViewId& aActiveViewId);
       
    86 	void HandleViewActivationNotification(const TVwsViewId& aActiveViewId,const TVwsViewId& aViewToDeactivatedId);
       
    87 	TVwsViewIdAndMessage HandleScreenDeviceChangedL(const TVwsViewId& aViewId);
       
    88 	TInt ViewIndex(const MCoeView& aView) const;
       
    89 	TInt ViewIndex(const TVwsViewId& aViewId) const;
       
    90  	void SetSystemDefaultViewL(const TVwsViewId& aViewId,TInt aMode);
       
    91 	void SetSystemDefaultViewL(const TVwsViewId& aViewId);
       
    92  	TBool IsViewConstructed(const TVwsViewId& aViewId) const;
       
    93 	void GetSystemDefaultViewL(TVwsViewId& aViewId);
       
    94 	TBool CheckSourceOfViewSwitchL(const TSecurityPolicy& aSecurityPolicy,const char* aDiagnostic) const;
       
    95 	TInt GetTopViewId(TVwsViewId& aViewId) const;
       
    96 	void SetCustomControl(const TInt aCustomControl);
       
    97 	void SetWindowGroupOrdinal(const TInt aWindowGroupOrdinal);
       
    98 	void UpdateViewServerBackgroundColor(const TRgb& aBgColor);
       
    99 private:
       
   100 	friend class CTestDriver;
       
   101 private:
       
   102 	void CompleteActivation(TInt aActiveViewIndex,const TVwsViewId& aViewId,const TVwsViewId& aPreviousViewId);
       
   103 private:
       
   104 	CCoeAppUi& iAppUi;
       
   105 	CCoeEnv& iCoeEnv;
       
   106 	TPtrC8 iCustomMessage;
       
   107 	CCoeAppUi* iPreviousAppUi;
       
   108 	TBool iRegisteredApplicationView;
       
   109 	CCoeViewObserver* iViewObserver;
       
   110 	CArrayPtrFlat<CCoeView> iViewArray;
       
   111 	CVwsSessionWrapper* iVwsSession;
       
   112 	CArrayPtrFlat<MCoeViewDeactivationObserver> iViewDeactivationObserverArray;
       
   113 	MCoeViewDeactivationObserver* iNextViewDeactivationObserver;
       
   114 	CArrayPtrFlat<MCoeViewActivationObserver> iViewActivationObserverArray;
       
   115 	MCoeViewActivationObserver* iNextViewActivationObserver;
       
   116 	CArrayPtrFlat<MCoeViewObserver> iViewObserverArray;
       
   117 	TInt iActiveViewIndex;
       
   118 	TVwsViewId iDefaultViewId;
       
   119 	TVwsViewId iLastActiveViewId;
       
   120 	TVwsViewId iActiveViewId;
       
   121 	TVwsViewId iApplicationViewId;
       
   122 	TBool iActivatingTopView;
       
   123 	TVwsViewId iActivatingViewId;
       
   124 	TInt iCustomControl;
       
   125 	TInt iWindowGroupOrdinal;
       
   126 	};
       
   127 
       
   128 #endif // __COEVWMAN_H__