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 __VWSDEF_H__ williamr@2: #define __VWSDEF_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: */ williamr@2: #define KUidCustomCrossCheckValue 0x80282748 williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: */ williamr@2: const TUid KUidCustomCrossCheck={KUidCustomCrossCheckValue}; williamr@2: williamr@2: class TVwsViewId williamr@2: /** Identifies an application view using two unique identifiers (UIDs): a view williamr@2: UID and an application UID. williamr@2: williamr@2: The application UID is required so that the application associated with the view williamr@2: can be started if it is not already running. williamr@2: williamr@2: @publishedAll williamr@2: @released */ williamr@2: { williamr@2: public: williamr@2: inline TVwsViewId(); williamr@2: inline TVwsViewId(const TVwsViewId& aUid); williamr@2: inline TVwsViewId(TUid aAppUid,TUid aViewUid); williamr@2: inline TBool operator==(const TVwsViewId& aUid) const; williamr@2: inline TBool operator!=(const TVwsViewId& aUid) const; williamr@2: public: williamr@2: /** A unique application ID (or application UID). williamr@2: williamr@2: Uniquely identifies the application associated with the view. */ williamr@2: TUid iAppUid; williamr@2: /** A unique view ID (or view UID). williamr@2: williamr@2: Uniquely identifies the view. */ williamr@2: TUid iViewUid; williamr@2: }; williamr@2: williamr@2: /** @internalTechnology */ williamr@2: #define KNullViewId TVwsViewId(KNullUid,KNullUid) williamr@2: williamr@2: /** @internalTechnology */ williamr@2: const TInt KErrViewWrongMode=1; // !!! Wrong error code - should be -ve & unique williamr@2: williamr@2: williamr@2: class TVwsViewIdAndMessage williamr@2: /** williamr@2: The TVwsViewIdAndMessage class identifies a view and encapsulates a message to williamr@2: be read by the view when it is activated. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: inline TVwsViewIdAndMessage(); williamr@2: inline TVwsViewIdAndMessage(const TVwsViewId& aId); williamr@2: inline TVwsViewIdAndMessage(const TVwsViewId& aId,TUid aCustomMessageId,const TDesC8& aCustomMessage); williamr@2: inline TVwsViewIdAndMessage& operator=(const TVwsViewIdAndMessage& aVwsViewIdAndMessage); williamr@2: public: williamr@2: TVwsViewId iViewId; williamr@2: TUid iCustomMessageId; williamr@2: TInt iCustomMessageLength; williamr@2: TPtrC8 iCustomMessage; williamr@2: }; williamr@2: williamr@2: williamr@2: williamr@2: class TVwsViewEvent williamr@2: /** williamr@2: The TVwsViewEvent class encapsulates the attributes of a view server event. williamr@2: These are: williamr@2: - The event type williamr@2: - The view ids of the two views associated with the event williamr@2: - The attributes of any message which can go with the event. williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: enum TVwsViewEventType williamr@2: { williamr@2: EVwsActivateView, williamr@2: EVwsDeactivateView, williamr@2: EVwsScreenDeviceChanged, williamr@2: EVwsDeactivationNotification, williamr@2: EVwsActivationNotification, williamr@2: EVwsDeactivateViewDifferentInstance williamr@2: }; williamr@2: public: williamr@2: inline TVwsViewEvent(); williamr@2: inline TVwsViewEvent(TVwsViewEventType aEventType); williamr@2: inline TVwsViewEvent(TVwsViewEventType aEventType,const TVwsViewId& aViewOneId); williamr@2: inline TVwsViewEvent(TVwsViewEventType aEventType,const TVwsViewId& aViewOneId,const TVwsViewId& aViewTwoId); williamr@2: inline TVwsViewEvent(TVwsViewEventType aEventType,const TVwsViewId& aViewOneId,const TVwsViewId& aViewTwoId,TUid aCustomMessageId,TInt aCustomMessageLength); williamr@2: public: williamr@2: /** williamr@2: The event type. williamr@2: */ williamr@2: TVwsViewEventType iEventType; williamr@2: /** williamr@2: The first view id associated with the event. This has a different meaning for each of the event types: williamr@2: - For ActivateView events, it is the view to activate williamr@2: - For DeactivateView events, it is the view to deactivate williamr@2: - For ScreenDeviceChange events, it is the id of the currently active view williamr@2: - For ActivationNotification events, it is the id of the activated view williamr@2: - For DeactivationNotification events, it is the id of the deactivated view williamr@2: */ williamr@2: TVwsViewId iViewOneId; williamr@2: /** williamr@2: The second view id associated with the event. This has a different meaning for each of the event types: williamr@2: - For ActivateView events, it is the view that will be deactivated williamr@2: - For DeactivateView events, it is the view that has been activated williamr@2: - For ScreenDeviceChange events, it is unused williamr@2: - For ActivationNotification events, it is the view that will be deactivated williamr@2: - For DeactivationNotification events, it is the id of the view that has been activated williamr@2: */ williamr@2: TVwsViewId iViewTwoId; williamr@2: /** williamr@2: The type of message being passed in the custom message buffer williamr@2: */ williamr@2: TUid iCustomMessageId; williamr@2: /** williamr@2: The length of the custom message being held by the server. williamr@2: To retrieve the message itself from the server, a buffer of this length must be allocated williamr@2: */ williamr@2: TInt iCustomMessageLength; williamr@2: }; williamr@2: williamr@2: williamr@2: // williamr@2: // Typedefs. williamr@2: // williamr@2: /** @internalComponent */ williamr@2: typedef TPckgBuf TVwsViewIdAndMessageBuf; williamr@2: williamr@2: /** @internalComponent */ williamr@2: typedef TPckgBuf TVwsViewEventBuf; williamr@2: williamr@2: williamr@2: // williamr@2: // Inlines williamr@2: // williamr@2: williamr@2: inline TVwsViewId::TVwsViewId() williamr@2: /** Constructs a TVwsViewId object, and initialises both the application UID and williamr@2: the view UID to NULL. */ williamr@2: : iAppUid(KNullUid), iViewUid(KNullUid) {} williamr@2: williamr@2: inline TVwsViewId::TVwsViewId(const TVwsViewId& aUid) williamr@2: /** Constructs a new TVwsViewId object from an existing one. This simply performs williamr@2: a member-wise copy, each member variable of the passed in object is individually williamr@2: copied to the corresponding member variable of the new object. williamr@2: williamr@2: @param aUid A reference to the TVwsViewId object to be copied. */ williamr@2: : iAppUid(aUid.iAppUid), iViewUid(aUid.iViewUid) {} williamr@2: williamr@2: inline TVwsViewId::TVwsViewId(TUid aAppUid,TUid aViewUid) williamr@2: /** Constructs a TVwsViewId object with the specified application UID and view UID. williamr@2: williamr@2: @param aAppUid The application UID. williamr@2: @param aViewUid The view UID. */ williamr@2: : iAppUid(aAppUid), iViewUid(aViewUid) {} williamr@2: williamr@2: inline TBool TVwsViewId::operator==(const TVwsViewId& aUid) const williamr@2: /** Checks whether the TVwsViewId object being operated upon and the TVwsViewId williamr@2: object specified are the same. williamr@2: williamr@2: Returns true if both application UIDs and both view UIDs are the same, otherwise williamr@2: returns false. williamr@2: williamr@2: @param aUid A reference to a TVwsViewId object. williamr@2: @return ETrue if objects are the same, EFalse otherwise. */ williamr@2: { williamr@2: return (aUid.iAppUid==iAppUid && aUid.iViewUid==iViewUid); williamr@2: } williamr@2: williamr@2: inline TBool TVwsViewId::operator!=(const TVwsViewId& aUid) const williamr@2: /** Checks whether the TVwsViewId object being operated upon and the TVwsViewId williamr@2: object specified are different. williamr@2: williamr@2: Returns true if either the application UIDs or view UIDs are different, otherwise williamr@2: returns false. williamr@2: williamr@2: @param aUid A reference to a TVwsViewId object. williamr@2: @return ETrue if objects are different, EFalse otherwise. */ williamr@2: { williamr@2: return (aUid.iAppUid!=iAppUid || aUid.iViewUid!=iViewUid); williamr@2: } williamr@2: williamr@2: williamr@2: /** Constructs a TVwsViewIdAndMessage object, and initialises it to contain a williamr@2: NULL view UID and an empty message */ williamr@2: inline TVwsViewIdAndMessage::TVwsViewIdAndMessage() williamr@2: : iViewId(TVwsViewId()), iCustomMessageLength(0) williamr@2: { williamr@2: iCustomMessageId.iUid=0; williamr@2: iCustomMessage.Set(KNullDesC8); williamr@2: } williamr@2: williamr@2: /** Constructs a TVwsViewIdAndMessage object, and initialises it to contain the williamr@2: specified view UID and an empty message williamr@2: williamr@2: @param aId A reference to the TVwsViewId to be used williamr@2: */ williamr@2: inline TVwsViewIdAndMessage::TVwsViewIdAndMessage(const TVwsViewId& aId) williamr@2: : iViewId(aId), iCustomMessageLength(0) williamr@2: { williamr@2: iCustomMessageId.iUid=0; williamr@2: iCustomMessage.Set(KNullDesC8); williamr@2: } williamr@2: williamr@2: /** Constructs a TVwsViewIdAndMessage object, and initialises it to contain the williamr@2: specified view UID and the specified message williamr@2: williamr@2: @param aId A reference to the TVwsViewId to be used williamr@2: @param aCustomMessageId The message Id to use williamr@2: @param aCustomMessage A narrow descriptor containing the message williamr@2: */ williamr@2: inline TVwsViewIdAndMessage::TVwsViewIdAndMessage(const TVwsViewId& aId,TUid aCustomMessageId,const TDesC8& aCustomMessage) williamr@2: : iViewId(aId), iCustomMessageId(aCustomMessageId) williamr@2: { williamr@2: iCustomMessageLength=aCustomMessage.Length(); williamr@2: iCustomMessage.Set(aCustomMessage); williamr@2: } williamr@2: williamr@2: /** Copies the contents of another TVwsViewIdAndMessage into this one williamr@2: williamr@2: @param aVwsViewIdAndMessage A reference to the TVwsViewIdAndMessage to be copied williamr@2: williamr@2: @return A reference to the object being copied into williamr@2: */ williamr@2: inline TVwsViewIdAndMessage& TVwsViewIdAndMessage::operator=(const TVwsViewIdAndMessage& aVwsViewIdAndMessage) williamr@2: { williamr@2: iViewId=aVwsViewIdAndMessage.iViewId; williamr@2: iCustomMessageId=aVwsViewIdAndMessage.iCustomMessageId; williamr@2: iCustomMessageLength=aVwsViewIdAndMessage.iCustomMessage.Length(); williamr@2: iCustomMessage.Set(aVwsViewIdAndMessage.iCustomMessage); williamr@2: return(*this); williamr@2: } williamr@2: williamr@2: inline TVwsViewEvent::TVwsViewEvent() {} williamr@2: williamr@2: inline TVwsViewEvent::TVwsViewEvent(TVwsViewEventType aEventType) williamr@2: : iEventType(aEventType),iViewOneId(),iViewTwoId(),iCustomMessageId(KNullUid),iCustomMessageLength(0) {} williamr@2: williamr@2: inline TVwsViewEvent::TVwsViewEvent(TVwsViewEventType aEventType,const TVwsViewId& aViewOneId) williamr@2: : iEventType(aEventType),iViewOneId(aViewOneId),iViewTwoId(),iCustomMessageId(KNullUid),iCustomMessageLength(0) {} williamr@2: williamr@2: inline TVwsViewEvent::TVwsViewEvent(TVwsViewEventType aEventType,const TVwsViewId& aViewOneId,const TVwsViewId& aViewTwoId) williamr@2: : iEventType(aEventType),iViewOneId(aViewOneId),iViewTwoId(aViewTwoId),iCustomMessageId(KNullUid),iCustomMessageLength(0) {} williamr@2: williamr@2: inline TVwsViewEvent::TVwsViewEvent(TVwsViewEventType aEventType,const TVwsViewId& aViewOneId,const TVwsViewId& aViewTwoId,TUid aCustomMessageId,TInt aCustomMessageLength) williamr@2: : iEventType(aEventType),iViewOneId(aViewOneId),iViewTwoId(aViewTwoId),iCustomMessageId(aCustomMessageId),iCustomMessageLength(aCustomMessageLength) {} williamr@2: williamr@2: williamr@2: #endif