This document describes how to handle the Middle Soft Key (MSK) and Enter keys in AVKON lists.
If an application handles the list targeted MSK or Enter Key events ( EKeyOK and EKeyEnter ), for example, in the ProcessKeyEventL() function, the handling of these key events must be moved to the listbox observer function HandleListBoxEventL() . The MSK or Enter Key event related action must be performed when an EEventEnterKeyPressed event is received. This way the list item-specific action is performed on a key event only when there is an option highlighted in the list.
Remove key event handling code from ProcessKeyEventL .
TBool CLogsDetailView::ProcessKeyEventL(
const TKeyEvent& aKeyEvent,
TEventCode aType )
{
if( aType == EEventKey )
{
switch( aKeyEvent.iCode )
{
...
//------ Remove this code-------------
// case EKeyOK:
// case EKeyEnter:
// Select key pressed
// CmdContextMenuL();
// return ETrue;
//--------------------------------------
...
default:
break;
}
}
Add key event handling code to HandleListBoxEventL .
void CLogsBaseView::HandleListBoxEventL(
CEikListBox* aListBox,
TListBoxEvent aEventType)
{
...
switch ( aEventType )
{
...
//---------Add MSK and enter key handling code----------------
case EEventEnterKeyPressed:
{
TInt commandId( Cba()->ButtonGroup()->CommandId(
CEikButtonGroupContainer::EMiddleSoftkeyPosition ) );
ProcessCommandL( commandId );
break;
}
//--------------------------------------------------------------
...
default:
// HW key shortcuts
break;
}
}
...
}
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.