CCoeAppUi:HandleApplicationSpecificEventL() is called for application-specific events where event codes are from EEventUser upwards in TEventCode . You can define a data structure to be delivered in the window server event. The data can be accessed through a pointer, which can be obtained by calling TWsEvent::EventData() . The maximum event data size is defined as EWsEventDataSize .
void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent)
Code example:
First define a data structure for the event data:
class TEventsEventType
{
public:
// Event iData
TBufC< TWsEvent::EWsEventDataSize> data;
};
Then create an event and send it to all window groups:
// Create a window server event
TWsEvent event;
TEventsEventType eventType;
// Set event data. eventType.data = KData;
event.SetType( ETestEvent1 ); // set event type
event.SetTimeNow(); // set the event time
event.SetHandle( iWsSession.WsHandle() ); // set window server handle
*( TEventsEventType* )( event.EventData() ) = eventType; // set event data
// Send the created event
User::LeaveIfError( iWsSession.SendEventToAllWindowGroups( event ) );
Catch the event using the following method:
void CEventsAppUi::HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent)
{
// Check the event type
if( aType == ETestEvent1 )
{
// Cast to TEventsEventType
TEventsEventType event;
event = *( TEventsEventType* )aEvent.EventData();
// Print the data
iEikonEnv->InfoMsg( event.data );
}
// Call the base class implementation
CEikAppUi::HandleApplicationSpecificEventL( aType, aEvent );
}
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.