williamr@2: // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // 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 williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __VIEWCLI_H__ williamr@2: #define __VIEWCLI_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: // williamr@2: // Forward declarations. williamr@2: // williamr@2: williamr@2: class RVwsSession; williamr@2: class CVwsSessionEventHandler; williamr@2: class MVwsAppStarter; williamr@2: williamr@2: class MVwsSessionWrapperObserver williamr@2: /** williamr@2: The MVwsSessionObserver specifies an interface through which server events to be handled by the owner of williamr@2: a client session are notified williamr@2: williamr@2: @publishedAll williamr@2: @deprecated williamr@2: */ williamr@2: //@internalTechnology @released williamr@2: williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Handles the view event aEvent for a view added through the client session being observed. williamr@2: * Handles events for all the views added by the client. williamr@2: */ williamr@2: virtual void HandleViewEventL(const TVwsViewEvent& aEvent)=0; williamr@2: }; williamr@2: williamr@2: williamr@2: class CVwsSessionWrapper : public CBase williamr@2: /** williamr@2: The CVwsSessionWrapper class mediates access to the view server client session which it creates, and wraps in williamr@2: support for notification of server events. A session observer will be called back with server events if williamr@2: it maintains an outstanding request for asynchronous event notification. williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: //@internalTechnology @released williamr@2: williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CVwsSessionWrapper* NewL(); williamr@2: IMPORT_C static CVwsSessionWrapper* NewLC(); williamr@2: IMPORT_C static CVwsSessionWrapper* NewL(MVwsSessionWrapperObserver& aObserver); williamr@2: IMPORT_C static CVwsSessionWrapper* NewLC(MVwsSessionWrapperObserver& aObserver); williamr@2: IMPORT_C ~CVwsSessionWrapper(); williamr@2: IMPORT_C static TInt StartViewServer(MVwsAppStarter& aAppStarter); williamr@2: IMPORT_C TInt ShutdownViewServer(); williamr@2: IMPORT_C TInt AddView(const TVwsViewId& aViewId); williamr@2: IMPORT_C TInt RemoveView(const TVwsViewId& aViewId) const; williamr@2: IMPORT_C TInt SetSystemDefaultView(const TVwsViewId& aViewId,TInt aMode); williamr@2: IMPORT_C TInt SetSystemDefaultView(const TVwsViewId& aViewId); williamr@2: IMPORT_C TInt ActivateView(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage); williamr@2: IMPORT_C TInt ActivateViewViaViewEvent(const TVwsViewIdAndMessage& aViewIdAndMessage); williamr@2: IMPORT_C TInt RequestCustomMessage(TDes8& aMessageBufPtr) const; williamr@2: IMPORT_C void QueueAsyncRequest(); williamr@2: IMPORT_C TInt StartApp(TUid aAppToStart); williamr@2: IMPORT_C TInt DeactivateActiveView(); williamr@2: IMPORT_C TInt DeactivateActiveViewIfOwnerMatch(); williamr@2: IMPORT_C TInt NotifyNextDeactivation(const TVwsViewId& aViewId); williamr@2: IMPORT_C TInt NotifyNextDeactivation(); williamr@2: IMPORT_C TInt NotifyNextActivation(const TVwsViewId& aViewId); williamr@2: IMPORT_C TInt NotifyNextActivation(); williamr@2: IMPORT_C TInt SetDefaultView(const TVwsViewId& aViewId,TInt aMode) const; williamr@2: IMPORT_C TInt SetDefaultView(const TVwsViewId& aViewId) const; williamr@2: IMPORT_C TInt GetSystemDefaultView(TVwsViewId& aViewId); williamr@2: IMPORT_C TInt CreateActivateViewEvent(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage); williamr@2: IMPORT_C TInt SetClientRequestTimeOut(TTimeIntervalMicroSeconds32 aDuration); williamr@2: IMPORT_C TInt SetServerEventTimeOut(TTimeIntervalMicroSeconds32 aDuration); williamr@2: IMPORT_C TInt EnableServerEventTimeOut(TBool aEnable); williamr@2: IMPORT_C TInt CheckSourceOfViewSwitch(TBool& aResult,const TSecurityPolicy& aSecurityPolicy,const char* aDiagnostic); williamr@2: IMPORT_C TInt EnableServerBlankScreen(TBool aEnable); williamr@2: IMPORT_C TInt EnableExternalViewSwitches(TBool aEnable); williamr@2: IMPORT_C void ActivateView(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage, TRequestStatus& aStatus); williamr@2: IMPORT_C TInt SetCrossCheckUid(const TUid& aCrossCheckUid); williamr@2: IMPORT_C TInt SetWindowBackgroundColor(const TRgb& aBgColor); williamr@2: public: williamr@2: /** williamr@2: @internalComponent williamr@2: @released williamr@2: */ williamr@2: IMPORT_C TInt ActivateView(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage, TInt aCustomControl); williamr@2: /** williamr@2: @internalComponent williamr@2: @released williamr@2: */ williamr@2: IMPORT_C void ActivateView(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage, TRequestStatus& aStatus, TInt aCustomControl); williamr@2: /** williamr@2: @internalComponent williamr@2: @released williamr@2: */IMPORT_C TInt CreateActivateViewEvent(const TVwsViewId& aViewId,TUid aCustomMessageId,const TDesC8& aCustomMessage, TInt aCustomControl); williamr@2: /** williamr@2: @internalComponent williamr@2: @released williamr@2: */ williamr@2: IMPORT_C TInt GetCurrentActiveViewInSystem(TVwsViewId& aActiveViewId); williamr@2: private: williamr@2: CVwsSessionWrapper(); williamr@2: CVwsSessionWrapper(MVwsSessionWrapperObserver& aObserver); williamr@2: void ConstructL(); williamr@2: TInt CheckCreateViewServerSession(); williamr@2: TBool IsSchedulerRunning(); williamr@2: private: williamr@2: RVwsSession* iVwsSession; williamr@2: CVwsSessionEventHandler* iViewEventHandler; williamr@2: MVwsSessionWrapperObserver* iObserver; williamr@2: }; williamr@2: williamr@2: williamr@2: // williamr@2: // Panic. williamr@2: // williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: enum TVwsPanic williamr@2: { williamr@2: EVwsCreateScheduler=1, williamr@2: EVwsThreadRename williamr@2: }; williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: GLREF_C void Panic(TVwsPanic aPanic); williamr@2: williamr@2: /** williamr@2: Server thread start. williamr@2: williamr@2: @internalComponent williamr@2: */ williamr@2: GLDEF_C TInt ViewServerThreadStart(TAny* aPtr); williamr@2: williamr@2: /** williamr@2: @internalComponent williamr@2: */ williamr@2: struct SVwsCommandLine williamr@2: { williamr@2: MVwsAppStarter* iAppStarter; williamr@2: }; williamr@2: williamr@2: williamr@2: #endif