--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/viewserver/inc/VWSSEVNT.H Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,197 @@
+// Copyright (c) 1999-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 __VWSSEVNT_H__
+#define __VWSSEVNT_H__
+
+#include <e32std.h>
+
+#include "VWSQUEUE.H"
+#include "VWSSESSN.H"
+
+
+/**
+ * The CVwsSessionEvent class is the base class for session events generated WHEN ?
+ */
+class CVwsSessionEvent : public CVwsEvent
+ {
+public:
+ CVwsSessionEvent(CVwsSession& aSession,TType aType,CVwsEventQueue& aQueue);
+ CVwsSessionEvent(CVwsSession& aSession,TType aType,CVwsEventQueue& aQueue,MVwsSessionObserver& aObserver);
+ ~CVwsSessionEvent();
+public:
+ virtual void HandleViewEventRequestL(TInt aError,const RMessage2& aMessage)=0;
+ void ReportRequestCompleted(MVwsSessionObserver::TRequestType aType,TInt aError,const RMessage2& aMessage);
+ void NullifyObserver();
+protected:
+ CVwsSession& iSession;
+ MVwsSessionObserver* iObserver;
+ };
+
+
+/**
+ * The CVwsSessionEvent_Activation represents an activation event in a session's event queue
+ */
+class CVwsSessionEvent_Activation : public CVwsSessionEvent, public MVwsMessageHandler
+ {
+public:
+ CVwsSessionEvent_Activation(CVwsSession& aSession,CVwsEventQueue& aQueue,MVwsSessionObserver& iObserver,const TVwsViewId& aViewId,const TVwsViewId& aPreviousViewId,CVwsClientMessage* aClientMessage,const RThread& aThreadOfClientInitiatingViewSwitch);
+ ~CVwsSessionEvent_Activation();
+private: // From CVwsEvent.
+ virtual void ProcessEventL();
+ virtual void Complete(TInt aError);
+private: // From CVwsSessionEvent.
+ virtual void HandleViewEventRequestL(TInt aError,const RMessage2& aMessage);
+private: // From MVwsMessageHandler.
+ void WriteClientMessageL(const RMessage2& aMessage);
+ void CheckSourceOfViewSwitchL(const RMessage2& aMessage);
+private:
+ void RequestActivationL();
+ void Complete(TInt aError,const RMessage2& aMessage);
+private:
+ enum TState
+ {
+ EPending,
+ EWaitingForClientViewEventRequest,
+ EWaitingForCustomMessageCollection,
+ EWaitingForAcknowledgementOfActivation
+ };
+private:
+ const TVwsViewId iViewId;
+ const TVwsViewId iPreviousViewId;
+ CVwsClientMessage* iClientMessage;
+ TState iState;
+ RThread iThreadOfClientInitiatingViewSwitch;
+ };
+
+
+/**
+ * The CVwsSessionEvent_Deactivation represents a deactivation event in a session's event queue
+ */
+class CVwsSessionEvent_Deactivation : public CVwsSessionEvent
+ {
+public:
+ CVwsSessionEvent_Deactivation(CVwsSession& aSession,CVwsEventQueue& aQueue,MVwsSessionObserver& iObserver,const TVwsViewId& aViewId,const TVwsViewId& aActiveViewId, TBool aDifferentInstanceOfSameApp);
+ ~CVwsSessionEvent_Deactivation();
+private: // From CVwsEvent.
+ virtual void ProcessEventL();
+private: // From CVwsSessionEvent.
+ virtual void HandleViewEventRequestL(TInt aError,const RMessage2& aMessage);
+private:
+ void RequestDeactivationL();
+ void Complete(TInt aError,const RMessage2& aMessage);
+private:
+ enum TState
+ {
+ EPending,
+ EWaitingForClientViewEventRequest,
+ EWaitingForAcknowledgementOfDeactivation
+ };
+private:
+ const TVwsViewId iViewId;
+ const TVwsViewId iActiveViewId;
+ TState iState;
+ TBool iDifferentInstanceOfSameApp;
+ };
+
+
+/**
+ * The CVwsSessionEvent_ScreenDeviceChangeNotification represents a screen device changes notification event in a
+ * session's event queue
+ */
+class CVwsSessionEvent_ScreenDeviceChangeNotification : public CVwsSessionEvent
+ {
+public:
+ CVwsSessionEvent_ScreenDeviceChangeNotification(CVwsSession& aSession,CVwsEventQueue& aQueue,MVwsSessionObserver& iObserver,const TVwsViewId& aViewId);
+ ~CVwsSessionEvent_ScreenDeviceChangeNotification();
+private: // From CVwsEvent.
+ virtual void ProcessEventL();
+private: // From CVwsSessionEvent.
+ virtual void HandleViewEventRequestL(TInt aError,const RMessage2& aMessage);
+private:
+ void RequestScreenDeviceChangeNotificationL();
+ void Complete(TInt aError,const RMessage2& aMessage);
+private:
+ enum TState
+ {
+ EPending,
+ EWaitingForClientViewEventRequest,
+ EWaitingForAcknowledgementOfScreenDeviceChange
+ };
+private:
+ const TVwsViewId iViewId;
+ TState iState;
+ };
+
+
+/**
+ * The CVwsSessionEvent_DeactivationNotification represents a deactivation notification event in a session's event queue.
+ */
+class CVwsSessionEvent_DeactivationNotification : public CVwsSessionEvent
+ {
+public:
+ CVwsSessionEvent_DeactivationNotification(CVwsSession& aSession,CVwsEventQueue& aQueue,const TVwsViewId& aViewId,const TVwsViewId& aActiveViewId);
+ ~CVwsSessionEvent_DeactivationNotification();
+private: // From CVwsEvent.
+ virtual void ProcessEventL();
+private: // From CVwsSessionEvent.
+ virtual void HandleViewEventRequestL(TInt aError,const RMessage2& aMessage);
+private:
+ void RequestDeactivationNotificationL();
+ void Complete(TInt aError);
+private:
+ enum TState
+ {
+ EPending,
+ EWaitingForClientViewEventRequest,
+ EWaitingForAcknowledgementOfDeactivationNotification
+ };
+private:
+ const TVwsViewId iViewId;
+ const TVwsViewId iActiveViewId;
+ TState iState;
+ };
+
+
+/**
+ * The CVwsSessionEvent_ActivationNotification represents a deactivation notification event in a session's event queue.
+ */
+class CVwsSessionEvent_ActivationNotification : public CVwsSessionEvent
+ {
+public:
+ CVwsSessionEvent_ActivationNotification(CVwsSession& aSession,CVwsEventQueue& aQueue,const TVwsViewId& aViewId,const TVwsViewId& aViewToBeDeactivatedId);
+ ~CVwsSessionEvent_ActivationNotification();
+private: // From CVwsEvent.
+ virtual void ProcessEventL();
+private: // From CVwsSessionEvent.
+ virtual void HandleViewEventRequestL(TInt aError,const RMessage2& aMessage);
+private:
+ void RequestActivationNotificationL();
+ void Complete(TInt aError);
+private:
+ enum TState
+ {
+ EPending,
+ EWaitingForClientViewEventRequest,
+ EWaitingForAcknowledgementOfActivationNotification
+ };
+private:
+ const TVwsViewId iViewId;
+ const TVwsViewId iViewToBeDeactivatedId;
+ TState iState;
+ };
+
+#endif